# Struct ethcore::evm::schedule::Schedule [−] [src]

    pub struct Schedule {
        pub exceptional_failed_code_deposit: bool,
        pub have_delegate_call: 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,
    }

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

`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

`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`

Aditional 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

`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.

## Methods

### `impl Schedule`
[src]

#### `fn new_frontier() -> Schedule`

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

#### `fn new_homestead() -> Schedule`

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

#### `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.

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)