Type Alias JournaledState
pub type JournaledState = JournalInner<JournalEntry>;Aliased Type§
pub struct JournaledState {
pub state: HashMap<Address, Account, FbBuildHasher<20>>,
pub transient_storage: HashMap<(Address, Uint<256, 4>), Uint<256, 4>, DefaultHashBuilder>,
pub logs: Vec<Log>,
pub depth: usize,
pub journal: Vec<JournalEntry>,
pub transaction_id: usize,
pub cfg: JournalCfg,
pub warm_addresses: WarmAddresses,
pub selfdestructed_addresses: Vec<Address>,
}Fields§
§state: HashMap<Address, Account, FbBuildHasher<20>>The current state
transient_storage: HashMap<(Address, Uint<256, 4>), Uint<256, 4>, DefaultHashBuilder>Transient storage that is discarded after every transaction.
See EIP-1153.
logs: Vec<Log>Emitted logs
depth: usizeThe current call stack depth
journal: Vec<JournalEntry>The journal of state changes, one for each transaction
transaction_id: usizeGlobal transaction id that represent number of transactions executed (Including reverted ones).
It can be different from number of journal_history as some transaction could be
reverted or had a error on execution.
This ID is used in Self::state to determine if account/storage is touched/warm/cold.
cfg: JournalCfgJournal configuration containing spec ID and EIP-7708 flags.
warm_addresses: WarmAddressesWarm addresses containing both coinbase and current precompiles.
selfdestructed_addresses: Vec<Address>Addresses that were self-destructed for the first time in this transaction.
This is used by EIP-7708 to emit logs for self-destructed accounts that still have balance at the end of the transaction.
The vec is indexed by checkpoint - on revert, entries added after the checkpoint are removed.
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 304 bytes