Skip to content

Add warning when overflow happens#503

Merged
smiasojed merged 11 commits intomasterfrom
sm/overflow
Jan 23, 2026
Merged

Add warning when overflow happens#503
smiasojed merged 11 commits intomasterfrom
sm/overflow

Conversation

@smiasojed
Copy link
Copy Markdown
Collaborator

@smiasojed smiasojed commented Jan 21, 2026

When an overflow happens on the block timestamp, block number, or balance while using cheatcodes, a warning is triggered and the value is rounded to the maximum possible value. For CALL and CREATE opcodes with an excessively high balance, a revert is triggered.

@smiasojed smiasojed marked this pull request as ready for review January 21, 2026 13:49

let u128_max: U256 = U256::from(u128::MAX);
let clamped_amount = if amount > u128_max {
tracing::info!(
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here it's info and in state it's warn. Shouldn't this be consistent?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue was that it flooded the terminal. The migration runs during each test for 15 accounts which are funded with u256::max, so I decided to decrease the log level.

@smiasojed smiasojed merged commit a03e347 into master Jan 23, 2026
69 of 79 checks passed
@smiasojed smiasojed deleted the sm/overflow branch January 23, 2026 15:37
dimartiro pushed a commit to ChainSafe/foundry-polkadot that referenced this pull request Feb 9, 2026
re-gius added a commit that referenced this pull request Feb 10, 2026
* [Anvil] Fix impersonation marker collision with storage keys (#489)

* [Anvil] Fix impersonation marker collision with storage keys

Use 0xDE marker instead of 0x00 for impersonated transaction signatures
to avoid collision with Solidity mapping key computations for slot 0.

Closes #488

* !fixup af24a53a0

* Use original syntax

* fix

* update to latest polkadot-sdk (#467)

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-authored-by: zerosnacks <zerosnacks@protonmail.com>

* Fix etch cheatcode (#486)

* Add initial sync between REVM and pallet-revive (#487)

* add more deposit_limits (#493)

* add more deposit_limits

* clippy

* update compilers (#497)

* update foundry-compilers

* hardcode resolc version

* Fix external-projects results parsing (#499)

* Fix external-projects results parsing

* Change to json

* Add check for cheatcodes usage in pallet-revive (#494)

* Add immutable support (#498)

* add immutable

* Remove unnecessary genesis.rs changes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* add test

* refactor: improve anvil_setImmutableStorageAt API to accept Vec<Bytes>

- Changed RPC interface to accept individual immutable values instead of concatenated bytes
- Moved endianness conversion (big-endian to little-endian) from test to RPC handler
- Updated test to pass immutable values as separate ABI-encoded Bytes elements
- Simplified byte conversion logic: removed unnecessary intermediate vector, using direct indexing
- Added comprehensive documentation explaining data format and conversion process
- All immutable values now handled consistently with better API clarity

This makes the RPC easier to invoke and aligns with how Sourcify and solc provide immutable data.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* Fix polkadotskip test (#502)

* Fix JSON parsing in external-projects CI (#501)

Co-authored-by: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com>

* Fix contract storage migration (#500)

* Skip auto-funding for accounts that were explicitly dealt (#496)

* Skip auto-funding for accounts that were explicitly dealt

* Use existing eth_deals

* Add repro test case for fund_pranked_accounts bug

* Remove unnecessary test

* Sync dealt balances to pallet-revive when pranking and pass eth_deals directly instead of cloning

* Add warning when overflow happens (#503)

* Set storage deposit for etched accounts (#504)

* Limit uint to u64::MAX for fuzz tests (#507)

* Add cheatcode tests (#435)

* update compilers (#511)

* Fix timestamp clamping to prevent overflow when converting to milliseconds (#510)

* Default eth_estimateGas block parameter to pending to match Anvil/EDR behavior (#509)

* Default eth_estimateGas to pending block to match Anvil/EDR

* Fix snapshot issues (#512)

* Add Claude config (#517)

* Attempt to fix CI (#513)

* change urls

* add transient storage support in `polkadot` test execution mode (#449)

* improve logging to match upstream anvil (#522)

* Fix compatibility issues after syncing with master

* Fmt

* Remove consensus.rs

* Fix retrieve para id

* skip proof recorder when forking is enabled

* Add comment explaining the irrelevant harcoded slot duration

* Fix fmt and clippy

---------

Co-authored-by: PG Herveou <pgherveou@parity.io>
Co-authored-by: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-authored-by: zerosnacks <zerosnacks@protonmail.com>
Co-authored-by: Sebastian Miasojed <s.miasojed@gmail.com>
Co-authored-by: filip-parity <filip.baciu@parity.io>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Marian Radu <marian@parity.io>
Co-authored-by: Giuseppe Re <giuseppe.re@parity.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants