You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: show Solana balance and SPL tokens in side panel
Three layered bugs were each sufficient to zero out Solana balance display;
all three are fixed together because fixing any one alone leaves the chain
still broken:
1. Wrong CAIP in shortListSymbolToCaip['SOL'] / shortListNameToCaip.solana.
Previously pointed at wrapped-SOL SPL token
(solana:.../solana:so111…, all lowercase). Now points at native SOL
(solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501), matching
pioneer-caip's ChainToCaip and vault-v11's config.
2. Wrong Pioneer endpoint for Solana. /charts/portfolio returns empty
{balances:[], tokens:[]} for any Solana pubkey (verified via direct
curl). Vault-v11 uses /portfolio via pioneer.GetPortfolioBalances,
which returns natives + SPL tokens in one flat array. Route Solana
pubkeys to a third batch hitting /portfolio with the required
key:public-* Authorization header; EVM/UTXO still go through
/charts/portfolio for its richer Zapper/Unchained token data.
3. Response case mismatch. Pioneer echoes CAIP/networkId back in
lowercase regardless of request casing. The side-panel asset list
uses canonical mixed-case network IDs from ChainToNetworkId, so
strict b.networkId === asset.networkId comparisons in Balances.tsx
silently dropped every Solana entry. Rewrite Solana entries to
canonical casing before they enter the merged balances array.
Also eliminates a first-run race: the initial fetchBalancesFromPioneer()
fired before prefetchSolanaPubkey() persisted the Solana pubkey, so run 1
never included Solana at all. Chain a forced refetch on prefetch resolution
so the Solana entry lands in cachedBalances before the UI mounts.
Verified against the live Pioneer API: for the exact address the client
derives from the device at m/44'/501'/0'/0', /portfolio returns
{native SOL + 3 SPL tokens}.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments