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)
Based on the transaction structure, this seems incorrect. Each authorization item uses
125bytes. Here we want to compute the worse case scenario.In the evm runner, we should be seeing
Proof size underestimation detected!logs.Originally posted by @RomarQ in #1693 (comment)