fix: crash when waiting for a tx confirmation #1774
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What I did
in recent versions of anvil sometimes brownie ends up in a race condition when waiting for a tx confirmation. the bug results in
KeyError: 'blockNumber'
.the root cause is anvil retuning no
blockNumber
field ineth_getTransactionByHash
for pending transactions.the bug was introduced here alloy-rs/alloy#523
How I did it
use
tx.get('blockNumber')
instead oftx['blockNumber']
How to verify it
run a bunch of transactions, it doesn't happen every time. it's easier if you run anvil alongside, so you can see its output. the bug manifests when there is a
eth_getTransactionByHash
beforeTransaction
printout.Checklist