bluealloy
revm
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
chore: make `GasStateTr` expose `StateLoad` (#3737)
main
7 hours ago
chore: make `GasStateTr` expose `StateLoad`
rus/expose-state-load
7 hours ago
fix(interpreter): use IntoAddress in pop_address to avoid const-eval panic (#3735) * fix(interpreter): use IntoAddress in pop_address to avoid const-eval panic `StackTr::pop_address` converted the popped word with `Address::from(value.to_be_bytes())`. Since `Address: From<[u8; 20]>`, type inference forces ruint's const-generic `Uint::<256, 4>::to_be_bytes::<20>()`, whose `const { Self::assert_bytes(BYTES) }` requires `BYTES == Self::BYTES` (32 for U256). That unreachable const block is only sometimes dead-code eliminated; build profiles that actually evaluate it (cargo-fuzz coverage, release codegen) hit `error[E0080]: BYTES must be equal to Self::BYTES`, breaking downstream builds (#3728). Use the crate's existing `IntoAddress` converter (`value.into_address()`), which does `Address::from_word(B256::from(value.to_be_bytes()))`. Its `to_be_bytes()` infers the correct `[u8; 32]` size, so there is no fragile const-generic instantiation, and `pop_address` now reuses the canonical U256->Address conversion instead of inlining its own. Add a regression test asserting `pop_address` truncates a full 32-byte word to its low 20 bytes and returns `None` on an empty stack. Closes #3728 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test(interpreter): drop pop_address regression test per review Remove `pop_address_truncates_to_low_20_bytes` as requested in review on #3735 — the truncation behaviour is covered by the shared `IntoAddress` conversion path and the dedicated test is not needed. --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
main
8 hours ago
test(interpreter): drop pop_address regression test per review Remove `pop_address_truncates_to_low_20_bytes` as requested in review on #3735 — the truncation behaviour is covered by the shared `IntoAddress` conversion path and the dedicated test is not needed.
pjdurden:fix/pop-address-const-eval-panic
9 hours ago
feat: wrap TransientStorage as AddressMap<StorageKeyMap<U256>> (#3736) * feat: wrap TransientStorage as AddressMap<StorageKeyMap<U256>> Change TransientStorage from a flat `HashMap<(Address, StorageKey), StorageValue>` type alias into a newtype wrapper over a nested `AddressMap<StorageKeyMap<StorageValue>>`. - Implement Deref/DerefMut to the inner map so existing map operations (clear, iter, etc.) keep working. - Add get_value/insert_value/remove_value helpers for slot access without manually traversing the two levels of maps. remove_value also cleans up empty account slot maps. - Update tload/tstore and the journal revert path to use the helpers. * refactor: simplify TransientStorage::remove_value to only remove slot
main
1 day ago
refactor: simplify TransientStorage::remove_value to only remove slot
feat/wrap-transient-storage
1 day ago
feat: wrap TransientStorage as AddressMap<StorageKeyMap<U256>> Change TransientStorage from a flat `HashMap<(Address, StorageKey), StorageValue>` type alias into a newtype wrapper over a nested `AddressMap<StorageKeyMap<StorageValue>>`. - Implement Deref/DerefMut to the inner map so existing map operations (clear, iter, etc.) keep working. - Add get_value/insert_value/remove_value helpers for slot access without manually traversing the two levels of maps. remove_value also cleans up empty account slot maps. - Update tload/tstore and the journal revert path to use the helpers.
feat/wrap-transient-storage
1 day ago
chore(database): use Option::filter in BundleAccount::take_info_revert `account_revert.and_then(|acc| if acc.is_empty() { None } else { Some(acc) })` is equivalent to `account_revert.filter(|acc| !acc.is_empty())` and is what `clippy::unnecessary_filter_map`-style lints (here surfacing as the `option_filter` pattern flagged by `cargo clippy -- -D warnings`) recommend. No behaviour change.
mrheyday:clippy/bundle-account-filter
1 day ago
Latest Branches
CodSpeed Performance Gauge
0%
chore: make `GasStateTr` expose `StateLoad`
#3737
8 hours ago
c87fcd2
rus/expose-state-load
CodSpeed Performance Gauge
0%
fix(interpreter): use IntoAddress in pop_address to avoid const-eval panic
#3735
1 day ago
32b4008
pjdurden:fix/pop-address-const-eval-panic
CodSpeed Performance Gauge
+3%
feat: wrap TransientStorage as AddressMap<StorageKeyMap<U256>>
#3736
1 day ago
3df6faa
feat/wrap-transient-storage
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs