pub struct FeeTable { /* private fields */ }
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(version: SystemVersion) -> FeeTable
pub fn latest() -> FeeTable
pub fn cuttlefish() -> FeeTable
pub fn bottlenose() -> FeeTable
pub fn anemone() -> FeeTable
pub fn babylon() -> FeeTable
pub fn verify_tx_signatures_cost(&self, n: usize) -> u32
pub fn validate_tx_payload_cost(&self, size: usize) -> u32
pub fn check_reference(&self, event: &CheckReferenceEvent<'_>) -> u32
pub fn check_intent_validity(&self) -> u32
pub fn check_timestamp(&self) -> 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 get_stack_id(&self) -> u32
pub fn get_owned_nodes(&self) -> u32
pub fn switch_stack(&self) -> u32
pub fn send_to_stack(&self, data_len: usize) -> u32
pub fn set_call_frame_data(&self, data_len: usize) -> u32
pub fn lock_fee_cost(&self) -> u32
pub fn query_fee_reserve_cost(&self) -> u32
pub fn query_costing_module(&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 encode_bech32_address_cost(&self) -> 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 blake2b256_hash_cost(&self, size: usize) -> u32
pub fn ed25519_verify_cost(&self, size: usize) -> u32
pub fn secp256k1_ecdsa_verify_cost(&self) -> u32
pub fn secp256k1_ecdsa_verify_and_key_recover_cost(&self) -> 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
pub fn commit_intent_status(&self, num_of_intent_statuses: usize) -> 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<ScryptoCustomTypeKind>)
fn add_all_dependencies(aggregator: &mut TypeAggregator<ScryptoCustomTypeKind>)
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 Freeze for FeeTable
impl RefUnwindSafe for FeeTable
impl Send for FeeTable
impl Sync for FeeTable
impl Unpin for FeeTable
impl UnwindSafe for FeeTable
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> DowncastSync for T
impl<T> DowncastSync for T
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