feat: journal#513
Conversation
|
benchmark |
There was a problem hiding this comment.
Code Review
This pull request introduces a custom, flattened Journal implementation for PEVM in crates/pevm/src/journal.rs to replace REVM's default journal wrapping. The EVM setup and type definitions in both the Ethereum and Rise chain modules have been updated to utilize this new custom journal. The review feedback suggests a minor improvement in crates/pevm/src/journal.rs to use the more idiomatic into_word() method on Address instead of slicing and calling B256::left_padding_from when constructing log topics.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| let topics = vec![ | ||
| ETH_TRANSFER_LOG_TOPIC, | ||
| B256::left_padding_from(from.as_slice()), | ||
| B256::left_padding_from(to.as_slice()), | ||
| ]; |
There was a problem hiding this comment.
In alloy_primitives, Address (which is FixedBytes<20>) has a built-in into_word() method that converts it to a B256 with left zero-padding. Using into_word() is more idiomatic and cleaner than slicing and calling B256::left_padding_from.
| let topics = vec![ | |
| ETH_TRANSFER_LOG_TOPIC, | |
| B256::left_padding_from(from.as_slice()), | |
| B256::left_padding_from(to.as_slice()), | |
| ]; | |
| let topics = vec![ | |
| ETH_TRANSFER_LOG_TOPIC, | |
| from.into_word(), | |
| to.into_word(), | |
| ]; |
| return; | ||
| } | ||
|
|
||
| let topics = vec![BURN_LOG_TOPIC, B256::left_padding_from(address.as_slice())]; |
There was a problem hiding this comment.
|
✅ Gigagas benchmark for commit f622d71 Detail |
|
✅ Mainnet benchmark for commit f622d71 This pr: Detail |
|
benchmark |
1 similar comment
|
benchmark |
|
✅ Gigagas benchmark for commit cb269de Detail |
|
✅ Mainnet benchmark for commit cb269de This pr: Detail |
|
✅ Gigagas benchmark for commit 5dac600 Detail |
|
benchmark |
|
✅ Mainnet benchmark for commit 5dac600 This pr: Detail |
|
✅ Gigagas benchmark for commit 0f8052a Detail |
|
✅ Mainnet benchmark for commit 0f8052a This pr: Detail |
|
benchmark |
|
✅ Gigagas benchmark for commit d52bd51 Detail |
|
✅ Mainnet benchmark for commit d52bd51 This pr: Detail |
|
benchmark |
|
✅ Gigagas benchmark for commit 04eed56 Detail |
|
✅ Mainnet benchmark for commit 04eed56 This pr: Detail |
|
benchmark |
|
✅ Gigagas benchmark for commit 371f6ae Detail |
|
✅ Mainnet benchmark for commit 371f6ae This pr: Detail |
|
benchmark |
|
benchmark |
|
✅ Gigagas benchmark for commit 3313682 Detail |
|
✅ Mainnet benchmark for commit 3313682 This pr: Detail |
|
✅ Gigagas benchmark for commit d52bd51 Detail |
|
✅ Mainnet benchmark for commit d52bd51 This pr: Detail |
nuke dead code
transaction_id was designed for transact_many — cross-tx account warmth via integer comparison. We always call transact() (transact_one + finalize), so state is empty at the start of every tx. The transaction_id != current check was always false; only the Cold status bit (set by sub-call checkpoint reverts) ever mattered. Replace is_cold_transaction_id with direct Cold bit checks. Simplify discard_tx to skip journal replay — finalize() takes and discards state immediately after on failed txs.
nuke dead code