fix: failed requests reach the page with an error code and the node's data (closes #533)
A request the node refuses now reaches the page with the node's own JSON-RPC code and data: a reverting eth_call, an eth_sendTransaction whose gas estimate reverts, a failed broadcast. Every other refusal from the background carries a code too: 4100 when there is no address, -32603 for a failure inside the wallet, -32602 for a transaction request the wallet refuses as malformed. On the transaction path the page keeps the wallet's own sentence. nodeError(), which finds the node's error inside an ethers error, lives in src/shared/approvalVerify.js beside failureTexts(), which did the same lookup. Not run in a browser. Model: opus-5-5
This commit was merged in pull request #565.
This commit is contained in:
@@ -2200,8 +2200,10 @@ view would leave a wallet one click from deletion.
|
||||
one shown and signed in place of the node's estimate, but the node still
|
||||
estimates the transaction with that limit, as the check that it neither
|
||||
reverts nor runs out of gas; a request that gives both with different values
|
||||
is refused. A request that cannot be populated — unreachable node, reverting
|
||||
gas estimate — opens no window and is failed back to the site. Only one
|
||||
is refused with EIP-1474 code `-32602`. A request that cannot be populated —
|
||||
unreachable node, reverting gas estimate — opens no window and is failed back
|
||||
to the site, with the node's own error code and data when the node refused it,
|
||||
so the site can decode a revert, and with `-32603` otherwise. Only one
|
||||
transaction approval exists at a time: populating fixes the nonce, so a second
|
||||
`eth_sendTransaction` arriving while one is unanswered is refused with
|
||||
EIP-1193 code `-32002` rather than being populated at the same nonce. It opens
|
||||
|
||||
Reference in New Issue
Block a user