pub trait KernelCallbackObject: Sized {
    type LockData: Default + Clone;
    type CallFrameData: CallFrameReferences;
    type Init: Clone;
    type ExecutionOutput;
    type Receipt: ExecutionReceipt;

Show 29 methods // Required methods fn init<S: BootStore + CommitableSubstateStore>( store: &mut S, executable: &Executable<'_>, init: Self::Init ) -> Result<Self, RejectionReason>; fn verify_boot_ref_value( &mut self, node_id: &NodeId, value: &IndexedScryptoValue ) -> Result<StableReferenceType, BootloadingError>; fn start<Y>( api: &mut Y, manifest_encoded_instructions: &[u8], pre_allocated_addresses: &Vec<PreAllocatedAddress>, references: &IndexSet<Reference>, blobs: &IndexMap<Hash, Vec<u8>> ) -> Result<Self::ExecutionOutput, RuntimeError> where Y: KernelApi<Self>; fn finish( &mut self, store_commit_info: StoreCommitInfo ) -> Result<(), RuntimeError>; fn create_receipt<S: SubstateDatabase>( self, track: Track<'_, S, SpreadPrefixKeyMapper>, executable: &Executable<'_>, result: Result<Self::ExecutionOutput, TransactionExecutionError> ) -> Self::Receipt; fn on_pin_node(&mut self, node_id: &NodeId) -> Result<(), RuntimeError>; fn on_create_node<Y>( api: &mut Y, event: CreateNodeEvent<'_> ) -> Result<(), RuntimeError> where Y: KernelInternalApi<Self>; fn on_drop_node<Y>( api: &mut Y, event: DropNodeEvent<'_> ) -> Result<(), RuntimeError> where Y: KernelInternalApi<Self>; fn on_move_module<Y>( api: &mut Y, event: MoveModuleEvent<'_> ) -> Result<(), RuntimeError> where Y: KernelInternalApi<Self>; fn on_open_substate<Y>( api: &mut Y, event: OpenSubstateEvent<'_> ) -> Result<(), RuntimeError> where Y: KernelInternalApi<Self>; fn on_close_substate<Y>( api: &mut Y, event: CloseSubstateEvent ) -> Result<(), RuntimeError> where Y: KernelInternalApi<Self>; fn on_read_substate<Y>( api: &mut Y, event: ReadSubstateEvent<'_> ) -> Result<(), RuntimeError> where Y: KernelInternalApi<Self>; fn on_write_substate<Y>( api: &mut Y, event: WriteSubstateEvent<'_> ) -> Result<(), RuntimeError> where Y: KernelInternalApi<Self>; fn on_set_substate( &mut self, event: SetSubstateEvent<'_> ) -> Result<(), RuntimeError>; fn on_remove_substate( &mut self, event: RemoveSubstateEvent<'_> ) -> Result<(), RuntimeError>; fn on_scan_keys( &mut self, event: ScanKeysEvent<'_> ) -> Result<(), RuntimeError>; fn on_drain_substates( &mut self, event: DrainSubstatesEvent<'_> ) -> Result<(), RuntimeError>; fn on_scan_sorted_substates( &mut self, event: ScanSortedSubstatesEvent<'_> ) -> Result<(), RuntimeError>; fn before_invoke<Y>( invocation: &KernelInvocation<Self::CallFrameData>, api: &mut Y ) -> Result<(), RuntimeError> where Y: KernelApi<Self>; fn after_invoke<Y>( output: &IndexedScryptoValue, api: &mut Y ) -> Result<(), RuntimeError> where Y: KernelApi<Self>; fn on_execution_start<Y>(api: &mut Y) -> Result<(), RuntimeError> where Y: KernelApi<Self>; fn on_execution_finish<Y>( message: &CallFrameMessage, api: &mut Y ) -> Result<(), RuntimeError> where Y: KernelApi<Self>; fn on_allocate_node_id<Y>( entity_type: EntityType, api: &mut Y ) -> Result<(), RuntimeError> where Y: KernelApi<Self>; fn invoke_upstream<Y>( args: &IndexedScryptoValue, api: &mut Y ) -> Result<IndexedScryptoValue, RuntimeError> where Y: KernelApi<Self>; fn auto_drop<Y>(nodes: Vec<NodeId>, api: &mut Y) -> Result<(), RuntimeError> where Y: KernelApi<Self>; fn on_mark_substate_as_transient( &mut self, node_id: &NodeId, partition_number: &PartitionNumber, substate_key: &SubstateKey ) -> Result<(), RuntimeError>; fn on_substate_lock_fault<Y>( node_id: NodeId, partition_num: PartitionNumber, offset: &SubstateKey, api: &mut Y ) -> Result<bool, RuntimeError> where Y: KernelApi<Self>; fn on_drop_node_mut<Y>( node_id: &NodeId, api: &mut Y ) -> Result<(), RuntimeError> where Y: KernelApi<Self>; fn on_move_node<Y>( node_id: &NodeId, is_moving_down: bool, is_to_barrier: bool, destination_blueprint_id: Option<BlueprintId>, api: &mut Y ) -> Result<(), RuntimeError> where Y: KernelApi<Self>;
}

