Skip to content

Releases: bsv-blockchain/go-sdk

v1.2.12

12 Nov 19:46
7f8c838

Choose a tag to compare

Added

  • ArcBroadcast method in Arc broadcaster for direct access to ARC response
  • Missing ARC status constants: MINED, CONFIRMED, DOUBLE_SPEND_ATTEMPTED, SEEN_IN_ORPHAN_MEMPOOL
  • Test coverage for fee calculation with TestCalculateFee

Changed

  • Arc broadcaster refactored with ArcBroadcast abstraction for better error handling

Fixed

  • Fee calculation formula to multiply in float space before casting to uint64, ensuring accurate fees for all satoshi rates

v1.2.11

27 Oct 17:45
565ffbe

Choose a tag to compare

Added

  • Webhook management methods in headers client (RegisterWebhook, UnregisterWebhook, GetWebhook)
  • GetMerkleRoots method in headers client for bulk merkle root fetching with pagination
  • Protocol ID support in overlay services with ProtocolID type and ID() method
  • OffChainValues field to TaggedBEEF structure
  • Anyone wallet support (nil private key handling in NewWallet)
  • Comprehensive test coverage for headers client (450+ lines)

Changed

  • Session lookup now uses YourNonce instead of identity key for multi-device support
  • Switched from log to slog for structured logging in overlay lookup resolver
  • BEEF parsing changed from NewTransactionFromBEEF to ParseBeef with improved error handling
  • Wallet serialization now deterministic with sorted keys in DiscoverByAttributes and ListCertificates
  • Keyring serialization changed to proper base64 handling (WriteIntFromBase64/ReadBase64Int)

Fixed

  • Data race in auth peer callback management with proper mutex protection
  • Authentication flow to properly validate session state before processing general messages
  • Certificate validation logic in handleInitialResponse and handleCertificateResponse
  • Channel closing in overlay lookup resolver goroutines
  • Wallet serialization test vectors for ListCertificates

Release v1.2.10

16 Sep 17:00
48aa6f6

Choose a tag to compare

Added

  • New error type ErrHTTPServerFailedToAuthenticate for authentication failures

Changed

  • Updated error return to include the new error type using errors.Join()
  • Replaced string-based error checking with proper errors.Is() type checking
  • updated dependencies

Release v1.2.9

07 Sep 17:12
d7b55d1

Choose a tag to compare

Added

  • Codecov integration for automated code coverage reporting and analysis
  • New auth/authpayload package with HTTP request/response serialization
  • AuthFetch config options and methods
  • BRC104 HTTP headers support (auth/brc104/auth_http_headers.go)

Changed

  • Added auth/authpayload package
  • Updated dependencies
  • Minor documentation corrections

Fixed

  • AuthFetch communication flow issues and hanging processes during handshake
  • HTTP request payload preparation in auth client
  • SPV verification now properly handles invalid merkle paths by returning error instead of fallback to input verification
  • Headers client BlockByHeight now includes bounds check for empty headers array

Release v1.2.8

08 Aug 16:49
0709d71

Choose a tag to compare

Added

  • Documented using SetSourceTxOutput to address (#218)
    • Added example docs/examples/set_source_tx_output/ with set_source_tx_output.go and README
    • Added cross-implementation test vectors

Changed

  • Replaced log.Logger with slog.Logger in AuthFetch and Peer (#215)
    • Auth HTTP client now accepts an optional *slog.Logger in its constructor (authhttp.New(..., logger...))
    • Prefer constructor injection over setters; SetLogger is deprecated
    • Structured logging for improved observability

Fixed

  • Shamir key split: enforce non-zero, unique x-coordinates in ToKeyShares and add tests to prevent regressions. Refactor Shamir logic into primitives/ec/shamir.go for clarity.

Release v1.2.7

05 Aug 20:02
419ae4e

Choose a tag to compare

Added

  • Implemented RevealCounterpartyKeyLinkage and RevealSpecificKeyLinkage methods in ProtoWallet (#219)
  • Added Schnorr zero-knowledge proof primitive in primitives/schnorr package
  • Added BRC-2 and BRC-3 compliance test vectors
  • Added TestWallet implementation for testing with comprehensive certificate management
  • Added WalletKeys interface and implementation for standardized key operations
  • Added test certificate manager in wallet/testcertificates package
  • Added NewPrivateKeyFromInt method to create private keys from integer values
  • Added Pad method to SymmetricKey for zero-padding keys to 32 bytes

Changed

  • Updated RevealSpecificSecret in KeyDeriver to use compressed shared secret for HMAC computation
  • Standardized proof serialization format to use compressed points (98 bytes total)
  • Improved auth fetch process to prevent hanging and fix certificate exchange between peers (#217, #220)
  • Refactored certificate validation logic with enhanced error handling
  • Updated SonarQube scan action from v5.2.0 to v5.3.0 (#216)
  • Enhanced SimplifiedHTTPTransport with better context handling and error management
  • Improved peer authentication handshake process with better certificate handling

Fixed

  • Fixed auth fetch hanging process during initial handshake
  • Fixed certificate exchange issues between peers
  • Fixed certificate validation edge cases and improved test coverage
  • Fixed session manager context cancellation handling

Removed

  • Removed MockWallet implementation in favor of TestWallet

v1.2.6

21 Jul 17:22
50b99da

Choose a tag to compare

Fixed

  • Fixed BEEF validation stability issue where IsValid returned inconsistent results (#211)
  • Fixed BEEF parsing panic when encountering transactions without merkle paths (#96)
  • Fixed validation logic to properly check if transactions appear in BUMPs
  • Fixed README installation instructions to use go get instead of go install (#202)

Changed

  • Renamed SortTxs() method to ValidateTransactions() for clarity
  • Improved BEEF validation to handle transactions without source transactions gracefully
  • Refactored BEEF implementation to use chainhash.Hash directly as map keys instead of string conversions for improved performance
  • Added *ByHash versions of BEEF methods (findTxidByHash, FindBumpByHash, etc.) to avoid unnecessary hash/string conversions
  • Updated collectAncestors to return []chainhash.Hash instead of []string

v1.2.5

16 Jul 14:47
b039bce

Choose a tag to compare

Changed

  • Consolidated PushDrop implementation into single struct
  • Merged CompletedProtoWallet implementations
  • Renamed OverlayAdminTokenTemplate to use new API
  • Optimized collectAncestors performance (3.17x faster, 78% less memory)
  • Improved script parsing performance with two-pass approach
    • 28-49% performance improvement

Added

  • Optional sourceSatoshis and lockingScript parameters to Unlock method
  • Pre-allocation for parsed opcodes in script parser

Fixed

  • Wire format fixes for 32 byte key padding
  • Distinguish invalid signature errors from internal errors
  • Script parsing performance regression

Release v1.2.4

30 Jun 15:50
c6e7b9d

Choose a tag to compare

[1.2.4] - 2025-06-30

Changed

  • Add context parameter to ChainTracker.IsValidRootForHeight for cancellation/timeout support
  • Update all ChainTracker implementations to take context (WhatsOnChain, HeadersClient, GullibleHeadersClient)
  • Update MerklePath.Verify and VerifyHex to take context
  • Update BEEF.Verify to take context
  • Update spv.Verify and VerifyScripts to take context

Release v1.2.3

30 Jun 13:34
caec21f

Choose a tag to compare

  • several bug fixes in auth package