Struct solana_runtime::message_processor::ThisInvokeContext [−][src]
pub struct ThisInvokeContext<'a> {
pub timings: ExecuteDetailsTimings,
// some fields omitted
}Fields
timings: ExecuteDetailsTimingsImplementations
impl<'a> ThisInvokeContext<'a>[src]
impl<'a> ThisInvokeContext<'a>[src]pub fn new(
program_id: &Pubkey,
rent: Rent,
pre_accounts: Vec<PreAccount>,
executables: &'a [(Pubkey, Rc<RefCell<AccountSharedData>>)],
account_deps: &'a [(Pubkey, Rc<RefCell<AccountSharedData>>)],
programs: &'a [(Pubkey, ProcessInstructionWithContext)],
log_collector: Option<Rc<LogCollector>>,
bpf_compute_budget: BpfComputeBudget,
executors: Rc<RefCell<Executors>>,
instruction_recorder: Option<InstructionRecorder>,
feature_set: Arc<FeatureSet>,
account_db: Arc<Accounts>,
ancestors: &'a Ancestors
) -> Self[src]
program_id: &Pubkey,
rent: Rent,
pre_accounts: Vec<PreAccount>,
executables: &'a [(Pubkey, Rc<RefCell<AccountSharedData>>)],
account_deps: &'a [(Pubkey, Rc<RefCell<AccountSharedData>>)],
programs: &'a [(Pubkey, ProcessInstructionWithContext)],
log_collector: Option<Rc<LogCollector>>,
bpf_compute_budget: BpfComputeBudget,
executors: Rc<RefCell<Executors>>,
instruction_recorder: Option<InstructionRecorder>,
feature_set: Arc<FeatureSet>,
account_db: Arc<Accounts>,
ancestors: &'a Ancestors
) -> Self
Trait Implementations
impl<'a> InvokeContext for ThisInvokeContext<'a>[src]
impl<'a> InvokeContext for ThisInvokeContext<'a>[src]fn push(&mut self, key: &Pubkey) -> Result<(), InstructionError>[src]
fn push(&mut self, key: &Pubkey) -> Result<(), InstructionError>[src]Push a program ID on to the invocation stack
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_write_privileges: Option<&[bool]>
) -> Result<(), InstructionError>[src]
fn verify_and_update(
&mut self,
message: &Message,
instruction: &CompiledInstruction,
accounts: &[Rc<RefCell<AccountSharedData>>],
caller_write_privileges: 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 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 Read more
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
Auto Trait Implementations
impl<'a> !RefUnwindSafe for ThisInvokeContext<'a>
impl<'a> !Send for ThisInvokeContext<'a>
impl<'a> !Sync for ThisInvokeContext<'a>
impl<'a> Unpin for ThisInvokeContext<'a>
impl<'a> !UnwindSafe for ThisInvokeContext<'a>
Blanket Implementations
impl<T> AbiExample for T[src]
impl<T> AbiExample for T[src]impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> Instrument for T[src]
impl<T> Instrument for T[src]fn instrument(self, span: Span) -> Instrumented<Self>[src]
fn instrument(self, span: Span) -> Instrumented<Self>[src]Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
fn in_current_span(self) -> Instrumented<Self>[src]
fn in_current_span(self) -> Instrumented<Self>[src]impl<T> Pointable for T
impl<T> Pointable for Timpl<T> Same<T> for T
impl<T> Same<T> for Ttype Output = T
type Output = TShould always be Self
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,