Trait rust_ssvm::host::HostContext[][src]

pub trait HostContext {
    fn account_exists(&mut self, addr: &[u8; 20]) -> bool;
fn get_storage(&mut self, addr: &[u8; 20], key: &[u8; 32]) -> [u8; 32];
fn set_storage(
        &mut self,
        addr: &[u8; 20],
        key: &[u8; 32],
        value: &[u8; 32]
    ) -> evmc_storage_status;
fn get_balance(&mut self, addr: &[u8; 20]) -> [u8; 32];
fn get_code_size(&mut self, addr: &[u8; 20]) -> usize;
fn get_code_hash(&mut self, addr: &[u8; 20]) -> [u8; 32];
fn copy_code(
        &mut self,
        addr: &[u8; 20],
        offset: &usize,
        buffer_data: &*mut u8,
        buffer_size: &usize
    ) -> usize;
fn selfdestruct(&mut self, addr: &[u8; 20], beneficiary: &[u8; 20]);
fn get_tx_context(
        &mut self
    ) -> ([u8; 32], [u8; 20], [u8; 20], i64, i64, i64, [u8; 32]);
fn get_block_hash(&mut self, number: i64) -> [u8; 32];
fn emit_log(
        &mut self,
        addr: &[u8; 20],
        topics: &Vec<[u8; 32], Global>,
        data: &[u8]
    );
fn call(
        &mut self,
        kind: evmc_call_kind,
        destination: &[u8; 20],
        sender: &[u8; 20],
        value: &[u8; 32],
        input: &[u8],
        gas: i64,
        depth: i32,
        is_static: bool,
        salt: &[u8; 32]
    ) -> (Vec<u8, Global>, i64, [u8; 20], evmc_status_code); }

Required methods

Implementors