Struct scrypto_test::prelude::costing::FeeTable
source · pub struct FeeTable;
Expand description
Fee table specifies how each costing entry should be costed.
§High Level Guideline
- Max execution cost unit limit: 100,000,000
- Max execution cost unit limit: 50,000,000
- Transaction fee = Network Execution + Network Finalization + Tip + Network Storage + Royalties
- Execution time for 100,000,000 cost units’ worth of computation: <= 1 second
- Baseline: 1 microsecond = 100 cost units
Implementations§
source§impl FeeTable
impl FeeTable
pub fn new() -> FeeTable
pub fn verify_tx_signatures_cost(&self, n: usize) -> u32
pub fn validate_tx_payload_cost(&self, size: usize) -> u32
pub fn run_native_code_cost( &self, package_address: &PackageAddress, export_name: &str, input_size: &usize ) -> u32
pub fn run_wasm_code_cost( &self, _package_address: &PackageAddress, _export_name: &str, wasm_execution_units: u32 ) -> u32
pub fn instantiate_wasm_code_cost(&self, size: usize) -> u32
pub fn before_invoke_cost(&self, _actor: &Actor, input_size: usize) -> u32
pub fn after_invoke_cost(&self, input_size: usize) -> u32
pub fn allocate_node_id_cost(&self) -> u32
pub fn create_node_cost(&self, event: &CreateNodeEvent<'_>) -> u32
pub fn pin_node_cost(&self, _node_id: &NodeId) -> u32
pub fn drop_node_cost(&self, event: &DropNodeEvent<'_>) -> u32
pub fn move_module_cost(&self, event: &MoveModuleEvent<'_>) -> u32
pub fn open_substate_cost(&self, event: &OpenSubstateEvent<'_>) -> u32
pub fn read_substate_cost(&self, event: &ReadSubstateEvent<'_>) -> u32
pub fn write_substate_cost(&self, event: &WriteSubstateEvent<'_>) -> u32
pub fn close_substate_cost(&self, event: &CloseSubstateEvent) -> u32
pub fn set_substate_cost(&self, event: &SetSubstateEvent<'_>) -> u32
pub fn remove_substate_cost(&self, event: &RemoveSubstateEvent<'_>) -> u32
pub fn mark_substate_as_transient_cost( &self, _node_id: &NodeId, _partition_number: &PartitionNumber, _substate_key: &SubstateKey ) -> u32
pub fn scan_keys_cost(&self, event: &ScanKeysEvent<'_>) -> u32
pub fn drain_substates_cost(&self, event: &DrainSubstatesEvent<'_>) -> u32
pub fn scan_sorted_substates_cost( &self, event: &ScanSortedSubstatesEvent<'_> ) -> u32
pub fn lock_fee_cost(&self) -> u32
pub fn query_fee_reserve_cost(&self) -> u32
pub fn query_actor_cost(&self) -> u32
pub fn query_transaction_hash_cost(&self) -> u32
pub fn generate_ruid_cost(&self) -> u32
pub fn emit_event_cost(&self, size: usize) -> u32
pub fn emit_log_cost(&self, size: usize) -> u32
pub fn panic_cost(&self, size: usize) -> u32
pub fn bls12381_v1_verify_cost(&self, size: usize) -> u32
pub fn bls12381_v1_aggregate_verify_cost(&self, sizes: &[usize]) -> u32
pub fn bls12381_v1_fast_aggregate_verify_cost( &self, size: usize, keys_cnt: usize ) -> u32
pub fn bls12381_g2_signature_aggregate_cost(&self, signatures_cnt: usize) -> u32
pub fn keccak256_hash_cost(&self, size: usize) -> u32
pub fn commit_state_updates_cost(&self, store_commit: &StoreCommit) -> u32
pub fn commit_events_cost(&self, events: &Vec<Event>) -> u32
pub fn commit_logs_cost(&self, logs: &Vec<(Level, String)>) -> u32
Trait Implementations§
source§impl Categorize<ScryptoCustomValueKind> for FeeTable
impl Categorize<ScryptoCustomValueKind> for FeeTable
source§impl<D> Decode<ScryptoCustomValueKind, D> for FeeTablewhere
D: Decoder<ScryptoCustomValueKind>,
impl<D> Decode<ScryptoCustomValueKind, D> for FeeTablewhere
D: Decoder<ScryptoCustomValueKind>,
source§fn decode_body_with_value_kind(
decoder: &mut D,
value_kind: ValueKind<ScryptoCustomValueKind>
) -> Result<FeeTable, DecodeError>
fn decode_body_with_value_kind( decoder: &mut D, value_kind: ValueKind<ScryptoCustomValueKind> ) -> Result<FeeTable, DecodeError>
Decodes the type from the decoder, which should match a preloaded value kind. Read more
source§impl Describe<ScryptoCustomTypeKind> for FeeTable
impl Describe<ScryptoCustomTypeKind> for FeeTable
source§const TYPE_ID: RustTypeId = _
const TYPE_ID: RustTypeId = _
The
TYPE_ID
should give a unique identifier for its SBOR schema type.
An SBOR schema type capture details about the SBOR payload, how it should be interpreted, validated and displayed. Read moresource§fn type_data() -> TypeData<ScryptoCustomTypeKind, RustTypeId>
fn type_data() -> TypeData<ScryptoCustomTypeKind, RustTypeId>
Returns the local schema for the given type. Read more
source§fn add_all_dependencies(aggregator: &mut TypeAggregator<C>)
fn add_all_dependencies(aggregator: &mut TypeAggregator<C>)
For each type referenced in
get_local_type_data
, we need to ensure that the type and all of its own references
get added to the aggregator. Read moresource§impl<E> Encode<ScryptoCustomValueKind, E> for FeeTablewhere
E: Encoder<ScryptoCustomValueKind>,
impl<E> Encode<ScryptoCustomValueKind, E> for FeeTablewhere
E: Encoder<ScryptoCustomValueKind>,
source§fn encode_value_kind(&self, encoder: &mut E) -> Result<(), EncodeError>
fn encode_value_kind(&self, encoder: &mut E) -> Result<(), EncodeError>
Encodes the SBOR value’s kind to the encoder
source§fn encode_body(&self, encoder: &mut E) -> Result<(), EncodeError>
fn encode_body(&self, encoder: &mut E) -> Result<(), EncodeError>
Encodes the SBOR body of the type to the encoder. Read more
source§impl SborTuple<ScryptoCustomValueKind> for FeeTable
impl SborTuple<ScryptoCustomValueKind> for FeeTable
fn get_length(&self) -> usize
Auto Trait Implementations§
impl RefUnwindSafe for FeeTable
impl Send for FeeTable
impl Sync for FeeTable
impl Unpin for FeeTable
impl UnwindSafe for FeeTable
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
Casts
self
to type T
. The semantics of numeric casting with the as
operator are followed, so <T as As>::as_::<U>
can be used in the same way as T as U
for numeric conversions. Read moresource§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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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
.§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
.§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.§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.