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

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], [u8; 32]);
fn get_block_hash(&mut self, number: i64) -> [u8; 32];
fn emit_log(&mut self, addr: &[u8; 20], topics: &Vec<[u8; 32]>, 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>, i64, [u8; 20], evmc_status_code); }

Required methods

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], [u8; 32])

fn get_block_hash(&mut self, number: i64) -> [u8; 32]

fn emit_log(&mut self, addr: &[u8; 20], topics: &Vec<[u8; 32]>, 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>, i64, [u8; 20], evmc_status_code)

Loading content...

Implementors

Loading content...