SolanaKeypairWalletProvider returns a signature when confirmation reports an execution error
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 70/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- blockchain
Direzione di ricerca
Il bug si trova in typescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts: il risultato di conferma restituito da confirmTransaction viene atteso con await, ma il suo value.err non viene mai controllato. Inizia dai tre metodi sendTransaction, signAndSendTransaction e nativeTransfer, e dalla fixture Jest esistente del provider che simula Connection. È completato quando un value.err non nullo fa rifiutare la promise con la firma e l'errore di esecuzione, null continua a risolversi con la firma e le eccezioni di invio o di conferma continuano a propagarsi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
SolanaKeypairWalletProvider waits for confirmation but discards the returned value.err. A transaction can therefore be submitted and confirmed with an execution failure while sendTransaction, signAndSendTransaction, and nativeTransfer resolve with its signature.
Affected code
Reproduced against main at f2f3e8c11a91d56a17979a229a172ba6e61a85c2, in typescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts.
Reproduction
In the existing provider Jest fixture, let Connection.sendTransaction resolve to signature123 and Connection.confirmTransaction resolve to:
{
context: { slot: 1 },
value: { err: { InstructionError: [0, { Custom: 7 }] } },
}
Invoke each of sendTransaction(tx), signAndSendTransaction(tx), and nativeTransfer(to, amount) with the existing valid transaction/balance fixtures. All three resolve to signature123 on the unmodified source. They do not reject, even though the confirmation explicitly reports failed execution. This can occur when execution fails after submission/preflight; a resolved confirmation promise alone does not imply successful execution.
Expected result and impact
Reject with an error carrying the submitted signature and execution error. Continue returning the signature when value.err === null, and preserve submission/confirmation exceptions. Otherwise callers can treat a failed transfer as successfully completed.
Verification
Three regression cases fail on the original source (21 other provider tests pass); the patched provider passes all 24. This reproduction uses controlled RPC results and does not spend funds or claim a live-network transaction.
Related: #1558 concerns EVM/ERC20 receipt status; this report concerns the separate Solana keypair provider and its confirmation result.
AI-assisted investigation and regression tests, prepared with Codex.
- Lingua principale
- TypeScript
- Stelle
- 1.3k
- Fork
- 889
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di coinbase/agentkit
-
Python: Permit2 approval in CdpSmartWalletActionProvider.swap always reports failure (integer vs string receipt status)Forse già presa @0xLittleDream l’ha presa 10 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
coinbase/agentkit#1592 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Moonwell redeem fails on Base Sepolia and uses 18 decimals for cbBTCForse già presa @sebxt l’ha presa 13 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
coinbase/agentkit#1578 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
ERC20 transfer reports "Transferred" when the transaction reverts (receipt status ignored)Forse già presa @AgenticFinanceGraph l’ha presa 22 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
coinbase/agentkit#1558 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[TypeScript] `ViemWalletProvider` rejects a wallet client from a newer viem than the exactly pinned one (TS2345, `tokens` missing on `Client`)Forse già presa @PrabalParihar l’ha presa 13 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
coinbase/agentkit#1532 · 5 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
coinbase-agentkit 0.7.x fails on fresh install: imports solana.rpc.api, which solana>=0.37 removedForse già presa @JulienKervarrec l’ha presa 40 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di coinbase/agentkit
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
unocss/unocss#5421 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
needs-area
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/typespec-azure#5936 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
vercel-labs/scriptc#2910 ·
I maintainer di solito rispondono entro 1 giorno
-
automation missing-model model-sync provider:fireworks-ai
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
anomalyco/models.dev#12458 ·
I maintainer di solito rispondono entro 1 giorno