Trait solana_sdk::process_instruction::InvokeContext [−][src]
pub trait InvokeContext {}Show methods
fn push(
&mut self,
key: &Pubkey,
keyed_accounts: &[(bool, bool, &Pubkey, &RefCell<AccountSharedData>)]
) -> 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 remove_first_keyed_account(&mut self) -> Result<(), InstructionError>; fn get_keyed_accounts(
&self
) -> Result<&[KeyedAccount<'_>], 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
fn push(
&mut self,
key: &Pubkey,
keyed_accounts: &[(bool, bool, &Pubkey, &RefCell<AccountSharedData>)]
) -> Result<(), InstructionError>
[src]
fn push(
&mut self,
key: &Pubkey,
keyed_accounts: &[(bool, bool, &Pubkey, &RefCell<AccountSharedData>)]
) -> Result<(), InstructionError>
[src]Push a stack frame onto the invocation stack
Used in MessageProcessor::process_cross_program_instruction
fn pop(&mut self)
[src]
fn pop(&mut self)
[src]Pop a stack frame from the invocation stack
Used in MessageProcessor::process_cross_program_instruction
fn invoke_depth(&self) -> usize
[src]
fn invoke_depth(&self) -> usize
[src]Current depth of the invocation stake
fn verify_and_update(
&mut self,
message: &Message,
instruction: &CompiledInstruction,
accounts: &[Rc<RefCell<AccountSharedData>>],
caller_pivileges: Option<&[bool]>
) -> Result<(), InstructionError>
[src]
fn verify_and_update(
&mut self,
message: &Message,
instruction: &CompiledInstruction,
accounts: &[Rc<RefCell<AccountSharedData>>],
caller_pivileges: Option<&[bool]>
) -> Result<(), InstructionError>
[src]Verify and update PreAccount state based on program execution
fn get_caller(&self) -> Result<&Pubkey, InstructionError>
[src]
fn get_caller(&self) -> Result<&Pubkey, InstructionError>
[src]Get the program ID of the currently executing program
fn remove_first_keyed_account(&mut self) -> Result<(), InstructionError>
[src]
fn remove_first_keyed_account(&mut self) -> Result<(), InstructionError>
[src]Removes the first keyed account
fn get_keyed_accounts(&self) -> Result<&[KeyedAccount<'_>], InstructionError>
[src]
fn get_keyed_accounts(&self) -> Result<&[KeyedAccount<'_>], InstructionError>
[src]Get the list of keyed accounts
fn get_programs(&self) -> &[(Pubkey, ProcessInstructionWithContext)]ⓘ
[src]
fn get_programs(&self) -> &[(Pubkey, ProcessInstructionWithContext)]ⓘ
[src]Get a list of built-in programs
fn get_logger(&self) -> Rc<RefCell<dyn Logger>>
[src]
fn get_logger(&self) -> Rc<RefCell<dyn Logger>>
[src]Get this invocation’s logger
fn get_bpf_compute_budget(&self) -> &BpfComputeBudget
[src]
fn get_bpf_compute_budget(&self) -> &BpfComputeBudget
[src]Get this invocation’s compute budget
fn get_compute_meter(&self) -> Rc<RefCell<dyn ComputeMeter>>
[src]
fn get_compute_meter(&self) -> Rc<RefCell<dyn ComputeMeter>>
[src]Get this invocation’s compute meter
fn add_executor(&self, pubkey: &Pubkey, executor: Arc<dyn Executor>)
[src]
fn add_executor(&self, pubkey: &Pubkey, executor: Arc<dyn Executor>)
[src]Loaders may need to do work in order to execute a program. Cache the work that can be re-used across executions
fn get_executor(&self, pubkey: &Pubkey) -> Option<Arc<dyn Executor>>
[src]
fn get_executor(&self, pubkey: &Pubkey) -> Option<Arc<dyn Executor>>
[src]Get the completed loader work that can be re-used across executions
fn record_instruction(&self, instruction: &Instruction)
[src]
fn record_instruction(&self, instruction: &Instruction)
[src]Record invoked instruction
fn is_feature_active(&self, feature_id: &Pubkey) -> bool
[src]
fn is_feature_active(&self, feature_id: &Pubkey) -> bool
[src]Get the bank’s active feature set
fn get_account(&self, pubkey: &Pubkey) -> Option<Rc<RefCell<AccountSharedData>>>
[src]
fn get_account(&self, pubkey: &Pubkey) -> Option<Rc<RefCell<AccountSharedData>>>
[src]Get an account from a pre-account
Implementors
impl<'a> InvokeContext for MockInvokeContext<'a>
[src]
impl<'a> InvokeContext for MockInvokeContext<'a>
[src]fn push(
&mut self,
key: &Pubkey,
keyed_accounts: &[(bool, bool, &Pubkey, &RefCell<AccountSharedData>)]
) -> Result<(), InstructionError>
[src]
&mut self,
key: &Pubkey,
keyed_accounts: &[(bool, bool, &Pubkey, &RefCell<AccountSharedData>)]
) -> Result<(), InstructionError>
fn pop(&mut self)
[src]
fn invoke_depth(&self) -> usize
[src]
fn verify_and_update(
&mut self,
_message: &Message,
_instruction: &CompiledInstruction,
_accounts: &[Rc<RefCell<AccountSharedData>>],
_caller_pivileges: Option<&[bool]>
) -> Result<(), InstructionError>
[src]
&mut self,
_message: &Message,
_instruction: &CompiledInstruction,
_accounts: &[Rc<RefCell<AccountSharedData>>],
_caller_pivileges: Option<&[bool]>
) -> Result<(), InstructionError>
fn get_caller(&self) -> Result<&Pubkey, InstructionError>
[src]
fn remove_first_keyed_account(&mut self) -> Result<(), InstructionError>
[src]
fn get_keyed_accounts(&self) -> Result<&[KeyedAccount<'_>], InstructionError>
[src]
fn get_programs(&self) -> &[(Pubkey, ProcessInstructionWithContext)]ⓘ
[src]
fn get_logger(&self) -> Rc<RefCell<dyn Logger>>
[src]
fn get_bpf_compute_budget(&self) -> &BpfComputeBudget
[src]
fn get_compute_meter(&self) -> Rc<RefCell<dyn ComputeMeter>>
[src]
fn add_executor(&self, _pubkey: &Pubkey, _executor: Arc<dyn Executor>)
[src]
fn get_executor(&self, _pubkey: &Pubkey) -> Option<Arc<dyn Executor>>
[src]
fn record_instruction(&self, _instruction: &Instruction)
[src]
fn is_feature_active(&self, _feature_id: &Pubkey) -> bool
[src]
fn get_account(&self, pubkey: &Pubkey) -> Option<Rc<RefCell<AccountSharedData>>>
[src]
fn update_timing(
&mut self,
_serialize_us: u64,
_create_vm_us: u64,
_execute_us: u64,
_deserialize_us: u64
)
[src]
&mut self,
_serialize_us: u64,
_create_vm_us: u64,
_execute_us: u64,
_deserialize_us: u64
)