Trait scrypto_test::prelude::KernelCallbackObject
source · pub trait KernelCallbackObject: Sized {
type LockData: Default + Clone;
type CallFrameData: CallFrameReferences;
type CallbackState;
Show 27 methods
// Required methods
fn init<S>(
&mut self,
store: &S
) -> Result<Self::CallbackState, RuntimeError>
where S: BootStore;
fn start<Y>(
api: &mut Y,
manifest_encoded_instructions: &[u8],
pre_allocated_addresses: &Vec<PreAllocatedAddress>,
references: &IndexSet<Reference>,
blobs: &IndexMap<Hash, Vec<u8>>
) -> Result<Vec<u8>, RuntimeError>
where Y: KernelApi<Self>;
fn on_teardown<Y>(api: &mut Y) -> Result<(), RuntimeError>
where Y: KernelApi<Self>;
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§
type LockData: Default + Clone
type CallFrameData: CallFrameReferences
type CallbackState
Required Methods§
sourcefn init<S>(&mut self, store: &S) -> Result<Self::CallbackState, RuntimeError>where
S: BootStore,
fn init<S>(&mut self, store: &S) -> Result<Self::CallbackState, RuntimeError>where
S: BootStore,
Initialize the system layer with data loaded from the substate store
fn start<Y>(
api: &mut Y,
manifest_encoded_instructions: &[u8],
pre_allocated_addresses: &Vec<PreAllocatedAddress>,
references: &IndexSet<Reference>,
blobs: &IndexMap<Hash, Vec<u8>>
) -> Result<Vec<u8>, RuntimeError>where
Y: KernelApi<Self>,
fn on_teardown<Y>(api: &mut Y) -> Result<(), RuntimeError>where
Y: KernelApi<Self>,
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>,
Object Safety§
This trait is not object safe.