Struct evm::Schedule[][src]

pub struct Schedule {
    pub exceptional_failed_code_deposit: bool,
    pub have_delegate_call: bool,
    pub have_create2: bool,
    pub have_revert: bool,
    pub stack_limit: usize,
    pub max_depth: usize,
    pub tier_step_gas: [usize; 8],
    pub exp_gas: usize,
    pub exp_byte_gas: usize,
    pub sha3_gas: usize,
    pub sha3_word_gas: usize,
    pub sload_gas: usize,
    pub sstore_set_gas: usize,
    pub sstore_reset_gas: usize,
    pub sstore_refund_gas: usize,
    pub jumpdest_gas: usize,
    pub log_gas: usize,
    pub log_data_gas: usize,
    pub log_topic_gas: usize,
    pub create_gas: usize,
    pub call_gas: usize,
    pub call_stipend: usize,
    pub call_value_transfer_gas: usize,
    pub call_new_account_gas: usize,
    pub suicide_refund_gas: usize,
    pub memory_gas: usize,
    pub quad_coeff_div: usize,
    pub create_data_gas: usize,
    pub create_data_limit: usize,
    pub tx_gas: usize,
    pub tx_create_gas: usize,
    pub tx_data_zero_gas: usize,
    pub tx_data_non_zero_gas: usize,
    pub copy_gas: usize,
    pub extcodesize_gas: usize,
    pub extcodecopy_base_gas: usize,
    pub balance_gas: usize,
    pub suicide_gas: usize,
    pub suicide_to_new_account_cost: usize,
    pub sub_gas_cap_divisor: Option<usize>,
    pub no_empty: bool,
    pub kill_empty: bool,
    pub blockhash_gas: usize,
    pub have_static_call: bool,
    pub have_return_data: bool,
    pub have_bitwise_shifting: bool,
    pub kill_dust: CleanDustMode,
    pub eip86: bool,
    pub wasm: Option<WasmCosts>,
}

Definition of the cost schedule and other parameterisations for the EVM.

Fields

Does it support exceptional failed code deposit

Does it have a delegate cal

Does it have a CREATE_P2SH instruction

Does it have a REVERT instruction

VM stack limit

Max number of nested calls/creates

Gas prices for instructions in all tiers

Gas price for EXP opcode

Additional gas for EXP opcode for each byte of exponent

Gas price for SHA3 opcode

Additional gas for SHA3 opcode for each word of hashed memory

Gas price for loading from storage

Gas price for setting new value to storage (storage==0, new!=0)

Gas price for altering value in storage

Gas refund for SSTORE clearing (when storage!=0, new==0)

Gas price for JUMPDEST opcode

Gas price for LOG*

Additional gas for data in LOG*

Additional gas for each topic in LOG*

Gas price for CREATE opcode

Gas price for *CALL* opcodes

Stipend for transfer for CALL|CALLCODE opcode when value>0

Additional gas required for value transfer (CALL|CALLCODE)

Additional gas for creating new account (CALL|CALLCODE)

Refund for SUICIDE

Gas for used memory

Coefficient used to convert memory size to gas price for memory

Cost for contract length when executing CREATE

Maximum code size when creating a contract.

Transaction cost

CREATE transaction cost

Additional cost for empty data transaction

Aditional cost for non-empty data transaction

Gas price for copying memory

Price of EXTCODESIZE

Base price of EXTCODECOPY

Price of BALANCE

Price of SUICIDE

Amount of additional gas to pay when SUICIDE credits a non-existant account

If Some(x): let limit = GAS * (x - 1) / x; let CALL's gas = min(requested, limit). let CREATE's gas = limit. If None: let CALL's gas = (requested > GAS ? [OOG] : GAS). let CREATE's gas = GAS

Don't ever make empty accounts; contracts start with nonce=1. Also, don't charge 25k when sending/suicide zero-value.

Kill empty accounts if touched.

Blockhash instruction gas cost.

Static Call opcode enabled.

RETURNDATA and RETURNDATASIZE opcodes enabled.

SHL, SHR, SAR opcodes enabled.

Kill basic accounts below this balance if touched.

Enable EIP-86 rules

Wasm extra schedule settings, if wasm activated

Methods

impl Schedule
[src]

Schedule for the Frontier-era of the Ethereum main net.

Schedule for the Homestead-era of the Ethereum main net.

Schedule for the post-EIP-150-era of the Ethereum main net.

Schedule for the Byzantium fork of the Ethereum main net.

Schedule for the Constantinople fork of the Ethereum main net.

Returns wasm schedule

May panic if there is no wasm schedule

Trait Implementations

impl Default for Schedule
[src]

Returns the "default value" for a type. Read more

Auto Trait Implementations

impl Send for Schedule

impl Sync for Schedule