revm_context_interface/transaction/eip2930.rs
1//! EIP-2930 Access list transaction interface.
2use auto_impl::auto_impl;
3use primitives::{Address, B256};
4
5/// Access list type is introduced in EIP-2930, and every
6/// transaction after it contains access list.
7///
8/// **Note**: Iterator over access list returns account address and storage slot keys that
9/// are warm loaded before transaction execution.
10///
11/// Number of account and storage slots is used to calculate initial tx gas cost.
12#[auto_impl(&, Box, Arc, Rc)]
13pub trait AccessListItemTr {
14 /// Returns account address.
15 fn address(&self) -> &Address;
16
17 /// Returns storage slot keys.
18 fn storage_slots(&self) -> impl Iterator<Item = &B256>;
19}