Struct tetsy_vm::Schedule [−][src]
Definition of the cost schedule and other parameterisations for the VVM.
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_dirty_gas: Option<usize>
Special gas price for dirty gas of SSTORE, after net gas metering.
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
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.
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.
latest_version: U256
Latest VM version for contract creation transaction.
versions: HashMap<U256, VersionedSchedule>
All supported non-legacy VM versions.
wasm: Option<WasmCosts>
Wasm extra schedule settings, if wasm activated
Implementations
impl Schedule
[src]
pub fn new_frontier() -> Schedule
[src]
Schedule for the Frontier-era of the Vapory main net.
pub fn new_homestead() -> Schedule
[src]
Schedule for the Homestead-era of the Vapory main net.
pub fn new_post_eip150(
max_code_size: usize,
fix_exp: bool,
no_empty: bool,
kill_empty: bool
) -> Schedule
[src]
max_code_size: usize,
fix_exp: bool,
no_empty: bool,
kill_empty: bool
) -> Schedule
Schedule for the post-EIP-150-era of the Vapory main net.
pub fn new_byzantium() -> Schedule
[src]
Schedule for the Byzantium fork of the Vapory main net.
pub fn new_constantinople() -> Schedule
[src]
Schedule for the Constantinople fork of the Vapory main net.
pub fn new_istanbul() -> Schedule
[src]
Schedule for the Istanbul fork of the Vapory main net.
pub fn wasm(&self) -> &WasmCosts
[src]
Returns wasm schedule
May panic if there is no wasm schedule
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Schedule
impl Send for Schedule
impl Sync for Schedule
impl Unpin for Schedule
impl UnwindSafe for Schedule
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> MaybeDebug for T where
T: Debug,
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,
T: Debug,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,