[−][src]Trait evm::Patch
Represents different block range context.
Associated Types
type Account: AccountPatch
Account patch
Required methods
fn account_patch(&self) -> &Self::Account
Get account patch
fn code_deposit_limit(&self) -> Option<usize>
Maximum contract size.
fn callstack_limit(&self) -> usize
Limit of the call stack.
fn gas_extcode(&self) -> Gas
Gas paid for extcode.
fn gas_balance(&self) -> Gas
Gas paid for BALANCE opcode.
fn gas_sload(&self) -> Gas
Gas paid for SLOAD opcode.
fn gas_suicide(&self) -> Gas
Gas paid for SUICIDE opcode.
fn gas_suicide_new_account(&self) -> Gas
Gas paid for SUICIDE opcode when it hits a new account.
fn gas_call(&self) -> Gas
Gas paid for CALL opcode.
fn gas_expbyte(&self) -> Gas
Gas paid for EXP opcode for every byte.
fn gas_transaction_create(&self) -> Gas
Gas paid for a contract creation transaction.
fn force_code_deposit(&self) -> bool
Whether to force code deposit even if it does not have enough gas.
fn has_delegate_call(&self) -> bool
Whether the EVM has DELEGATECALL opcode.
fn has_static_call(&self) -> bool
Whether the EVM has STATICCALL opcode.
fn has_revert(&self) -> bool
Whether the EVM has REVERT opcode.
fn has_return_data(&self) -> bool
Whether the EVM has RETURNDATASIZE and RETURNDATACOPY opcode.
fn has_bitwise_shift(&self) -> bool
Whether the EVM has SHL, SHR and SAR
fn has_create2(&self) -> bool
Whether the EVM has CREATE2
fn has_extcodehash(&self) -> bool
Whether the EVM has EXTCODEHASH
fn has_reduced_sstore_gas_metering(&self) -> bool
Whether EVM should implement the EIP1283 gas metering scheme for SSTORE opcode
fn err_on_call_with_more_gas(&self) -> bool
Whether to throw out of gas error when CALL/CALLCODE/DELEGATECALL requires more than maximum amount of gas.
fn call_create_l64_after_gas(&self) -> bool
If true, only consume at maximum l64(after_gas) when CALL/CALLCODE/DELEGATECALL.
fn memory_limit(&self) -> usize
Maximum size of the memory, in bytes. NOTE: NOT runtime-configurable by block number
fn is_precompiled_contract_enabled(&self, address: &Address) -> bool
Check if the precompiled contract enabled
fn precompileds(&self) -> &[(Address, Option<&[u8]>, &dyn Precompiled)]
Precompiled contracts at given address, with required code, and its definition.
Implementors
impl Patch for DynamicPatch
[src]
type Account = DynamicAccountPatch
fn account_patch(&self) -> &Self::Account
[src]
fn code_deposit_limit(&self) -> Option<usize>
[src]
fn callstack_limit(&self) -> usize
[src]
fn gas_extcode(&self) -> Gas
[src]
fn gas_balance(&self) -> Gas
[src]
fn gas_sload(&self) -> Gas
[src]
fn gas_suicide(&self) -> Gas
[src]
fn gas_suicide_new_account(&self) -> Gas
[src]
fn gas_call(&self) -> Gas
[src]
fn gas_expbyte(&self) -> Gas
[src]
fn gas_transaction_create(&self) -> Gas
[src]
fn force_code_deposit(&self) -> bool
[src]
fn has_delegate_call(&self) -> bool
[src]
fn has_static_call(&self) -> bool
[src]
fn has_revert(&self) -> bool
[src]
fn has_return_data(&self) -> bool
[src]
fn has_bitwise_shift(&self) -> bool
[src]
fn has_create2(&self) -> bool
[src]
fn has_extcodehash(&self) -> bool
[src]
fn has_reduced_sstore_gas_metering(&self) -> bool
[src]
fn err_on_call_with_more_gas(&self) -> bool
[src]
fn call_create_l64_after_gas(&self) -> bool
[src]
fn memory_limit(&self) -> usize
[src]
fn is_precompiled_contract_enabled(&self, address: &Address) -> bool
[src]
fn precompileds(
&self
) -> &[(Address, Option<&'static [u8]>, &'static dyn Precompiled)]
[src]
&self
) -> &[(Address, Option<&'static [u8]>, &'static dyn Precompiled)]
impl Patch for EmbeddedPatch
[src]
type Account = EmbeddedAccountPatch
fn account_patch(&self) -> &Self::Account
[src]
fn code_deposit_limit(&self) -> Option<usize>
[src]
fn callstack_limit(&self) -> usize
[src]
fn gas_extcode(&self) -> Gas
[src]
fn gas_balance(&self) -> Gas
[src]
fn gas_sload(&self) -> Gas
[src]
fn gas_suicide(&self) -> Gas
[src]
fn gas_suicide_new_account(&self) -> Gas
[src]
fn gas_call(&self) -> Gas
[src]
fn gas_expbyte(&self) -> Gas
[src]
fn gas_transaction_create(&self) -> Gas
[src]
fn force_code_deposit(&self) -> bool
[src]
fn has_delegate_call(&self) -> bool
[src]
fn has_static_call(&self) -> bool
[src]
fn has_revert(&self) -> bool
[src]
fn has_return_data(&self) -> bool
[src]
fn has_bitwise_shift(&self) -> bool
[src]
fn has_create2(&self) -> bool
[src]
fn has_extcodehash(&self) -> bool
[src]
fn has_reduced_sstore_gas_metering(&self) -> bool
[src]
fn err_on_call_with_more_gas(&self) -> bool
[src]
fn call_create_l64_after_gas(&self) -> bool
[src]
fn memory_limit(&self) -> usize
[src]
fn is_precompiled_contract_enabled(&self, address: &Address) -> bool
[src]
fn precompileds(
&self
) -> &'static [(Address, Option<&'static [u8]>, &'static dyn Precompiled)]
[src]
&self
) -> &'static [(Address, Option<&'static [u8]>, &'static dyn Precompiled)]
impl Patch for VMTestPatch
[src]
type Account = EmbeddedAccountPatch
fn account_patch(&self) -> &Self::Account
[src]
fn code_deposit_limit(&self) -> Option<usize>
[src]
fn callstack_limit(&self) -> usize
[src]
fn gas_extcode(&self) -> Gas
[src]
fn gas_balance(&self) -> Gas
[src]
fn gas_sload(&self) -> Gas
[src]
fn gas_suicide(&self) -> Gas
[src]
fn gas_suicide_new_account(&self) -> Gas
[src]
fn gas_call(&self) -> Gas
[src]
fn gas_expbyte(&self) -> Gas
[src]
fn gas_transaction_create(&self) -> Gas
[src]
fn force_code_deposit(&self) -> bool
[src]
fn has_delegate_call(&self) -> bool
[src]
fn has_static_call(&self) -> bool
[src]
fn has_revert(&self) -> bool
[src]
fn has_return_data(&self) -> bool
[src]
fn has_bitwise_shift(&self) -> bool
[src]
fn has_create2(&self) -> bool
[src]
fn has_extcodehash(&self) -> bool
[src]
fn has_reduced_sstore_gas_metering(&self) -> bool
[src]
fn err_on_call_with_more_gas(&self) -> bool
[src]
fn call_create_l64_after_gas(&self) -> bool
[src]
fn memory_limit(&self) -> usize
[src]
fn is_precompiled_contract_enabled(&self, address: &Address) -> bool
[src]
fn precompileds(
&self
) -> &'static [(Address, Option<&'static [u8]>, &'static dyn Precompiled)]
[src]
&self
) -> &'static [(Address, Option<&'static [u8]>, &'static dyn Precompiled)]