Trait evm::Ext[][src]

pub trait Ext {
    fn storage_at(&self, key: &H256) -> Result<H256, Error>;
fn set_storage(&mut self, key: H256, value: H256) -> Result<(), Error>;
fn exists(&self, address: &H160) -> Result<bool, Error>;
fn exists_and_not_null(&self, address: &H160) -> Result<bool, Error>;
fn origin_balance(&self) -> Result<U256, Error>;
fn balance(&self, address: &H160) -> Result<U256, Error>;
fn blockhash(&mut self, number: &U256) -> H256;
fn create(
        &mut self,
        gas: &U256,
        value: &U256,
        code: &[u8],
        address: CreateContractAddress
    ) -> ContractCreateResult;
fn call(
        &mut self,
        gas: &U256,
        sender_address: &H160,
        receive_address: &H160,
        value: Option<U256>,
        data: &[u8],
        code_address: &H160,
        output: &mut [u8],
        call_type: CallType
    ) -> MessageCallResult;
fn extcode(&self, address: &H160) -> Result<Arc<Vec<u8>>, Error>;
fn extcodesize(&self, address: &H160) -> Result<usize, Error>;
fn log(&mut self, topics: Vec<H256>, data: &[u8]) -> Result<(), Error>;
fn ret(
        self,
        gas: &U256,
        data: &ReturnData,
        apply_state: bool
    ) -> Result<U256, Error>;
fn suicide(&mut self, refund_address: &H160) -> Result<(), Error>;
fn schedule(&self) -> &Schedule;
fn env_info(&self) -> &EnvInfo;
fn depth(&self) -> usize;
fn inc_sstore_clears(&mut self);
fn is_static(&self) -> bool; fn trace_next_instruction(
        &mut self,
        _pc: usize,
        _instruction: u8,
        _current_gas: U256
    ) -> bool { ... }
fn trace_prepare_execute(
        &mut self,
        _pc: usize,
        _instruction: u8,
        _gas_cost: U256
    ) { ... }
fn trace_executed(
        &mut self,
        _gas_used: U256,
        _stack_push: &[U256],
        _mem_diff: Option<(usize, &[u8])>,
        _store_diff: Option<(U256, U256)>
    ) { ... } }

Externalities interface for EVMs

Required Methods

Returns a value for given key.

Stores a value for given key.

Determine whether an account exists.

Determine whether an account exists and is not null (zero balance/nonce, no code).

Balance of the origin account.

Returns address balance.

Returns the hash of one of the 256 most recent complete blocks.

Creates new contract.

Returns gas_left and contract address if contract creation was succesfull.

Message call.

Returns Err, if we run out of gas. Otherwise returns call_result which contains gas left and true if subcall was successfull.

Returns code at given address

Returns code size at given address

Creates log entry with given topics and data

Should be called when transaction calls RETURN opcode. Returns gas_left if cost of returning the data is not too high.

Should be called when contract commits suicide. Address to which funds should be refunded.

Returns schedule.

Returns environment info.

Returns current depth of execution.

If contract A calls contract B, and contract B calls C, then A depth is 0, B is 1, C is 2 and so on.

Increments sstore refunds count by 1.

Check if running in static context.

Provided Methods

Decide if any more operations should be traced. Passthrough for the VM trace.

Prepare to trace an operation. Passthrough for the VM trace.

Trace the finalised execution of a single instruction.

Implementations on Foreign Types

impl Ext for FakeExt
[src]

Implementors