feat(test): add besu main overflow test#2933
Conversation
|
maybe wait with this PR until the 8037 stuff is merged to avoid conflict. i will have to rebase anyway |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## forks/amsterdam #2933 +/- ##
===================================================
- Coverage 90.43% 90.36% -0.07%
===================================================
Files 535 535
Lines 32430 32469 +39
Branches 3012 3025 +13
===================================================
+ Hits 29329 29342 +13
- Misses 2573 2587 +14
- Partials 528 540 +12
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
LouisTsai-Csie
left a comment
There was a problem hiding this comment.
Leave some comments:
Overflow handling diverges: move_ether wraps, create_ether reverts. Cross-client evidence backs the wrap, but i feel like we should stick to one policy for consistency?
| balance modulo ``2**256``. The bytecode executes normally and | ||
| the transaction settles with the wrapped balance. | ||
|
|
||
| - EELS : behavior adjusted to match geth / nethermind / erigon / reth in this |
There was a problem hiding this comment.
I'm uncertain whether we should just align with client implementations. I prefer following the spec if it explicitly defines the behavior. if not, we should update the spec and align the rule with our implementation.
There was a problem hiding this comment.
it is underspecced now
| sender=sender, | ||
| to=recipient, | ||
| value=2, | ||
| gas_limit=21_000, |
There was a problem hiding this comment.
We should avoid hardcode the gas limit here, in case there is future repricing.
There was a problem hiding this comment.
i will update this PR when mario's pr is merged
🗒️ Description
Theoretic case about max balance, not security-relevant cuz not reachable on mainnet. But I did verify via hive that only besu fails and geth/erigon/nethermind main/master all pass.
wdyt?
from eels root folder fill with:
uv run fill tests/frontier/validation/test_recipient_balance_overflow.py --until=Osaka --clean -v -suse the following
clients.yamlin hive directory:set this in
~/.profile:export HIVE_SIMULATOR=http://127.0.0.1:3000and source itensure you are on latest hive master branch, then start hive with:
go run . --docker.nocache=besu --docker.buildoutput --docker.output --client=besu --client-file=clients.yaml --dev --loglevel=5 --sim.loglevel=5and from eels root folder run the tests with:
uv run consume engine ./fixtures/blockchain_tests_engine/ -v -s🔗 Related Issues or PRs
N/A.
✅ Checklist
just statictype(scope):.mkdocs servelocally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.@ported_frommarker.Cute Animal Picture