Skip to main content

Module monad

Module monad 

Source
Available on crate feature monad only.

Re-exportsΒ§

use alloy_consensus::BlockHeader; πŸ”’
use alloy_evm::Evm; πŸ”’
use alloy_evm::EvmEnv; πŸ”’
use alloy_evm::EvmFactory; πŸ”’
use alloy_evm::FromRecoveredTx; πŸ”’
use alloy_monad_evm::MonadEvm; πŸ”’
use alloy_monad_evm::MonadEvmFactory; πŸ”’
use alloy_monad_evm::MonadPrecompilesMap; πŸ”’
use alloy_network::BlockResponse; πŸ”’
use alloy_network::Ethereum; πŸ”’
use alloy_network::TransactionResponse; πŸ”’
use alloy_provider::Provider; πŸ”’
use alloy_rpc_types::BlockTransactions; πŸ”’
use alloy_sol_types::SolCall; πŸ”’
use eyre::WrapErr; πŸ”’
use foundry_fork_db::DatabaseError; πŸ”’
use monad_revm::MonadBuilder; πŸ”’
use monad_revm::MonadCfgEnv; πŸ”’
use monad_revm::MonadChainContext; πŸ”’
use monad_revm::MonadContext; πŸ”’
use monad_revm::MonadEvm as RevmMonadEvm; πŸ”’
use monad_revm::MonadHardfork; πŸ”’
use monad_revm::MonadJournal; πŸ”’
use monad_revm::MonadJournalTr; πŸ”’
use monad_revm::api::block::syscall_on_epoch_change_calldata; πŸ”’
use monad_revm::api::block::syscall_reward_calldata; πŸ”’
use monad_revm::api::block::syscall_snapshot_calldata; πŸ”’
use monad_revm::handler::MonadHandler; πŸ”’
use monad_revm::instructions::MonadInstructions; πŸ”’
use monad_revm::monad_context_with_db; πŸ”’
use monad_revm::staking::STAKING_ADDRESS; πŸ”’
use monad_revm::staking::constants::SYSTEM_ADDRESS; πŸ”’
use monad_revm::staking::interface::IMonadStaking::syscallOnEpochChangeCall; πŸ”’
use monad_revm::staking::interface::IMonadStaking::syscallRewardCall; πŸ”’
use monad_revm::staking::interface::IMonadStaking::syscallSnapshotCall; πŸ”’
use revm::context::BlockEnv; πŸ”’
use revm::context::ContextTr; πŸ”’
use revm::context::Transaction; πŸ”’
use revm::context::TransactionType; πŸ”’
use revm::context::TxEnv; πŸ”’
use revm::context::journaled_state::account::JournaledAccountTr; πŸ”’
use revm::context::result::EVMError; πŸ”’
use revm::context::result::ResultAndState; πŸ”’
use revm::context_interface::Cfg; πŸ”’
use revm::context_interface::ContextSetters; πŸ”’
use revm::context_interface::transaction::AuthorizationTr; πŸ”’
use revm::handler::EthFrame; πŸ”’
use revm::handler::EvmTr; πŸ”’
use revm::handler::FrameResult; πŸ”’
use revm::inspector::InspectSystemCallEvm; πŸ”’
use revm::inspector::Inspector; πŸ”’
use revm::inspector::InspectorHandler; πŸ”’
use revm::interpreter::FrameInput; πŸ”’
use revm::primitives::Address; πŸ”’
use revm::primitives::Bytes; πŸ”’
use revm::primitives::HashSet; πŸ”’
use revm::primitives::U256; πŸ”’
use crate::FoundryChain; πŸ”’
use crate::FoundryContextExt; πŸ”’
use crate::FoundryInspectorExt; πŸ”’
use crate::FoundryJournal; πŸ”’
use crate::backend::DatabaseExt; πŸ”’
use crate::backend::JournaledState; πŸ”’
use crate::evm::BlockResponseFor; πŸ”’
use crate::evm::ChainFor; πŸ”’
use crate::evm::FoundryEvmFactory; πŸ”’
use crate::evm::FoundryEvmNetwork; πŸ”’
use crate::evm::NestedEvm; πŸ”’
use crate::evm::NestedEvmFor; πŸ”’
use crate::evm::TxEnvFor; πŸ”’
use crate::evm::run_inspected_frame; πŸ”’

StructsΒ§

BlockContext
Transaction metadata for an exact block and its two ancestors.
MonadEvmNetwork
ProtocolSystemCall
A canonical Monad protocol system transaction.

FunctionsΒ§

fetch_parent πŸ”’
finish_protocol_system_call πŸ”’
monad_block_participants
Collects all senders and EIP-7702 authorities from a block’s transactions.
monad_context_from_participants
Builds Monad context from cached ancestor participants and the current block transactions.
protocol_system_call
Converts a canonical Monad envelope into its dedicated system call.
refresh_chain_journal
Refreshes journal state derived from a context’s active Monad chain position.
refresh_nested_chain_journal
Refreshes journal state derived from a nested EVM’s active Monad chain position.
transaction_envs πŸ”’
try_transact_monad_system_replay
Tries to execute a canonical Monad system transaction on an existing Monad EVM.

Type AliasesΒ§

MonadBlockParticipants
Senders and EIP-7702 authorities that participated in one Monad block.
MonadEvmHandler πŸ”’
MonadRevmEvm