Skip to main content

platform_version/version/fee/data_contract_registration/
mod.rs

1use bincode::{Decode, Encode};
2
3pub mod v1;
4pub mod v2;
5pub mod v3;
6
7/// These are the fee costs for various actions excluding validation
8/// Re-Validation will happen on data contract update which is why we don't bundle them
9/// together.
10#[derive(Clone, Debug, Default, Encode, Decode, PartialEq, Eq)]
11pub struct FeeDataContractRegistrationVersion {
12    pub base_contract_registration_fee: u64,
13    pub document_type_registration_fee: u64,
14    pub document_type_base_non_unique_index_registration_fee: u64,
15    pub document_type_base_unique_index_registration_fee: u64,
16    /// All contested indexes are unique, but if the index is contested you only apply this fee
17    pub document_type_base_contested_index_registration_fee: u64,
18    pub token_registration_fee: u64,
19    pub token_uses_perpetual_distribution_fee: u64,
20    pub token_uses_pre_programmed_distribution_fee: u64,
21    /// Charged per token whose distribution rules carry a once-per-identity distribution. Read
22    /// by `registration_cost` v2; zero in the schedules that predate protocol version 14, where
23    /// the distribution does not exist.
24    pub token_uses_once_per_identity_distribution_fee: u64,
25    pub search_keyword_fee: u64,
26}