pub struct Schedule {
Show 67 fields pub exceptional_failed_code_deposit: bool, pub have_delegate_call: bool, pub have_create2: bool, pub have_revert: bool, pub have_extcodehash: 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 cold_sload_cost: usize, pub cold_account_access_cost: usize, pub warm_storage_read_cost: 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 extcodehash_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 have_chain_id: bool, pub have_selfbalance: bool, pub have_subs: bool, pub kill_dust: CleanDustMode, pub eip1283: bool, pub eip1706: bool, pub keep_unsigned_nonce: bool, pub wasm: Option<WasmCosts>, pub eip2929: bool, pub eip2930: bool, pub eip1559: bool, pub eip1559_elasticity_multiplier: usize, pub eip1559_gas_limit_bump: usize, pub eip3198: bool, pub max_refund_quotient: usize, pub eip3541: bool,
}
Expand description

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

Fields

exceptional_failed_code_deposit: bool

Does it support exceptional failed code deposit

have_delegate_call: bool

Does it have a delegate cal

have_create2: bool

Does it have a CREATE2 instruction

have_revert: bool

Does it have a REVERT instruction

have_extcodehash: bool

Does it have a EXTCODEHASH instruction

stack_limit: usize

VM stack limit

max_depth: usize

Max number of nested calls/creates

tier_step_gas: [usize; 8]

Gas prices for instructions in all tiers

exp_gas: usize

Gas price for EXP opcode

exp_byte_gas: usize

Additional gas for EXP opcode for each byte of exponent

sha3_gas: usize

Gas price for SHA3 opcode

sha3_word_gas: usize

Additional gas for SHA3 opcode for each word of hashed memory

sload_gas: usize

Gas price for loading from storage

sstore_set_gas: usize

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

sstore_reset_gas: usize

Gas price for altering value in storage

sstore_refund_gas: usize

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

jumpdest_gas: usize

Gas price for JUMPDEST opcode

log_gas: usize

Gas price for LOG*

log_data_gas: usize

Additional gas for data in LOG*

log_topic_gas: usize

Additional gas for each topic in LOG*

create_gas: usize

Gas price for CREATE opcode

call_gas: usize

Gas price for *CALL* opcodes

cold_sload_cost: usize

EIP-2929 COLD_SLOAD_COST

cold_account_access_cost: usize

EIP-2929 COLD_ACCOUNT_ACCESS_COST

warm_storage_read_cost: usize

EIP-2929 WARM_STORAGE_READ_COST

call_stipend: usize

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

call_value_transfer_gas: usize

Additional gas required for value transfer (CALL|CALLCODE)

call_new_account_gas: usize

Additional gas for creating new account (CALL|CALLCODE)

suicide_refund_gas: usize

Refund for SUICIDE

memory_gas: usize

Gas for used memory

quad_coeff_div: usize

Coefficient used to convert memory size to gas price for memory

create_data_gas: usize

Cost for contract length when executing CREATE

create_data_limit: usize

Maximum code size when creating a contract.

tx_gas: usize

Transaction cost

tx_create_gas: usize

CREATE transaction cost

tx_data_zero_gas: usize

Additional cost for empty data transaction

tx_data_non_zero_gas: usize

Additional cost for non-empty data transaction

copy_gas: usize

Gas price for copying memory

extcodesize_gas: usize

Price of EXTCODESIZE

extcodecopy_base_gas: usize

Base price of EXTCODECOPY

balance_gas: usize

Price of BALANCE

extcodehash_gas: usize

Price of EXTCODEHASH

suicide_gas: usize

Price of SUICIDE

suicide_to_new_account_cost: usize

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

sub_gas_cap_divisor: Option<usize>

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

no_empty: bool

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

kill_empty: bool

Kill empty accounts if touched.

blockhash_gas: usize

Blockhash instruction gas cost.

have_static_call: bool

Static Call opcode enabled.

have_return_data: bool

RETURNDATA and RETURNDATASIZE opcodes enabled.

have_bitwise_shifting: bool

SHL, SHR, SAR opcodes enabled.

have_chain_id: bool

CHAINID opcode enabled.

have_selfbalance: bool

SELFBALANCE opcode enabled.

have_subs: bool

BEGINSUB, JUMPSUB and RETURNSUB opcodes enabled.

kill_dust: CleanDustMode

Kill basic accounts below this balance if touched.

eip1283: bool

Enable EIP-1283 rules

eip1706: bool

Enable EIP-1706 rules

keep_unsigned_nonce: bool

VM execution does not increase null signed address nonce if this field is true.

wasm: Option<WasmCosts>

Wasm extra schedule settings, if wasm activated

eip2929: bool

Enable EIP-2929 rules

eip2930: bool

Enable EIP-2930 rules for optional access list transactions. it depends on EIP-2929

eip1559: bool

Enable EIP-1559 rules

eip1559_elasticity_multiplier: usize

Elasticity multiplier

eip1559_gas_limit_bump: usize

EIP-1559 bumps the gas_limit of fork block by elasticity_multiplier

eip3198: bool

Enable BASEFEE opcode

max_refund_quotient: usize

Gas used in transaction divided by this number is the maximum refundable amount.

eip3541: bool

Implementations

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

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

source

pub fn new_post_eip150(
    max_code_size: usize,
    fix_exp: bool,
    no_empty: bool,
    kill_empty: bool
) -> Schedule

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.

Schedule for the Istanbul fork of the Ethereum main net.

Schedule for the Yolov3 testnet of the Ethereum main net.

Schedule for the London fork of the Ethereum main net.

Returns wasm schedule

May panic if there is no wasm schedule

Trait Implementations

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.