SYMBOL INDEX (640 symbols across 30 files) FILE: src/common.rs type Revision (line 8) | pub enum Revision { method iter (line 45) | pub fn iter() -> impl IntoIterator { method latest (line 61) | pub const fn latest() -> Self { method len (line 65) | pub const fn len() -> usize { type StatusCode (line 73) | pub enum StatusCode { type CallKind (line 159) | pub enum CallKind { type Message (line 170) | pub struct Message { method from (line 213) | fn from(msg: CreateMessage) -> Self { type CreateMessage (line 203) | pub struct CreateMessage { type Output (line 234) | pub struct Output { method from (line 257) | fn from( type SuccessfulOutput (line 247) | pub struct SuccessfulOutput { function u256_to_address (line 277) | pub(crate) fn u256_to_address(v: U256) -> Address { function address_to_u256 (line 281) | pub(crate) fn address_to_u256(v: Address) -> U256 { FILE: src/continuation/interrupt.rs type InterruptVariant (line 121) | pub enum InterruptVariant { FILE: src/continuation/interrupt_data.rs type InstructionStart (line 4) | pub struct InstructionStart { type AccountExists (line 11) | pub struct AccountExists { type GetStorage (line 16) | pub struct GetStorage { type SetStorage (line 22) | pub struct SetStorage { type GetBalance (line 29) | pub struct GetBalance { type GetCodeSize (line 34) | pub struct GetCodeSize { type GetCodeHash (line 39) | pub struct GetCodeHash { type CopyCode (line 44) | pub struct CopyCode { type Selfdestruct (line 51) | pub struct Selfdestruct { type Call (line 57) | pub enum Call { type GetBlockHash (line 63) | pub struct GetBlockHash { type EmitLog (line 68) | pub struct EmitLog { type AccessAccount (line 75) | pub struct AccessAccount { type AccessStorage (line 80) | pub struct AccessStorage { type InterruptDataVariant (line 86) | pub enum InterruptDataVariant { FILE: src/continuation/mod.rs type Sealed (line 16) | pub trait Sealed {} type Interrupt (line 27) | pub trait Interrupt: sealed::Sealed { method data (line 34) | fn data(&self) -> &Self::InterruptData; method resume (line 36) | fn resume(self, resume_data: Self::ResumeData) -> InterruptVariant; type InnerCoroutine (line 39) | type InnerCoroutine = Pin< function resume_interrupt (line 51) | fn resume_interrupt(mut inner: InnerCoroutine, resume_data: ResumeDataVa... FILE: src/continuation/resume_data.rs type StateModifier (line 5) | pub type StateModifier = Option Self { FILE: src/evmc.rs type Convert (line 10) | pub(crate) trait Convert { method convert (line 13) | fn convert(self) -> Self::Into; type Into (line 17) | type Into = evmc_address; method convert (line 19) | fn convert(self) -> Self::Into { type Into (line 27) | type Into = evmc_bytes32; method convert (line 29) | fn convert(self) -> Self::Into { type Into (line 37) | type Into = evmc_uint256be; method convert (line 39) | fn convert(self) -> Self::Into { method from (line 45) | fn from(s: evmc_access_status) -> Self { method from (line 54) | fn from(msg: Message) -> Self { method from_evmc (line 88) | fn from_evmc(msg: &ExecutionMessage) -> Self { method from (line 117) | fn from(status: evmc_status_code) -> Self { method from (line 149) | fn from(status: StatusCode) -> Self { method account_exists (line 175) | fn account_exists(&self, address: Address) -> bool { method get_storage (line 179) | fn get_storage(&self, address: Address, key: U256) -> U256 { method set_storage (line 185) | fn set_storage(&mut self, address: Address, key: U256, value: U256) -> S... method get_balance (line 200) | fn get_balance(&self, address: Address) -> U256 { method get_code_size (line 206) | fn get_code_size(&self, address: Address) -> U256 { method get_code_hash (line 210) | fn get_code_hash(&self, address: Address) -> U256 { method copy_code (line 216) | fn copy_code(&self, address: Address, offset: usize, buffer: &mut [u8]) ... method selfdestruct (line 220) | fn selfdestruct(&mut self, address: Address, beneficiary: Address) { method call (line 224) | fn call(&mut self, msg: &Message) -> Output { method get_tx_context (line 238) | fn get_tx_context(&self) -> TxContext { method get_block_hash (line 254) | fn get_block_hash(&self, block_number: u64) -> U256 { method emit_log (line 260) | fn emit_log(&mut self, address: Address, data: &[u8], topics: &[U256]) { method access_account (line 272) | fn access_account(&mut self, address: Address) -> AccessStatus { method access_storage (line 276) | fn access_storage(&mut self, address: Address, key: U256) -> AccessStatus { method from (line 282) | fn from(rev: evmc_vm::Revision) -> Self { function from (line 300) | fn from(rev: Revision) -> Self { type EvmOdin (line 318) | pub struct EvmOdin; method init (line 321) | fn init() -> Self { method execute (line 325) | fn execute<'a>( FILE: src/host.rs type AccessStatus (line 6) | pub enum AccessStatus { method default (line 12) | fn default() -> Self { type StorageStatus (line 18) | pub enum StorageStatus { type TxContext (line 33) | pub struct TxContext { type Host (line 55) | pub trait Host { method account_exists (line 57) | fn account_exists(&self, address: Address) -> bool; method get_storage (line 61) | fn get_storage(&self, address: Address, key: U256) -> U256; method set_storage (line 63) | fn set_storage(&mut self, address: Address, key: U256, value: U256) ->... method get_balance (line 67) | fn get_balance(&self, address: Address) -> U256; method get_code_size (line 71) | fn get_code_size(&self, address: Address) -> U256; method get_code_hash (line 75) | fn get_code_hash(&self, address: Address) -> U256; method copy_code (line 79) | fn copy_code(&self, address: Address, offset: usize, buffer: &mut [u8]... method selfdestruct (line 81) | fn selfdestruct(&mut self, address: Address, beneficiary: Address); method call (line 83) | fn call(&mut self, msg: &Message) -> Output; method get_tx_context (line 85) | fn get_tx_context(&self) -> TxContext; method get_block_hash (line 89) | fn get_block_hash(&self, block_number: u64) -> U256; method emit_log (line 91) | fn emit_log(&mut self, address: Address, data: &[u8], topics: &[U256]); method access_account (line 95) | fn access_account(&mut self, address: Address) -> AccessStatus; method access_storage (line 99) | fn access_storage(&mut self, address: Address, key: U256) -> AccessSta... method account_exists (line 106) | fn account_exists(&self, _: Address) -> bool { method get_storage (line 110) | fn get_storage(&self, _: Address, _: U256) -> U256 { method set_storage (line 114) | fn set_storage(&mut self, _: Address, _: U256, _: U256) -> StorageStat... method get_balance (line 118) | fn get_balance(&self, _: Address) -> U256 { method get_code_size (line 122) | fn get_code_size(&self, _: Address) -> U256 { method get_code_hash (line 126) | fn get_code_hash(&self, _: Address) -> U256 { method copy_code (line 130) | fn copy_code(&self, _: Address, _: usize, _: &mut [u8]) -> usize { method selfdestruct (line 134) | fn selfdestruct(&mut self, _: Address, _: Address) { method call (line 138) | fn call(&mut self, _: &Message) -> Output { method get_tx_context (line 142) | fn get_tx_context(&self) -> TxContext { method get_block_hash (line 146) | fn get_block_hash(&self, _: u64) -> U256 { method emit_log (line 150) | fn emit_log(&mut self, _: Address, _: &[u8], _: &[U256]) { method access_account (line 154) | fn access_account(&mut self, _: Address) -> AccessStatus { method access_storage (line 158) | fn access_storage(&mut self, _: Address, _: U256) -> AccessStatus { type DummyHost (line 103) | pub struct DummyHost; FILE: src/instructions/arithmetic.rs function add (line 6) | pub(crate) fn add(stack: &mut Stack) { function mul (line 12) | pub(crate) fn mul(stack: &mut Stack) { function sub (line 18) | pub(crate) fn sub(stack: &mut Stack) { function div (line 24) | pub(crate) fn div(stack: &mut Stack) { function sdiv (line 30) | pub(crate) fn sdiv(stack: &mut Stack) { function modulo (line 37) | pub(crate) fn modulo(stack: &mut Stack) { function smod (line 44) | pub(crate) fn smod(stack: &mut Stack) { function addmod (line 58) | pub(crate) fn addmod(stack: &mut Stack) { function mulmod (line 73) | pub(crate) fn mulmod(stack: &mut Stack) { function log2floor (line 88) | fn log2floor(value: U256) -> u64 { function exp (line 107) | pub(crate) fn exp(state: &mut ExecutionState) -> Result<(), StatusCode> { function signextend (line 140) | pub(crate) fn signextend(stack: &mut Stack) { FILE: src/instructions/bitwise.rs function byte (line 5) | pub(crate) fn byte(stack: &mut Stack) { function shl (line 24) | pub(crate) fn shl(stack: &mut Stack) { function shr (line 37) | pub(crate) fn shr(stack: &mut Stack) { function sar (line 50) | pub(crate) fn sar(stack: &mut Stack) { FILE: src/instructions/boolean.rs function lt (line 5) | pub(crate) fn lt(stack: &mut Stack) { function gt (line 12) | pub(crate) fn gt(stack: &mut Stack) { function slt (line 19) | pub(crate) fn slt(stack: &mut Stack) { function sgt (line 26) | pub(crate) fn sgt(stack: &mut Stack) { function eq (line 33) | pub(crate) fn eq(stack: &mut Stack) { function iszero (line 40) | pub(crate) fn iszero(stack: &mut Stack) { function and (line 49) | pub(crate) fn and(stack: &mut Stack) { function or (line 55) | pub(crate) fn or(stack: &mut Stack) { function xor (line 61) | pub(crate) fn xor(stack: &mut Stack) { function not (line 67) | pub(crate) fn not(stack: &mut Stack) { FILE: src/instructions/control.rs function ret (line 5) | pub(crate) fn ret(state: &mut ExecutionState) -> Result<(), StatusCode> { function op_jump (line 20) | pub(crate) fn op_jump( function calldataload (line 32) | pub(crate) fn calldataload(state: &mut ExecutionState) { function calldatasize (line 52) | pub(crate) fn calldatasize(state: &mut ExecutionState) { FILE: src/instructions/external.rs function address (line 4) | pub(crate) fn address(state: &mut ExecutionState) { function caller (line 8) | pub(crate) fn caller(state: &mut ExecutionState) { function callvalue (line 12) | pub(crate) fn callvalue(state: &mut ExecutionState) { function origin_accessor (line 113) | pub(crate) fn origin_accessor(tx_context: TxContext) -> U256 { function coinbase_accessor (line 117) | pub(crate) fn coinbase_accessor(tx_context: TxContext) -> U256 { function gasprice_accessor (line 121) | pub(crate) fn gasprice_accessor(tx_context: TxContext) -> U256 { function timestamp_accessor (line 125) | pub(crate) fn timestamp_accessor(tx_context: TxContext) -> U256 { function number_accessor (line 129) | pub(crate) fn number_accessor(tx_context: TxContext) -> U256 { function gaslimit_accessor (line 133) | pub(crate) fn gaslimit_accessor(tx_context: TxContext) -> U256 { function difficulty_accessor (line 137) | pub(crate) fn difficulty_accessor(tx_context: TxContext) -> U256 { function chainid_accessor (line 141) | pub(crate) fn chainid_accessor(tx_context: TxContext) -> U256 { function basefee_accessor (line 145) | pub(crate) fn basefee_accessor(tx_context: TxContext) -> U256 { function u256_to_address_conversion (line 458) | fn u256_to_address_conversion() { FILE: src/instructions/instruction_table.rs type InstructionTableEntry (line 5) | pub struct InstructionTableEntry { type InstructionTable (line 11) | pub type InstructionTable = [Option; 256]; type InstructionTables (line 12) | pub type InstructionTables = [InstructionTable; Revision::len()]; function get_baseline_instruction_table (line 40) | pub fn get_baseline_instruction_table(revision: Revision) -> &'static In... FILE: src/instructions/memory.rs constant MAX_BUFFER_SIZE (line 6) | pub(crate) const MAX_BUFFER_SIZE: u32 = u32::MAX; constant WORD_SIZE (line 9) | const WORD_SIZE: i64 = 32; function num_words (line 13) | pub(crate) fn num_words(size_in_bytes: usize) -> i64 { function mload (line 17) | pub(crate) fn mload(state: &mut ExecutionState) -> Result<(), StatusCode> { function mstore (line 31) | pub(crate) fn mstore(state: &mut ExecutionState) -> Result<(), StatusCod... function mstore8 (line 45) | pub(crate) fn mstore8(state: &mut ExecutionState) -> Result<(), StatusCo... function msize (line 59) | pub(crate) fn msize(state: &mut ExecutionState) { function verify_memory_region_u64 (line 63) | pub(crate) fn verify_memory_region_u64( type MemoryRegion (line 98) | pub(crate) struct MemoryRegion { function verify_memory_region (line 103) | pub(crate) fn verify_memory_region( function calldatacopy (line 119) | pub(crate) fn calldatacopy(state: &mut ExecutionState) -> Result<(), Sta... function keccak256 (line 151) | pub(crate) fn keccak256(state: &mut ExecutionState) -> Result<(), Status... function codesize (line 175) | pub(crate) fn codesize(stack: &mut Stack, code: &[u8]) { function codecopy (line 179) | pub(crate) fn codecopy(state: &mut ExecutionState, code: &[u8]) -> Resul... function returndatasize (line 281) | pub(crate) fn returndatasize(state: &mut ExecutionState) { function returndatacopy (line 285) | pub(crate) fn returndatacopy(state: &mut ExecutionState) -> Result<(), S... FILE: src/instructions/properties.rs constant COLD_SLOAD_COST (line 5) | pub(crate) const COLD_SLOAD_COST: u16 = 2100; constant COLD_ACCOUNT_ACCESS_COST (line 6) | pub(crate) const COLD_ACCOUNT_ACCESS_COST: u16 = 2600; constant WARM_STORAGE_READ_COST (line 7) | pub(crate) const WARM_STORAGE_READ_COST: u16 = 100; constant ADDITIONAL_COLD_ACCOUNT_ACCESS_COST (line 13) | pub(crate) const ADDITIONAL_COLD_ACCOUNT_ACCESS_COST: u16 = type Properties (line 18) | pub struct Properties { method new (line 28) | fn new(name: &'static str, stack_height_required: u8, stack_height_cha... function gas_costs (line 361) | pub fn gas_costs(revision: Revision) -> &'static [Option; 256] { FILE: src/instructions/stack_manip.rs function push (line 4) | pub(crate) fn push(stack: &mut Stack, code: &[u8], push_len: usize) { function dup (line 8) | pub(crate) fn dup(stack: &mut Stack, height: usize) { function swap (line 12) | pub(crate) fn swap(stack: &mut Stack, height: usize) { function pop (line 16) | pub(crate) fn pop(stack: &mut Stack) { FILE: src/interpreter.rs function check_requirements (line 14) | fn check_requirements( type JumpdestMap (line 39) | pub struct JumpdestMap(Arc<[bool]>); method contains (line 42) | pub fn contains(&self, dst: U256) -> bool { type AnalyzedCode (line 49) | pub struct AnalyzedCode { method analyze (line 57) | pub fn analyze(code: impl Into>) -> Self { method execute (line 123) | pub fn execute( method execute_resumable (line 147) | pub fn execute_resumable( method run_to_completion_with_host (line 163) | pub fn run_to_completion_with_host( function interpreter_producer (line 274) | async fn interpreter_producer( FILE: src/lib.rs constant MAX_CODE_SIZE (line 12) | pub const MAX_CODE_SIZE: usize = 0x6000; FILE: src/opcode.rs type OpCode (line 4) | pub struct OpCode(pub u8); method to_u8 (line 8) | pub const fn to_u8(self) -> u8 { method to_usize (line 13) | pub const fn to_usize(self) -> usize { constant STOP (line 19) | pub const STOP: OpCode = OpCode(0x00); constant ADD (line 20) | pub const ADD: OpCode = OpCode(0x01); constant MUL (line 21) | pub const MUL: OpCode = OpCode(0x02); constant SUB (line 22) | pub const SUB: OpCode = OpCode(0x03); constant DIV (line 23) | pub const DIV: OpCode = OpCode(0x04); constant SDIV (line 24) | pub const SDIV: OpCode = OpCode(0x05); constant MOD (line 25) | pub const MOD: OpCode = OpCode(0x06); constant SMOD (line 26) | pub const SMOD: OpCode = OpCode(0x07); constant ADDMOD (line 27) | pub const ADDMOD: OpCode = OpCode(0x08); constant MULMOD (line 28) | pub const MULMOD: OpCode = OpCode(0x09); constant EXP (line 29) | pub const EXP: OpCode = OpCode(0x0a); constant SIGNEXTEND (line 30) | pub const SIGNEXTEND: OpCode = OpCode(0x0b); constant LT (line 32) | pub const LT: OpCode = OpCode(0x10); constant GT (line 33) | pub const GT: OpCode = OpCode(0x11); constant SLT (line 34) | pub const SLT: OpCode = OpCode(0x12); constant SGT (line 35) | pub const SGT: OpCode = OpCode(0x13); constant EQ (line 36) | pub const EQ: OpCode = OpCode(0x14); constant ISZERO (line 37) | pub const ISZERO: OpCode = OpCode(0x15); constant AND (line 38) | pub const AND: OpCode = OpCode(0x16); constant OR (line 39) | pub const OR: OpCode = OpCode(0x17); constant XOR (line 40) | pub const XOR: OpCode = OpCode(0x18); constant NOT (line 41) | pub const NOT: OpCode = OpCode(0x19); constant BYTE (line 42) | pub const BYTE: OpCode = OpCode(0x1a); constant SHL (line 43) | pub const SHL: OpCode = OpCode(0x1b); constant SHR (line 44) | pub const SHR: OpCode = OpCode(0x1c); constant SAR (line 45) | pub const SAR: OpCode = OpCode(0x1d); constant KECCAK256 (line 47) | pub const KECCAK256: OpCode = OpCode(0x20); constant ADDRESS (line 49) | pub const ADDRESS: OpCode = OpCode(0x30); constant BALANCE (line 50) | pub const BALANCE: OpCode = OpCode(0x31); constant ORIGIN (line 51) | pub const ORIGIN: OpCode = OpCode(0x32); constant CALLER (line 52) | pub const CALLER: OpCode = OpCode(0x33); constant CALLVALUE (line 53) | pub const CALLVALUE: OpCode = OpCode(0x34); constant CALLDATALOAD (line 54) | pub const CALLDATALOAD: OpCode = OpCode(0x35); constant CALLDATASIZE (line 55) | pub const CALLDATASIZE: OpCode = OpCode(0x36); constant CALLDATACOPY (line 56) | pub const CALLDATACOPY: OpCode = OpCode(0x37); constant CODESIZE (line 57) | pub const CODESIZE: OpCode = OpCode(0x38); constant CODECOPY (line 58) | pub const CODECOPY: OpCode = OpCode(0x39); constant GASPRICE (line 59) | pub const GASPRICE: OpCode = OpCode(0x3a); constant EXTCODESIZE (line 60) | pub const EXTCODESIZE: OpCode = OpCode(0x3b); constant EXTCODECOPY (line 61) | pub const EXTCODECOPY: OpCode = OpCode(0x3c); constant RETURNDATASIZE (line 62) | pub const RETURNDATASIZE: OpCode = OpCode(0x3d); constant RETURNDATACOPY (line 63) | pub const RETURNDATACOPY: OpCode = OpCode(0x3e); constant EXTCODEHASH (line 64) | pub const EXTCODEHASH: OpCode = OpCode(0x3f); constant BLOCKHASH (line 66) | pub const BLOCKHASH: OpCode = OpCode(0x40); constant COINBASE (line 67) | pub const COINBASE: OpCode = OpCode(0x41); constant TIMESTAMP (line 68) | pub const TIMESTAMP: OpCode = OpCode(0x42); constant NUMBER (line 69) | pub const NUMBER: OpCode = OpCode(0x43); constant DIFFICULTY (line 70) | pub const DIFFICULTY: OpCode = OpCode(0x44); constant GASLIMIT (line 71) | pub const GASLIMIT: OpCode = OpCode(0x45); constant CHAINID (line 72) | pub const CHAINID: OpCode = OpCode(0x46); constant SELFBALANCE (line 73) | pub const SELFBALANCE: OpCode = OpCode(0x47); constant BASEFEE (line 74) | pub const BASEFEE: OpCode = OpCode(0x48); constant POP (line 76) | pub const POP: OpCode = OpCode(0x50); constant MLOAD (line 77) | pub const MLOAD: OpCode = OpCode(0x51); constant MSTORE (line 78) | pub const MSTORE: OpCode = OpCode(0x52); constant MSTORE8 (line 79) | pub const MSTORE8: OpCode = OpCode(0x53); constant SLOAD (line 80) | pub const SLOAD: OpCode = OpCode(0x54); constant SSTORE (line 81) | pub const SSTORE: OpCode = OpCode(0x55); constant JUMP (line 82) | pub const JUMP: OpCode = OpCode(0x56); constant JUMPI (line 83) | pub const JUMPI: OpCode = OpCode(0x57); constant PC (line 84) | pub const PC: OpCode = OpCode(0x58); constant MSIZE (line 85) | pub const MSIZE: OpCode = OpCode(0x59); constant GAS (line 86) | pub const GAS: OpCode = OpCode(0x5a); constant JUMPDEST (line 87) | pub const JUMPDEST: OpCode = OpCode(0x5b); constant PUSH1 (line 89) | pub const PUSH1: OpCode = OpCode(0x60); constant PUSH2 (line 90) | pub const PUSH2: OpCode = OpCode(0x61); constant PUSH3 (line 91) | pub const PUSH3: OpCode = OpCode(0x62); constant PUSH4 (line 92) | pub const PUSH4: OpCode = OpCode(0x63); constant PUSH5 (line 93) | pub const PUSH5: OpCode = OpCode(0x64); constant PUSH6 (line 94) | pub const PUSH6: OpCode = OpCode(0x65); constant PUSH7 (line 95) | pub const PUSH7: OpCode = OpCode(0x66); constant PUSH8 (line 96) | pub const PUSH8: OpCode = OpCode(0x67); constant PUSH9 (line 97) | pub const PUSH9: OpCode = OpCode(0x68); constant PUSH10 (line 98) | pub const PUSH10: OpCode = OpCode(0x69); constant PUSH11 (line 99) | pub const PUSH11: OpCode = OpCode(0x6a); constant PUSH12 (line 100) | pub const PUSH12: OpCode = OpCode(0x6b); constant PUSH13 (line 101) | pub const PUSH13: OpCode = OpCode(0x6c); constant PUSH14 (line 102) | pub const PUSH14: OpCode = OpCode(0x6d); constant PUSH15 (line 103) | pub const PUSH15: OpCode = OpCode(0x6e); constant PUSH16 (line 104) | pub const PUSH16: OpCode = OpCode(0x6f); constant PUSH17 (line 105) | pub const PUSH17: OpCode = OpCode(0x70); constant PUSH18 (line 106) | pub const PUSH18: OpCode = OpCode(0x71); constant PUSH19 (line 107) | pub const PUSH19: OpCode = OpCode(0x72); constant PUSH20 (line 108) | pub const PUSH20: OpCode = OpCode(0x73); constant PUSH21 (line 109) | pub const PUSH21: OpCode = OpCode(0x74); constant PUSH22 (line 110) | pub const PUSH22: OpCode = OpCode(0x75); constant PUSH23 (line 111) | pub const PUSH23: OpCode = OpCode(0x76); constant PUSH24 (line 112) | pub const PUSH24: OpCode = OpCode(0x77); constant PUSH25 (line 113) | pub const PUSH25: OpCode = OpCode(0x78); constant PUSH26 (line 114) | pub const PUSH26: OpCode = OpCode(0x79); constant PUSH27 (line 115) | pub const PUSH27: OpCode = OpCode(0x7a); constant PUSH28 (line 116) | pub const PUSH28: OpCode = OpCode(0x7b); constant PUSH29 (line 117) | pub const PUSH29: OpCode = OpCode(0x7c); constant PUSH30 (line 118) | pub const PUSH30: OpCode = OpCode(0x7d); constant PUSH31 (line 119) | pub const PUSH31: OpCode = OpCode(0x7e); constant PUSH32 (line 120) | pub const PUSH32: OpCode = OpCode(0x7f); constant DUP1 (line 121) | pub const DUP1: OpCode = OpCode(0x80); constant DUP2 (line 122) | pub const DUP2: OpCode = OpCode(0x81); constant DUP3 (line 123) | pub const DUP3: OpCode = OpCode(0x82); constant DUP4 (line 124) | pub const DUP4: OpCode = OpCode(0x83); constant DUP5 (line 125) | pub const DUP5: OpCode = OpCode(0x84); constant DUP6 (line 126) | pub const DUP6: OpCode = OpCode(0x85); constant DUP7 (line 127) | pub const DUP7: OpCode = OpCode(0x86); constant DUP8 (line 128) | pub const DUP8: OpCode = OpCode(0x87); constant DUP9 (line 129) | pub const DUP9: OpCode = OpCode(0x88); constant DUP10 (line 130) | pub const DUP10: OpCode = OpCode(0x89); constant DUP11 (line 131) | pub const DUP11: OpCode = OpCode(0x8a); constant DUP12 (line 132) | pub const DUP12: OpCode = OpCode(0x8b); constant DUP13 (line 133) | pub const DUP13: OpCode = OpCode(0x8c); constant DUP14 (line 134) | pub const DUP14: OpCode = OpCode(0x8d); constant DUP15 (line 135) | pub const DUP15: OpCode = OpCode(0x8e); constant DUP16 (line 136) | pub const DUP16: OpCode = OpCode(0x8f); constant SWAP1 (line 137) | pub const SWAP1: OpCode = OpCode(0x90); constant SWAP2 (line 138) | pub const SWAP2: OpCode = OpCode(0x91); constant SWAP3 (line 139) | pub const SWAP3: OpCode = OpCode(0x92); constant SWAP4 (line 140) | pub const SWAP4: OpCode = OpCode(0x93); constant SWAP5 (line 141) | pub const SWAP5: OpCode = OpCode(0x94); constant SWAP6 (line 142) | pub const SWAP6: OpCode = OpCode(0x95); constant SWAP7 (line 143) | pub const SWAP7: OpCode = OpCode(0x96); constant SWAP8 (line 144) | pub const SWAP8: OpCode = OpCode(0x97); constant SWAP9 (line 145) | pub const SWAP9: OpCode = OpCode(0x98); constant SWAP10 (line 146) | pub const SWAP10: OpCode = OpCode(0x99); constant SWAP11 (line 147) | pub const SWAP11: OpCode = OpCode(0x9a); constant SWAP12 (line 148) | pub const SWAP12: OpCode = OpCode(0x9b); constant SWAP13 (line 149) | pub const SWAP13: OpCode = OpCode(0x9c); constant SWAP14 (line 150) | pub const SWAP14: OpCode = OpCode(0x9d); constant SWAP15 (line 151) | pub const SWAP15: OpCode = OpCode(0x9e); constant SWAP16 (line 152) | pub const SWAP16: OpCode = OpCode(0x9f); constant LOG0 (line 153) | pub const LOG0: OpCode = OpCode(0xa0); constant LOG1 (line 154) | pub const LOG1: OpCode = OpCode(0xa1); constant LOG2 (line 155) | pub const LOG2: OpCode = OpCode(0xa2); constant LOG3 (line 156) | pub const LOG3: OpCode = OpCode(0xa3); constant LOG4 (line 157) | pub const LOG4: OpCode = OpCode(0xa4); constant CREATE (line 159) | pub const CREATE: OpCode = OpCode(0xf0); constant CALL (line 160) | pub const CALL: OpCode = OpCode(0xf1); constant CALLCODE (line 161) | pub const CALLCODE: OpCode = OpCode(0xf2); constant RETURN (line 162) | pub const RETURN: OpCode = OpCode(0xf3); constant DELEGATECALL (line 163) | pub const DELEGATECALL: OpCode = OpCode(0xf4); constant CREATE2 (line 164) | pub const CREATE2: OpCode = OpCode(0xf5); constant STATICCALL (line 166) | pub const STATICCALL: OpCode = OpCode(0xfa); constant REVERT (line 168) | pub const REVERT: OpCode = OpCode(0xfd); constant INVALID (line 169) | pub const INVALID: OpCode = OpCode(0xfe); constant SELFDESTRUCT (line 170) | pub const SELFDESTRUCT: OpCode = OpCode(0xff); method name (line 174) | pub const fn name(&self) -> &'static str { method push_size (line 323) | pub fn push_size(self) -> Option { method fmt (line 330) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { FILE: src/state.rs constant SIZE (line 8) | const SIZE: usize = 1024; type Stack (line 12) | pub struct Stack(pub ArrayVec); method limit (line 15) | pub const fn limit() -> usize { method get_pos (line 19) | fn get_pos(&self, pos: usize) -> usize { method get (line 23) | pub fn get(&self, pos: usize) -> &U256 { method get_mut (line 27) | pub fn get_mut(&mut self, pos: usize) -> &mut U256 { method len (line 32) | pub fn len(&self) -> usize { method is_empty (line 36) | pub fn is_empty(&self) -> bool { method push (line 40) | pub fn push(&mut self, v: U256) { method pop (line 44) | pub fn pop(&mut self) -> U256 { method swap_top (line 48) | pub fn swap_top(&mut self, pos: usize) { type Memory (line 55) | pub type Memory = Vec; type ExecutionState (line 59) | pub struct ExecutionState { method new (line 74) | pub fn new(message: Message, evm_revision: Revision) -> Self { function stack (line 92) | fn stack() { FILE: src/tracing/mod.rs type Tracer (line 6) | pub trait Tracer { constant DUMMY (line 8) | const DUMMY: bool = false; method notify_execution_start (line 11) | fn notify_execution_start(&mut self, revision: Revision, message: Mess... method notify_instruction_start (line 13) | fn notify_instruction_start(&mut self, pc: usize, opcode: OpCode, stat... method notify_execution_end (line 15) | fn notify_execution_end(&mut self, output: &Output); constant DUMMY (line 22) | const DUMMY: bool = true; method notify_execution_start (line 24) | fn notify_execution_start(&mut self, _: Revision, _: Message, _: Bytes... method notify_instruction_start (line 26) | fn notify_instruction_start(&mut self, _: usize, _: OpCode, _: &Execut... method notify_execution_end (line 28) | fn notify_execution_end(&mut self, _: &Output) {} method notify_execution_start (line 71) | fn notify_execution_start(&mut self, revision: Revision, message: Mess... method notify_instruction_start (line 84) | fn notify_instruction_start(&mut self, pc: usize, _: OpCode, state: &E... method notify_execution_end (line 101) | fn notify_execution_end(&mut self, output: &Output) { type NoopTracer (line 19) | pub struct NoopTracer; type ExecutionStart (line 32) | struct ExecutionStart { type InstructionStart (line 41) | pub(crate) struct InstructionStart { type ExecutionEnd (line 52) | pub(crate) struct ExecutionEnd { type TracerContext (line 59) | struct TracerContext { type StdoutTracer (line 66) | pub struct StdoutTracer { FILE: src/util/bytecode.rs type Bytecode (line 8) | pub struct Bytecode { method new (line 13) | pub const fn new() -> Self { method append (line 17) | pub fn append(mut self, b: impl IntoIterator) -> Self { method append_bc (line 22) | pub fn append_bc(mut self, b: impl Into) -> Self { method repeat (line 27) | pub fn repeat(mut self, n: usize) -> Self { method pushv (line 32) | pub fn pushv(self, value: impl Into) -> Self { method pushb (line 43) | pub fn pushb(mut self, b: impl IntoIterator) -> Self { method opcode (line 57) | pub fn opcode(mut self, opcode: OpCode) -> Self { method ret (line 62) | pub fn ret(mut self, index: impl Into, size: impl Into) ->... method revert (line 69) | pub fn revert(mut self, index: impl Into, size: impl Into)... method mstore (line 76) | pub fn mstore(mut self, index: impl Into) -> Self { method mstore_value (line 82) | pub fn mstore_value(mut self, index: impl Into, value: impl Into... method mstore8 (line 89) | pub fn mstore8(mut self, index: impl Into) -> Self { method mstore8_value (line 95) | pub fn mstore8_value(mut self, index: impl Into, value: impl Int... method ret_top (line 102) | pub fn ret_top(self) -> Self { method jump (line 106) | pub fn jump(self, target: impl Into) -> Self { method jumpi (line 110) | pub fn jumpi(self, target: impl Into, condition: impl Into, value: impl Into) ->... method sload (line 120) | pub fn sload(self, index: impl Into) -> Self { method build (line 124) | pub fn build(self) -> Vec { method len (line 128) | pub fn len(&self) -> usize { method is_empty (line 132) | pub fn is_empty(&self) -> bool { method from (line 138) | fn from(value: U256) -> Self { method from (line 144) | fn from(opcode: OpCode) -> Self { method from (line 150) | fn from(inner: [u8; N]) -> Self { method from (line 158) | fn from(inner: Vec) -> Self { method as_ref (line 164) | fn as_ref(&self) -> &[u8] { type Output (line 197) | type Output = Bytecode; method add (line 199) | fn add(self, rhs: T) -> Self::Output { method from (line 273) | fn from(call: CallInstruction) -> Self { type Item (line 170) | type Item = u8; type IntoIter (line 171) | type IntoIter = as IntoIterator>::IntoIter; method into_iter (line 173) | fn into_iter(self) -> Self::IntoIter { type Output (line 179) | type Output = Bytecode; function mul (line 181) | fn mul(self, rhs: Bytecode) -> Self::Output { type Output (line 189) | type Output = Bytecode; function mul (line 191) | fn mul(self, rhs: OpCode) -> Self::Output { type CallInstruction (line 204) | pub struct CallInstruction { method new (line 216) | fn new(op: OpCode, address: impl Into) -> Self { method delegatecall (line 229) | pub fn delegatecall(address: impl Into) -> Self { method staticcall (line 233) | pub fn staticcall(address: impl Into) -> Self { method call (line 237) | pub fn call(address: impl Into) -> Self { method callcode (line 241) | pub fn callcode(address: impl Into) -> Self { method opcode (line 245) | pub fn opcode(&self) -> OpCode { method gas (line 249) | pub fn gas(mut self, gas: impl Into) -> Self { method value (line 254) | pub fn value(mut self, value: impl Into) -> Self { method input (line 259) | pub fn input(mut self, index: impl Into, size: impl Into) ... method output (line 265) | pub fn output(mut self, index: impl Into, size: impl Into)... function multiply_bytecode (line 291) | fn multiply_bytecode() { FILE: src/util/mocked_host.rs type LogRecord (line 10) | pub struct LogRecord { type SelfdestructRecord (line 22) | pub struct SelfdestructRecord { type StorageValue (line 31) | pub struct StorageValue { type Account (line 38) | pub struct Account { constant MAX_RECORDED_ACCOUNT_ACCESSES (line 51) | const MAX_RECORDED_ACCOUNT_ACCESSES: usize = 200; constant MAX_RECORDED_CALLS (line 52) | const MAX_RECORDED_CALLS: usize = 100; type Records (line 55) | pub struct Records { method record_account_access (line 115) | fn record_account_access(&mut self, address: Address) { type MockedHost (line 67) | pub struct MockedHost { method account_exists (line 123) | fn account_exists(&self, address: ethereum_types::Address) -> bool { method get_storage (line 128) | fn get_storage(&self, address: ethereum_types::Address, key: U256) -> ... method set_storage (line 137) | fn set_storage( method get_balance (line 182) | fn get_balance(&self, address: ethereum_types::Address) -> ethereum_ty... method get_code_size (line 191) | fn get_code_size(&self, address: ethereum_types::Address) -> ethereum_... method get_code_hash (line 200) | fn get_code_hash(&self, address: ethereum_types::Address) -> U256 { method copy_code (line 209) | fn copy_code(&self, address: Address, code_offset: usize, buffer: &mut... method selfdestruct (line 230) | fn selfdestruct( method call (line 244) | fn call(&mut self, msg: &Message) -> Output { method get_tx_context (line 259) | fn get_tx_context(&self) -> TxContext { method get_block_hash (line 263) | fn get_block_hash(&self, block_number: u64) -> U256 { method emit_log (line 268) | fn emit_log(&mut self, address: ethereum_types::Address, data: &[u8], ... method access_account (line 276) | fn access_account(&mut self, address: ethereum_types::Address) -> Acce... method access_storage (line 297) | fn access_storage(&mut self, address: ethereum_types::Address, key: U2... method clone (line 76) | fn clone(&self) -> Self { method default (line 88) | fn default() -> Self { FILE: src/util/tester.rs function exec (line 11) | fn exec( type GasCheck (line 33) | enum GasCheck { type EvmTester (line 42) | pub struct EvmTester { method new (line 69) | pub fn new() -> Self { method code (line 97) | pub fn code(mut self, code: impl Into) -> Self { method apply_host_fn (line 103) | pub fn apply_host_fn(mut self, host_fn: impl Fn(&mut MockedHost, &Mess... method revision (line 109) | pub fn revision(mut self, revision: Revision) -> Self { method depth (line 115) | pub fn depth(mut self, depth: u16) -> Self { method gas (line 121) | pub fn gas(mut self, gas: i64) -> Self { method set_static (line 127) | pub fn set_static(mut self, is_static: bool) -> Self { method destination (line 133) | pub fn destination(mut self, destination: impl Into
) -> Self { method sender (line 139) | pub fn sender(mut self, sender: impl Into
) -> Self { method value (line 145) | pub fn value(mut self, value: impl Into) -> Self { method gas_used (line 151) | pub fn gas_used(mut self, expected_gas_used: i64) -> Self { method gas_left (line 157) | pub fn gas_left(mut self, expected_gas_left: i64) -> Self { method input (line 163) | pub fn input(mut self, input: impl Into) -> Self { method status (line 169) | pub fn status(mut self, expected_status_code: StatusCode) -> Self { method status_one_of (line 175) | pub fn status_one_of(mut self, expected_status_code: [... method output_value (line 181) | pub fn output_value(mut self, expected_output_data: impl Into) -... method output_data (line 189) | pub fn output_data(mut self, expected_output_data: impl Into>)... method inspect_output (line 195) | pub fn inspect_output(mut self, inspect_output_fn: impl Fn(&[u8]) + 's... method inspect_host (line 201) | pub fn inspect_host(mut self, f: impl Fn(&MockedHost, &Message) + 'sta... method inspect (line 207) | pub fn inspect(mut self, f: impl Fn(&MockedHost, &Message, &[u8]) + 's... method collect_traces (line 212) | pub fn collect_traces(mut self, doit: bool) -> Self { method check_and_get_result (line 218) | pub fn check_and_get_result(self) -> Output { method check (line 262) | pub fn check(self) { method default (line 62) | fn default() -> Self { FILE: tests/basefee.rs function basefee_pre_london (line 4) | fn basefee_pre_london() { function basefee_nominal_case (line 13) | fn basefee_nominal_case() { FILE: tests/call.rs function delegatecall (line 8) | fn delegatecall() { function delegatecall_static (line 44) | fn delegatecall_static() { function delegatecall_oog_depth_limit (line 62) | fn delegatecall_oog_depth_limit() { function create (line 82) | fn create() { function create_gas (line 115) | fn create_gas() { function create2 (line 144) | fn create2() { function create2_salt_cost (line 182) | fn create2_salt_cost() { function create_balance_too_low (line 214) | fn create_balance_too_low() { function create_failure (line 240) | fn create_failure() { function call_failing_with_value (line 325) | fn call_failing_with_value() { function call_with_value (line 380) | fn call_with_value() { function call_with_value_depth_limit (line 409) | fn call_with_value_depth_limit() { function call_depth_limit (line 428) | fn call_depth_limit() { function call_output (line 463) | fn call_output() { function call_high_gas (line 533) | fn call_high_gas() { function call_value_zero_to_nonexistent_account (line 561) | fn call_value_zero_to_nonexistent_account() { function call_new_account_creation_cost (line 603) | fn call_new_account_creation_cost() { function callcode_new_account_create (line 729) | fn callcode_new_account_create() { function call_then_oog (line 758) | fn call_then_oog() { function callcode_then_oog (line 798) | fn callcode_then_oog() { function delegatecall_then_oog (line 836) | fn delegatecall_then_oog() { function staticcall_then_oog (line 875) | fn staticcall_then_oog() { function staticcall_input (line 913) | fn staticcall_input() { function call_with_value_low_gas (line 931) | fn call_with_value_low_gas() { function call_oog_after_balance_check (line 958) | fn call_oog_after_balance_check() { function call_oog_after_depth_check (line 985) | fn call_oog_after_depth_check() { function create_oog_after (line 1031) | fn create_oog_after() { function returndatasize_before_call (line 1051) | fn returndatasize_before_call() { function returndatasize (line 1060) | fn returndatasize() { function returndatacopy (line 1110) | fn returndatacopy() { function returndatacopy_empty (line 1124) | fn returndatacopy_empty() { function returndatacopy_cost (line 1133) | fn returndatacopy_cost() { function returndatacopy_outofrange (line 1144) | fn returndatacopy_outofrange() { FILE: tests/eip2929.rs function eip2929_case1 (line 5) | fn eip2929_case1() { function eip2929_case2 (line 51) | fn eip2929_case2() { function eip2929_case3 (line 79) | fn eip2929_case3() { function eip2929_case4 (line 93) | fn eip2929_case4() { function eip2929_op_oog (line 109) | fn eip2929_op_oog() { function eip2929_extcodecopy_oog (line 134) | fn eip2929_extcodecopy_oog() { function eip2929_sload_cold (line 157) | fn eip2929_sload_cold() { function eip2929_sload_two_slots (line 194) | fn eip2929_sload_two_slots() { function eip2929_sload_warm (line 226) | fn eip2929_sload_warm() { function eip2929_sstore_modify_cold (line 262) | fn eip2929_sstore_modify_cold() { function eip2929_selfdestruct_cold_beneficiary (line 305) | fn eip2929_selfdestruct_cold_beneficiary() { function eip2929_selfdestruct_warm_beneficiary (line 323) | fn eip2929_selfdestruct_warm_beneficiary() { function eip2929_delegatecall_cold (line 344) | fn eip2929_delegatecall_cold() { FILE: tests/execute.rs function empty_code (line 10) | fn empty_code() { function invalid_push (line 22) | fn invalid_push() { function push_and_pop (line 30) | fn push_and_pop() { function stack_underflow (line 46) | fn stack_underflow() { function add (line 67) | fn add() { function dup (line 78) | fn dup() { function dup_all_1 (line 94) | fn dup_all_1() { function dup_stack_overflow (line 109) | fn dup_stack_overflow() { function dup_stack_underflow (line 127) | fn dup_stack_underflow() { function sub_and_swap (line 142) | fn sub_and_swap() { function memory_and_not (line 153) | fn memory_and_not() { function msize (line 164) | fn msize() { function gas (line 175) | fn gas() { function arith (line 186) | fn arith() { function comparison (line 210) | fn comparison() { function bitwise (line 232) | fn bitwise() { function jump (line 249) | fn jump() { function jumpi (line 270) | fn jumpi() { function jumpi_else (line 286) | fn jumpi_else() { function jumpi_at_the_end (line 302) | fn jumpi_at_the_end() { function bad_jumpdest (line 312) | fn bad_jumpdest() { function jump_to_block_beginning (line 330) | fn jump_to_block_beginning() { function jumpi_stack (line 338) | fn jumpi_stack() { function jump_over_jumpdest (line 355) | fn jump_over_jumpdest() { function jump_to_missing_push_data (line 371) | fn jump_to_missing_push_data() { function jump_to_missing_push_data2 (line 383) | fn jump_to_missing_push_data2() { function pc_sum (line 397) | fn pc_sum() { function pc_after_jump_1 (line 416) | fn pc_after_jump_1() { function pc_after_jump_2 (line 432) | fn pc_after_jump_2() { function byte (line 458) | fn byte() { function byte_overflow (line 487) | fn byte_overflow() { function addmod_mulmod (line 514) | fn addmod_mulmod() { function divmod (line 550) | fn divmod() { function div_by_zero (line 571) | fn div_by_zero() { function mod_by_zero (line 589) | fn mod_by_zero() { function addmod_mulmod_by_zero (line 607) | fn addmod_mulmod_by_zero() { function signextend (line 620) | fn signextend() { function signextend_31 (line 648) | fn signextend_31() { function exp (line 670) | fn exp() { function exp_1_0 (line 690) | fn exp_1_0() { function exp_0_0 (line 707) | fn exp_0_0() { function exp_oog (line 724) | fn exp_oog() { function exp_pre_spurious_dragon (line 741) | fn exp_pre_spurious_dragon() { function calldataload (line 762) | fn calldataload() { function calldataload_outofrange (line 779) | fn calldataload_outofrange() { function calldatacopy (line 793) | fn calldatacopy() { function address (line 820) | fn address() { function caller_callvalue (line 836) | fn caller_callvalue() { function undefined (line 855) | fn undefined() { function invalid (line 865) | fn invalid() { function inner_stop (line 875) | fn inner_stop() { function inner_return (line 890) | fn inner_return() { function inner_revert (line 900) | fn inner_revert() { function inner_invalid (line 910) | fn inner_invalid() { function inner_selfdestruct (line 926) | fn inner_selfdestruct() { function keccak256 (line 942) | fn keccak256() { function keccak256_empty (line 954) | fn keccak256_empty() { function revert (line 970) | fn revert() { function return_empty_buffer_at_offset_0 (line 984) | fn return_empty_buffer_at_offset_0() { function return_empty_buffer_at_high_offset (line 997) | fn return_empty_buffer_at_high_offset() { function shl (line 1019) | fn shl() { function shr (line 1030) | fn shr() { function sar (line 1041) | fn sar() { function sar_01 (line 1052) | fn sar_01() { function shift_overflow (line 1063) | fn shift_overflow() { function undefined_instruction_analysis_overflow (line 1086) | fn undefined_instruction_analysis_overflow() { function abort (line 1095) | fn abort() { function staticmode (line 1106) | fn staticmode() { function memory_big_allocation (line 1135) | fn memory_big_allocation() { function memory_grow_mstore8 (line 1145) | fn memory_grow_mstore8() { function mstore8_memory_cost (line 1187) | fn mstore8_memory_cost() { function keccak256_memory_cost (line 1198) | fn keccak256_memory_cost() { function calldatacopy_memory_cost (line 1209) | fn calldatacopy_memory_cost() { constant MAX_CODE_SIZE (line 1225) | const MAX_CODE_SIZE: usize = 0x6000; function max_code_size_push1 (line 1228) | fn max_code_size_push1() { function reverse_16_stack_items (line 1247) | fn reverse_16_stack_items() { function memory_access (line 1303) | fn memory_access() { FILE: tests/other.rs function loop_full_of_jumpdests (line 4) | fn loop_full_of_jumpdests() { function jumpdest_with_high_offset (line 44) | fn jumpdest_with_high_offset() { FILE: tests/state.rs function code (line 10) | fn code() { function codecopy_combinations (line 21) | fn codecopy_combinations() { function storage (line 62) | fn storage() { function sstore_pop_stack (line 79) | fn sstore_pop_stack() { function sload_cost_pre_tangerine_whistle (line 89) | fn sload_cost_pre_tangerine_whistle() { function sstore_out_of_block_gas (line 106) | fn sstore_out_of_block_gas() { function sstore_cost (line 126) | fn sstore_cost() { function sstore_below_stipend (line 256) | fn sstore_below_stipend() { function tx_context (line 280) | fn tx_context() { function balance (line 332) | fn balance() { function account_info_homestead (line 351) | fn account_info_homestead() { function selfbalance (line 400) | fn selfbalance() { function log (line 428) | fn log() { function log0_empty (line 467) | fn log0_empty() { function log_data_cost (line 486) | fn log_data_cost() { function selfdestruct (line 515) | fn selfdestruct() { function selfdestruct_with_balance (line 575) | fn selfdestruct_with_balance() { function blockhash (line 890) | fn blockhash() { function extcode (line 941) | fn extcode() { function extcodesize (line 968) | fn extcodesize() { function extcodecopy_big_index (line 987) | fn extcodecopy_big_index() { function extcodehash (line 1005) | fn extcodehash() { function codecopy_empty (line 1031) | fn codecopy_empty() { function extcodecopy_empty (line 1048) | fn extcodecopy_empty() { function codecopy_memory_cost (line 1066) | fn codecopy_memory_cost() { function extcodecopy_memory_cost (line 1081) | fn extcodecopy_memory_cost() { function extcodecopy_nonzero_index (line 1096) | fn extcodecopy_nonzero_index() { function extcodecopy_fill_tail (line 1130) | fn extcodecopy_fill_tail() { function extcodecopy_buffer_overflow (line 1158) | fn extcodecopy_buffer_overflow() {