Version 0.3.0 adds compatibility with rippled 3.3.0. It also improves transaction safety, client reliability, and support for current XRPL features.
Important
This release contains breaking changes. Read the migration guide before you upgrade.
Breaking changes and migration notes
- The minimum Go version is now 1.25.12. (#335)
- Dynamic MPT APIs now use
ImmutableFlagsinstead ofMutableFlags. (#351, #352) - MPT amount and ledger fields now use quoted decimal or hexadecimal strings. (#351, #352)
- Batch signing now uses the BatchV1_1 format. The signing payload requires the outer account and effective sequence. Signature fragments from version 0.2.0 are not compatible. (#358)
- Batch transactions must contain 2 through 8 inner transactions. (#358)
- Fee cushion values now use
float64. Maximum fee configuration now uses decimal strings. (#358) - The public RPC and WebSocket
NetworkIDfields were replaced byNetworkIdentity()accessors. (#357) - WebSocket
Connectnow discovers the server identity. It returnsErrAlreadyConnectedif a connection already exists. (#357) - Signing and submission now require complete canonical signature fields. (#358)
DeriveClassicAddressnow accepts only Ed25519 public keys and compressed secp256k1 public keys. (#353)EncodeQualitynow rejects some extreme values that version 0.2.0 accepted. (#366)ErrTransactionNotFoundwas removed. Reliable submission now treatstxnNotFoundas a pending state. (#359)
See the migration guide for the required code changes.
Main additions
- Added XLS-69 transaction simulation for RPC and WebSocket clients. (#356)
- Added typed
server_definitionssupport. (#356) - Expanded typed
ledger_entrysupport with JSON and binary responses and Clio deleted-entry metadata. (#355) - Added typed handling for
bookChangesWebSocket notifications. (#360) - Added X-address autofill for outer transactions and Batch inner transactions. (#357, #358)
- Added cancellable transaction submission and validation monitoring. (#359)
- Added the exact
Dropsarithmetic type for XRP amounts and fees. (#358) - Added MPT Clawback support. (#352)
- Added new MPT ledger fields and capabilities. (#351, #352)
- Added more typed query fields for account lines, AMM information, NFT offers, and vault responses. (#354)
- Added an xrpld localnet integration runner and CI workflow. (#315)
- Added more live-ledger test coverage for X-address autofill and NetworkID policy. (#357)
Main improvements and fixes
- Aligned Dynamic MPT transactions and ledger objects with rippled 3.3.0. The new implementation replaces the old mutable-flags model with immutable flags. (#351, #352)
- Updated Batch signing to the BatchV1_1 format. (#358)
- Strengthened signing and submission validation for malformed or incomplete signatures. (#358)
- Changed reliable submission to use validated-ledger finality. (#359)
- Added automatic network identity discovery and validation. (#357)
- Improved fee precision and final whole-drop rounding. (#358)
- Strengthened RPC authorization and redirect security. (#360)
- Improved WebSocket connection, reconnection, timeout, and pending-request behavior. (#360)
- Fixed quality decoding for values below 1. (#366)
- Improved error handling for malformed quality input. (#366)
- Replaced several binary-codec panics with descriptive errors. (#350, #366)
- Fixed Oracle, MPT, Batch, fee, AccountDelete, and pseudo-transaction handling. (#351, #352, #358)
- Strengthened Ed25519 and secp256k1 key validation. (#353)
- Changed Base58Check comparisons to use constant-time checks. (#350)