Skip to content

Do not require additional cost calculations for access and authorization list in template code #1713

@manuelmauro

Description

@manuelmauro

Based on the transaction structure, this seems incorrect. Each authorization item uses 125 bytes. Here we want to compute the worse case scenario.

In the evm runner, we should be seeing Proof size underestimation detected! logs.

pub struct EIP7702Transaction {
	pub chain_id: u64,
	pub nonce: U256,
	pub max_priority_fee_per_gas: U256,
	pub max_fee_per_gas: U256,
	pub gas_limit: U256,
	pub destination: TransactionAction,
	pub value: U256,
	pub data: Bytes,
	pub access_list: AccessList,
	pub authorization_list: AuthorizationList,   
	pub signature: TransactionSignature,
}

pub struct MalleableTransactionSignature {
	pub odd_y_parity: bool,   // 1 byte
	pub r: H256,                 // 32 bytes
	pub s: H256,                // 32 bytes
}

pub struct AuthorizationListItem {
	pub chain_id: u64,                            // 8 bytes
	pub address: Address,                           // 20 bytes
	pub nonce: U256,                                // 32 bytes
	pub signature: MalleableTransactionSignature,  // 65 bytes
}

Originally posted by @RomarQ in #1693 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions