fix: failed requests reach the page with an error code and the node's data (closes #533)
A page's request that the node refuses now reaches it with the node's own JSON-RPC code and data: a proxied read such as a reverting eth_call, a transaction whose gas estimate reverts, and a failed broadcast. Every other refusal carries a code too: 4100 when there is no address, -32602 when the site asks for two different gas limits or a transaction type this wallet does not sign, and -32603 for a failure inside the wallet. nodeError() in approvalVerify.js reads the node's error out of what ethers throws, as failureTexts() already did inline. Model: opus-5-5
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