What's Changed
Performance
- 16x faster base58 encoding/decoding — migrated to
fd_base58algorithm (ported from Firedancer) with hand-written ARM64/AMD64 assembly.PublicKey.String()drops from 937ns to 57ns. by @sonicfromnewyoke in #379
Bug Fixes
- Fix SOL/WSOL address mismatch —
SolMintandWrappedSolwere incorrectly pointing to the same address by @sonicfromnewyoke in #378 - Fix message version detection and add transaction validation (
Sanitize,HasDuplicates,VerifyWithResults) to match Rust SDK by @sonicfromnewyoke in #381 - Fix WebSocket client goroutine/channel leaks, race conditions, and premature
Close()returns — now passes-raceflag by @sonicfromnewyoke in #383 - Actualize
SimulateTransactionto match official Solana RPC spec — addedInnerInstructions,MinContextSlot,ReturnData, and more by @sonicfromnewyoke in #382
New Features
- Add
SetLoadedAccountsDataSizeLimitinstruction to compute budget program by @0xvbetsun in #310 - Add
UpgradeNonceAccountinstruction to system program by @datmedevil17 in #355 - Add token-program-aware ATA helpers for Token-2022 support by @lgalabru in #375
- Implement
GetStakeMinimumDelegationRPC method by @sonicfromnewyoke in #372
Maintenance
- Replace deprecated Go patterns (
ioutil→io,interface{}→any,sort.Slice→slices.SortFunc) by @sonicfromnewyoke in #373 - Actualize documentation — streamlined README from ~3,000 to ~865 lines, extracted 63 examples into testable functions by @sonicfromnewyoke in #372
Issues Closed
New Contributors
- @0xvbetsun made their first contribution in #310
- @datmedevil17 made their first contribution in #355
- @lgalabru made their first contribution in #375
Full Changelog: v1.16.0...v1.17.0