pub struct CostingModule {
pub config: CostingModuleConfig,
pub fee_reserve: SystemLoanFeeReserve,
pub fee_table: FeeTable,
pub on_apply_cost: OnApplyCost,
pub tx_payload_len: usize,
pub tx_num_of_signature_validations: usize,
pub cost_breakdown: Option<CostBreakdown>,
pub detailed_cost_breakdown: Option<DetailedCostBreakdown>,
pub current_depth: usize,
}
Fields§
§config: CostingModuleConfig
§fee_reserve: SystemLoanFeeReserve
§fee_table: FeeTable
§on_apply_cost: OnApplyCost
§tx_payload_len: usize
§tx_num_of_signature_validations: usize
§cost_breakdown: Option<CostBreakdown>
§detailed_cost_breakdown: Option<DetailedCostBreakdown>
§current_depth: usize
This keeps track of the current kernel depth.
Implementations§
Source§impl CostingModule
impl CostingModule
pub fn apply_execution_cost( &mut self, costing_entry: ExecutionCostingEntry<'_>, ) -> Result<(), CostingError>
pub fn apply_execution_cost_2( &mut self, costing_entry: ExecutionCostingEntry<'_>, ) -> Result<(), CostingError>
pub fn apply_deferred_execution_cost( &mut self, costing_entry: ExecutionCostingEntry<'_>, ) -> Result<(), CostingError>
pub fn apply_deferred_finalization_cost( &mut self, costing_entry: FinalizationCostingEntry<'_>, ) -> Result<(), CostingError>
pub fn apply_deferred_storage_cost( &mut self, storage_type: StorageType, size_increase: usize, ) -> Result<(), CostingError>
pub fn apply_finalization_cost( &mut self, costing_entry: FinalizationCostingEntry<'_>, ) -> Result<(), CostingError>
pub fn apply_storage_cost( &mut self, storage_type: StorageType, size_increase: usize, ) -> Result<(), CostingError>
pub fn lock_fee( &mut self, vault_id: NodeId, locked_fee: LiquidFungibleResource, contingent: bool, )
pub fn unpack_for_receipt( self, ) -> (SystemLoanFeeReserve, Option<CostBreakdown>, Option<DetailedCostBreakdown>)
Trait Implementations§
Source§impl Clone for CostingModule
impl Clone for CostingModule
Source§fn clone(&self) -> CostingModule
fn clone(&self) -> CostingModule
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for CostingModule
impl Debug for CostingModule
Source§impl InitSystemModule for CostingModule
impl InitSystemModule for CostingModule
fn init(&mut self) -> Result<(), BootloadingError>
fn on_teardown(&mut self) -> Result<(), RuntimeError>
Source§impl PrivilegedSystemModule for CostingModule
impl PrivilegedSystemModule for CostingModule
Source§fn privileged_before_invoke(
api: &mut impl SystemBasedKernelApi,
invocation: &KernelInvocation<Actor>,
) -> Result<(), RuntimeError>
fn privileged_before_invoke( api: &mut impl SystemBasedKernelApi, invocation: &KernelInvocation<Actor>, ) -> Result<(), RuntimeError>
Runs after SystemModule::before_invoke Called from the Module Mixer
Source§impl ResolvableSystemModule for CostingModule
impl ResolvableSystemModule for CostingModule
fn resolve_from_system(system: &mut impl HasModules) -> &mut CostingModule
Source§impl<ModuleApi> SystemModule<ModuleApi> for CostingModulewhere
ModuleApi: SystemModuleApiFor<CostingModule>,
impl<ModuleApi> SystemModule<ModuleApi> for CostingModulewhere
ModuleApi: SystemModuleApiFor<CostingModule>,
fn before_invoke( api: &mut ModuleApi, invocation: &KernelInvocation<Actor>, ) -> Result<(), RuntimeError>
fn after_invoke( api: &mut ModuleApi, output: &IndexedScryptoValue, ) -> Result<(), RuntimeError>
fn on_create_node( api: &mut ModuleApi, event: &CreateNodeEvent<'_>, ) -> Result<(), RuntimeError>
fn on_pin_node( api: &mut ModuleApi, node_id: &NodeId, ) -> Result<(), RuntimeError>
fn on_drop_node( api: &mut ModuleApi, event: &DropNodeEvent<'_>, ) -> Result<(), RuntimeError>
fn on_move_module( api: &mut ModuleApi, event: &MoveModuleEvent<'_>, ) -> Result<(), RuntimeError>
fn on_open_substate( api: &mut ModuleApi, event: &OpenSubstateEvent<'_>, ) -> Result<(), RuntimeError>
fn on_mark_substate_as_transient( api: &mut ModuleApi, node_id: &NodeId, partition_number: &PartitionNumber, substate_key: &SubstateKey, ) -> Result<(), RuntimeError>
fn on_read_substate( api: &mut ModuleApi, event: &ReadSubstateEvent<'_>, ) -> Result<(), RuntimeError>
fn on_write_substate( api: &mut ModuleApi, event: &WriteSubstateEvent<'_>, ) -> Result<(), RuntimeError>
fn on_close_substate( api: &mut ModuleApi, event: &CloseSubstateEvent, ) -> Result<(), RuntimeError>
fn on_set_substate( api: &mut ModuleApi, event: &SetSubstateEvent<'_>, ) -> Result<(), RuntimeError>
fn on_remove_substate( api: &mut ModuleApi, event: &RemoveSubstateEvent<'_>, ) -> Result<(), RuntimeError>
fn on_scan_keys( api: &mut ModuleApi, event: &ScanKeysEvent<'_>, ) -> Result<(), RuntimeError>
fn on_drain_substates( api: &mut ModuleApi, event: &DrainSubstatesEvent<'_>, ) -> Result<(), RuntimeError>
fn on_scan_sorted_substates( api: &mut ModuleApi, event: &ScanSortedSubstatesEvent<'_>, ) -> Result<(), RuntimeError>
fn on_allocate_node_id( api: &mut ModuleApi, _entity_type: EntityType, ) -> Result<(), RuntimeError>
fn on_get_stack_id(api: &mut ModuleApi) -> Result<(), RuntimeError>
fn on_switch_stack(api: &mut ModuleApi) -> Result<(), RuntimeError>
fn on_send_to_stack( api: &mut ModuleApi, data_len: usize, ) -> Result<(), RuntimeError>
fn on_set_call_frame_data( api: &mut ModuleApi, data_len: usize, ) -> Result<(), RuntimeError>
fn on_get_owned_nodes(api: &mut ModuleApi) -> Result<(), RuntimeError>
fn on_execution_start(_api: &mut ModuleApi) -> Result<(), RuntimeError>
fn on_execution_finish( _api: &mut ModuleApi, _message: &CallFrameMessage, ) -> Result<(), RuntimeError>
Auto Trait Implementations§
impl Freeze for CostingModule
impl !RefUnwindSafe for CostingModule
impl !Send for CostingModule
impl !Sync for CostingModule
impl Unpin for CostingModule
impl !UnwindSafe for CostingModule
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, U> ContextualTryInto<U> for Twhere
U: ContextualTryFrom<T>,
impl<T, U> ContextualTryInto<U> for Twhere
U: ContextualTryFrom<T>,
type Error = <U as ContextualTryFrom<T>>::Error
type Context = <U as ContextualTryFrom<T>>::Context
fn contextual_try_into( self, context: &<U as ContextualTryFrom<T>>::Context, ) -> Result<U, <U as ContextualTryFrom<T>>::Error>
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more