bsv-ruby-sdk 0.22.0
Added
- BRC-103 wire layer:
WalletWiretransport abstraction,WalletWireTransceiver(client),WalletWireProcessor(server),Substrates::HTTPWalletWire(binary HTTP transport), andSubstrates::HTTPWalletJSON(JSON-over-HTTP, MetaNet Desktop compatible) - Full BRC-103 serialisers for all 28 BRC-100 methods; wire format compatible with go-sdk byte-for-byte
BSV::Wallet.error_from_wirehelper rehydrates error frames into typedBSV::Wallet::Errorsubclasses (codes 1–7)- New guide:
docs/guides/brc-103-wire.md— end-to-end walkthrough of the wire layer - Wire layer reference section added to
docs/sdk/wallet.md BSV::Transaction::ChainTracker.default(testnet: false)— provider-routed chain tracker backed by GorillaPool + JungleBus by default; no credentials required (closes #783)BSV::Network::Protocols::JungleBusdeclares:current_heightso the GorillaPool provider can satisfy chain-tip queries (#784)BSV::Network::Providers::GorillaPool.testnetnow registersProtocols::JungleBusalongsideProtocols::Arcadeso chain-header lookups work on testnet
Changed
BSV::Transaction::ChainTrackeris now a working default implementation when constructed with aProvider; subclasses that overridevalid_root_for_height?andcurrent_heightcontinue to work unchanged (constructor now accepts an optional positionalproviderargument:ChainTracker.new(provider), withprovider = nilpreserved for subclass-only use)
Removed (breaking)
-
BSV::Transaction::ChainTrackers::Chaintracksis removed. Migrate to
BSV::Transaction::ChainTracker.defaultfor general use (GorillaPool), or construct
a single-protocol Provider explicitly for own-server use:own = BSV::Network::Provider.new('local') do |p| p.protocol BSV::Network::Protocols::Chaintracks, base_url: 'http://my-server' end tracker = BSV::Transaction::ChainTracker.new(own)
-
BSV::Transaction::ChainTrackers.default(the namespace-level factory method) is
removed. UseBSV::Transaction::ChainTracker.default(the singular class-level
method) instead. TheChainTrackersnamespace is now a pure autoload container for
concrete protocol-specific wrappers;ChainTracker(singular) is the porcelain entry
point. -
Closes #778 — GorillaPool chaintracks connectivity: chain data is now reachable
through the provider via JungleBus; the open question dissolves.
Note
- The default
ChainTrackerin the Ruby SDK resolves against GorillaPool/JungleBus,
which diverges from the TS SDK (WhatsOnChain) and Go/Python SDK defaults. This
reflects the broader pattern of GorillaPool being the default broadcast provider in
the Ruby SDK.