Crate rtvm_interpreter

Source
Expand description

§rtvm-interpreter

RTVM Interpreter.

Re-exports§

pub use gas::Gas;
pub use interpreter::analysis;
pub use interpreter::next_multiple_of_32;
pub use interpreter::Contract;
pub use interpreter::Interpreter;
pub use interpreter::InterpreterResult;
pub use interpreter::SharedMemory;
pub use interpreter::Stack;
pub use interpreter::EMPTY_SHARED_MEMORY;
pub use interpreter::STACK_LIMIT;
pub use interpreter_action::CallInputs;
pub use interpreter_action::CallOutcome;
pub use interpreter_action::CallScheme;
pub use interpreter_action::CallValue;
pub use interpreter_action::CreateInputs;
pub use interpreter_action::CreateOutcome;
pub use interpreter_action::EOFCreateInput;
pub use interpreter_action::EOFCreateOutcome;
pub use interpreter_action::InterpreterAction;
pub use opcode::Instruction;
pub use opcode::OpCode;
pub use opcode::OPCODE_INFO_JUMPTABLE;

Modules§

gas
EVM gas calculation utilities.
instructions
EVM opcode implementations.
interpreter
interpreter_action
opcode
EVM opcode definitions and utilities.

Macros§

as_isize_saturated
Converts a U256 value to a isize, saturating to isize::MAX if the value is too large.
as_u64_saturated
Converts a U256 value to a u64, saturating to MAX if the value is too large.
as_usize_or_fail
Converts a U256 value to a usize, failing the instruction if the value is too large.
as_usize_or_fail_ret
Converts a U256 value to a usize and returns ret, failing the instruction if the value is too large.
as_usize_saturated
Converts a U256 value to a usize, saturating to MAX if the value is too large.
check
Check if the SPEC is enabled, and fail the instruction if it is not.
gas
Records a gas cost and fails the instruction if it would exceed the available gas.
gas_or_fail
Same as gas!, but with gas as an option.
pop
Pops U256 values from the stack. Fails the instruction if the stack is too small.
pop_address
Pops Address values from the stack. Fails the instruction if the stack is too small.
pop_address_ret
Pop Address values from the stack, returns ret on stack underflow.
pop_ret
Pops U256 values from the stack, and returns ret. Fails the instruction if the stack is too small.
pop_top
Pops U256 values from the stack, and returns a reference to the top of the stack. Fails the instruction if the stack is too small.
push
Pushes a B256 value onto the stack. Fails the instruction if the stack is full.
push_b256
Pushes B256 values onto the stack. Fails the instruction if the stack is full.
refund
Records a gas refund.
require_eof
Error if the current call is executing EOF.
require_init_eof
Error if not init eof call.
require_non_staticcall
Fails the instruction if the current call is static.
resize_memory
Resizes the interpreter memory if necessary. Fails the instruction if the memory or gas limit is exceeded.
return_error
return_ok
return_revert

Structs§

DummyHost
A dummy Host implementation.
FunctionReturnFrame
Function return frame. Needed information for returning from a function.
FunctionStack
Function Stack
LoadAccountResult
Result of the account load from Journal state.
SStoreResult
Represents the result of an sstore operation.
SelfDestructResult
Result of a selfdestruct instruction.

Enums§

CreateScheme
Create scheme.
InstructionResult
SuccessOrHalt

Constants§

MAX_CODE_SIZE
EIP-170: Contract code size limit By default limit is 0x6000 (~25kb)
MAX_INITCODE_SIZE
EIP-3860: Limit and meter initcode

Traits§

Host
EVM context host.