Skip to content

CallAction

Inputs for a call action.

Properties

struct {
  /// The calldata of this action.
  inputs: []u8
  /// The return memory offset where the output of this call
  /// gets written to.
  return_memory_offset: struct { u64, u64 }
  /// The gas limit of this call.
  gas_limit: u64
  /// The account address of bytecode that is going to be executed.
  bytecode_address: Address
  /// Target address. This account's storage will get modified.
  target_address: Address
  /// The address that is invoking this call.
  caller: Address
  /// The call value. Depeding on the scheme value might not get transfered.
  value: CallValue
  /// The call scheme.
  scheme: CallScheme
  /// Whether this call is static or initialized inside a static call.
  is_static: bool
}

Init

Creates an instance for this action.

Signature

pub fn init(tx_env: TxEnviroment, gas_limit: u64) ?CallAction

CallValue

Evm call value types.

Properties

union(enum) {
  /// The concrete value that will get transfered from the caller to the callee.
  transfer: u256
  /// The transfer value that lives in limbo where the value gets set but
  /// it will **never** get transfered.
  limbo: u256
}

GetCurrentValue

Gets the current value independent of the active union member.

Signature

pub fn getCurrentValue(self: CallValue) u256

CallScheme

EVM Call scheme.

Properties

enum {
  call
  callcode
  delegate
  static
}

CreateAction

Inputs for a create call.

Properties

struct {
  /// Caller address of the EVM.
  caller: Address
  /// The schema used for the create action
  scheme: CreateScheme
  /// Value to transfer
  value: u256
  /// The contract's init code.
  init_code: []u8
  /// The gas limit of this call.
  gas_limit: u64
}

Init

Creates an instance for this action.

Signature

pub fn init(tx_env: TxEnviroment, gas_limit: u64) ?CallAction

CreateScheme

EVM Create scheme.

union(enum) {
    create,
    create2: u256,
}

ReturnAction

The result of the interpreter operation

Properties

struct {
  /// The result of the instruction execution.
  result: InterpreterStatus
  /// The return output slice.
  output: []u8
  /// The tracker with gas usage.
  gas: GasTracker
}