Enable EIP- 2831 Signer transaction.wait() style rejections.
See original GitHub issueWhen a Signer sends a transaction, the TransactionResponse object has a .wait() method. Currently that method rejects a CALL_EXCEPTION if the transaction reverts, otherwise it resolves with the TransactionReceipt, once the transaction is mined, based on its hash.
This feature will enable an additional rejection case, along with a new error in the Logger, TRANSACTION_REPLACED. This will occur if the transaction is replaced (i.e. the from and nonce match the transaction but the hash is different), with a field indicating the reason for the replacement:
repriced; the data and to match, but the gas price has changedcancelled; the data has been changed to0xand thetochanged to thefromreplaced; any other change
This must occur in a minor version bump.
In v6 we may change repriced to also resolve (instead of reject), but this requires more thought and would not be backwards compatible within v5.
Issue Analytics
- State:
- Created 2 years ago
- Reactions:17
- Comments:29 (8 by maintainers)
Top Results From Across the Web
Speeded up transactions via MetaMask, new tx hash tx.wait ...
Enable EIP - 2831 Signer transaction.wait() style rejections. ... sends a transaction, the TransactionResponse object has a .wait() method.
Read more >EIP-2831: Transaction Replacement Message Type
This EIP formalizes a way for both providers and dapp developers to track transaction replacements seamlessly.
Read more >Documentation - Ethers.js
A Signer is a class which (usually) in some way directly or indirectly has access to a private key, which can sign messages...
Read more >EIP-2831: Transaction Replacement Message Type
I just created "EIP-2831 Transaction Replacement Message Type" This is a first attempt at solving a fundamental disconnect between providers ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

This is now available in 5.2.0. Please check out this article for more details. 😃
Sorry I’m a bit confused, my case is when I don’t have access to the transactionResponse object but only the hash.
So I’m waiting on the transaction via the provider, say
In this case, replaceable param is always passed down to _waitFortransaction() as null