Required Associated Types§

Required Methods§

source

fn init<S: BootStore + CommitableSubstateStore>( store: &mut S, executable: &Executable<'_>, init: Self::Init ) -> Result<Self, RejectionReason>

Create the callback object (system layer) with data loaded from the substate store

source

fn verify_boot_ref_value( &mut self, node_id: &NodeId, value: &IndexedScryptoValue ) -> Result<StableReferenceType, BootloadingError>

Verifies and returns the type of a given reference used during boot

source

fn start<Y>( api: &mut Y, manifest_encoded_instructions: &[u8], pre_allocated_addresses: &Vec<PreAllocatedAddress>, references: &IndexSet<Reference>, blobs: &IndexMap<Hash, Vec<u8>> ) -> Result<Self::ExecutionOutput, RuntimeError>
where Y: KernelApi<Self>,

Start execution

source

fn finish( &mut self, store_commit_info: StoreCommitInfo ) -> Result<(), RuntimeError>

Finish execution

source

fn create_receipt<S: SubstateDatabase>( self, track: Track<'_, S, SpreadPrefixKeyMapper>, executable: &Executable<'_>, result: Result<Self::ExecutionOutput, TransactionExecutionError> ) -> Self::Receipt

Create final receipt

source

fn on_pin_node(&mut self, node_id: &NodeId) -> Result<(), RuntimeError>

source

fn on_create_node<Y>( api: &mut Y, event: CreateNodeEvent<'_> ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<Self>,

source

fn on_drop_node<Y>( api: &mut Y, event: DropNodeEvent<'_> ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<Self>,

source

fn on_move_module<Y>( api: &mut Y, event: MoveModuleEvent<'_> ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<Self>,

source

fn on_open_substate<Y>( api: &mut Y, event: OpenSubstateEvent<'_> ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<Self>,

source

fn on_close_substate<Y>( api: &mut Y, event: CloseSubstateEvent ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<Self>,

source

fn on_read_substate<Y>( api: &mut Y, event: ReadSubstateEvent<'_> ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<Self>,

source

fn on_write_substate<Y>( api: &mut Y, event: WriteSubstateEvent<'_> ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<Self>,

source

fn on_set_substate( &mut self, event: SetSubstateEvent<'_> ) -> Result<(), RuntimeError>

source

fn on_remove_substate( &mut self, event: RemoveSubstateEvent<'_> ) -> Result<(), RuntimeError>

source

fn on_scan_keys(&mut self, event: ScanKeysEvent<'_>) -> Result<(), RuntimeError>

source

fn on_drain_substates( &mut self, event: DrainSubstatesEvent<'_> ) -> Result<(), RuntimeError>

source

fn on_scan_sorted_substates( &mut self, event: ScanSortedSubstatesEvent<'_> ) -> Result<(), RuntimeError>

source

fn before_invoke<Y>( invocation: &KernelInvocation<Self::CallFrameData>, api: &mut Y ) -> Result<(), RuntimeError>
where Y: KernelApi<Self>,

source

fn after_invoke<Y>( output: &IndexedScryptoValue, api: &mut Y ) -> Result<(), RuntimeError>
where Y: KernelApi<Self>,

source

fn on_execution_start<Y>(api: &mut Y) -> Result<(), RuntimeError>
where Y: KernelApi<Self>,

source

fn on_execution_finish<Y>( message: &CallFrameMessage, api: &mut Y ) -> Result<(), RuntimeError>
where Y: KernelApi<Self>,

source

fn on_allocate_node_id<Y>( entity_type: EntityType, api: &mut Y ) -> Result<(), RuntimeError>
where Y: KernelApi<Self>,

source

fn invoke_upstream<Y>( args: &IndexedScryptoValue, api: &mut Y ) -> Result<IndexedScryptoValue, RuntimeError>
where Y: KernelApi<Self>,

source

fn auto_drop<Y>(nodes: Vec<NodeId>, api: &mut Y) -> Result<(), RuntimeError>
where Y: KernelApi<Self>,

source

fn on_mark_substate_as_transient( &mut self, node_id: &NodeId, partition_number: &PartitionNumber, substate_key: &SubstateKey ) -> Result<(), RuntimeError>

source

fn on_substate_lock_fault<Y>( node_id: NodeId, partition_num: PartitionNumber, offset: &SubstateKey, api: &mut Y ) -> Result<bool, RuntimeError>
where Y: KernelApi<Self>,

source

fn on_drop_node_mut<Y>( node_id: &NodeId, api: &mut Y ) -> Result<(), RuntimeError>
where Y: KernelApi<Self>,

source

fn on_move_node<Y>( node_id: &NodeId, is_moving_down: bool, is_to_barrier: bool, destination_blueprint_id: Option<BlueprintId>, api: &mut Y ) -> Result<(), RuntimeError>
where Y: KernelApi<Self>,

Object Safety§

This trait is not object safe.

Implementors§