Trait solana_sdk::process_instruction::InvokeContext[][src]

pub trait InvokeContext {
Show methods fn push(&mut self, key: &Pubkey) -> Result<(), InstructionError>;
fn pop(&mut self);
fn invoke_depth(&self) -> usize;
fn verify_and_update(
        &mut self,
        message: &Message,
        instruction: &CompiledInstruction,
        accounts: &[Rc<RefCell<AccountSharedData>>],
        caller_pivileges: Option<&[bool]>
    ) -> Result<(), InstructionError>;
fn get_caller(&self) -> Result<&Pubkey, InstructionError>;
fn get_programs(&self) -> &[(Pubkey, ProcessInstructionWithContext)];
fn get_logger(&self) -> Rc<RefCell<dyn Logger>>;
fn get_bpf_compute_budget(&self) -> &BpfComputeBudget;
fn get_compute_meter(&self) -> Rc<RefCell<dyn ComputeMeter>>;
fn add_executor(&self, pubkey: &Pubkey, executor: Arc<dyn Executor>);
fn get_executor(&self, pubkey: &Pubkey) -> Option<Arc<dyn Executor>>;
fn record_instruction(&self, instruction: &Instruction);
fn is_feature_active(&self, feature_id: &Pubkey) -> bool;
fn get_account(
        &self,
        pubkey: &Pubkey
    ) -> Option<Rc<RefCell<AccountSharedData>>>;
fn update_timing(
        &mut self,
        serialize_us: u64,
        create_vm_us: u64,
        execute_us: u64,
        deserialize_us: u64
    );
fn get_sysvar_data(&self, id: &Pubkey) -> Option<Rc<Vec<u8>>>;
}
Expand description

Invocation context passed to loaders

Required methods

Push a program ID on to the invocation stack

Pop a program ID off of the invocation stack

Current depth of the invocation stake

Verify and update PreAccount state based on program execution

Get the program ID of the currently executing program

Get a list of built-in programs

Get this invocation’s logger

Get this invocation’s compute budget

Get this invocation’s compute meter

Loaders may need to do work in order to execute a program. Cache the work that can be re-used across executions

Get the completed loader work that can be re-used across executions

Record invoked instruction

Get the bank’s active feature set

Get an account from a pre-account

Update timing

Get sysvar data

Implementors