Skip to content

Conversation

@Pana
Copy link
Member

@Pana Pana commented Oct 27, 2025

The PR implement the eth_createAccessList method.

Also add some method to primitive Transaction and AuthorizationListItem


This change is Reviewable

@Pana Pana requested a review from ChenxingLi October 28, 2025 02:40
@Pana Pana force-pushed the feat/rpcAccessList branch from a783a36 to 6725668 Compare October 28, 2025 03:21
Copy link
Contributor

@ChenxingLi ChenxingLi left a comment

Choose a reason for hiding this comment

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

@ChenxingLi reviewed 26 files.
Reviewable status: 26 of 45 files reviewed, all discussions resolved.

Copy link
Contributor

@ChenxingLi ChenxingLi left a comment

Choose a reason for hiding this comment

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

@ChenxingLi reviewed 5 files and made 4 comments.
Reviewable status: 31 of 45 files reviewed, 4 unresolved discussions (waiting on @Pana).


crates/execution/execute-helper/src/estimation.rs line 149 at r1 (raw file):

        let access_list = if request.collect_access_list {
            self.collect_access_list(tx.clone(), request)?

The collection of the access list should occur during the second round of the two-pass estimation, gathered in the same transaction as other traces, rather than in a separate transaction.


crates/execution/vm-interpreter/src/interpreter/gasometer.rs line 631 at r1 (raw file):

    let maybe_code = context.extcode(&address)?;
    let Some(delegated_address) =
        maybe_code.map(|code| extract_7702_payload(&code)).flatten()

Use and_then, instead of map(..).flatten()


crates/execution/executor/src/executive/pre_checked_executive.rs line 701 at r1 (raw file):

        for auth_item in authorization_list.iter() {
            let AuthorizationListItem {

Use let StructName { field0, field1, ...} syntax.


crates/primitives/src/transaction/mod.rs line 1150 at r1 (raw file):

            let (created_address, _) = cal_contract_address_with_space(
                create_type,
                0,

This is a very incorrect approach to writing. The second parameter is the block number, but here you simply passed a 0.

In the current code, theoretically, there exists an address generation scheme based on the block number, even if it is not currently utilized in the code. However, writing logic based on the assumption that "this scheme is not activated" undoubtedly sets up a trap for future logic.

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.

2 participants