Trait evm_runtime::Handler [−][src]
pub trait Handler { type CreateInterrupt; type CreateFeedback; type CallInterrupt; type CallFeedback;}Show 27 methods
fn balance(&self, address: H160) -> U256; fn code_size(&self, address: H160) -> U256; fn code_hash(&self, address: H160) -> H256; fn code(&self, address: H160) -> Vec<u8>; fn storage(&self, address: H160, index: H256) -> H256; fn original_storage(&self, address: H160, index: H256) -> H256; fn gas_left(&self) -> U256; fn gas_price(&self) -> U256; fn origin(&self) -> H160; fn block_hash(&self, number: U256) -> H256; fn block_number(&self) -> U256; fn block_coinbase(&self) -> H160; fn block_timestamp(&self) -> U256; fn block_difficulty(&self) -> U256; fn block_gas_limit(&self) -> U256; fn chain_id(&self) -> U256; fn exists(&self, address: H160) -> bool; fn deleted(&self, address: H160) -> bool; fn set_storage(
&mut self,
address: H160,
index: H256,
value: H256
) -> Result<(), ExitError>; fn log(
&mut self,
address: H160,
topics: Vec<H256>,
data: Vec<u8>
) -> Result<(), ExitError>; fn mark_delete(
&mut self,
address: H160,
target: H160
) -> Result<(), ExitError>; fn create(
&mut self,
caller: H160,
scheme: CreateScheme,
value: U256,
init_code: Vec<u8>,
target_gas: Option<u64>
) -> Capture<(ExitReason, Option<H160>, Vec<u8>), Self::CreateInterrupt>; fn call(
&mut self,
code_address: H160,
transfer: Option<Transfer>,
input: Vec<u8>,
target_gas: Option<u64>,
is_static: bool,
context: Context
) -> Capture<(ExitReason, Vec<u8>), Self::CallInterrupt>; fn pre_validate(
&mut self,
context: &Context,
opcode: Opcode,
stack: &Stack
) -> Result<(), ExitError>; fn create_feedback(
&mut self,
_feedback: Self::CreateFeedback
) -> Result<(), ExitError> { ... } fn call_feedback(
&mut self,
_feedback: Self::CallFeedback
) -> Result<(), ExitError> { ... } fn other(
&mut self,
_opcode: Opcode,
_stack: &mut Machine
) -> Result<(), ExitError> { ... }
Expand description
EVM context handler.
Associated Types
type CreateInterrupt
type CreateInterrupt
Type of CREATE
interrupt.
type CreateFeedback
type CreateFeedback
Feedback value for CREATE
interrupt.
type CallInterrupt
type CallInterrupt
Type of CALL
interrupt.
type CallFeedback
type CallFeedback
Feedback value of CALL
interrupt.
Required methods
fn original_storage(&self, address: H160, index: H256) -> H256
fn original_storage(&self, address: H160, index: H256) -> H256
Get original storage value of address at index.
fn block_hash(&self, number: U256) -> H256
fn block_hash(&self, number: U256) -> H256
Get environmental block hash.
fn block_number(&self) -> U256
fn block_number(&self) -> U256
Get environmental block number.
fn block_coinbase(&self) -> H160
fn block_coinbase(&self) -> H160
Get environmental coinbase.
fn block_timestamp(&self) -> U256
fn block_timestamp(&self) -> U256
Get environmental block timestamp.
fn block_difficulty(&self) -> U256
fn block_difficulty(&self) -> U256
Get environmental block difficulty.
fn block_gas_limit(&self) -> U256
fn block_gas_limit(&self) -> U256
Get environmental gas limit.
Set storage value of address at index.
Create a log owned by address with given topics and data.
Mark an address to be deleted, with funds transferred to target.
Invoke a create operation.
Invoke a call operation.
Provided methods
fn create_feedback(
&mut self,
_feedback: Self::CreateFeedback
) -> Result<(), ExitError>
fn create_feedback(
&mut self,
_feedback: Self::CreateFeedback
) -> Result<(), ExitError>
Feed in create feedback.
fn call_feedback(
&mut self,
_feedback: Self::CallFeedback
) -> Result<(), ExitError>
fn call_feedback(
&mut self,
_feedback: Self::CallFeedback
) -> Result<(), ExitError>
Feed in call feedback.