Skip to the content
nullroute
Browse the docs

Standards

Interop fixtures

Real files from Sparrow and Bitcoin Core that the device reads or refuses, and every known gap.

Real files from other wallets, kept so that nullroute's coordinator import (packages/core/src/descriptor/coordinator.ts, spec core.descriptor.coordinator) is tested against what those programs actually write rather than against files its own tests made up.

Nothing here is edited. Every file is either a verbatim copy of a file another project keeps as a test fixture, or the output of a real Bitcoin Core run that anyone can repeat. Each file's SHA-256 is in SHA256SUMS, which sha256sum -c reads, and the hash of SHA256SUMS itself is pinned in packages/core/src/descriptor/coordinator.spec.yaml, so make verify fails if any of it changes without the spec changing too.

cd spec/interop && sha256sum -c SHA256SUMS

The tests are in packages/core/test/interop.fixtures.test.ts and bind to INV-COORD-1 to INV-COORD-6. Every expected value in them comes from somewhere other than nullroute's code: a value Sparrow's own test asserts for that file, an address BIP-129, BIP-84 or BIP-86 publishes, or what Bitcoin Core derived.

In this chapter

  1. 01Sparrow test resourcesThese files are from Sparrow Wallet, by the Sparrow Wallet project and its contributors, and are redistributed unmodified under the Apache License 2.0. Sparrow's licence is copied...
  2. 02Bitcoin Core 31.1 exportsEach file is a Core RPC result, written as Core returned it. Core on regtest writes tpub keys and bcrt1 addresses; nullroute ignores an extended key's version bytes, and the tests...
  3. 03GapsWhat these fixtures show nullroute does not do, or does differently. None of these is hidden by a test: each is asserted as it is.

Rendered from spec/interop/README.md, the same bytes that ship with the code. SHA-256 b13c292915c8fb50b9d62c7c64e284864faa181ac8982a113e8f90bbd41e7b56