feat(sdk-coin-sol): implement deriveAddress for SOL#9016
Conversation
Override BaseCoin.deriveAddress on the Sol coin to locally derive a receive address from the wallet's commonKeychain + index, reusing the shared deriveMPCWalletAddress (ed25519) helper. This is the inverse of isWalletAddress and shares its exact derivation path, so derive and verify can never diverge. Offline and key-material-free (public keys only). Supports the SMC prefix path via derivedFromParentWithSeed. Adds unit coverage including a derive->verify round-trip and an SMC-seed case. WCN-917 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Claude finished @rajangarg047's task —— View job Code Review Complete ✅
SummaryThis PR successfully implements ✅ Strengths
🔍 Implementation DetailsThe implementation at
|
Summary
Implements
deriveAddressfor SOL (Stage A — MPC/TSS), overriding theBaseCoindefault. It locally derives a Solana receive address from the wallet'scommonKeychain+index, reusing the sharedderiveMPCWalletAddress(ed25519) helper. Offline and key-material-free (public keys only); supports the SMC prefix path viaderivedFromParentWithSeed.This is the inverse of
isWalletAddressand shares its exact derivation path (deriveMPCWalletAddress), so derive and verify can never diverge.Context
Part of FR-465 (Bullish local address derivation), Phase 1 Stage A. Builds only on the already-merged primitive (WCN-912) and shared MPC engine (WCN-913) — independent of the Express endpoint (WCN-914) and the other coin PRs.
Test plan
tsc --noEmitclean forsdk-coin-soleslintclean (0 errors)deriveAddressunit tests pass: exact-vector derivation, distinct address per index, derive→verify round-trip, SMC-seed round-trip, and missing-keychains error. Reuses the existingisWalletAddresstest vector.🤖 Generated with Claude Code