Releases: bsv-blockchain/go-sdk
Releases · bsv-blockchain/go-sdk
v1.2.12
Added
ArcBroadcastmethod 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
ArcBroadcastabstraction 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
Added
- Webhook management methods in headers client (
RegisterWebhook,UnregisterWebhook,GetWebhook) GetMerkleRootsmethod in headers client for bulk merkle root fetching with pagination- Protocol ID support in overlay services with
ProtocolIDtype andID()method OffChainValuesfield toTaggedBEEFstructure- Anyone wallet support (nil private key handling in
NewWallet) - Comprehensive test coverage for headers client (450+ lines)
Changed
- Session lookup now uses
YourNonceinstead of identity key for multi-device support - Switched from
logtoslogfor structured logging in overlay lookup resolver - BEEF parsing changed from
NewTransactionFromBEEFtoParseBeefwith improved error handling - Wallet serialization now deterministic with sorted keys in
DiscoverByAttributesandListCertificates - 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
handleInitialResponseandhandleCertificateResponse - Channel closing in overlay lookup resolver goroutines
- Wallet serialization test vectors for
ListCertificates
Release v1.2.10
Added
- New error type
ErrHTTPServerFailedToAuthenticatefor 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
Added
- Codecov integration for automated code coverage reporting and analysis
- New
auth/authpayloadpackage with HTTP request/response serialization - AuthFetch config options and methods
- BRC104 HTTP headers support (
auth/brc104/auth_http_headers.go)
Changed
- Added
auth/authpayloadpackage - 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
Added
- Documented using SetSourceTxOutput to address (#218)
- Added example
docs/examples/set_source_tx_output/withset_source_tx_output.goand README - Added cross-implementation test vectors
- Added example
Changed
- Replaced
log.Loggerwithslog.Loggerin AuthFetch and Peer (#215)- Auth HTTP client now accepts an optional
*slog.Loggerin its constructor (authhttp.New(..., logger...)) - Prefer constructor injection over setters;
SetLoggeris deprecated - Structured logging for improved observability
- Auth HTTP client now accepts an optional
Fixed
- Shamir key split: enforce non-zero, unique x-coordinates in
ToKeySharesand add tests to prevent regressions. Refactor Shamir logic intoprimitives/ec/shamir.gofor clarity.
Release v1.2.7
Added
- Implemented
RevealCounterpartyKeyLinkageandRevealSpecificKeyLinkagemethods in ProtoWallet (#219) - Added Schnorr zero-knowledge proof primitive in
primitives/schnorrpackage - Added BRC-2 and BRC-3 compliance test vectors
- Added
TestWalletimplementation for testing with comprehensive certificate management - Added
WalletKeysinterface and implementation for standardized key operations - Added test certificate manager in
wallet/testcertificatespackage - Added
NewPrivateKeyFromIntmethod to create private keys from integer values - Added
Padmethod to SymmetricKey for zero-padding keys to 32 bytes
Changed
- Updated
RevealSpecificSecretin 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
SimplifiedHTTPTransportwith 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
MockWalletimplementation in favor ofTestWallet
v1.2.6
Fixed
- Fixed BEEF validation stability issue where
IsValidreturned 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 getinstead ofgo install(#202)
Changed
- Renamed
SortTxs()method toValidateTransactions()for clarity - Improved BEEF validation to handle transactions without source transactions gracefully
- Refactored BEEF implementation to use
chainhash.Hashdirectly as map keys instead of string conversions for improved performance - Added
*ByHashversions of BEEF methods (findTxidByHash,FindBumpByHash, etc.) to avoid unnecessary hash/string conversions - Updated
collectAncestorsto return[]chainhash.Hashinstead of[]string
v1.2.5
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
[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
- several bug fixes in auth package