diff --git a/book/src/contributing/coding-conventions.md b/book/src/contributing/coding-conventions.md index c4ee2670626..3b79f66926c 100644 --- a/book/src/contributing/coding-conventions.md +++ b/book/src/contributing/coding-conventions.md @@ -174,11 +174,14 @@ already owns a new schedule, amend that schedule instead of creating another generation nobody references. `fee_version_number` is a separate concept from the schedule generation: it -keys persisted fee history and storage-refund behaviour, and it is stored in -platform state. Inspect its consumers before changing it. `FEE_VERSION1` and -`FEE_VERSION2` both carry `fee_version_number: 1` because storage rates did not -change between them, only a fee group did. See the -[Fee System Overview](../fees/overview.md). +keys the fee history saved in platform state. Inspect its consumers before +changing it. `FEE_VERSION1` and `FEE_VERSION2` both carry +`fee_version_number: 1` because storage rates did not change between them, only +a fee group did. + +A schedule can change the storage rate without breaking refunds: from protocol +version 15 a refund is priced at the rate of the protocol version that ran the +epoch that stored the bytes. See the [Fee System Overview](../fees/overview.md). ### Consensus code reads the version from state @@ -225,8 +228,7 @@ The observed order in `drive` and `drive-abci` is: `&self`, domain inputs, `block_info`, mode flags (`apply`, `stateful`), the estimation map, `transaction`, the operations accumulator, `platform_version`. A new parameter goes up with the context items, never after `platform_version`. The same holds -for fields on context structs such as parse contexts. The known exception is -`previous_fee_versions`, which trails it on fee-returning methods. +for fields on context structs such as parse contexts. Why: readers of a few hundred versioned signatures expect the closing parameter to be the version. Appending after it breaks that scan. diff --git a/book/src/data-model/key-limits.md b/book/src/data-model/key-limits.md index ab5a2d820c7..6a60a578641 100644 --- a/book/src/data-model/key-limits.md +++ b/book/src/data-model/key-limits.md @@ -358,7 +358,7 @@ sequenceDiagram ```rust let ExecutionEvent::Paid { signing_key_limits: Some(signing_key_limits), .. } = event else { - return self.validate_fees_of_event_v0(event, block_info, transaction, platform_version, previous_fee_versions); + return self.validate_fees_of_event_v0(event, block_info, transaction, platform_version); }; ``` diff --git a/book/src/drive/batch-operations.md b/book/src/drive/batch-operations.md index abb25e45e7a..a37445f6d75 100644 --- a/book/src/drive/batch-operations.md +++ b/book/src/drive/batch-operations.md @@ -101,7 +101,6 @@ impl Drive { block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { if operations.is_empty() { return Ok(FeeResult::default()); @@ -147,13 +146,11 @@ impl Drive { } // Calculate total fee from accumulated costs - Drive::calculate_fee( + self.calculate_fee( None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } } diff --git a/book/src/drive/cost-tracking.md b/book/src/drive/cost-tracking.md index b24e8e67737..7d0396b1818 100644 --- a/book/src/drive/cost-tracking.md +++ b/book/src/drive/cost-tracking.md @@ -149,7 +149,6 @@ pub fn consume_to_fees_v0( epoch: &Epoch, epochs_per_era: u16, fee_version: &FeeVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result, Error> { drive_operations.into_iter().map(|operation| match operation { PreCalculatedFeeResult(f) => Ok(f), @@ -180,7 +179,7 @@ pub fn consume_to_fees_v0( removal_per_epoch_by_identifier, epoch.index, epochs_per_era, - previous_fee_versions, + |_| Ok(fee_version.storage.storage_disk_usage_credit_per_byte), )?, system_amount) } }; @@ -203,6 +202,12 @@ Each operation produces a `FeeResult` with four components: - **`fee_refunds`**: Credits returned because previously-stored data was removed. - **`removed_bytes_from_system`**: Bytes removed that were stored by the system (not any particular identity), so no refund is issued. +Generation 0 prices every refund at the current block's storage rate. From protocol version 15, +`consume_to_fees_v1` hands generation 0 each sectioned removal as a basic removal of as many +bytes, so everything else is priced the same, and then prices the refunds itself at the storage +rate of the protocol version that ran each storing epoch. `Drive::calculate_fee` reads that +version from the epoch's tree, so it is a method on `Drive`. + ## Ephemeral Cost Calculation The `ephemeral_cost` method on `OperationCost` computes the processing fee from the raw operation metrics: diff --git a/book/src/drive/finalize-tasks.md b/book/src/drive/finalize-tasks.md index 60e3ff3e84d..8c5bf874e82 100644 --- a/book/src/drive/finalize-tasks.md +++ b/book/src/drive/finalize-tasks.md @@ -118,7 +118,6 @@ pub(crate) fn apply_drive_operations_v0( block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { // ... @@ -150,7 +149,7 @@ pub(crate) fn apply_drive_operations_v0( } // Step 5: Calculate fees - Drive::calculate_fee(/* ... */) + self.calculate_fee(/* ... */) } ``` diff --git a/book/src/fees/overview.md b/book/src/fees/overview.md index 2a0ca963e16..02c5523939d 100644 --- a/book/src/fees/overview.md +++ b/book/src/fees/overview.md @@ -482,6 +482,14 @@ have elapsed since the data was stored — the longer the data has been stored, smaller the refund, because more of the distributed fees have already been paid out to proposers. +From protocol version 15 a refund is priced at the storage rate the bytes were +paid at. The storage flags say which epoch stored them, the first block of every +epoch records the epoch's protocol version in its epoch tree, and that version's +fee schedule has the rate, so `Drive::calculate_fee` reads it from there. Bytes +stored in the current epoch use the current block's rate, which is the same +schedule. Earlier protocol versions price every refund at the current block's +rate. Every schedule so far has the same storage rate, so the two agree. + There is a **dust limit**: refunds below 32 bytes worth of storage credits are discarded to prevent micro-refund spam. diff --git a/book/src/state-transitions/drive-operations.md b/book/src/state-transitions/drive-operations.md index 3b63da3e464..13a43aedd73 100644 --- a/book/src/state-transitions/drive-operations.md +++ b/book/src/state-transitions/drive-operations.md @@ -207,7 +207,6 @@ pub(crate) fn apply_drive_operations_v0( block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { if operations.is_empty() { return Ok(FeeResult::default()); @@ -239,9 +238,8 @@ pub(crate) fn apply_drive_operations_v0( task.execute(self, platform_version); } - Drive::calculate_fee( - None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, previous_fee_versions, + self.calculate_fee( + None, Some(cost_operations), &block_info.epoch, platform_version, ) } ``` @@ -303,13 +301,11 @@ At the end of `apply_drive_operations`, fees are calculated from the accumulated cost operations: ```rust -Drive::calculate_fee( +self.calculate_fee( None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, ) ``` diff --git a/book/src/versioning/versioned-dispatch.md b/book/src/versioning/versioned-dispatch.md index ad75ecde38c..906281d2545 100644 --- a/book/src/versioning/versioned-dispatch.md +++ b/book/src/versioning/versioned-dispatch.md @@ -80,7 +80,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -91,11 +90,11 @@ impl Drive { { 0 => self.update_contract_v0( contract, block_info, apply, - transaction, platform_version, previous_fee_versions, + transaction, platform_version, ), 1 => self.update_contract_v1( contract, block_info, apply, - transaction, platform_version, previous_fee_versions, + transaction, platform_version, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "update_contract".to_string(), diff --git a/packages/rs-dpp/src/fee/default_costs/mod.rs b/packages/rs-dpp/src/fee/default_costs/mod.rs index 59359361abc..3120b3d35ed 100644 --- a/packages/rs-dpp/src/fee/default_costs/mod.rs +++ b/packages/rs-dpp/src/fee/default_costs/mod.rs @@ -3,8 +3,7 @@ //! Fee costs for Known Platform operations //! -use crate::block::epoch::{Epoch, EpochIndex}; -use crate::fee::Credits; +use crate::block::epoch::EpochIndex; use platform_version::version::fee::{ FeeVersion, FeeVersionFieldsBeforeVersion4, FeeVersionNumber, }; @@ -21,144 +20,3 @@ pub type EpochIndexFeeVersionsForStorage = BTreeMap; - -/// A Known Cost Item is an item that changes costs depending on the Epoch -#[derive(Eq, PartialEq, Copy, Clone, Hash)] -pub enum KnownCostItem { - /// The storage cost used when writing bytes - StorageDiskUsageCreditPerByte, - /// The processing cost used when writing bytes - StorageProcessingCreditPerByte, - /// The processing cost used when loading bytes from storage - StorageLoadCreditPerByte, - /// The processing cost used when loading bytes not from storage - NonStorageLoadCreditPerByte, - /// The cost used when performing a disk seek - StorageSeekCost, - // The following are set costs of routine operations - /// The cost for fetching an identity balance - FetchIdentityBalanceProcessingCost, - /// The cost for fetching an identity key - FetchSingleIdentityKeyProcessingCost, - /// The cost for a Single SHA256 operation, with a specific size - SingleSHA256(usize), - /// The cost for a Blake3 operation, with a specific size - Blake3(usize), - /// The cost for a EcdsaSecp256k1 signature verification - VerifySignatureEcdsaSecp256k1, - /// The cost for a BLS12_381 signature verification - VerifySignatureBLS12_381, - /// The cost for a EcdsaHash160 signature verification - VerifySignatureEcdsaHash160, - /// The cost for a Bip13ScriptHash signature verification - VerifySignatureBip13ScriptHash, - /// The cost for a Eddsa25519Hash160 signature verification - VerifySignatureEddsa25519Hash160, -} - -impl KnownCostItem { - #[inline] - pub fn lookup_cost(&self, fee_version: &FeeVersion) -> Credits { - match self { - KnownCostItem::StorageDiskUsageCreditPerByte => { - fee_version.storage.storage_disk_usage_credit_per_byte - } - KnownCostItem::StorageProcessingCreditPerByte => { - fee_version.storage.storage_processing_credit_per_byte - } - KnownCostItem::StorageLoadCreditPerByte => { - fee_version.storage.storage_load_credit_per_byte - } - KnownCostItem::NonStorageLoadCreditPerByte => { - fee_version.storage.non_storage_load_credit_per_byte - } - KnownCostItem::StorageSeekCost => fee_version.storage.storage_seek_cost, - KnownCostItem::FetchIdentityBalanceProcessingCost => { - fee_version - .processing - .fetch_identity_balance_processing_cost - } - KnownCostItem::FetchSingleIdentityKeyProcessingCost => { - fee_version - .processing - .fetch_single_identity_key_processing_cost - } - KnownCostItem::Blake3(size) => { - fee_version.hashing.blake3_base - + fee_version.hashing.blake3_per_block * *size as u64 - } - KnownCostItem::SingleSHA256(size) => { - fee_version.hashing.single_sha256_base - + fee_version.hashing.sha256_per_block * *size as u64 - } - KnownCostItem::VerifySignatureEcdsaSecp256k1 => { - fee_version.signature.verify_signature_ecdsa_secp256k1 - } - KnownCostItem::VerifySignatureBLS12_381 => { - fee_version.signature.verify_signature_bls12_381 - } - KnownCostItem::VerifySignatureEcdsaHash160 => { - fee_version.signature.verify_signature_ecdsa_hash160 - } - KnownCostItem::VerifySignatureBip13ScriptHash => { - fee_version.signature.verify_signature_bip13_script_hash - } - KnownCostItem::VerifySignatureEddsa25519Hash160 => { - fee_version.signature.verify_signature_eddsa25519_hash160 - } - } - } - - pub fn lookup_cost_on_epoch( - &self, - epoch: &T, - cached_fee_version: &CachedEpochIndexFeeVersions, - ) -> Credits { - let version = epoch.active_fee_version(cached_fee_version); - self.lookup_cost(version) - } -} - -/// Costs for Epochs -pub trait EpochCosts { - /// Get the closest epoch in the past that has a cost table - /// This is where the base costs last changed - fn active_fee_version( - &self, - cached_fee_version: &CachedEpochIndexFeeVersions, - ) -> &'static FeeVersion; - /// Get the cost for the known cost item - fn cost_for_known_cost_item( - &self, - cached_fee_version: &CachedEpochIndexFeeVersions, - cost_item: KnownCostItem, - ) -> Credits; -} - -impl EpochCosts for Epoch { - /// Get the active fee version for an epoch - fn active_fee_version( - &self, - cached_fee_version: &CachedEpochIndexFeeVersions, - ) -> &'static FeeVersion { - // If the exact EpochIndex is matching to a FeeVersion update - if let Some(fee_version) = cached_fee_version.get(&self.index) { - return fee_version; - } - // else return the FeeVersion at lower adjacent EpochIndex (if available, else the FeeVersion of first PlatformVersion) - cached_fee_version - .range(..=self.index) - .next_back() - .map(|(_, fee_version)| *fee_version) - .unwrap_or_else(|| FeeVersion::first()) - } - - /// Get the cost for the known cost item - fn cost_for_known_cost_item( - &self, - cached_fee_version: &CachedEpochIndexFeeVersions, - cost_item: KnownCostItem, - ) -> Credits { - cost_item.lookup_cost_on_epoch(self, cached_fee_version) - } -} diff --git a/packages/rs-dpp/src/fee/fee_result/refunds.rs b/packages/rs-dpp/src/fee/fee_result/refunds.rs index 95142a4f82d..ced32741fda 100644 --- a/packages/rs-dpp/src/fee/fee_result/refunds.rs +++ b/packages/rs-dpp/src/fee/fee_result/refunds.rs @@ -3,9 +3,7 @@ //! Fee refunds are calculated based on removed bytes per epoch. //! -use crate::block::epoch::{Epoch, EpochIndex}; -use crate::fee::default_costs::KnownCostItem::StorageDiskUsageCreditPerByte; -use crate::fee::default_costs::{CachedEpochIndexFeeVersions, EpochCosts}; +use crate::block::epoch::EpochIndex; use crate::fee::epoch::distribution::calculate_storage_fee_refund_amount_and_leftovers; use crate::fee::epoch::{BytesPerEpoch, CreditsPerEpoch}; use crate::fee::Credits; @@ -35,17 +33,20 @@ pub type BytesPerEpochByIdentifier = BTreeMap<[u8; 32], BytesPerEpoch>; pub struct FeeRefunds(pub CreditsPerEpochByIdentifier); impl FeeRefunds { - /// Create fee refunds from GroveDB's StorageRemovalPerEpochByIdentifier - pub fn from_storage_removal( + /// Create fee refunds from GroveDB's StorageRemovalPerEpochByIdentifier, pricing the bytes + /// of each storing epoch at the storage rate `storage_rate_of_epoch` returns for it. + pub fn from_storage_removal( storage_removal: I, current_epoch_index: EpochIndex, epochs_per_era: u16, - previous_fee_versions: &CachedEpochIndexFeeVersions, - ) -> Result + storage_rate_of_epoch: F, + ) -> Result where I: IntoIterator, C: IntoIterator, E: TryInto, + F: Fn(EpochIndex) -> Result, + Err: From, { let refunds_per_epoch_by_identifier = storage_removal .into_iter() @@ -59,7 +60,7 @@ impl FeeRefunds { // TODO Add in multipliers once they have been made let credits: Credits = (bytes as Credits) - .checked_mul(Epoch::new(current_epoch_index)?.cost_for_known_cost_item(previous_fee_versions, StorageDiskUsageCreditPerByte)) + .checked_mul(storage_rate_of_epoch(epoch_index)?) .ok_or(ProtocolError::Overflow("storage written bytes cost overflow"))?; let (amount, _) = calculate_storage_fee_refund_amount_and_leftovers( @@ -71,10 +72,10 @@ impl FeeRefunds { Ok((epoch_index, amount)) }) - .collect::>() + .collect::>() .map(|credits_per_epochs| (identifier, credits_per_epochs)) }) - .collect::>()?; + .collect::>()?; Ok(Self(refunds_per_epoch_by_identifier)) } @@ -178,17 +179,19 @@ impl IntoIterator for FeeRefunds { #[cfg(test)] mod tests { use super::*; - use once_cell::sync::Lazy; - use platform_version::version::fee::FeeVersion; - - static EPOCH_CHANGE_FEE_VERSION_TEST: Lazy = - Lazy::new(|| BTreeMap::from([(0, FeeVersion::first())])); mod from_storage_removal { use super::*; use nohash_hasher::IntMap; + use platform_version::version::fee::FeeVersion; use std::iter::FromIterator; + fn first_schedule_rate(_: EpochIndex) -> Result { + Ok(FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte) + } + #[test] fn should_filter_out_refunds_under_the_limit() { let identity_id = [0; 32]; @@ -197,18 +200,47 @@ mod tests { let storage_removal = BytesPerEpochByIdentifier::from_iter([(identity_id, bytes_per_epoch)]); - let fee_refunds = FeeRefunds::from_storage_removal( - storage_removal, - 3, - 20, - &EPOCH_CHANGE_FEE_VERSION_TEST, - ) - .expect("should create fee refunds"); + let fee_refunds = + FeeRefunds::from_storage_removal(storage_removal, 3, 20, first_schedule_rate) + .expect("should create fee refunds"); let credits_per_epoch = fee_refunds.get(&identity_id).expect("should exists"); assert!(credits_per_epoch.get(&0).is_none()); assert!(credits_per_epoch.get(&1).is_some()); } + + #[test] + fn should_price_each_storing_epoch_at_its_own_storage_rate() { + let identity_id = [0; 32]; + let rate = first_schedule_rate(0).expect("should have a rate"); + // Bytes stored in epoch 1 were paid at twice the rate of bytes stored in epoch 2. + let storage_rate_of_epoch = + |epoch_index: EpochIndex| -> Result { + Ok(if epoch_index == 1 { 2 * rate } else { rate }) + }; + + let bytes_per_epoch = IntMap::from_iter([(1, 100), (2, 100)]); + let storage_removal = + BytesPerEpochByIdentifier::from_iter([(identity_id, bytes_per_epoch)]); + let fee_refunds = + FeeRefunds::from_storage_removal(storage_removal, 3, 20, storage_rate_of_epoch) + .expect("should create fee refunds"); + let credits_per_epoch = fee_refunds.get(&identity_id).expect("should exist"); + + for (storing_epoch, storing_rate) in [(1, 2 * rate), (2, rate)] { + let (expected_refund, _) = calculate_storage_fee_refund_amount_and_leftovers( + 100 * storing_rate, + storing_epoch, + 3, + 20, + ) + .expect("should calculate the refund"); + assert_eq!( + credits_per_epoch.get(&storing_epoch), + Some(&expected_refund) + ); + } + } } } diff --git a/packages/rs-drive-abci/src/abci/handler/finalize_block.rs b/packages/rs-drive-abci/src/abci/handler/finalize_block.rs index 48f7dbdbab9..bc11a538d60 100644 --- a/packages/rs-drive-abci/src/abci/handler/finalize_block.rs +++ b/packages/rs-drive-abci/src/abci/handler/finalize_block.rs @@ -949,7 +949,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("expected to apply the enqueue operations"); platform diff --git a/packages/rs-drive-abci/src/execution/check_tx/v0/mod.rs b/packages/rs-drive-abci/src/execution/check_tx/v0/mod.rs index 6a153311fe0..4f48f219bfd 100644 --- a/packages/rs-drive-abci/src/execution/check_tx/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/check_tx/v0/mod.rs @@ -76,7 +76,6 @@ where None, // address_balances_in_update not needed for check_tx &mut 0, // check_tx's transaction is discarded, its mints are never recorded platform_ref.state.current_platform_version()?, - platform_ref.state.previous_fee_versions(), ) } else { Ok(UnpaidConsensusExecutionError( @@ -187,7 +186,6 @@ where platform_ref.state.last_block_info(), None, platform_version, - platform_ref.state.previous_fee_versions(), )?; let (estimated_fee_result, mut errors) = validation_result.into_data_and_errors()?; diff --git a/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/add_process_epoch_change_operations/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/add_process_epoch_change_operations/v0/mod.rs index 9f8304290de..84c630f039a 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/add_process_epoch_change_operations/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/add_process_epoch_change_operations/v0/mod.rs @@ -224,7 +224,6 @@ mod tests { &BlockInfo::default(), Some(transaction), platform_version, - None, ) .expect("should apply batch"); } @@ -300,7 +299,6 @@ mod tests { &BlockInfo::default(), Some(transaction), platform_version, - None, ) .expect("should apply batch"); diff --git a/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/process_block_fees_and_validate_sum_trees/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/process_block_fees_and_validate_sum_trees/v0/mod.rs index 02729d3400b..9ed75c53a53 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/process_block_fees_and_validate_sum_trees/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/process_block_fees_and_validate_sum_trees/v0/mod.rs @@ -35,7 +35,6 @@ use crate::execution::types::processed_block_fees_outcome; use crate::platform_types::epoch_info::v0::EpochInfoV0Getters; use crate::platform_types::platform::Platform; -use crate::platform_types::platform_state::PlatformStateV0Methods; use drive::drive::credit_pools::epochs::operations_factory::EpochOperations; impl Platform { @@ -156,11 +155,6 @@ impl Platform { &block_info.to_block_info(epoch_info.try_into()?), Some(transaction), platform_version, - Some( - block_execution_context - .block_platform_state() - .previous_fee_versions(), - ), )?; let outcome = processed_block_fees_outcome::v0::ProcessedBlockFeesOutcome { diff --git a/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/tests.rs b/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/tests.rs index 4ec54f0d698..f5774a2cdac 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/tests.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/block_processing_end_events/tests.rs @@ -803,9 +803,8 @@ mod refund_tests { } #[tokio::test] - async fn test_document_refund_after_10_epochs_on_different_fee_version_increasing_fees() { + async fn test_document_refund_after_10_epochs() { let platform_version = PlatformVersion::latest(); - let platform_version_with_higher_fees = platform_version.clone(); let mut platform = TestPlatformBuilder::new() .build_with_mock_rpc() @@ -859,17 +858,13 @@ mod refund_tests { 0, None, &signer, - &platform_version_with_higher_fees, + platform_version, None, ) .await .expect("expect to create documents batch transition"); - let mut platform_state = platform.state.load().clone().deref().clone(); - - platform_state - .previous_fee_versions_mut() - .insert(5, platform_version_with_higher_fees.fee_version.as_static()); + let platform_state = platform.state.load().clone().deref().clone(); let (mut fee_results, _) = process_state_transitions( &platform, @@ -883,7 +878,7 @@ mod refund_tests { let credits_verified = platform .platform .drive - .calculate_total_credits_balance(None, &platform_version_with_higher_fees.drive) + .calculate_total_credits_balance(None, &platform_version.drive) .expect("expected to check sum trees"); let balanced = credits_verified @@ -909,7 +904,7 @@ mod refund_tests { fetch_expected_identity_balance( &platform, identity.id(), - &platform_version_with_higher_fees, + platform_version, expected_user_balance_after_deletion, ); } diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v0/mod.rs index 73b02be8b9c..84e9aaab3be 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v0/mod.rs @@ -14,8 +14,6 @@ use dpp::version::PlatformVersion; use drive::util::batch::DriveOperation::IdentityOperation; use drive::util::batch::IdentityOperationType::AddNewIdentity; -use crate::platform_types::platform_state::PlatformStateV0Methods; - use drive::grovedb::Transaction; use std::collections::BTreeMap; use tracing::Level; @@ -156,14 +154,12 @@ where } } - let previous_fee_versions = platform_state.map(|state| state.previous_fee_versions()); self.drive.apply_drive_operations( drive_operations, true, block_info, Some(transaction), platform_version, - previous_fee_versions, )?; let height = block_info.height; diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v1/mod.rs index 981eb9adefa..3b4a1217b10 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v1/mod.rs @@ -22,8 +22,6 @@ use drive::util::batch::IdentityOperationType::{ AddNewIdentity, AddNewKeysToMasternodeIdentity, DisableIdentityKeys, ReEnableIdentityKeys, }; -use crate::platform_types::platform_state::PlatformStateV0Methods; - use drive::grovedb::Transaction; use std::collections::BTreeMap; use tracing::Level; @@ -186,14 +184,12 @@ where } } - let previous_fee_versions = platform_state.map(|state| state.previous_fee_versions()); self.drive.apply_drive_operations( drive_operations, true, block_info, Some(transaction), platform_version, - previous_fee_versions, )?; let height = block_info.height; diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v1/payout_tests.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v1/payout_tests.rs index 846bcdb94ab..5a52bedbc46 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v1/payout_tests.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v1/payout_tests.rs @@ -643,7 +643,6 @@ fn should_fail_new_key_allocation_at_exhaustion_but_allow_reuse_and_revocation() &BlockInfo::default(), Some(&transaction), PlatformVersion::latest(), - None, ) .expect("add maximum key id"); let before = fixture.identity(&transaction); diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs index c34970dff1f..d5727a9652d 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs @@ -581,7 +581,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); } @@ -662,7 +661,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); @@ -722,7 +720,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); } @@ -803,7 +800,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); } @@ -885,7 +881,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); @@ -946,7 +941,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); } @@ -1044,7 +1038,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); } @@ -1283,7 +1276,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); @@ -1344,7 +1336,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); } diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/mod.rs index 1f81d17c0be..1f14f87ead9 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/mod.rs @@ -164,7 +164,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); } @@ -239,7 +238,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); } @@ -313,7 +311,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); @@ -340,7 +337,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply drive operations"); } diff --git a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_block_fees_into_pools_operations/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_block_fees_into_pools_operations/v0/mod.rs index 650507391c8..b9fbf64607a 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_block_fees_into_pools_operations/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_block_fees_into_pools_operations/v0/mod.rs @@ -164,7 +164,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("should apply batch"); @@ -243,7 +242,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("should apply batch"); diff --git a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_block_fees_into_pools_operations/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_block_fees_into_pools_operations/v1/mod.rs index 4df04e638fe..0a5bcd7c68c 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_block_fees_into_pools_operations/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_block_fees_into_pools_operations/v1/mod.rs @@ -134,7 +134,6 @@ mod tests { &BlockInfo::default(), Some(transaction), platform_version, - None, ) .expect("should apply the batch"); } diff --git a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_storage_fee_to_epochs_operations/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_storage_fee_to_epochs_operations/v0/mod.rs index 431b2a35e28..30e9c27f2ee 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_storage_fee_to_epochs_operations/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_storage_fee_to_epochs_operations/v0/mod.rs @@ -201,7 +201,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("should apply batch"); diff --git a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_storage_fee_to_epochs_operations/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_storage_fee_to_epochs_operations/v1/mod.rs index 26258c71256..3ce67cea542 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_storage_fee_to_epochs_operations/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_inwards_distribution/add_distribute_storage_fee_to_epochs_operations/v1/mod.rs @@ -261,7 +261,6 @@ mod tests { &BlockInfo::default(), Some(transaction), platform_version, - None, ) .expect("should apply batch"); } diff --git a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_distribute_fees_from_oldest_unpaid_epoch_pool_to_proposers_operations/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_distribute_fees_from_oldest_unpaid_epoch_pool_to_proposers_operations/v0/mod.rs index 39c17cb46a1..2f7e0c0c932 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_distribute_fees_from_oldest_unpaid_epoch_pool_to_proposers_operations/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_distribute_fees_from_oldest_unpaid_epoch_pool_to_proposers_operations/v0/mod.rs @@ -241,7 +241,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("should apply batch"); diff --git a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_distribute_fees_from_oldest_unpaid_epoch_pool_to_proposers_operations/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_distribute_fees_from_oldest_unpaid_epoch_pool_to_proposers_operations/v1/mod.rs index 680c86ae924..d8ab65848e1 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_distribute_fees_from_oldest_unpaid_epoch_pool_to_proposers_operations/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_distribute_fees_from_oldest_unpaid_epoch_pool_to_proposers_operations/v1/mod.rs @@ -271,7 +271,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("should apply batch"); diff --git a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v0/mod.rs index 3081570032e..52cccb3a8ba 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v0/mod.rs @@ -312,7 +312,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("should apply batch"); diff --git a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v1/mod.rs index 14de6beb0b4..2f4e4eb1095 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v1/mod.rs @@ -312,7 +312,6 @@ mod tests { &BlockInfo::default_with_epoch(current_epoch), Some(&transaction), platform_version, - None, ) .expect("seed total system credits"); let mut proposers = @@ -406,7 +405,6 @@ mod tests { &BlockInfo::default_with_epoch(current_epoch), Some(&transaction), platform_version, - None, ) .expect("missing proposer must not fail the epoch distribution batch"); let mut returned = 0; @@ -569,7 +567,6 @@ mod tests { &BlockInfo::default_with_epoch(current_epoch), Some(&transaction), platform_version, - None, ) .expect("pay shares without an owner balance"); assert_eq!( @@ -724,7 +721,6 @@ mod tests { &BlockInfo::default_with_epoch(current_epoch), Some(&transaction), platform_version, - None, ) .unwrap(); assert_eq!( @@ -820,7 +816,6 @@ mod tests { &BlockInfo::default_with_epoch(Epoch::new(2).unwrap()), Some(&transaction), legacy, - None, ) .unwrap(); assert_eq!( @@ -975,7 +970,6 @@ mod tests { &BlockInfo::default_with_epoch(next_epoch_tree), Some(&transaction), platform_version, - None, ) .expect("should apply batch"); @@ -1080,7 +1074,6 @@ mod tests { true, Some(transaction), platform_version, - None, ) .expect("expected to insert the reward share"); } @@ -1225,7 +1218,6 @@ mod tests { &BlockInfo::default_with_epoch(next_epoch_tree), Some(&transaction), platform_version, - None, ) .expect("should apply batch"); @@ -1395,7 +1387,6 @@ mod tests { &BlockInfo::default_with_epoch(next_epoch_tree), Some(&transaction), platform_version, - None, ) .expect("should apply batch"); diff --git a/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/test/addresses.rs b/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/test/addresses.rs index 86cee1daecb..acf54d79deb 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/test/addresses.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/test/addresses.rs @@ -47,7 +47,6 @@ impl Platform { block_info, transaction, platform_version, - None, )?; Ok(()) diff --git a/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v0/mod.rs index 5e0a2858a0d..e9faffc714f 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v0/mod.rs @@ -76,7 +76,6 @@ impl Platform { &block_info, transaction, platform_version, - None, // No previous_fee_versions needed for genesis state creation )?; Ok(()) diff --git a/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v1/mod.rs index 55c0ff2f344..71318924f64 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v1/mod.rs @@ -141,7 +141,6 @@ impl Platform { &block_info, transaction, platform_version, - None, // No previous_fee_versions needed for genesis state creation )?; Ok(()) diff --git a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/token_history_storage_flags_tests.rs b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/token_history_storage_flags_tests.rs index 7c10a360a60..64bac8f699e 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/token_history_storage_flags_tests.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/token_history_storage_flags_tests.rs @@ -342,7 +342,6 @@ fn insert_claim(platform: &TempPlatform) { true, None, pv, - None, ) .expect("persist legacy claim and indexes"); } diff --git a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/v0/mod.rs index d7dfd378053..1d6e7ca49d3 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/v0/mod.rs @@ -1659,7 +1659,6 @@ mod tests { true, Some(&transaction), platform_version_13, - None, ) .expect("expected to insert the grade document"); } diff --git a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/mod.rs index 6ef82d537fd..bbb548414bb 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/mod.rs @@ -13,7 +13,6 @@ use dpp::address_funds::PlatformAddress; use dpp::balances::credits::CreditOperation; use dpp::block::block_info::BlockInfo; use dpp::consensus::ConsensusError; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::Credits; use dpp::version::PlatformVersion; use drive::grovedb::Transaction; @@ -56,7 +55,6 @@ where address_balances_in_update: Option<&mut BTreeMap>, block_credit_mints: &mut Credits, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result { match platform_version .drive_abci @@ -72,7 +70,6 @@ where address_balances_in_update, block_credit_mints, platform_version, - previous_fee_versions, ), 1 => self.execute_event_v1( event, @@ -82,7 +79,6 @@ where address_balances_in_update, block_credit_mints, platform_version, - previous_fee_versions, ), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "execute_event".to_string(), diff --git a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/v0/mod.rs index 6bab00c6722..aaeab4e7248 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/v0/mod.rs @@ -17,7 +17,6 @@ use dpp::address_funds::{AddressFundsFeeStrategy, PlatformAddress}; use dpp::balances::credits::CreditOperation; use dpp::block::block_info::BlockInfo; use dpp::consensus::ConsensusError; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::fee::Credits; use dpp::identity::PartialIdentity; @@ -45,7 +44,6 @@ where transaction: &Transaction, block_credit_mints: &mut Credits, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result { if fee_validation_result.is_valid_with_data() { let credit_mints = DriveOperation::credit_mints(&operations); @@ -58,7 +56,6 @@ where block_info, Some(transaction), platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; @@ -122,7 +119,6 @@ where mut address_balances_in_update: Option<&mut BTreeMap>, block_credit_mints: &mut Credits, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result { if fee_validation_result.is_valid_with_data() { let credit_mints = DriveOperation::credit_mints(&operations); @@ -135,7 +131,6 @@ where block_info, Some(transaction), platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; @@ -380,7 +375,6 @@ where address_balances_in_update: Option<&mut BTreeMap>, block_credit_mints: &mut Credits, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result { let maybe_fee_validation_result = match event { ExecutionEvent::PaidFromAssetLock { .. } @@ -393,7 +387,6 @@ where block_info, Some(transaction), platform_version, - previous_fee_versions, )?) } ExecutionEvent::PaidFromAssetLockWithoutIdentity { .. } @@ -424,7 +417,6 @@ where transaction, block_credit_mints, platform_version, - previous_fee_versions, ) } ExecutionEvent::Paid { @@ -450,7 +442,6 @@ where transaction, block_credit_mints, platform_version, - previous_fee_versions, )?; // Track address outputs if provided (e.g., for IdentityCreditTransferToAddresses). @@ -491,7 +482,6 @@ where address_balances_in_update, block_credit_mints, platform_version, - previous_fee_versions, ) } // This is for Partially used Asset Locks @@ -508,7 +498,6 @@ where block_info, Some(transaction), platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; @@ -540,7 +529,6 @@ where block_info, Some(transaction), platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; @@ -594,7 +582,6 @@ where block_info, Some(transaction), platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; @@ -656,7 +643,6 @@ where block_info, Some(transaction), platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; @@ -723,7 +709,6 @@ where transaction, block_credit_mints, platform_version, - previous_fee_versions, ) } ExecutionEvent::Free { operations } => { @@ -735,7 +720,6 @@ where block_info, Some(transaction), platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; *block_credit_mints = block_credit_mints.saturating_add(credit_mints); @@ -750,7 +734,6 @@ mod tests { use super::*; use crate::platform_types::event_execution_result::EventExecutionResult; use crate::test::helpers::setup::TestPlatformBuilder; - use dpp::fee::default_costs::CachedEpochIndexFeeVersions; /// Regression for the recent-address-balance-changes gap: a `PaidFromShieldedPool` carrying an /// Unshield's output credit must fold that credit into the `address_balances_in_update` map (the @@ -766,7 +749,6 @@ mod tests { .build_with_mock_rpc() .set_genesis_state(); let transaction = platform.drive.grove.start_transaction(); - let fee_versions = CachedEpochIndexFeeVersions::new(); let output_address = PlatformAddress::P2pkh([0xBB; 20]); let event = ExecutionEvent::PaidFromShieldedPool { @@ -787,7 +769,6 @@ mod tests { Some(&mut address_balances), &mut 0, platform_version, - &fee_versions, ) .expect("execute_event_v0 should not error"); @@ -813,7 +794,6 @@ mod tests { .build_with_mock_rpc() .set_genesis_state(); let transaction = platform.drive.grove.start_transaction(); - let fee_versions = CachedEpochIndexFeeVersions::new(); let event = ExecutionEvent::PaidFromShieldedPool { operations: vec![], @@ -833,7 +813,6 @@ mod tests { Some(&mut address_balances), &mut 0, platform_version, - &fee_versions, ) .expect("execute_event_v0 should not error"); @@ -855,7 +834,6 @@ mod tests { .build_with_mock_rpc() .set_initial_state_structure(); let transaction = platform.drive.grove.start_transaction(); - let fee_versions = CachedEpochIndexFeeVersions::new(); let surplus_address = PlatformAddress::P2pkh([0x42; 20]); let event = ExecutionEvent::PaidFromAssetLockToPool { @@ -876,7 +854,6 @@ mod tests { Some(&mut address_balances), &mut 0, platform_version, - &fee_versions, ) .expect("execute_event_v0 should not error"); diff --git a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/v1/mod.rs index 20bf2efc204..ba324f73dc8 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/execute_event/v1/mod.rs @@ -15,7 +15,6 @@ use dpp::address_funds::PlatformAddress; use dpp::balances::credits::CreditOperation; use dpp::block::block_info::BlockInfo; use dpp::consensus::ConsensusError; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::{BalanceChange, FeeResult}; use dpp::fee::Credits; use dpp::version::PlatformVersion; @@ -66,7 +65,6 @@ where address_balances_in_update: Option<&mut BTreeMap>, block_credit_mints: &mut Credits, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result { // The sponsor pays for a valid batch only; fee validation below must judge the same // event execution charges, so the sponsor leaves the event before either sees it. @@ -103,17 +101,11 @@ where address_balances_in_update, block_credit_mints, platform_version, - previous_fee_versions, ); } - let mut fee_validation_result = self.settle_fees_of_event_v1( - &event, - block_info, - Some(transaction), - platform_version, - previous_fee_versions, - )?; + let mut fee_validation_result = + self.settle_fees_of_event_v1(&event, block_info, Some(transaction), platform_version)?; let ExecutionEvent::Paid { identity, @@ -173,7 +165,6 @@ where block_info, Some(transaction), platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; diff --git a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_raw_state_transitions/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_raw_state_transitions/v0/mod.rs index f42695f2aca..b8d7ecf46d2 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_raw_state_transitions/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_raw_state_transitions/v0/mod.rs @@ -1,6 +1,6 @@ use crate::error::Error; use crate::platform_types::platform::{Platform, PlatformRef}; -use crate::platform_types::platform_state::{PlatformState, PlatformStateV0Methods}; +use crate::platform_types::platform_state::PlatformState; use crate::rpc::core::CoreRPCLike; use dpp::block::block_info::BlockInfo; use dpp::consensus::codes::ErrorWithCode; @@ -233,7 +233,6 @@ where transaction, &mut block_credit_mints, platform_version, - platform_ref.state.previous_fee_versions(), ) .unwrap_or_else(error_to_internal_error_execution_result) }) diff --git a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/mod.rs index f1cb18611ed..16c478e7a26 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/mod.rs @@ -9,7 +9,6 @@ use crate::platform_types::platform::Platform; use crate::platform_types::state_transitions_processing_result::StateTransitionExecutionResult; use crate::rpc::core::CoreRPCLike; use dpp::block::block_info::BlockInfo; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::Credits; use dpp::validation::ConsensusValidationResult; use dpp::version::PlatformVersion; @@ -40,7 +39,6 @@ where /// * `transaction`: The GroveDB transaction. /// * `block_credit_mints`: Accumulates the credits the applied operations mint into Platform. /// * `platform_version`: The platform version. - /// * `previous_fee_versions`: The fee versions of earlier epochs, used to price the fees. /// /// # Returns /// @@ -59,7 +57,6 @@ where transaction: &Transaction, block_credit_mints: &mut Credits, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result> { match platform_version .drive_abci @@ -75,7 +72,6 @@ where transaction, block_credit_mints, platform_version, - previous_fee_versions, ), 1 => self.process_validation_result_v1( raw_state_transition, @@ -85,7 +81,6 @@ where transaction, block_credit_mints, platform_version, - previous_fee_versions, ), version => Err(StateTransitionAwareError { error: Error::Execution(ExecutionError::UnknownVersionMismatch { @@ -136,7 +131,6 @@ mod tests { .build_with_mock_rpc() .set_genesis_state(); let transaction = platform.drive.grove.start_transaction(); - let fee_versions = CachedEpochIndexFeeVersions::new(); let validation_result = ConsensusValidationResult::new_with_data_and_errors( event, @@ -152,7 +146,6 @@ mod tests { &transaction, &mut 0, platform_version, - &fee_versions, ) } else { platform.platform.process_validation_result_v0( @@ -163,7 +156,6 @@ mod tests { &transaction, &mut 0, platform_version, - &fee_versions, ) } .expect("process_validation_result should not error"); diff --git a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/v0/mod.rs index c5ff68078dc..24c1d4feec2 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/v0/mod.rs @@ -5,7 +5,6 @@ use crate::platform_types::platform::Platform; use crate::platform_types::state_transitions_processing_result::StateTransitionExecutionResult; use crate::rpc::core::CoreRPCLike; use dpp::block::block_info::BlockInfo; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::fee::Credits; use dpp::util::hash::hash_single; @@ -35,7 +34,6 @@ where transaction: &Transaction, block_credit_mints: &mut Credits, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result> { // State Transition is invalid if !validation_result.is_valid() { @@ -96,7 +94,6 @@ where None, // No address balance tracking for invalid state transitions block_credit_mints, platform_version, - previous_fee_versions, ) .map_err(|error| StateTransitionAwareError { error, @@ -194,7 +191,6 @@ where Some(&mut address_balances), block_credit_mints, platform_version, - previous_fee_versions, ) .map_err(|error| StateTransitionAwareError { error, diff --git a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/v1/mod.rs index d0ddd84cb6b..e518ec3e903 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/process_validation_result/v1/mod.rs @@ -5,7 +5,6 @@ use crate::platform_types::platform::Platform; use crate::platform_types::state_transitions_processing_result::StateTransitionExecutionResult; use crate::rpc::core::CoreRPCLike; use dpp::block::block_info::BlockInfo; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::fee::Credits; use dpp::util::hash::hash_single; @@ -34,7 +33,6 @@ where transaction: &Transaction, block_credit_mints: &mut Credits, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result> { // State Transition is invalid if !validation_result.is_valid() { @@ -96,7 +94,6 @@ where Some(&mut address_balances), block_credit_mints, platform_version, - previous_fee_versions, ) .map_err(|error| StateTransitionAwareError { error, @@ -194,7 +191,6 @@ where Some(&mut address_balances), block_credit_mints, platform_version, - previous_fee_versions, ) .map_err(|error| StateTransitionAwareError { error, diff --git a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/mod.rs index b771ed56a06..0a178d4df42 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/mod.rs @@ -8,7 +8,6 @@ use crate::platform_types::platform::Platform; use crate::rpc::core::CoreRPCLike; use dpp::block::block_info::BlockInfo; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::prelude::ConsensusValidationResult; use dpp::version::PlatformVersion; @@ -43,7 +42,6 @@ where block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result, Error> { // Fee validation with `transaction: None` is the CheckTx estimation mode: it runs // OUTSIDE any block transaction, so it must NEVER mutate committed GroveDB state — @@ -66,20 +64,8 @@ where .state_transition_processing .validate_fees_of_event { - 0 => self.validate_fees_of_event_v0( - event, - block_info, - transaction, - platform_version, - previous_fee_versions, - ), - 1 => self.validate_fees_of_event_v1( - event, - block_info, - transaction, - platform_version, - previous_fee_versions, - ), + 0 => self.validate_fees_of_event_v0(event, block_info, transaction, platform_version), + 1 => self.validate_fees_of_event_v1(event, block_info, transaction, platform_version), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "validate_fees_of_event".to_string(), known_versions: vec![0, 1], diff --git a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/v0/mod.rs index 42a477ffc27..40303b3b101 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/v0/mod.rs @@ -10,7 +10,6 @@ use dpp::consensus::state::address_funds::AddressesNotEnoughFundsError; use dpp::consensus::state::identity::IdentityInsufficientBalanceError; use dpp::consensus::state::shielded::invalid_shielded_proof_error::InvalidShieldedProofError; use dpp::consensus::state::state_error::StateError; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::prelude::ConsensusValidationResult; @@ -45,7 +44,6 @@ where block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result, Error> { match event { ExecutionEvent::PaidFromAssetLock { @@ -67,7 +65,6 @@ where block_info, transaction, platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; @@ -123,7 +120,6 @@ where block_info, transaction, platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; @@ -179,7 +175,6 @@ where block_info, transaction, platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; @@ -245,7 +240,6 @@ where block_info, transaction, platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; @@ -303,7 +297,6 @@ where block_info, transaction, platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; @@ -395,16 +388,9 @@ mod tests { action_fees: vec![], }; - let previous_fee_versions = Default::default(); let err = platform .platform - .validate_fees_of_event_v0( - &event, - &block_info, - None, - platform_version, - &previous_fee_versions, - ) + .validate_fees_of_event_v0(&event, &block_info, None, platform_version) .expect_err("missing balance should yield a CorruptedCodeExecution error"); let msg = err.to_string(); @@ -436,16 +422,9 @@ mod tests { user_fee_increase: 0, }; - let previous_fee_versions = Default::default(); let err = platform .platform - .validate_fees_of_event_v0( - &event, - &block_info, - None, - platform_version, - &previous_fee_versions, - ) + .validate_fees_of_event_v0(&event, &block_info, None, platform_version) .expect_err("missing balance should yield a CorruptedCodeExecution error"); let msg = err.to_string(); @@ -469,7 +448,6 @@ mod tests { .set_initial_state_structure(); let platform_version = PlatformVersion::latest(); let block_info = dpp::block::block_info::BlockInfo::default(); - let previous_fee_versions = Default::default(); let events = vec![ ExecutionEvent::PaidFixedCost { @@ -492,13 +470,7 @@ mod tests { for event in events { let result = platform .platform - .validate_fees_of_event_v0( - &event, - &block_info, - None, - platform_version, - &previous_fee_versions, - ) + .validate_fees_of_event_v0(&event, &block_info, None, platform_version) .expect("no-fee events should always succeed"); assert!( @@ -531,7 +503,6 @@ mod tests { let platform_version = PlatformVersion::latest(); let block_info = dpp::block::block_info::BlockInfo::default(); - let previous_fee_versions = Default::default(); let fees_to_add_to_pool = 1_000_000u64; let event = ExecutionEvent::PaidFromAssetLockToPool { @@ -543,13 +514,7 @@ mod tests { let result = platform .platform - .validate_fees_of_event_v0( - &event, - &block_info, - None, - platform_version, - &previous_fee_versions, - ) + .validate_fees_of_event_v0(&event, &block_info, None, platform_version) .expect("sufficient pool fee must be Ok"); assert!( @@ -587,7 +552,6 @@ mod tests { let platform_version = PlatformVersion::latest(); let block_info = dpp::block::block_info::BlockInfo::default(); - let previous_fee_versions = Default::default(); let fixed_cost = 100_000_000u64; let address = PlatformAddress::P2pkh([0x11; 20]); @@ -607,13 +571,7 @@ mod tests { let result = platform .platform - .validate_fees_of_event_v0( - &event, - &block_info, - None, - platform_version, - &previous_fee_versions, - ) + .validate_fees_of_event_v0(&event, &block_info, None, platform_version) .expect("validation must be Ok"); assert!( @@ -648,7 +606,6 @@ mod tests { let platform_version = PlatformVersion::latest(); let block_info = dpp::block::block_info::BlockInfo::default(); - let previous_fee_versions = Default::default(); let event = ExecutionEvent::Paid { identity: build_partial_identity_with_balance(Some(0)), @@ -665,13 +622,7 @@ mod tests { let result = platform .platform - .validate_fees_of_event_v0( - &event, - &block_info, - None, - platform_version, - &previous_fee_versions, - ) + .validate_fees_of_event_v0(&event, &block_info, None, platform_version) .expect("insufficient balance must be a consensus error, not a plain Error"); assert!( @@ -700,7 +651,6 @@ mod tests { let platform_version = PlatformVersion::latest(); let block_info = dpp::block::block_info::BlockInfo::default(); - let previous_fee_versions = Default::default(); let event = ExecutionEvent::PaidFromAssetLock { identity: build_partial_identity_with_balance(Some(10_000)), @@ -712,13 +662,7 @@ mod tests { let result = platform .platform - .validate_fees_of_event_v0( - &event, - &block_info, - None, - platform_version, - &previous_fee_versions, - ) + .validate_fees_of_event_v0(&event, &block_info, None, platform_version) .expect("Ok with sufficient top-up balance"); assert!( @@ -740,7 +684,6 @@ mod tests { let platform_version = PlatformVersion::latest(); let block_info = dpp::block::block_info::BlockInfo::default(); - let previous_fee_versions = Default::default(); // previous_balance + added_balance would overflow without saturation. let event = ExecutionEvent::PaidFromAssetLock { @@ -753,13 +696,7 @@ mod tests { let result = platform .platform - .validate_fees_of_event_v0( - &event, - &block_info, - None, - platform_version, - &previous_fee_versions, - ) + .validate_fees_of_event_v0(&event, &block_info, None, platform_version) .expect("saturating add must prevent panics on overflow"); // The saturated balance (u64::MAX) trivially covers the zero fee, diff --git a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/v1/mod.rs index 01277d08d59..74ee79db947 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/state_transition_processing/validate_fees_of_event/v1/mod.rs @@ -11,7 +11,6 @@ use dpp::consensus::state::identity::identity_public_key_budget_exceeded_error:: use dpp::consensus::state::identity::IdentityInsufficientBalanceError; use dpp::consensus::state::state_error::StateError; use dpp::consensus::ConsensusError; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::fee::Credits; use dpp::platform_value::Identifier; @@ -106,16 +105,9 @@ where block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result, Error> { Ok(self - .settle_fees_of_event_v1( - event, - block_info, - transaction, - platform_version, - previous_fee_versions, - )? + .settle_fees_of_event_v1(event, block_info, transaction, platform_version)? .map(|settled_fees| settled_fees.estimated_fee_result)) } @@ -155,7 +147,6 @@ where block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: &CachedEpochIndexFeeVersions, ) -> Result, Error> { let ExecutionEvent::Paid { identity, @@ -171,13 +162,7 @@ where } = event else { return Ok(self - .validate_fees_of_event_v0( - event, - block_info, - transaction, - platform_version, - previous_fee_versions, - )? + .validate_fees_of_event_v0(event, block_info, transaction, platform_version)? .map(SettledFees::paid_by_the_identity)); }; @@ -191,13 +176,7 @@ where if signing_key_limits.is_none() && gas_sponsor.is_none() && action_fees.is_empty() { return Ok(self - .validate_fees_of_event_v0( - event, - block_info, - transaction, - platform_version, - previous_fee_versions, - )? + .validate_fees_of_event_v0(event, block_info, transaction, platform_version)? .map(SettledFees::paid_by_the_identity)); } @@ -240,7 +219,6 @@ where block_info, transaction, platform_version, - Some(previous_fee_versions), ) .map_err(Error::Drive)?; ValidationOperation::add_many_to_fee_result( diff --git a/packages/rs-drive-abci/src/execution/platform_events/voting/award_document_to_winner/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/voting/award_document_to_winner/v0/mod.rs index cdf7107d625..da329ef846f 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/voting/award_document_to_winner/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/voting/award_document_to_winner/v0/mod.rs @@ -48,7 +48,6 @@ where true, transaction, platform_version, - None, )?; Ok(()) } diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/calculate_core_anchored_withdrawal_limit/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/calculate_core_anchored_withdrawal_limit/v0/mod.rs index 44e410b56af..9ef5349eddd 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/calculate_core_anchored_withdrawal_limit/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/calculate_core_anchored_withdrawal_limit/v0/mod.rs @@ -288,7 +288,6 @@ mod tests { &BlockInfo::default(), Some(transaction), platform_version, - None, ) .expect("expected to apply"); drive_operations = vec![]; @@ -310,7 +309,6 @@ mod tests { &BlockInfo::default(), Some(transaction), platform_version, - None, ) .expect("expected to apply"); } diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/dequeue_and_build_unsigned_withdrawal_transactions/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/dequeue_and_build_unsigned_withdrawal_transactions/v0/mod.rs index 4bd41e9690f..7b1d7aff921 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/dequeue_and_build_unsigned_withdrawal_transactions/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/dequeue_and_build_unsigned_withdrawal_transactions/v0/mod.rs @@ -113,7 +113,6 @@ where block_info, transaction, platform_version, - None, )?; Ok(UnsignedWithdrawalTxs::from_vec( @@ -314,7 +313,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("expected to queue the withdrawals"); @@ -343,7 +341,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("expected to queue the withdrawals again"); diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/has_pending_withdrawal_work/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/has_pending_withdrawal_work/v0/mod.rs index 8815c42296e..1a3ada1ea5e 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/has_pending_withdrawal_work/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/has_pending_withdrawal_work/v0/mod.rs @@ -152,7 +152,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply the enqueue operations"); @@ -181,7 +180,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("expected to apply the dequeue operations"); diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/v1/mod.rs index 3ccfa4fb460..62d95f7f108 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/v1/mod.rs @@ -213,7 +213,6 @@ where block_info, transaction, platform_version, - None, )?; Ok(()) diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v1/mod.rs index 5a5f223b332..bd86e45f6eb 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v1/mod.rs @@ -120,7 +120,6 @@ where block_info, transaction.into(), platform_version, - None, )?; Ok(()) diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v2/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v2/mod.rs index dc216a94a6c..98432ece72d 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v2/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v2/mod.rs @@ -156,7 +156,6 @@ where block_info, transaction.into(), platform_version, - None, )?; Ok(()) diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/update_broadcasted_withdrawal_statuses/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/update_broadcasted_withdrawal_statuses/v0/mod.rs index bf9d2a24b8d..bc1ac4fb8fd 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/update_broadcasted_withdrawal_statuses/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/update_broadcasted_withdrawal_statuses/v0/mod.rs @@ -180,7 +180,6 @@ where block_info, transaction.into(), platform_version, - None, )?; Ok(()) diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/common/asset_lock/proof/verify_is_not_spent/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/common/asset_lock/proof/verify_is_not_spent/v0/mod.rs index 8ea672330ea..04a4f3c2ee8 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/common/asset_lock/proof/verify_is_not_spent/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/common/asset_lock/proof/verify_is_not_spent/v0/mod.rs @@ -136,7 +136,6 @@ mod tests { &BlockInfo::default(), None, platform_version, - None, ) .expect("expected to apply drive operations"); } diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/document/document_create_transition_action/state_v1/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/document/document_create_transition_action/state_v1/mod.rs index 7f523206b30..5c7a0a77577 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/document/document_create_transition_action/state_v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/document/document_create_transition_action/state_v1/mod.rs @@ -129,15 +129,15 @@ impl DocumentCreateTransitionActionStateValidationV1 for DocumentCreateTransitio // Every probe is a stateful grove read validators actually // perform — bill them all, on the duplicate path included. - let fee_result = drive::drive::Drive::calculate_fee( - None, - Some(probe_operations), - &block_info.epoch, - platform.drive.config.epochs_per_era, - platform_version, - None, - ) - .map_err(Error::Drive)?; + let fee_result = platform + .drive + .calculate_fee( + None, + Some(probe_operations), + &block_info.epoch, + platform_version, + ) + .map_err(Error::Drive)?; execution_context .add_operation(ValidationOperation::PrecalculatedOperation(fee_result)); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/document/document_index_only_delete_transition_action/state_v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/document/document_index_only_delete_transition_action/state_v0/mod.rs index 3c1e36eeb0d..f241b5f897a 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/document/document_index_only_delete_transition_action/state_v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/document/document_index_only_delete_transition_action/state_v0/mod.rs @@ -136,15 +136,15 @@ impl DocumentIndexOnlyDeleteTransitionActionStateValidationV0 // Every probe is a stateful grove read (plus the row-commitment // hash) validators actually perform — bill them all, on the // not-found path included. - let fee_result = drive::drive::Drive::calculate_fee( - None, - Some(probe_operations), - &block_info.epoch, - platform.drive.config.epochs_per_era, - platform_version, - None, - ) - .map_err(Error::Drive)?; + let fee_result = platform + .drive + .calculate_fee( + None, + Some(probe_operations), + &block_info.epoch, + platform_version, + ) + .map_err(Error::Drive)?; execution_context.add_operation(ValidationOperation::PrecalculatedOperation(fee_result)); if missing_entry { diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/token/token_shielded_pool_common/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/token/token_shielded_pool_common/mod.rs index 551ce489b0f..690492e471a 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/token/token_shielded_pool_common/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/action_validation/token/token_shielded_pool_common/mod.rs @@ -95,13 +95,11 @@ pub(crate) fn charge_drive_operations( if drive_operations.is_empty() { return Ok(()); } - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; execution_context.add_operation(ValidationOperation::PrecalculatedOperation(fee_result)); Ok(()) diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/data_triggers/triggers/withdrawals/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/data_triggers/triggers/withdrawals/v0/mod.rs index e258d784b53..6ad5a46417e 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/data_triggers/triggers/withdrawals/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/data_triggers/triggers/withdrawals/v0/mod.rs @@ -313,7 +313,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/data_triggers/triggers/withdrawals/v2/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/data_triggers/triggers/withdrawals/v2/mod.rs index 59e918548ca..731545c95e7 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/data_triggers/triggers/withdrawals/v2/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/data_triggers/triggers/withdrawals/v2/mod.rs @@ -214,7 +214,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/state/v0/fetch_contender.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/state/v0/fetch_contender.rs index 8398f39b985..546614be28e 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/state/v0/fetch_contender.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/state/v0/fetch_contender.rs @@ -33,13 +33,11 @@ pub(crate) fn fetch_contender( let mut result = contender_query.execute(drive, transaction, &mut drive_operations, platform_version)?; - let fee = Drive::calculate_fee( + let fee = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; match result.contenders.pop() { None => Ok((None, fee)), diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/action_fees.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/action_fees.rs index 170a66381f9..dcf0c7408ab 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/action_fees.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/action_fees.rs @@ -792,7 +792,6 @@ mod action_fee_tests { true, None, setup.platform_version, - None, ) .expect("expected to rewrite the contract with the raised moderators part"); @@ -1540,7 +1539,6 @@ mod action_fee_tests { true, None, setup.platform_version, - None, ) .expect("expected to take credits from the contract owner"); } diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/commit_reveal_lookup.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/commit_reveal_lookup.rs index f1d12b2d17c..0e9bd5e85c5 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/commit_reveal_lookup.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/commit_reveal_lookup.rs @@ -374,7 +374,6 @@ mod commit_reveal_lookup_tests { true, None, platform_version, - None, ) .expect("expected to lower the balance"); } else if credits > balance { diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/derived_index_values.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/derived_index_values.rs index cdadf3058eb..db7215894af 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/derived_index_values.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/derived_index_values.rs @@ -100,7 +100,6 @@ fn should_record_the_derived_values_the_reference_validation_read() { true, None, platform_version, - None, ) .expect("expected to insert the post"); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/dpns_v3.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/dpns_v3.rs index 6ce0903d90b..4ce5ba13fa3 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/dpns_v3.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/dpns_v3.rs @@ -885,7 +885,6 @@ mod dpns_v3_tests { true, None, platform_version, - None, ) .expect("expected to store the copy"); } diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/duplicate_keys.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/duplicate_keys.rs index 27d4bb0cdbb..2768f939a0b 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/duplicate_keys.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/duplicate_keys.rs @@ -726,7 +726,6 @@ async fn should_keep_preexisting_ambiguous_ttl_expiry_failure_visible() { true, None, version, - None, ) .unwrap(); let stored = fixture.stored(None); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/gas_sponsorship.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/gas_sponsorship.rs index 7151cba0553..e17c4d3b877 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/gas_sponsorship.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/gas_sponsorship.rs @@ -938,7 +938,6 @@ pub(crate) mod gas_sponsorship_tests { true, None, setup.platform_version, - None, ) .expect("expected to spend the gold"); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/long_string_sizing.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/long_string_sizing.rs index 03116e86e1a..4b77c134460 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/long_string_sizing.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/long_string_sizing.rs @@ -289,7 +289,6 @@ mod long_string_sizing_tests { true, None, self.platform_version, - None, ) .expect("expected to seed the note"); } diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/token_market_orders.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/token_market_orders.rs index 46c90e1da40..c6c243f48e7 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/token_market_orders.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/document/token_market_orders.rs @@ -160,7 +160,6 @@ mod token_market_orders_tests { true, None, platform_version, - None, ) .expect("expected to store the order"); let before = stored_orders(&platform, &market, name); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/token/shielded/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/token/shielded/mod.rs index 145db5447d4..3dc048cd0df 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/token/shielded/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/token/shielded/mod.rs @@ -4542,7 +4542,6 @@ mod token_pool_paid_transitions_tests { true, None, platform_version, - None, ) .expect("credit a token balance") }; diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/token/shielded/nullifier_batch_guard.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/token/shielded/nullifier_batch_guard.rs index 7f8707cfeef..461b57c1bca 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/token/shielded/nullifier_batch_guard.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/tests/token/shielded/nullifier_batch_guard.rs @@ -24,7 +24,6 @@ use dpp::data_contract::accessors::v0::DataContractV0Setters; use dpp::data_contract::accessors::v1::DataContractV1Setters; use dpp::data_contract::associated_token::token_configuration::accessors::v1::TokenConfigurationV1Setters; use dpp::data_contract::conversion::json::DataContractJsonConversionMethodsV0; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::identity::{Identity, IdentityPublicKey}; use dpp::identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0; @@ -128,7 +127,6 @@ impl FundedPool { true, None, version, - None, ) .unwrap(); if !shielded { @@ -614,7 +612,6 @@ impl FundedPool { &transaction, &mut 0, version, - &CachedEpochIndexFeeVersions::new(), ) .expect("execute and charge real event"); self.platform diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/transformer/v0/property_constraint_aggregates.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/transformer/v0/property_constraint_aggregates.rs index ebd637fb3ea..dd06351613b 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/transformer/v0/property_constraint_aggregates.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/transformer/v0/property_constraint_aggregates.rs @@ -468,13 +468,11 @@ fn read_aggregates( aggregates.insert(read.clone(), total); } - let fee = Drive::calculate_fee( + let fee = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; execution_context.add_operation(ValidationOperation::PrecalculatedOperation(fee)); Ok(aggregates) diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_fee_claim/tests.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_fee_claim/tests.rs index 05307d51417..8d923deb2bd 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_fee_claim/tests.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_fee_claim/tests.rs @@ -180,7 +180,6 @@ impl Setup { &BlockInfo::default(), None, PlatformVersion::latest(), - None, ) .expect("expected to fill the pot"); } diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_user_moderation/tests/seated_team.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_user_moderation/tests/seated_team.rs index 8ac34205862..5c43cb54024 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_user_moderation/tests/seated_team.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_user_moderation/tests/seated_team.rs @@ -334,7 +334,6 @@ fn write_reason( true, None, platform_version, - None, ) .expect("expected to write the reason"); } @@ -626,7 +625,6 @@ impl Team { true, None, platform_version, - None, ) .expect("expected to write the join request"); } diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_user_moderation/tests/seated_team/settled.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_user_moderation/tests/seated_team/settled.rs index 51b6c4f5242..2ca0507e9cf 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_user_moderation/tests/seated_team/settled.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/contract_user_moderation/tests/seated_team/settled.rs @@ -185,7 +185,6 @@ impl Team { &BlockInfo::default(), Some(&transaction), PlatformVersion::latest(), - None, ) .expect("expected to store the approval"); self.setup.commit(transaction); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_create_from_shielded_pool/tests.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_create_from_shielded_pool/tests.rs index 19af7bb4579..9df4bd48777 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_create_from_shielded_pool/tests.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_create_from_shielded_pool/tests.rs @@ -473,7 +473,6 @@ fn failure_path_charge_executes_through_execute_event() { use crate::execution::validation::state_transition::state_transitions::shielded_common::read_pool_total_balance; use crate::platform_types::event_execution_result::EventExecutionResult; use dpp::block::epoch::Epoch; - use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::identity::accessors::IdentitySettersV0; let platform_version = PlatformVersion::latest(); @@ -568,7 +567,6 @@ fn failure_path_charge_executes_through_execute_event() { .expect("create execution event"); let transaction = platform.drive.grove.start_transaction(); - let fee_versions = CachedEpochIndexFeeVersions::new(); let exec_result = platform .platform .execute_event( @@ -579,7 +577,6 @@ fn failure_path_charge_executes_through_execute_event() { None, &mut 0, platform_version, - &fee_versions, ) .expect("execute_event should not error"); @@ -635,7 +632,6 @@ fn check_tx_fee_estimation_does_not_mutate_committed_state() { use crate::platform_types::platform_state::PlatformStateV0Methods; use crate::test::helpers::state_mutation_guard::assert_committed_root_hash_unchanged; use dpp::block::epoch::Epoch; - use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use drive::util::batch::drive_op_batch::ShieldedPoolOperationType; use drive::util::batch::DriveOperation; @@ -711,7 +707,6 @@ fn check_tx_fee_estimation_does_not_mutate_committed_state() { // Run the EXACT CheckTx estimation call (transaction = None, apply = false) and assert the // committed root hash is byte-identical: a single eager write in any converter arm trips this. let platform_state = platform.state.load(); - let fee_versions = CachedEpochIndexFeeVersions::new(); let fee_result = assert_committed_root_hash_unchanged( &platform.drive, platform_version, @@ -722,7 +717,6 @@ fn check_tx_fee_estimation_does_not_mutate_committed_state() { platform_state.last_block_info(), None, platform_version, - &fee_versions, ) }, ) @@ -802,7 +796,7 @@ fn converter_ops_preserve_sum_tree_credit_conservation() { .into_high_level_drive_operations(&Epoch::new(0).unwrap(), platform_version) .expect("converter ops"); drive - .apply_drive_operations(ops, true, &block_info, None, platform_version, None) + .apply_drive_operations(ops, true, &block_info, None, platform_version) .expect("apply converter ops"); // The end-of-block conservation invariant must still hold — this FAILS (off by `denomination`) @@ -940,7 +934,7 @@ fn failure_path_unshield_converter_ops_preserve_sum_tree_credit_conservation() { .into_high_level_drive_operations(&Epoch::new(0).unwrap(), platform_version) .expect("converter ops"); drive - .apply_drive_operations(ops, true, &block_info, None, platform_version, None) + .apply_drive_operations(ops, true, &block_info, None, platform_version) .expect("apply converter ops"); // Book the penalty into the storage fee (Pools) tree — the end-of-block reconciliation the @@ -985,7 +979,6 @@ fn executed_transition_result_proof_roundtrips() { use crate::execution::types::execution_event::ExecutionEvent; use crate::platform_types::event_execution_result::EventExecutionResult; use dpp::block::epoch::Epoch; - use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::state_transition::identity_create_from_shielded_pool_transition::accessors::IdentityCreateFromShieldedPoolTransitionAccessorsV0; use dpp::state_transition::proof_result::StateTransitionProofResult; use dpp::state_transition::StateTransition; @@ -1038,7 +1031,6 @@ fn executed_transition_result_proof_roundtrips() { .expect("create execution event"); let transaction = platform.drive.grove.start_transaction(); - let fee_versions = CachedEpochIndexFeeVersions::new(); let exec_result = platform .platform .execute_event( @@ -1049,7 +1041,6 @@ fn executed_transition_result_proof_roundtrips() { None, &mut 0, platform_version, - &fee_versions, ) .expect("execute_event should not error"); assert_matches!( diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_transfer_to_addresses/tests.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_transfer_to_addresses/tests.rs index 0b0f0ea5532..e349119f70d 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_transfer_to_addresses/tests.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_transfer_to_addresses/tests.rs @@ -5030,7 +5030,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should remove balance"); @@ -5174,7 +5173,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should remove balance"); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/mod.rs index 1854fa60e93..91a23085043 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/mod.rs @@ -547,7 +547,6 @@ pub(in crate::execution) mod tests { true, None, platform_version, - None, ) .expect("expected to add token balance to identity"); platform diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_asset_lock/tests.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_asset_lock/tests.rs index 2b23e2db76f..b0eb7784452 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_asset_lock/tests.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_asset_lock/tests.rs @@ -996,7 +996,6 @@ mod tests { }; use dpp::block::block_info::BlockInfo; use dpp::block::epoch::Epoch; - use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::identity::KeyType; use dpp::shielded::compute_minimum_shielded_fee; use dpp::state_transition::StateTransitionEstimatedFeeValidation; @@ -1080,13 +1079,7 @@ mod tests { let result = platform .platform - .validate_fees_of_event( - &event, - &BlockInfo::default(), - None, - platform_version, - &CachedEpochIndexFeeVersions::new(), - ) + .validate_fees_of_event(&event, &BlockInfo::default(), None, platform_version) .expect("fee validation runs"); assert!( result.is_valid(), diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_identity/tests.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_identity/tests.rs index deb91c598e9..4e9dea9c198 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_identity/tests.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_identity/tests.rs @@ -1547,7 +1547,6 @@ mod tests { state.last_block_info(), None, platform_version, - &Default::default(), ) .expect("estimate complete event") .into_data() diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_identity/transform_into_action/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_identity/transform_into_action/v0/mod.rs index 905b1351878..5891195a002 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_identity/transform_into_action/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/shield_from_identity/transform_into_action/v0/mod.rs @@ -87,13 +87,11 @@ impl ShieldFromIdentityStateTransitionTransformIntoActionValidationV0 platform_version, )?; - let state_read_fee = Drive::calculate_fee( + let state_read_fee = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; execution_context .add_operation(ValidationOperation::PrecalculatedOperation(state_read_fee)); diff --git a/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs b/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs index fc65a3b472b..ad34ad517a7 100644 --- a/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs @@ -68,7 +68,8 @@ pub struct PlatformState { /// current HPMN masternode list pub hpmn_masternode_list: BTreeMap, - /// previous FeeVersions + /// The fee versions earlier epochs ran on. Saved with the state and not read by block + /// execution: refunds are priced from the schedule of the block that removes the bytes. pub previous_fee_versions: CachedEpochIndexFeeVersions, /// True when a field carried only by the full saved record has changed since diff --git a/packages/rs-drive-abci/src/query/address_funds/address_info/v0/mod.rs b/packages/rs-drive-abci/src/query/address_funds/address_info/v0/mod.rs index ec18052748c..abbf4baade1 100644 --- a/packages/rs-drive-abci/src/query/address_funds/address_info/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/address_funds/address_info/v0/mod.rs @@ -99,7 +99,6 @@ mod tests { &BlockInfo::default(), None, platform_version, - None, ) .expect("expected to apply operations"); } diff --git a/packages/rs-drive-abci/src/query/address_funds/addresses_branch_state/v0/mod.rs b/packages/rs-drive-abci/src/query/address_funds/addresses_branch_state/v0/mod.rs index dd244fa2df4..c6fccc02967 100644 --- a/packages/rs-drive-abci/src/query/address_funds/addresses_branch_state/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/address_funds/addresses_branch_state/v0/mod.rs @@ -126,7 +126,7 @@ mod tests { ]; platform .drive - .apply_drive_operations(operations, true, &BlockInfo::default(), None, version, None) + .apply_drive_operations(operations, true, &BlockInfo::default(), None, version) .expect("expected to apply operations"); let checkpoint_height = 1u64; diff --git a/packages/rs-drive-abci/src/query/address_funds/addresses_infos/v0/mod.rs b/packages/rs-drive-abci/src/query/address_funds/addresses_infos/v0/mod.rs index 6ab716be61d..bfae6620f28 100644 --- a/packages/rs-drive-abci/src/query/address_funds/addresses_infos/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/address_funds/addresses_infos/v0/mod.rs @@ -134,7 +134,6 @@ mod tests { &BlockInfo::default(), None, platform_version, - None, ) .expect("expected to apply operations"); } diff --git a/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_document_removals/v0/mod.rs b/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_document_removals/v0/mod.rs index a3275fb3c9c..0a4b36e64a4 100644 --- a/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_document_removals/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_document_removals/v0/mod.rs @@ -250,7 +250,6 @@ mod tests { &BlockInfo::default(), None, PlatformVersion::latest(), - None, ) .expect("expected to record a removal"); } diff --git a/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_fee_pots/v0/mod.rs b/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_fee_pots/v0/mod.rs index ff7aaadb9d5..1833ad0b707 100644 --- a/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_fee_pots/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_fee_pots/v0/mod.rs @@ -142,7 +142,6 @@ mod tests { &BlockInfo::default(), None, platform_version, - None, ) .expect("expected to write the fee pots"); } diff --git a/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_moderation_action_counts/v0/mod.rs b/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_moderation_action_counts/v0/mod.rs index 0a3907acbdd..140facf7ed8 100644 --- a/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_moderation_action_counts/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/contract_moderation_queries/contract_moderation_action_counts/v0/mod.rs @@ -144,7 +144,6 @@ mod tests { &BlockInfo::default(), None, version, - None, ) .expect("expected to count the actions"); assert_eq!( diff --git a/packages/rs-drive-abci/src/query/contract_moderation_queries/mod.rs b/packages/rs-drive-abci/src/query/contract_moderation_queries/mod.rs index 0a39360da07..5d91ac51f11 100644 --- a/packages/rs-drive-abci/src/query/contract_moderation_queries/mod.rs +++ b/packages/rs-drive-abci/src/query/contract_moderation_queries/mod.rs @@ -540,7 +540,6 @@ pub(super) mod tests { &BlockInfo::default(), None, PlatformVersion::latest(), - None, ) .expect("expected to record the proposal"); } diff --git a/packages/rs-drive-abci/src/query/document_history/v0/mod.rs b/packages/rs-drive-abci/src/query/document_history/v0/mod.rs index 4eed0186458..683f3ed69fb 100644 --- a/packages/rs-drive-abci/src/query/document_history/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/document_history/v0/mod.rs @@ -287,7 +287,6 @@ mod tests { true, None, version, - None, ) .expect("put document"); diff --git a/packages/rs-drive-abci/src/query/document_query/v1/dispatch/chained.rs b/packages/rs-drive-abci/src/query/document_query/v1/dispatch/chained.rs index 1cd6c495b8b..e52e4ad2f51 100644 --- a/packages/rs-drive-abci/src/query/document_query/v1/dispatch/chained.rs +++ b/packages/rs-drive-abci/src/query/document_query/v1/dispatch/chained.rs @@ -565,7 +565,6 @@ mod tests { true, None, version, - None, ) .expect("expected to delete the post"); diff --git a/packages/rs-drive-abci/src/query/document_query/v1/tests.rs b/packages/rs-drive-abci/src/query/document_query/v1/tests.rs index 481f19ca1df..90b5e505842 100644 --- a/packages/rs-drive-abci/src/query/document_query/v1/tests.rs +++ b/packages/rs-drive-abci/src/query/document_query/v1/tests.rs @@ -4073,7 +4073,6 @@ mod having_trust_boundary { true, None, pv, - None, ) .expect("expected to insert a grade document"); } diff --git a/packages/rs-drive-abci/src/query/mod.rs b/packages/rs-drive-abci/src/query/mod.rs index 1c8f0c69393..2ba273621b8 100644 --- a/packages/rs-drive-abci/src/query/mod.rs +++ b/packages/rs-drive-abci/src/query/mod.rs @@ -152,14 +152,7 @@ pub(crate) mod tests { platform .drive - .apply_drive_operations( - vec![operation], - true, - &block_info, - None, - platform_version, - None, - ) + .apply_drive_operations(vec![operation], true, &block_info, None, platform_version) .expect("expected to apply drive operations"); } @@ -263,7 +256,6 @@ pub(crate) mod tests { &BlockInfo::genesis(), None, platform_version, - None, ) .expect("expected to remove the post"); } @@ -291,14 +283,7 @@ pub(crate) mod tests { platform .drive - .apply_drive_operations( - vec![operation], - true, - &block_info, - None, - platform_version, - None, - ) + .apply_drive_operations(vec![operation], true, &block_info, None, platform_version) .expect("expected to apply drive operations"); } diff --git a/packages/rs-drive-abci/src/test/helpers/fast_forward_to_block.rs b/packages/rs-drive-abci/src/test/helpers/fast_forward_to_block.rs index e991b965860..7dfac51d0e7 100644 --- a/packages/rs-drive-abci/src/test/helpers/fast_forward_to_block.rs +++ b/packages/rs-drive-abci/src/test/helpers/fast_forward_to_block.rs @@ -143,7 +143,6 @@ pub(crate) fn process_epoch_change( }, None, platform_version, - None, ) .expect("expected to apply drive operations"); } diff --git a/packages/rs-drive-abci/src/test/helpers/fee_pools.rs b/packages/rs-drive-abci/src/test/helpers/fee_pools.rs index 957a26a597b..ca2def59b52 100644 --- a/packages/rs-drive-abci/src/test/helpers/fee_pools.rs +++ b/packages/rs-drive-abci/src/test/helpers/fee_pools.rs @@ -119,7 +119,6 @@ fn create_test_mn_share_document( true, transaction, platform_version, - None, ) .expect("expected to insert a document successfully"); diff --git a/packages/rs-drive-abci/tests/document_outcome.rs b/packages/rs-drive-abci/tests/document_outcome.rs index 935b04ac0d1..c5f944de4b6 100644 --- a/packages/rs-drive-abci/tests/document_outcome.rs +++ b/packages/rs-drive-abci/tests/document_outcome.rs @@ -132,7 +132,6 @@ fn fixture_signed_as( true, None, producer, - None, ) .unwrap(); let transition = StateTransition::Batch(BatchTransition::V0(BatchTransitionV0 { diff --git a/packages/rs-drive-abci/tests/document_query_signature.rs b/packages/rs-drive-abci/tests/document_query_signature.rs index da883113531..e0c989c4446 100644 --- a/packages/rs-drive-abci/tests/document_query_signature.rs +++ b/packages/rs-drive-abci/tests/document_query_signature.rs @@ -90,7 +90,6 @@ fn signed_answer_over( true, None, producer, - None, ) .unwrap(); } diff --git a/packages/rs-drive-abci/tests/older_node_answers.rs b/packages/rs-drive-abci/tests/older_node_answers.rs index 36970310251..201e9f66637 100644 --- a/packages/rs-drive-abci/tests/older_node_answers.rs +++ b/packages/rs-drive-abci/tests/older_node_answers.rs @@ -238,7 +238,6 @@ impl Node { true, None, v13(), - None, ) .expect("insert at protocol 13"); } diff --git a/packages/rs-drive-abci/tests/query_request_errors/composite_caps.rs b/packages/rs-drive-abci/tests/query_request_errors/composite_caps.rs index 4746f42a7b2..32fc2706176 100644 --- a/packages/rs-drive-abci/tests/query_request_errors/composite_caps.rs +++ b/packages/rs-drive-abci/tests/query_request_errors/composite_caps.rs @@ -68,7 +68,6 @@ fn store_document( true, None, version, - None, ) .expect("store seeded document"); } diff --git a/packages/rs-drive-abci/tests/query_request_errors/document_features.rs b/packages/rs-drive-abci/tests/query_request_errors/document_features.rs index 5f2387eaa8d..c81416ffa07 100644 --- a/packages/rs-drive-abci/tests/query_request_errors/document_features.rs +++ b/packages/rs-drive-abci/tests/query_request_errors/document_features.rs @@ -68,7 +68,6 @@ fn tip_jar(fixture: &QueryFixture, version: &PlatformVersion) -> (Arc Err(Error::Drive(DriveError::UnknownVersionMismatch { diff --git a/packages/rs-drive/src/drive/contract/fee_pots/tests.rs b/packages/rs-drive/src/drive/contract/fee_pots/tests.rs index 01dd7ea0a8b..ada5c0b96be 100644 --- a/packages/rs-drive/src/drive/contract/fee_pots/tests.rs +++ b/packages/rs-drive/src/drive/contract/fee_pots/tests.rs @@ -59,7 +59,6 @@ fn apply(drive: &Drive, operations: Vec, apply: boo &BlockInfo::default(), None, PlatformVersion::latest(), - None, ) .expect("expected to apply the fee pot operations") } @@ -175,7 +174,6 @@ fn should_deduct_from_a_pot_and_refuse_more_than_it_holds() { &BlockInfo::default(), None, PlatformVersion::latest(), - None, ); assert!(result.is_err(), "a pot can not go below zero"); assert_eq!( diff --git a/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract/v0/mod.rs b/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract/v0/mod.rs index d57b19736a6..5fae064556d 100644 --- a/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract/v0/mod.rs @@ -89,13 +89,11 @@ impl Drive { let fee = if let Some(epoch) = epoch { Some(cost_return_on_error_no_add!( cost, - Drive::calculate_fee( + self.calculate_fee( None, Some(vec![drive_operation]), epoch, - self.config.epochs_per_era, platform_version, - None, ) )) } else { @@ -146,13 +144,11 @@ impl Drive { let fee = if let Some(epoch) = epoch { Some(cost_return_on_error_no_add!( cost, - Drive::calculate_fee( + self.calculate_fee( None, Some(vec![drive_operation]), epoch, - self.config.epochs_per_era, platform_version, - None, ) )) } else { diff --git a/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/mod.rs b/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/mod.rs index 3af9abd89da..b8001a33d11 100644 --- a/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/mod.rs +++ b/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/mod.rs @@ -218,7 +218,6 @@ mod tests { true, Some(&transaction), platform_version, - None, ) .expect("should update contract"); @@ -592,7 +591,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("expected to apply the update"); @@ -702,7 +700,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("expected to estimate the update"); @@ -771,7 +768,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("expected to apply the update"); assert!(drive.cache.data_contracts.is_modified_in_block(contract_id)); @@ -805,7 +801,6 @@ mod tests { true, Some(&transaction), platform_version, - None, ) .expect("expected to insert a note"); } diff --git a/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/v0/mod.rs b/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/v0/mod.rs index 59fb641e2b3..c2f892cf7be 100644 --- a/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/v0/mod.rs @@ -94,15 +94,8 @@ impl Drive { platform_version, )?; let fee_result = epoch.map_or(Ok(None), |epoch| { - Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - ) - .map(Some) + self.calculate_fee(None, Some(drive_operations), epoch, platform_version) + .map(Some) })?; Ok((fee_result, contract_fetch_info)) } @@ -165,14 +158,7 @@ impl Drive { } else { // we need to calculate new fee let op = vec![CalculatedCostOperation(contract_fetch_info.cost.clone())]; - let fee = Drive::calculate_fee( - None, - Some(op), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee = self.calculate_fee(None, Some(op), epoch, platform_version)?; if add_to_cache_if_pulled { let updated_contract_fetch_info = Arc::new(DataContractFetchInfo { diff --git a/packages/rs-drive/src/drive/contract/insert/add_contract_to_storage/v1/mod.rs b/packages/rs-drive/src/drive/contract/insert/add_contract_to_storage/v1/mod.rs index 5e86e9bdef7..0475e27cb61 100644 --- a/packages/rs-drive/src/drive/contract/insert/add_contract_to_storage/v1/mod.rs +++ b/packages/rs-drive/src/drive/contract/insert/add_contract_to_storage/v1/mod.rs @@ -323,10 +323,10 @@ mod tests { contract.increment_version(); let estimated_fee = drive - .update_contract(&contract, block(2000), false, None, platform_version, None) + .update_contract(&contract, block(2000), false, None, platform_version) .expect("expected the stateless update estimate to succeed"); let actual_fee = drive - .update_contract(&contract, block(2000), true, None, platform_version, None) + .update_contract(&contract, block(2000), true, None, platform_version) .expect("expected the update to succeed"); assert!( diff --git a/packages/rs-drive/src/drive/contract/insert/add_description/v0/mod.rs b/packages/rs-drive/src/drive/contract/insert/add_description/v0/mod.rs index 7550fdb60cd..f6703e88be0 100644 --- a/packages/rs-drive/src/drive/contract/insert/add_description/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/insert/add_description/v0/mod.rs @@ -40,13 +40,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/contract/insert/add_new_keywords/v0/mod.rs b/packages/rs-drive/src/drive/contract/insert/add_new_keywords/v0/mod.rs index 7843c32477f..5bf9d5ea699 100644 --- a/packages/rs-drive/src/drive/contract/insert/add_new_keywords/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/insert/add_new_keywords/v0/mod.rs @@ -38,13 +38,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/mod.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/mod.rs index e391a3676b0..71dacf4b5f7 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/mod.rs @@ -65,13 +65,11 @@ impl Drive { platform_version, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/batched_group_drain.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/batched_group_drain.rs index 531272d06aa..f5267ce3fc1 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/batched_group_drain.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/batched_group_drain.rs @@ -221,7 +221,6 @@ fn apply_batch(drive: &Drive, operations: Vec) { &BlockInfo::default(), None, platform_version(), - None, ) .expect("the batch must apply"); } @@ -836,7 +835,6 @@ fn update_document_singly(drive: &Drive, contract: &DataContract, axis: Axis, do StorageFlags::optional_default_as_cow(), None, platform_version(), - None, ) .expect("the single-document update must succeed"); } @@ -989,7 +987,6 @@ fn apply_and_observe( &BlockInfo::default(), None, platform_version(), - None, ) .map(|_| ()); let observation = observe(drive, contract, axis, arrival, departure); diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/chained_query_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/chained_query_e2e_tests.rs index c19ec0b1e9f..c1c4247894b 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/chained_query_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/chained_query_e2e_tests.rs @@ -123,7 +123,6 @@ fn insert_post( true, None, pv, - None, ) .expect("insert post"); } @@ -346,7 +345,6 @@ fn should_verify_liked_posts_that_carry_a_sum() { true, None, pv, - None, ) .expect("insert post"); let like = build_like(&contract, id, OWNER_1, seed); @@ -758,7 +756,6 @@ fn delete_post(drive: &Drive, contract: &DataContract, id: [u8; 32]) { true, None, platform_version(), - None, ) .expect("expected to delete the post"); } @@ -1022,7 +1019,6 @@ pub(super) fn remove_post( &BlockInfo::default(), None, platform_version(), - None, ) .expect("expected to remove the post"); } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/composite_query_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/composite_query_e2e_tests.rs index eecb160d381..e911666872b 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/composite_query_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/composite_query_e2e_tests.rs @@ -105,7 +105,6 @@ fn insert(drive: &crate::drive::Drive, contract: &DataContract, type_name: &str, true, None, platform_version(), - None, ) .expect("insert document"); } @@ -2218,7 +2217,6 @@ fn delete_post(drive: &crate::drive::Drive, contract: &DataContract, id: [u8; 32 true, None, platform_version(), - None, ) .expect("expected to delete the post"); } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/countable_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/countable_e2e_tests.rs index 98679616c0c..d9b04ab0e8c 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/countable_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/countable_e2e_tests.rs @@ -260,7 +260,6 @@ fn count_tree_count_grows_and_shrinks_with_document_inserts_and_deletes() { true, None, pv, - None, ) .expect("expected to insert document"); } @@ -283,7 +282,6 @@ fn count_tree_count_grows_and_shrinks_with_document_inserts_and_deletes() { true, None, pv, - None, ) .expect("expected to delete document"); @@ -337,7 +335,6 @@ fn provable_count_tree_count_grows_with_document_inserts() { true, None, pv, - None, ) .expect("expected to insert document"); } @@ -392,7 +389,6 @@ fn range_countable_primary_key_tree_supports_trunk_proof() { true, None, pv, - None, ) .expect("expected to insert document"); } @@ -473,7 +469,6 @@ fn count_tree_contract_supports_document_fetch() { true, None, pv, - None, ) .expect("expected to insert document"); @@ -590,7 +585,6 @@ fn document_insert_into_count_tree_produces_positive_fees() { true, None, pv, - None, ) .expect("expected to insert document into count tree"); diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_array_index_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_array_index_e2e_tests.rs index cb6c26ba42f..f65a96c5572 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_array_index_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_array_index_e2e_tests.rs @@ -260,7 +260,6 @@ fn insert_at( apply, transaction, platform_version(), - None, ) } @@ -284,7 +283,6 @@ fn delete_at( apply, transaction, platform_version(), - None, ) } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_e2e_tests.rs index 635d32253c9..3f40764b41c 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_e2e_tests.rs @@ -175,7 +175,6 @@ pub(super) fn insert_like( apply, None, pv, - None, ) } @@ -197,7 +196,6 @@ pub(super) fn delete_like( apply, None, pv, - None, ) } @@ -1909,17 +1907,12 @@ fn should_refuse_cursor_queries() { #[test] fn deletion_refunds_flow_from_terminal_item_flags() { use dpp::block::epoch::Epoch; - use dpp::fee::default_costs::CachedEpochIndexFeeVersions; - use dpp::version::fee::FeeVersion; use std::borrow::Cow; - use std::collections::BTreeMap; let (drive, contract) = setup_likes(); let document_type = contract .document_type_for_name(DOCTYPE) .expect("like doctype exists"); - let previous_fee_versions: CachedEpochIndexFeeVersions = - BTreeMap::from([(0, FeeVersion::first())]); let like = build_like(&contract, "dash", POST_A, OWNER_1, 1); @@ -1944,7 +1937,6 @@ fn deletion_refunds_flow_from_terminal_item_flags() { true, None, pv, - None, ) .expect("insert like with owned flags"); @@ -1963,7 +1955,6 @@ fn deletion_refunds_flow_from_terminal_item_flags() { true, None, pv, - Some(&previous_fee_versions), ) .expect("delete like in a later epoch"); @@ -2024,7 +2015,6 @@ fn should_refuse_a_delete_spliced_across_two_rows() { true, None, platform_version(), - None, ) .expect("insert mark"); }; @@ -2046,7 +2036,6 @@ fn should_refuse_a_delete_spliced_across_two_rows() { true, None, platform_version(), - None, ) .expect_err("a spliced tuple must be refused"); assert!( @@ -2069,7 +2058,6 @@ fn should_refuse_a_delete_spliced_across_two_rows() { true, None, platform_version(), - None, ) .expect("the real row must still delete"); drive @@ -2081,7 +2069,6 @@ fn should_refuse_a_delete_spliced_across_two_rows() { true, None, platform_version(), - None, ) .expect("the other real row must still delete"); @@ -2157,7 +2144,6 @@ pub(super) fn insert_tip( apply, None, pv, - None, ) } @@ -2179,7 +2165,6 @@ pub(super) fn delete_tip( apply, None, pv, - None, ) } @@ -2683,7 +2668,6 @@ fn insert_beat( apply, None, pv, - None, ) } @@ -2705,7 +2689,6 @@ fn delete_beat( apply, None, pv, - None, ) } @@ -3216,7 +3199,6 @@ fn insert_mark( apply, None, platform_version(), - None, ) } @@ -3234,7 +3216,6 @@ fn delete_mark( apply, None, platform_version(), - None, ) } @@ -3533,7 +3514,6 @@ fn insert_pin( apply, None, platform_version(), - None, ) } @@ -3551,7 +3531,6 @@ fn delete_pin( apply, None, platform_version(), - None, ) } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_scalar_terminal_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_scalar_terminal_e2e_tests.rs index 6e34bd374d6..8ab6e1fd6a4 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_scalar_terminal_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/index_only_scalar_terminal_e2e_tests.rs @@ -196,7 +196,6 @@ fn insert( apply, None, platform_version(), - None, ) } @@ -219,7 +218,6 @@ fn delete( apply, None, platform_version(), - None, ) } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/noncounted_sibling_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/noncounted_sibling_e2e_tests.rs index 5415cda9f88..3c871a0d626 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/noncounted_sibling_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/noncounted_sibling_e2e_tests.rs @@ -184,7 +184,6 @@ fn insert_row( apply, None, pv, - None, ) } @@ -434,7 +433,6 @@ fn sibling_entries_never_pollute_the_ranking_and_deletes_are_symmetric() { true, None, pv, - None, ) .expect("expected to delete the like entry"); // Equal counts tie; compare as sorted sets of (count, name). @@ -469,7 +467,6 @@ fn sibling_entries_never_pollute_the_ranking_and_deletes_are_symmetric() { true, None, pv, - None, ) .expect("expected to delete bob's like entry"); } @@ -641,7 +638,6 @@ fn sibling_only_writes_skip_the_ranked_re_key() { StorageFlags::optional_default_as_cow(), None, pv, - None, ) .expect("expected to update the day"); let grouping_after = read_grove_element(&drive, &doctype_path, b"postAuthor") @@ -683,7 +679,6 @@ fn sibling_only_writes_skip_the_ranked_re_key() { StorageFlags::optional_default_as_cow(), None, pv, - None, ) .expect("expected to move the like between authors"); assert_eq!( @@ -702,7 +697,6 @@ fn sibling_only_writes_skip_the_ranked_re_key() { true, None, pv, - None, ) .expect("expected to delete the slike document"); assert_eq!( @@ -867,7 +861,6 @@ fn preallocated_groups_stay_rankable_at_zero_with_the_sibling() { true, None, pv, - None, ) .expect("expected to insert the post"); @@ -913,7 +906,6 @@ fn preallocated_groups_stay_rankable_at_zero_with_the_sibling() { true, None, pv, - None, ) .expect("expected to insert a plike entry"); like @@ -939,7 +931,6 @@ fn preallocated_groups_stay_rankable_at_zero_with_the_sibling() { true, None, pv, - None, ) .expect("expected to delete the plike entry"); } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/preallocated_index_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/preallocated_index_e2e_tests.rs index ebdf294b5f0..8f9487b19a1 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/preallocated_index_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/preallocated_index_e2e_tests.rs @@ -126,7 +126,6 @@ fn insert_post( apply, None, pv, - None, ) } @@ -267,7 +266,6 @@ fn should_preallocate_trees_bound_to_the_referenced_owner_id() { true, None, pv, - None, ) .expect("insert author like"); level.push(vec![0]); @@ -653,7 +651,6 @@ fn should_not_attach_flags_to_preallocated_trees_of_a_permanent_contract() { true, None, pv, - None, ) .expect("insert post with owned flags"); @@ -689,7 +686,6 @@ fn should_not_attach_flags_to_preallocated_trees_of_a_permanent_contract() { true, None, pv, - None, ) .expect("insert like with owned flags"); @@ -757,7 +753,6 @@ fn should_attach_creator_flags_to_preallocated_trees_of_a_deletable_contract() { true, None, pv, - None, ) .expect("insert post with owned flags"); @@ -807,7 +802,6 @@ fn should_not_emit_partial_paths_when_a_bound_property_is_absent() { true, None, pv, - None, ) .expect("insert note") }; diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/prefix_ranked_index_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/prefix_ranked_index_e2e_tests.rs index 9f9e7e2282a..1f01f5b390b 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/prefix_ranked_index_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/prefix_ranked_index_e2e_tests.rs @@ -170,7 +170,6 @@ fn insert_row( apply, None, pv, - None, ) } @@ -401,7 +400,6 @@ fn updating_a_hashtag_moves_its_document_between_groups() { StorageFlags::optional_default_as_cow(), None, pv, - None, ) .expect("expected to update the like document"); @@ -451,7 +449,6 @@ fn draining_a_hashtag_removes_it_from_the_ranking() { true, None, pv, - None, ) .expect("expected to delete the like document"); let mut after = count_top_k_named(&drive, &grouping_path, 10, true); @@ -664,7 +661,6 @@ fn index_only_entries_rank_hashtags_and_drain_on_delete() { true, None, pv, - None, ) .expect("expected to delete the ilike entry"); let mut after = count_top_k_named(&drive, &grouping_path, 10, true); @@ -680,7 +676,6 @@ fn index_only_entries_rank_hashtags_and_drain_on_delete() { true, None, pv, - None, ) .expect("expected to delete beta's only entry"); assert_eq!( @@ -790,7 +785,6 @@ fn both_levels_rank_on_one_index() { true, None, pv, - None, ) .expect("expected to delete a like"); assert_eq!( @@ -812,7 +806,6 @@ fn both_levels_rank_on_one_index() { true, None, pv, - None, ) .expect("expected to delete beta's only like"); assert_eq!( @@ -904,7 +897,6 @@ fn every_level_of_an_index_can_rank() { true, None, pv, - None, ) .expect("expected to delete a chain document"); assert_eq!( @@ -958,7 +950,6 @@ fn preallocated_groups_stay_rankable_at_zero() { true, None, pv, - None, ) .expect("expected to insert the post"); @@ -1003,7 +994,6 @@ fn preallocated_groups_stay_rankable_at_zero() { true, None, pv, - None, ) .expect("expected to insert a plike entry"); like @@ -1024,7 +1014,6 @@ fn preallocated_groups_stay_rankable_at_zero() { true, None, pv, - None, ) .expect("expected to delete the plike entry"); } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/range_countable_index_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/range_countable_index_e2e_tests.rs index 82dd88d113f..fb9b80df1dc 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/range_countable_index_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/range_countable_index_e2e_tests.rs @@ -250,7 +250,6 @@ fn insert_widgets( true, None, platform_version, - None, ) .expect("expected to insert document"); } @@ -338,7 +337,6 @@ fn value_tree_for_range_countable_index_is_count_tree_after_insert() { true, None, pv, - None, ) .expect("expected to insert document"); @@ -417,7 +415,6 @@ fn count_tree_value_count_excludes_compound_continuation_via_non_counted() { true, None, pv, - None, ) .expect("expected to insert document"); @@ -510,7 +507,6 @@ fn delete_decrements_count_tree_and_provable_count_aggregate() { true, None, pv, - None, ) .expect("expected to insert document"); } @@ -533,7 +529,6 @@ fn delete_decrements_count_tree_and_provable_count_aggregate() { true, None, pv, - None, ) .expect("expected to delete document"); @@ -602,7 +597,6 @@ fn aggregate_count_grows_across_distinct_values() { true, None, pv, - None, ) .expect("expected to insert document"); } @@ -680,7 +674,6 @@ fn range_count_executor_sums_and_splits_correctly() { true, None, pv, - None, ) .expect("expected to insert document"); } @@ -861,7 +854,6 @@ fn range_count_executor_between_is_inclusive_on_both_bounds() { true, None, pv, - None, ) .expect("expected to insert document"); } @@ -962,7 +954,6 @@ fn aggregate_count_proof_verifies_and_returns_correct_count() { true, None, pv, - None, ) .expect("expected to insert document"); } @@ -1922,7 +1913,6 @@ fn range_count_executor_accepts_starts_with_in_all_four_modes() { true, None, pv, - None, ) .expect("insert document"); } @@ -2169,7 +2159,6 @@ fn setup_widget_with_5_colors_2_docs_each() -> (Drive, DataContract) { true, None, pv, - None, ) .expect("expected to insert document"); seed += 1; @@ -2592,7 +2581,6 @@ fn aggregate_count_proof_counts_cars_in_parking_lots_greater_than_b() { true, None, pv, - None, ) .expect("expected to insert car document"); seed += 1; @@ -2857,7 +2845,6 @@ fn range_count_executor_returns_per_lot_counts_for_lots_greater_than_b() { true, None, pv, - None, ) .expect("expected to insert car document"); seed += 1; @@ -3035,7 +3022,6 @@ fn distinct_count_proof_returns_per_lot_counts_for_lots_greater_than_b() { true, None, pv, - None, ) .expect("expected to insert car document"); seed += 1; @@ -3379,7 +3365,6 @@ fn distinct_count_proof_honors_request_limit() { true, None, pv, - None, ) .expect("insert"); } @@ -3536,7 +3521,6 @@ fn distinct_count_proof_descending_returns_last_limit_keys() { true, None, pv, - None, ) .expect("insert"); } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/ranked_index_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/ranked_index_e2e_tests.rs index 188df96a535..1fb9c8e7d64 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/ranked_index_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/ranked_index_e2e_tests.rs @@ -226,7 +226,6 @@ fn insert_doc(drive: &Drive, contract: &DataContract, document_type_name: &str, true, None, pv, - None, ) .unwrap_or_else(|e| panic!("expected to insert {document_type_name} document: {e}")); } @@ -589,7 +588,6 @@ fn updating_a_grade_reorders_the_avg_ranking() { StorageFlags::optional_default_as_cow(), None, pv, - None, ) .expect("expected to update the review document"); @@ -637,7 +635,6 @@ fn draining_a_group_removes_it_from_the_avg_axis() { true, None, pv, - None, ) .expect("expected to delete the second beta review"); @@ -659,7 +656,6 @@ fn draining_a_group_removes_it_from_the_avg_axis() { true, None, pv, - None, ) .expect("expected to delete the first beta review"); @@ -1271,7 +1267,6 @@ fn estimated_and_actual_insert_fees( apply, None, pv, - None, ) .unwrap_or_else(|e| { panic!("expected the {document_type_name} insert (apply={apply}) to succeed: {e}") @@ -1368,7 +1363,6 @@ fn estimated_and_actual_update_fees( storage_flags.clone(), None, pv, - None, ) .unwrap_or_else(|e| { panic!("expected the {document_type_name} update (apply={apply}) to succeed: {e}") @@ -1981,7 +1975,6 @@ fn ranked_index_ranks_correctly_next_to_a_compound_index_sharing_its_property() StorageFlags::optional_default_as_cow(), None, platform_version(), - None, ) .expect("expected to update the dish document across the compound index"); @@ -2003,7 +1996,6 @@ fn ranked_index_ranks_correctly_next_to_a_compound_index_sharing_its_property() true, None, platform_version(), - None, ) .expect("expected to delete an alpha dish"); } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/shared_prefix_aggregation_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/shared_prefix_aggregation_e2e_tests.rs index f90a946fa9c..e9377fe3e46 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/shared_prefix_aggregation_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/shared_prefix_aggregation_e2e_tests.rs @@ -391,7 +391,6 @@ fn insert_review_document( apply, None, platform_version, - None, ) .map(|_| document) .map_err(|error| format!("{error:?}")) @@ -426,7 +425,6 @@ fn update_review_document_resource( None, None, platform_version, - None, ) .map(|_| updated) .map_err(|error| format!("{error:?}")) @@ -447,7 +445,6 @@ fn delete_review_document( true, None, platform_version, - None, ) .map(|_| ()) .map_err(|error| format!("{error:?}")) @@ -998,7 +995,6 @@ fn range_demotion_and_at_chain_exemption_coexist_in_one_doctype() { true, None, platform_version, - None, ) .expect("expected to insert a mixed document"); } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/skip_if_absent_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/skip_if_absent_e2e_tests.rs index 3adf63bb194..2f18ce96c20 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/skip_if_absent_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/skip_if_absent_e2e_tests.rs @@ -202,7 +202,6 @@ fn insert_like( apply, None, platform_version(), - None, ) .expect("expected to insert the like") } @@ -224,7 +223,6 @@ fn delete_like( apply, None, platform_version(), - None, ) .expect("expected to delete the like") } @@ -462,7 +460,6 @@ pub(super) fn insert_document( apply, None, platform_version, - None, ) } @@ -486,7 +483,6 @@ pub(super) fn replace_document( StorageFlags::optional_default_as_cow(), None, platform_version, - None, ) } @@ -549,7 +545,6 @@ pub(super) fn delete_document(drive: &Drive, contract: &DataContract, doctype: & true, None, platform_version(), - None, ) .expect("expected to delete the document"); } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/summable_off_count_index_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/summable_off_count_index_e2e_tests.rs index b0dc7b17751..aea10881f8a 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/summable_off_count_index_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/summable_off_count_index_e2e_tests.rs @@ -168,7 +168,6 @@ fn insert_post( true, None, pv, - None, ) .expect("insert the post"); post.id().to_buffer() @@ -1028,7 +1027,6 @@ fn should_refuse_a_batch_writing_two_likes_of_a_type_keeping_counters() { &BlockInfo::default(), None, pv, - None, ) .map(|_| ()); assert!(refused(result), "apply: {apply}"); @@ -1061,7 +1059,7 @@ fn should_refuse_a_batch_writing_two_likes_of_a_type_keeping_counters() { operations.reverse(); } let result = drive - .apply_drive_operations(operations, true, &BlockInfo::default(), None, pv, None) + .apply_drive_operations(operations, true, &BlockInfo::default(), None, pv) .map(|_| ()); assert!( refused(result), @@ -1089,14 +1087,7 @@ fn should_refuse_a_batch_writing_two_likes_of_a_type_keeping_counters() { } drive - .apply_drive_operations( - vec![add(&likes[0])], - true, - &BlockInfo::default(), - None, - pv, - None, - ) + .apply_drive_operations(vec![add(&likes[0])], true, &BlockInfo::default(), None, pv) .expect("one like a batch applies"); let a_posts = level(&contract, &[b"postAuthor", &AUTHOR_A, b"postId"]); let counter = read_grove_element(&drive, &a_posts, &post).expect("the counter"); diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/typed_array_counter_index_e2e_tests.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/typed_array_counter_index_e2e_tests.rs index fa834bbb208..1d0764deb31 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/typed_array_counter_index_e2e_tests.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v0/tests/typed_array_counter_index_e2e_tests.rs @@ -170,7 +170,6 @@ fn insert( apply, None, platform_version(), - None, ) .unwrap_or_else(|error| panic!("the {type_name} inserts: {error:?}")) } @@ -193,7 +192,6 @@ fn delete_like(drive: &Drive, contract: &DataContract, like: &Document, apply: b apply, None, platform_version(), - None, ) .expect("the like deletes") } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v1/mod.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v1/mod.rs index 795383bb8bb..1090dd3f3ee 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v1/mod.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v1/mod.rs @@ -56,13 +56,11 @@ impl Drive { platform_version, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/contract/insert/insert_contract/v2/mod.rs b/packages/rs-drive/src/drive/contract/insert/insert_contract/v2/mod.rs index b6e40380ee4..7faa70cfb76 100644 --- a/packages/rs-drive/src/drive/contract/insert/insert_contract/v2/mod.rs +++ b/packages/rs-drive/src/drive/contract/insert/insert_contract/v2/mod.rs @@ -53,13 +53,11 @@ impl Drive { &platform_version.drive, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/contract/migration/rekey_unsigned_integer_index_values.rs b/packages/rs-drive/src/drive/contract/migration/rekey_unsigned_integer_index_values.rs index 17e38d50150..34a6387e263 100644 --- a/packages/rs-drive/src/drive/contract/migration/rekey_unsigned_integer_index_values.rs +++ b/packages/rs-drive/src/drive/contract/migration/rekey_unsigned_integer_index_values.rs @@ -922,7 +922,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to delete a rewritten item"); insert_document( @@ -963,7 +962,6 @@ mod tests { Some(Cow::Owned(StorageFlags::SingleEpoch(0))), None, platform_version, - None, ) .expect("expected to update a rewritten item"); assert_eq!( @@ -1184,7 +1182,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to delete a document written at protocol version 13"); insert_document( @@ -1761,7 +1758,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to award the document"); diff --git a/packages/rs-drive/src/drive/contract/mod.rs b/packages/rs-drive/src/drive/contract/mod.rs index 33767c67540..2af7a2f7526 100644 --- a/packages/rs-drive/src/drive/contract/mod.rs +++ b/packages/rs-drive/src/drive/contract/mod.rs @@ -347,7 +347,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); } @@ -574,7 +573,6 @@ mod tests { false, None, platform_version, - None, ) .expect("expected to apply contract successfully"); } @@ -651,7 +649,6 @@ mod tests { true, Some(&transaction), platform_version, - None, ) .expect("should update contract"); @@ -979,7 +976,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -1030,7 +1026,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should update contract with new document type"); @@ -1214,7 +1209,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should update contract with history"); @@ -1813,8 +1807,7 @@ mod tests { .expect("should set document schema"); contract.increment_version(); - let result = - drive.update_contract(&contract, block_info, true, None, platform_version, None); + let result = drive.update_contract(&contract, block_info, true, None, platform_version); assert!( matches!( @@ -2077,7 +2070,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -2119,7 +2111,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -2163,7 +2154,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -2209,7 +2199,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -2296,7 +2285,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -2387,7 +2375,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -2807,7 +2794,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -2847,7 +2833,6 @@ mod tests { false, None, platform_version, - None, ) .expect("expected update_contract(apply=false) to succeed via insert delegation"); diff --git a/packages/rs-drive/src/drive/contract/moderation/action_count_tests.rs b/packages/rs-drive/src/drive/contract/moderation/action_count_tests.rs index 53e1e1f65f3..ec7f6164a69 100644 --- a/packages/rs-drive/src/drive/contract/moderation/action_count_tests.rs +++ b/packages/rs-drive/src/drive/contract/moderation/action_count_tests.rs @@ -116,7 +116,6 @@ fn apply( &BlockInfo::default(), None, PlatformVersion::latest(), - None, ) .expect("expected to apply the operations") } diff --git a/packages/rs-drive/src/drive/contract/moderation/add_contract_ban/v0/mod.rs b/packages/rs-drive/src/drive/contract/moderation/add_contract_ban/v0/mod.rs index 14cb37e19e1..b143ad10490 100644 --- a/packages/rs-drive/src/drive/contract/moderation/add_contract_ban/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/moderation/add_contract_ban/v0/mod.rs @@ -50,13 +50,11 @@ impl Drive { &platform_version.drive, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/contract/moderation/add_contract_suspension/v0/mod.rs b/packages/rs-drive/src/drive/contract/moderation/add_contract_suspension/v0/mod.rs index aaaf0edd9a9..818f5ec834d 100644 --- a/packages/rs-drive/src/drive/contract/moderation/add_contract_suspension/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/moderation/add_contract_suspension/v0/mod.rs @@ -55,13 +55,11 @@ impl Drive { &platform_version.drive, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/contract/moderation/add_contract_warning/v0/mod.rs b/packages/rs-drive/src/drive/contract/moderation/add_contract_warning/v0/mod.rs index c676a73a5f1..86807199767 100644 --- a/packages/rs-drive/src/drive/contract/moderation/add_contract_warning/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/moderation/add_contract_warning/v0/mod.rs @@ -53,13 +53,11 @@ impl Drive { &platform_version.drive, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/contract/moderation/document_removal_tests.rs b/packages/rs-drive/src/drive/contract/moderation/document_removal_tests.rs index 8ac6133ff0a..4e0a47ada26 100644 --- a/packages/rs-drive/src/drive/contract/moderation/document_removal_tests.rs +++ b/packages/rs-drive/src/drive/contract/moderation/document_removal_tests.rs @@ -35,21 +35,15 @@ use dpp::data_contract::document_type::random_document::CreateRandomDocument; use dpp::data_contract::schema::DataContractSchemaMethodsV0; use dpp::data_contract::DataContract; use dpp::document::{Document, DocumentV0, DocumentV0Getters, DocumentV0Setters}; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::identifier::Identifier; use dpp::platform_value::{platform_value, Value}; use dpp::tests::fixtures::get_data_contract_fixture; -use dpp::version::fee::FeeVersion; use dpp::version::PlatformVersion; use grovedb::Element; -use once_cell::sync::Lazy; use std::borrow::Cow; use std::collections::BTreeMap; -static FEE_VERSIONS: Lazy = - Lazy::new(|| BTreeMap::from([(0, FeeVersion::first())])); - const POST: &str = "post"; fn identity(seed: u8) -> Identifier { @@ -200,7 +194,6 @@ fn apply(drive: &Drive, operations: Vec, apply: bool) -> FeeResu &BlockInfo::default_with_epoch(Epoch::new(3).expect("epoch")), None, PlatformVersion::latest(), - Some(&FEE_VERSIONS), ) .expect("expected to apply the operations") } @@ -306,7 +299,6 @@ fn should_create_the_removal_tree_of_a_document_type_an_update_adds() { false, None, platform_version, - Some(&FEE_VERSIONS), ) .expect("expected to estimate the update"); let applied = drive @@ -316,7 +308,6 @@ fn should_create_the_removal_tree_of_a_document_type_an_update_adds() { true, None, platform_version, - Some(&FEE_VERSIONS), ) .expect("expected to update the contract"); assert!(estimated.storage_fee >= applied.storage_fee); @@ -352,7 +343,6 @@ fn should_create_the_removals_tree_with_the_first_document_type_an_update_adds() true, None, platform_version, - Some(&FEE_VERSIONS), ) .expect("expected to update the contract"); assert!(has_removals_root(&drive, contract.id())); @@ -902,7 +892,6 @@ fn add_post(drive: &Drive, contract: &DataContract, owner_id: Identifier) -> Doc true, None, platform_version, - None, ) .expect("expected to add the post"); document @@ -1263,7 +1252,6 @@ fn should_delete_for_a_moderator_a_document_its_owner_can_not_delete() { &BlockInfo::default(), None, platform_version, - Some(&FEE_VERSIONS), ) .expect_err("expected the owner's deletion to be refused"); diff --git a/packages/rs-drive/src/drive/contract/moderation/fetch_contract_document_removals/mod.rs b/packages/rs-drive/src/drive/contract/moderation/fetch_contract_document_removals/mod.rs index 8be78ea2cda..261842e7781 100644 --- a/packages/rs-drive/src/drive/contract/moderation/fetch_contract_document_removals/mod.rs +++ b/packages/rs-drive/src/drive/contract/moderation/fetch_contract_document_removals/mod.rs @@ -107,14 +107,8 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fee = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((fee, removal)) } version => Err(Error::Drive(DriveError::UnknownVersionMismatch { diff --git a/packages/rs-drive/src/drive/contract/moderation/fetch_contract_moderation_action_counts/mod.rs b/packages/rs-drive/src/drive/contract/moderation/fetch_contract_moderation_action_counts/mod.rs index 6be1d64117a..f5e1261eeec 100644 --- a/packages/rs-drive/src/drive/contract/moderation/fetch_contract_moderation_action_counts/mod.rs +++ b/packages/rs-drive/src/drive/contract/moderation/fetch_contract_moderation_action_counts/mod.rs @@ -118,14 +118,8 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fee = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((fee, counts)) } version => Err(Error::Drive(DriveError::UnknownVersionMismatch { @@ -179,14 +173,8 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fee = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((fee, count)) } version => Err(Error::Drive(DriveError::UnknownVersionMismatch { diff --git a/packages/rs-drive/src/drive/contract/moderation/fetch_contract_moderation_status/mod.rs b/packages/rs-drive/src/drive/contract/moderation/fetch_contract_moderation_status/mod.rs index ea471c66931..035d2686758 100644 --- a/packages/rs-drive/src/drive/contract/moderation/fetch_contract_moderation_status/mod.rs +++ b/packages/rs-drive/src/drive/contract/moderation/fetch_contract_moderation_status/mod.rs @@ -101,14 +101,8 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fee = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((fee, status)) } version => Err(Error::Drive(DriveError::UnknownVersionMismatch { diff --git a/packages/rs-drive/src/drive/contract/moderation/fetch_contract_team_action/mod.rs b/packages/rs-drive/src/drive/contract/moderation/fetch_contract_team_action/mod.rs index 628cc16eaa9..460a60fa65b 100644 --- a/packages/rs-drive/src/drive/contract/moderation/fetch_contract_team_action/mod.rs +++ b/packages/rs-drive/src/drive/contract/moderation/fetch_contract_team_action/mod.rs @@ -101,14 +101,8 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fee = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((fee, action)) } version => Err(Error::Drive(DriveError::UnknownVersionMismatch { diff --git a/packages/rs-drive/src/drive/contract/moderation/fetch_contract_team_action_signers/mod.rs b/packages/rs-drive/src/drive/contract/moderation/fetch_contract_team_action_signers/mod.rs index 2938945b9e2..6a4f6bcedf0 100644 --- a/packages/rs-drive/src/drive/contract/moderation/fetch_contract_team_action_signers/mod.rs +++ b/packages/rs-drive/src/drive/contract/moderation/fetch_contract_team_action_signers/mod.rs @@ -115,14 +115,8 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fee = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((fee, signers)) } version => Err(Error::Drive(DriveError::UnknownVersionMismatch { diff --git a/packages/rs-drive/src/drive/contract/moderation/remove_contract_ban/v0/mod.rs b/packages/rs-drive/src/drive/contract/moderation/remove_contract_ban/v0/mod.rs index 72e655a2b9d..d228df8bf10 100644 --- a/packages/rs-drive/src/drive/contract/moderation/remove_contract_ban/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/moderation/remove_contract_ban/v0/mod.rs @@ -47,13 +47,11 @@ impl Drive { &platform_version.drive, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/contract/moderation/remove_contract_suspension/v0/mod.rs b/packages/rs-drive/src/drive/contract/moderation/remove_contract_suspension/v0/mod.rs index dcd10ca0074..a5ac05d6a39 100644 --- a/packages/rs-drive/src/drive/contract/moderation/remove_contract_suspension/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/moderation/remove_contract_suspension/v0/mod.rs @@ -47,13 +47,11 @@ impl Drive { &platform_version.drive, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/contract/moderation/remove_contract_warnings/v0/mod.rs b/packages/rs-drive/src/drive/contract/moderation/remove_contract_warnings/v0/mod.rs index b617ba904c6..e74d7ee8c60 100644 --- a/packages/rs-drive/src/drive/contract/moderation/remove_contract_warnings/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/moderation/remove_contract_warnings/v0/mod.rs @@ -47,13 +47,11 @@ impl Drive { &platform_version.drive, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/contract/moderation/team_action_tests.rs b/packages/rs-drive/src/drive/contract/moderation/team_action_tests.rs index a0fc912cdc2..152b2abc053 100644 --- a/packages/rs-drive/src/drive/contract/moderation/team_action_tests.rs +++ b/packages/rs-drive/src/drive/contract/moderation/team_action_tests.rs @@ -30,7 +30,6 @@ use dpp::data_contract::document_type::random_document::CreateRandomDocument; use dpp::data_contract::schema::DataContractSchemaMethodsV0; use dpp::data_contract::DataContract; use dpp::document::{Document, DocumentV0Getters, DocumentV0Setters}; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::group::group_action_status::GroupActionStatus; use dpp::identifier::Identifier; @@ -38,13 +37,9 @@ use dpp::platform_value::{platform_value, Value}; use dpp::tests::fixtures::get_data_contract_fixture; use dpp::version::fee::FeeVersion; use dpp::version::PlatformVersion; -use once_cell::sync::Lazy; use std::borrow::Cow; use std::collections::{BTreeMap, BTreeSet}; -static FEE_VERSIONS: Lazy = - Lazy::new(|| BTreeMap::from([(0, FeeVersion::first())])); - const POST: &str = "post"; fn identity(seed: u8) -> Identifier { @@ -207,7 +202,6 @@ fn apply(drive: &Drive, operations: Vec, apply: bool) -> FeeResu &BlockInfo::default_with_epoch(Epoch::new(3).expect("epoch")), None, PlatformVersion::latest(), - Some(&FEE_VERSIONS), ) .expect("expected to apply the operations") } @@ -726,7 +720,6 @@ fn add_post(drive: &Drive, contract: &DataContract, owner_id: Identifier) -> Doc true, None, platform_version, - None, ) .expect("expected to add the post"); document diff --git a/packages/rs-drive/src/drive/contract/moderation/tests.rs b/packages/rs-drive/src/drive/contract/moderation/tests.rs index 611a942210b..e1624e88340 100644 --- a/packages/rs-drive/src/drive/contract/moderation/tests.rs +++ b/packages/rs-drive/src/drive/contract/moderation/tests.rs @@ -252,14 +252,7 @@ fn should_keep_the_list_trees_and_their_entries_across_a_contract_update() { })), ); drive - .update_contract( - &updated, - BlockInfo::default(), - true, - None, - platform_version, - None, - ) + .update_contract(&updated, BlockInfo::default(), true, None, platform_version) .expect("expected to update the contract"); assert!(has_list_tree(&drive, contract.id(), CONTRACT_BANLIST_KEY)); diff --git a/packages/rs-drive/src/drive/contract/update/update_contract/mod.rs b/packages/rs-drive/src/drive/contract/update/update_contract/mod.rs index ed4c54b5d06..d0d94faa77b 100644 --- a/packages/rs-drive/src/drive/contract/update/update_contract/mod.rs +++ b/packages/rs-drive/src/drive/contract/update/update_contract/mod.rs @@ -11,7 +11,6 @@ use dpp::block::block_info::BlockInfo; use dpp::data_contract::DataContract; use dpp::fee::fee_result::FeeResult; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use grovedb::{Element, TransactionArg}; @@ -48,7 +47,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -57,30 +55,15 @@ impl Drive { .update .update_contract { - 0 => self.update_contract_v0( - contract, - block_info, - apply, - transaction, - platform_version, - previous_fee_versions, - ), - 1 => self.update_contract_v1( - contract, - block_info, - apply, - transaction, - platform_version, - previous_fee_versions, - ), - 2 => self.update_contract_v2( - contract, - block_info, - apply, - transaction, - platform_version, - previous_fee_versions, - ), + 0 => { + self.update_contract_v0(contract, block_info, apply, transaction, platform_version) + } + 1 => { + self.update_contract_v1(contract, block_info, apply, transaction, platform_version) + } + 2 => { + self.update_contract_v2(contract, block_info, apply, transaction, platform_version) + } version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "update_contract".to_string(), known_versions: vec![0, 1, 2], diff --git a/packages/rs-drive/src/drive/contract/update/update_contract/v0/mod.rs b/packages/rs-drive/src/drive/contract/update/update_contract/v0/mod.rs index 6e778b1a93e..c7c3998c3b1 100644 --- a/packages/rs-drive/src/drive/contract/update/update_contract/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/update/update_contract/v0/mod.rs @@ -18,7 +18,6 @@ use dpp::data_contract::document_type::accessors::{DocumentTypeV0Getters, Docume use dpp::data_contract::DataContract; use dpp::fee::fee_result::FeeResult; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use grovedb::{Element, TransactionArg, TreeType}; @@ -54,7 +53,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { if !apply { return self.insert_contract( @@ -131,13 +129,11 @@ impl Drive { .data_contracts .insert_rewritten(updated_contract_fetch_info, transaction.is_some()); - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } @@ -808,7 +804,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update with new doc type should succeed"); @@ -884,7 +879,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -1023,7 +1017,6 @@ mod tests { false, None, platform_version, - None, ) .expect("apply=false on existing should succeed via insert delegation"); @@ -1353,7 +1346,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update existing doctype with new index"); diff --git a/packages/rs-drive/src/drive/contract/update/update_contract/v1/mod.rs b/packages/rs-drive/src/drive/contract/update/update_contract/v1/mod.rs index 9dcb2a5d8e6..5125771d769 100644 --- a/packages/rs-drive/src/drive/contract/update/update_contract/v1/mod.rs +++ b/packages/rs-drive/src/drive/contract/update/update_contract/v1/mod.rs @@ -14,7 +14,6 @@ use dpp::fee::fee_result::FeeResult; use crate::error::contract::DataContractError; use dpp::data_contract::accessors::v1::DataContractV1Getters; use dpp::data_contract::associated_token::token_configuration::accessors::v0::TokenConfigurationV0Getters; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use grovedb::{Element, TransactionArg}; @@ -50,7 +49,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { if !apply { return self.insert_contract( @@ -127,13 +125,11 @@ impl Drive { .data_contracts .insert_rewritten(updated_contract_fetch_info, transaction.is_some()); - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } @@ -353,7 +349,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding tokens should succeed"); } @@ -397,7 +392,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding groups should succeed"); } @@ -460,7 +454,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update keyword delta via update_contract should succeed"); } @@ -573,7 +566,6 @@ mod tests { true, None, platform_version, - None, ) .expect("clearing keywords via update_contract should succeed"); @@ -639,7 +631,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update description via update_contract should succeed"); } diff --git a/packages/rs-drive/src/drive/contract/update/update_contract/v2/mod.rs b/packages/rs-drive/src/drive/contract/update/update_contract/v2/mod.rs index ecf598277c1..36f836104a2 100644 --- a/packages/rs-drive/src/drive/contract/update/update_contract/v2/mod.rs +++ b/packages/rs-drive/src/drive/contract/update/update_contract/v2/mod.rs @@ -21,7 +21,6 @@ use dpp::data_contract::associated_token::token_configuration::accessors::v0::To use dpp::data_contract::associated_token::token_configuration::accessors::v1::TokenConfigurationV1Getters; use dpp::data_contract::associated_token::token_distribution_rules::accessors::v0::TokenDistributionRulesV0Getters; use dpp::data_contract::associated_token::token_distribution_rules::accessors::v1::TokenDistributionRulesV1Getters; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use dpp::ProtocolError; use grovedb::{Element, TransactionArg}; @@ -58,7 +57,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { if !apply { return self.insert_contract( @@ -136,13 +134,11 @@ impl Drive { .data_contracts .insert_rewritten(updated_contract_fetch_info, transaction.is_some()); - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } @@ -545,7 +541,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding the token should succeed"); @@ -644,7 +639,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding the token should succeed"); @@ -692,7 +686,6 @@ mod tests { true, None, platform_version, - None, ) .expect("a later update should leave the claims subtree alone"); } @@ -809,7 +802,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update keeping existing tokens should succeed"); } @@ -874,7 +866,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding the token should succeed"); @@ -1033,7 +1024,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding two tokens should succeed"); @@ -1070,7 +1060,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update after the upgrade should succeed"); @@ -1163,7 +1152,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update keeping existing tokens should succeed"); } @@ -1225,7 +1213,6 @@ mod tests { false, None, platform_version, - None, ) .expect("estimate adding a pooled token through contract update") } else { @@ -1249,7 +1236,6 @@ mod tests { true, None, platform_version, - None, ) .expect("add token through contract update"); } else { @@ -1297,7 +1283,6 @@ mod tests { false, None, platform_version, - None, ) .expect("estimate updating a contract whose token owns a pool"); assert!(estimate_with_pool.processing_fee > 0); @@ -1316,7 +1301,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update existing token without recreating storage"); assert_eq!( diff --git a/packages/rs-drive/src/drive/contract/update/update_description/v0/mod.rs b/packages/rs-drive/src/drive/contract/update/update_description/v0/mod.rs index 38086ff8f58..fd63e6d1885 100644 --- a/packages/rs-drive/src/drive/contract/update/update_description/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/update/update_description/v0/mod.rs @@ -40,13 +40,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/contract/update/update_keywords/v0/mod.rs b/packages/rs-drive/src/drive/contract/update/update_keywords/v0/mod.rs index f718e5cb79d..8488cac9fe0 100644 --- a/packages/rs-drive/src/drive/contract/update/update_keywords/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/update/update_keywords/v0/mod.rs @@ -40,13 +40,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/contract_groups/fetch/fetch_contract_group_info/v0/mod.rs b/packages/rs-drive/src/drive/contract_groups/fetch/fetch_contract_group_info/v0/mod.rs index 2347cd76bce..7a28b1f3877 100644 --- a/packages/rs-drive/src/drive/contract_groups/fetch/fetch_contract_group_info/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract_groups/fetch/fetch_contract_group_info/v0/mod.rs @@ -40,14 +40,7 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fee = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee = self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((fee, info)) } diff --git a/packages/rs-drive/src/drive/contract_groups/fetch/fetch_contract_group_memberships_for_contract/v0/mod.rs b/packages/rs-drive/src/drive/contract_groups/fetch/fetch_contract_group_memberships_for_contract/v0/mod.rs index 3fd88917c61..bc3356eb9bd 100644 --- a/packages/rs-drive/src/drive/contract_groups/fetch/fetch_contract_group_memberships_for_contract/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract_groups/fetch/fetch_contract_group_memberships_for_contract/v0/mod.rs @@ -41,14 +41,7 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fee = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee = self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((fee, memberships)) } diff --git a/packages/rs-drive/src/drive/contract_groups/insert/insert_contract_group/v0/mod.rs b/packages/rs-drive/src/drive/contract_groups/insert/insert_contract_group/v0/mod.rs index 1976de7dfe3..5a414beb022 100644 --- a/packages/rs-drive/src/drive/contract_groups/insert/insert_contract_group/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract_groups/insert/insert_contract_group/v0/mod.rs @@ -48,13 +48,11 @@ impl Drive { &platform_version.drive, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/contract_groups/insert/insert_contract_group_memberships/v0/mod.rs b/packages/rs-drive/src/drive/contract_groups/insert/insert_contract_group_memberships/v0/mod.rs index 5d1743c49b8..bced11426b4 100644 --- a/packages/rs-drive/src/drive/contract_groups/insert/insert_contract_group_memberships/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract_groups/insert/insert_contract_group_memberships/v0/mod.rs @@ -69,13 +69,11 @@ impl Drive { &platform_version.drive, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/add_delete_pending_epoch_refunds_except_specified/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/add_delete_pending_epoch_refunds_except_specified/v0/mod.rs index fcb4223f946..c6ca4794301 100644 --- a/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/add_delete_pending_epoch_refunds_except_specified/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/add_delete_pending_epoch_refunds_except_specified/v0/mod.rs @@ -100,7 +100,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("should apply batch"); diff --git a/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/fetch_and_add_pending_epoch_refunds_to_collection/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/fetch_and_add_pending_epoch_refunds_to_collection/v0/mod.rs index 02d1c5fbd94..9d526ba7b76 100644 --- a/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/fetch_and_add_pending_epoch_refunds_to_collection/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/fetch_and_add_pending_epoch_refunds_to_collection/v0/mod.rs @@ -112,7 +112,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("should apply batch"); diff --git a/packages/rs-drive/src/drive/document/cost/tests.rs b/packages/rs-drive/src/drive/document/cost/tests.rs index 1e1c558f7cb..057712b413f 100644 --- a/packages/rs-drive/src/drive/document/cost/tests.rs +++ b/packages/rs-drive/src/drive/document/cost/tests.rs @@ -76,7 +76,6 @@ fn insert_at( true, None, PlatformVersion::latest(), - None, ) } diff --git a/packages/rs-drive/src/drive/document/delete/delete_document_for_contract/mod.rs b/packages/rs-drive/src/drive/document/delete/delete_document_for_contract/mod.rs index 616d27de6c6..6f91cebf300 100644 --- a/packages/rs-drive/src/drive/document/delete/delete_document_for_contract/mod.rs +++ b/packages/rs-drive/src/drive/document/delete/delete_document_for_contract/mod.rs @@ -10,7 +10,6 @@ use dpp::fee::fee_result::FeeResult; use dpp::version::PlatformVersion; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::identifier::Identifier; use grovedb::TransactionArg; @@ -40,7 +39,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -57,7 +55,6 @@ impl Drive { apply, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "delete_document_for_contract".to_string(), diff --git a/packages/rs-drive/src/drive/document/delete/delete_document_for_contract/v0/mod.rs b/packages/rs-drive/src/drive/document/delete/delete_document_for_contract/v0/mod.rs index e6a0da6d2f3..20580c92f17 100644 --- a/packages/rs-drive/src/drive/document/delete/delete_document_for_contract/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/delete/delete_document_for_contract/v0/mod.rs @@ -6,7 +6,6 @@ use dpp::block::block_info::BlockInfo; use dpp::data_contract::DataContract; use dpp::fee::fee_result::FeeResult; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::identifier::Identifier; use dpp::version::PlatformVersion; use grovedb::TransactionArg; @@ -24,7 +23,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut drive_operations: Vec = vec![]; let estimated_costs_only_with_layer_info = (!apply).then(EstimatedLayers::new); @@ -38,13 +36,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_id/mod.rs b/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_id/mod.rs index 3737d85c356..ffbaa646ed1 100644 --- a/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_id/mod.rs +++ b/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_id/mod.rs @@ -4,7 +4,6 @@ use grovedb::TransactionArg; use crate::drive::Drive; use dpp::block::block_info::BlockInfo; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use crate::error::drive::DriveError; @@ -41,7 +40,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -58,7 +56,6 @@ impl Drive { apply, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "delete_document_for_contract_id".to_string(), diff --git a/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_id/v0/mod.rs b/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_id/v0/mod.rs index f2f9dbe782c..7963b4574b4 100644 --- a/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_id/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_id/v0/mod.rs @@ -5,7 +5,6 @@ use grovedb::TransactionArg; use crate::drive::Drive; use crate::error::document::DocumentError; use dpp::block::block_info::BlockInfo; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use crate::error::Error; use crate::fees::op::LowLevelDriveOperation; @@ -28,7 +27,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut drive_operations: Vec = vec![]; let estimated_costs_only_with_layer_info = (!apply).then(EstimatedLayers::new); @@ -56,13 +54,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_operations/mod.rs b/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_operations/mod.rs index a304905e2b8..f900a89beb6 100644 --- a/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_operations/mod.rs +++ b/packages/rs-drive/src/drive/document/delete/delete_document_for_contract_operations/mod.rs @@ -275,7 +275,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to store the document"); @@ -336,15 +335,14 @@ mod tests { &platform_version.drive, ) .expect("expected to cost the operations"); - Drive::calculate_fee( - None, - Some(drive_operations), - &Epoch::new(0).expect("expected epoch 0"), - drive.config.epochs_per_era, - platform_version, - None, - ) - .expect("expected the fee") + drive + .calculate_fee( + None, + Some(drive_operations), + &Epoch::new(0).expect("expected epoch 0"), + platform_version, + ) + .expect("expected the fee") } /// A consumed document is deleted from what its lookup read diff --git a/packages/rs-drive/src/drive/document/delete/delete_index_only_document_for_contract_operations/mod.rs b/packages/rs-drive/src/drive/document/delete/delete_index_only_document_for_contract_operations/mod.rs index 40afd5dc44d..20846bdd80f 100644 --- a/packages/rs-drive/src/drive/document/delete/delete_index_only_document_for_contract_operations/mod.rs +++ b/packages/rs-drive/src/drive/document/delete/delete_index_only_document_for_contract_operations/mod.rs @@ -10,7 +10,6 @@ use dpp::block::block_info::BlockInfo; use dpp::data_contract::document_type::DocumentTypeRef; use dpp::data_contract::DataContract; use dpp::document::Document; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::version::PlatformVersion; @@ -139,9 +138,6 @@ impl Drive { /// values and owner) and applies the operations, returning the fee. /// `apply: false` runs the worst-case estimation instead — the same /// dry-run contract every other document operation follows. - /// `previous_fee_versions` carries the historical fee-version context - /// deletion refunds are priced against, exactly as on - /// `delete_document_for_contract`. /// /// # Parameters /// @@ -154,8 +150,6 @@ impl Drive { /// * `transaction`: The GroveDB transaction; without one, an applied deletion runs in a /// transaction of its own that is committed at the end. /// * `platform_version`: The platform version. - /// * `previous_fee_versions`: The fee versions of earlier epochs the refunds are priced - /// against. /// /// # Returns /// @@ -173,7 +167,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -190,7 +183,6 @@ impl Drive { apply, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "delete_index_only_document_for_contract".to_string(), diff --git a/packages/rs-drive/src/drive/document/delete/delete_index_only_document_for_contract_operations/v0/mod.rs b/packages/rs-drive/src/drive/document/delete/delete_index_only_document_for_contract_operations/v0/mod.rs index 75d0c425b7f..4c4f0ff57e7 100644 --- a/packages/rs-drive/src/drive/document/delete/delete_index_only_document_for_contract_operations/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/delete/delete_index_only_document_for_contract_operations/v0/mod.rs @@ -27,7 +27,6 @@ use dpp::document::DocumentV0Getters; use dpp::version::PlatformVersion; use dpp::block::block_info::BlockInfo; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; impl Drive { @@ -45,7 +44,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut drive_operations: Vec = vec![]; let mut estimated_costs_only_with_layer_info = (!apply).then(EstimatedLayers::new); @@ -80,13 +78,11 @@ impl Drive { self.commit_transaction(owned_transaction, &platform_version.drive)?; } - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } diff --git a/packages/rs-drive/src/drive/document/delete/mod.rs b/packages/rs-drive/src/drive/document/delete/mod.rs index ed79914b353..dd3d8ac65b6 100644 --- a/packages/rs-drive/src/drive/document/delete/mod.rs +++ b/packages/rs-drive/src/drive/document/delete/mod.rs @@ -55,9 +55,7 @@ mod tests { use dpp::block::block_info::BlockInfo; use rand::Rng; - use once_cell::sync::Lazy; use std::borrow::Cow; - use std::collections::BTreeMap; use std::option::Option::None; use crate::config::DriveConfig; @@ -75,8 +73,6 @@ mod tests { use dpp::data_contract::DataContract; use dpp::document::serialization_traits::DocumentPlatformConversionMethodsV0; use dpp::document::Document; - use dpp::fee::default_costs::KnownCostItem::StorageDiskUsageCreditPerByte; - use dpp::fee::default_costs::{CachedEpochIndexFeeVersions, EpochCosts}; use dpp::identifier::Identifier; use dpp::tests::json_document::{json_document_to_contract, json_document_to_document}; @@ -84,9 +80,6 @@ mod tests { use dpp::version::fee::FeeVersion; use dpp::version::PlatformVersion; - static EPOCH_CHANGE_FEE_VERSION_TEST: Lazy = - Lazy::new(|| BTreeMap::from([(0, FeeVersion::first())])); - #[test] fn test_add_and_remove_family_one_document_no_transaction() { let platform_version = PlatformVersion::latest(); @@ -138,7 +131,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -179,7 +171,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to be able to delete the document"); @@ -207,7 +198,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect_err("expected deleting a nonexistent document to fail"); @@ -272,7 +262,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -321,7 +310,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to be able to delete the document"); @@ -420,7 +408,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -455,7 +442,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -499,7 +485,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to be able to delete the document"); @@ -543,7 +528,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to be able to delete the document"); @@ -619,7 +603,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -650,7 +633,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -694,7 +676,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to be able to delete the document"); @@ -725,7 +706,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -748,7 +728,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to be able to delete the document"); @@ -768,7 +747,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to be able to delete the document"); @@ -831,7 +809,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to insert a document successfully"); @@ -851,7 +828,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to be able to delete the document"); } @@ -908,15 +884,13 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); let added_bytes = fee_result.storage_fee - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; // We added 1559 bytes assert_eq!(added_bytes, 1559); @@ -937,7 +911,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to be able to delete the document"); @@ -950,10 +923,9 @@ mod tests { assert_eq!(*removed_credits, 41881536); let refund_equivalent_bytes = removed_credits.to_unsigned() - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; assert!(added_bytes > refund_equivalent_bytes); assert_eq!(refund_equivalent_bytes, 1551); // we refunded 1551 instead of 1559 @@ -1011,15 +983,13 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); let added_bytes = fee_result.storage_fee - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; // We added 1558 bytes assert_eq!(added_bytes, 1559); @@ -1040,7 +1010,6 @@ mod tests { false, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to be able to delete the document"); @@ -1102,7 +1071,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -1145,7 +1113,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to be able to delete the document by contract id"); @@ -1205,7 +1172,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -1232,7 +1198,6 @@ mod tests { false, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to estimate delete costs"); @@ -1311,7 +1276,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -1338,7 +1302,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect_err("expected deleting a history-keeping document to fail"); @@ -1372,7 +1335,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect_err("expected delete_document_for_contract_id with bad contract id to fail"); @@ -1401,7 +1363,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect_err("expected delete_document_for_contract with bad type to fail"); @@ -1475,7 +1436,6 @@ mod tests { false, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ); // The estimation-costs branch (apply=false) uses fake cost estimates diff --git a/packages/rs-drive/src/drive/document/derived_index_values.rs b/packages/rs-drive/src/drive/document/derived_index_values.rs index b684226906b..591ff50e5df 100644 --- a/packages/rs-drive/src/drive/document/derived_index_values.rs +++ b/packages/rs-drive/src/drive/document/derived_index_values.rs @@ -718,7 +718,6 @@ mod tests { apply, None, PlatformVersion::latest(), - None, ) .expect("add document"); } @@ -769,7 +768,6 @@ mod tests { apply, None, PlatformVersion::latest(), - None, ) .expect("delete document"); } @@ -865,7 +863,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, PlatformVersion::latest(), - None, ) .expect("update document"); let with_status = |status: u8| { diff --git a/packages/rs-drive/src/drive/document/expiration/expiration_tests.rs b/packages/rs-drive/src/drive/document/expiration/expiration_tests.rs index 52e413c3edc..18192da3c6a 100644 --- a/packages/rs-drive/src/drive/document/expiration/expiration_tests.rs +++ b/packages/rs-drive/src/drive/document/expiration/expiration_tests.rs @@ -165,7 +165,6 @@ fn insert_at_version( apply, None, platform_version, - None, ) .expect("document inserts") } @@ -438,7 +437,6 @@ fn should_remove_the_entry_when_the_owner_deletes_the_document() { true, None, PlatformVersion::latest(), - None, ) .expect("the owner deletes"); assert!( @@ -472,7 +470,6 @@ fn should_keep_the_tree_of_an_expiry_time_until_its_last_entry_goes() { true, None, PlatformVersion::latest(), - None, ) .expect("the owner deletes"); }; @@ -506,7 +503,6 @@ fn should_not_let_documents_deleted_early_delay_the_ones_that_expire() { true, None, PlatformVersion::latest(), - None, ) .expect("the owner deletes"); } @@ -538,7 +534,6 @@ fn should_keep_the_expiry_and_the_flagless_storage_when_a_document_is_replaced() owner_flags(), None, platform_version, - None, ) .expect("the document is replaced"); @@ -832,7 +827,6 @@ fn should_estimate_a_change_without_the_deletion_its_creation_prepaid() { owner_flags(), None, platform_version, - None, ) .expect("the replace is estimated") }; @@ -883,7 +877,6 @@ fn should_prepay_the_deletion_of_the_bytes_a_change_adds() { owner_flags(), None, platform_version, - None, ) .expect("the replace runs"); (fee, added_bytes as u64) @@ -1030,7 +1023,6 @@ fn should_estimate_at_least_what_replacing_a_document_with_a_time_to_live_costs( owner_flags(), None, platform_version, - None, ) .expect("the replace runs") }; @@ -1269,7 +1261,6 @@ fn should_estimate_at_least_what_shrinking_an_expiring_array_costs() { owner_flags(), None, platform_version, - None, ) .expect("the replace runs") }; diff --git a/packages/rs-drive/src/drive/document/get_fetch/fetch_document_history/mod.rs b/packages/rs-drive/src/drive/document/get_fetch/fetch_document_history/mod.rs index 82450c569cf..e9601dfbdfa 100644 --- a/packages/rs-drive/src/drive/document/get_fetch/fetch_document_history/mod.rs +++ b/packages/rs-drive/src/drive/document/get_fetch/fetch_document_history/mod.rs @@ -126,7 +126,6 @@ mod tests { true, None, platform_version, - None, ) .expect("put document"); } diff --git a/packages/rs-drive/src/drive/document/index_uniqueness/internal/validate_uniqueness_of_data/v2/mod.rs b/packages/rs-drive/src/drive/document/index_uniqueness/internal/validate_uniqueness_of_data/v2/mod.rs index 05b4edefca1..02b827b4d17 100644 --- a/packages/rs-drive/src/drive/document/index_uniqueness/internal/validate_uniqueness_of_data/v2/mod.rs +++ b/packages/rs-drive/src/drive/document/index_uniqueness/internal/validate_uniqueness_of_data/v2/mod.rs @@ -187,7 +187,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add the card"); } diff --git a/packages/rs-drive/src/drive/document/index_uniqueness/mod.rs b/packages/rs-drive/src/drive/document/index_uniqueness/mod.rs index 5644506d861..977a6dffe16 100644 --- a/packages/rs-drive/src/drive/document/index_uniqueness/mod.rs +++ b/packages/rs-drive/src/drive/document/index_uniqueness/mod.rs @@ -250,7 +250,6 @@ mod tests { true, None, platform_version, - None, ) .expect("insert existing preorder"); @@ -327,7 +326,6 @@ mod tests { true, None, platform_version, - None, ) .expect("insert existing preorder"); @@ -495,7 +493,6 @@ mod tests { true, None, platform_version, - None, ) .expect("insert existing preorder"); @@ -895,7 +892,6 @@ mod unique_time_range_index_tests { true, None, platform_version, - None, ) .expect("add document"); document_id @@ -1306,7 +1302,6 @@ mod unique_integer_range_index_tests { true, None, PlatformVersion::latest(), - None, ) .expect("add document"); document.id() diff --git a/packages/rs-drive/src/drive/document/insert/add_document/v0/mod.rs b/packages/rs-drive/src/drive/document/insert/add_document/v0/mod.rs index dd9d2687964..68ccf3f3f03 100644 --- a/packages/rs-drive/src/drive/document/insert/add_document/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/insert/add_document/v0/mod.rs @@ -59,13 +59,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/aggregating_index_fee_estimate_tests.rs b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/aggregating_index_fee_estimate_tests.rs index ffa2d73c76b..2dc1d9763fa 100644 --- a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/aggregating_index_fee_estimate_tests.rs +++ b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/aggregating_index_fee_estimate_tests.rs @@ -93,7 +93,6 @@ fn insert_post( apply, None, PlatformVersion::latest(), - None, ) .expect("add document") } diff --git a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/array_index_e2e_tests.rs b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/array_index_e2e_tests.rs index 88cfc7ac913..26684d80d95 100644 --- a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/array_index_e2e_tests.rs +++ b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/array_index_e2e_tests.rs @@ -210,7 +210,6 @@ fn create_in( apply, transaction, PlatformVersion::latest(), - None, ) .expect("add document") } @@ -246,7 +245,6 @@ fn replace_in( None, transaction, PlatformVersion::latest(), - None, ) .expect("update document") } @@ -281,7 +279,6 @@ fn delete_in( apply, transaction, PlatformVersion::latest(), - None, ) .expect("delete document") } diff --git a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/integer_range_index_e2e_tests.rs b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/integer_range_index_e2e_tests.rs index 936e0487830..25b55b3282e 100644 --- a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/integer_range_index_e2e_tests.rs +++ b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/integer_range_index_e2e_tests.rs @@ -124,7 +124,6 @@ fn insert(drive: &Drive, contract: &DataContract, document: &Document) { true, None, PlatformVersion::latest(), - None, ) .expect("add document"); } @@ -206,7 +205,6 @@ fn should_index_a_document_under_every_containing_window_and_delete_them_all() { true, None, PlatformVersion::latest(), - None, ) .expect("delete document"); for start in [500u64, 600, 700] { @@ -237,7 +235,6 @@ fn should_move_a_document_between_windows_when_its_value_changes() { None, None, PlatformVersion::latest(), - None, ) .expect("update document"); }; @@ -360,7 +357,6 @@ fn should_move_a_listing_into_and_out_of_the_windows_of_a_skip_index() { None, None, PlatformVersion::latest(), - None, ) .expect("update document"); }; @@ -413,7 +409,6 @@ fn should_move_a_listing_into_and_out_of_the_windows_of_a_skip_index() { true, None, PlatformVersion::latest(), - None, ) .expect("delete a listing the index skips"); } @@ -468,7 +463,6 @@ fn should_move_a_document_between_windows_of_a_unique_integer_range_index() { None, None, PlatformVersion::latest(), - None, ) .expect("update document"); }; @@ -508,7 +502,6 @@ fn should_move_a_document_between_windows_of_a_unique_integer_range_index() { true, None, PlatformVersion::latest(), - None, ) .expect("delete document"); assert!(ids_in_window(&drive, &contract, Value::U64(200)).is_empty()); diff --git a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/mod.rs b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/mod.rs index 0b8f6154b19..84f1742f527 100644 --- a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/mod.rs +++ b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/mod.rs @@ -9,7 +9,6 @@ use crate::error::Error; use dpp::block::block_info::BlockInfo; use dpp::fee::fee_result::FeeResult; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use grovedb::TransactionArg; @@ -36,7 +35,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -52,7 +50,6 @@ impl Drive { apply, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "add_document_for_contract".to_string(), diff --git a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/time_range_index_e2e_tests.rs b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/time_range_index_e2e_tests.rs index d406b1c1560..7aa70a9d905 100644 --- a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/time_range_index_e2e_tests.rs +++ b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/time_range_index_e2e_tests.rs @@ -88,7 +88,6 @@ fn insert_ttl_like(drive: &Drive, contract: &DataContract, doc: &Document) { true, None, PlatformVersion::latest(), - None, ) .unwrap(); } @@ -156,7 +155,6 @@ fn assert_index_only_ttl_delete(step: u64, ttl: u64, elapsed: u64, permanent: bo true, None, pv, - None, ) .expect("expired paths must not prevent deletion of surviving entries"); if permanent { @@ -382,7 +380,6 @@ fn assert_maximum_overlap_ttl_throughput(deep_and_burst: bool) { true, Some(&tx), pv, - None, ) .unwrap(); if [127, 191, 319].contains(&i) { @@ -492,7 +489,6 @@ fn assert_ttl_document_batch(case: TtlBatchCase, ttl: bool) { true, None, pv, - None, ) .unwrap(); } @@ -575,10 +571,10 @@ fn assert_ttl_document_batch(case: TtlBatchCase, ttl: bool) { .unwrap(); } else { let estimated = drive - .apply_drive_operations(ops.clone(), false, &now, Some(&tx), pv, None) + .apply_drive_operations(ops.clone(), false, &now, Some(&tx), pv) .unwrap(); let actual = drive - .apply_drive_operations(ops.clone(), true, &now, Some(&tx), pv, None) + .apply_drive_operations(ops.clone(), true, &now, Some(&tx), pv) .unwrap(); assert!(estimated.storage_fee >= actual.storage_fee); assert!(estimated.processing_fee >= actual.processing_fee); @@ -724,7 +720,6 @@ fn raw_conversion_refuses_ttl_operations_and_requires_a_transaction() { true, None, pv, - None, ) .unwrap(); // Inside the bucket's TTL, so the delete still removes ephemeral entries. @@ -1003,7 +998,6 @@ fn time_range_insert_fans_out_to_overlapping_buckets_and_delete_removes_them() { true, None, platform_version, - None, ) .expect("add document"); @@ -1038,7 +1032,6 @@ fn time_range_insert_fans_out_to_overlapping_buckets_and_delete_removes_them() { true, None, platform_version, - None, ) .expect("delete document"); @@ -1123,7 +1116,6 @@ fn time_range_update_moves_between_buckets_and_suffix_changes() { true, None, platform_version, - None, ) .expect("add document"); @@ -1139,7 +1131,6 @@ fn time_range_update_moves_between_buckets_and_suffix_changes() { None, None, platform_version, - None, ) .unwrap_or_else(|e| panic!("update document ({step}): {e:?}")); }; @@ -1188,7 +1179,6 @@ fn time_range_update_moves_between_buckets_and_suffix_changes() { true, None, platform_version, - None, ) .expect("delete document"); for bucket in &second_buckets { @@ -1341,7 +1331,6 @@ fn insert_post( true, None, platform_version, - None, ) .expect("add document"); } @@ -1908,7 +1897,6 @@ fn unique_time_range_index_update_moves_the_entry_between_suffixes() { true, None, platform_version, - None, ) .expect("add document"); @@ -1935,7 +1923,6 @@ fn unique_time_range_index_update_moves_the_entry_between_suffixes() { None, None, platform_version, - None, ) .expect("update document"); @@ -1980,7 +1967,6 @@ fn unique_time_range_index_update_moves_the_entry_between_suffixes() { true, None, platform_version, - None, ) .expect("add second document into the vacated slot"); assert_eq!( @@ -1999,7 +1985,6 @@ fn unique_time_range_index_update_moves_the_entry_between_suffixes() { true, None, platform_version, - None, ) .expect("delete document"); assert_eq!( @@ -2187,7 +2172,6 @@ fn two_grids_over_one_timestamp_write_and_read_independently() { true, None, platform_version, - None, ) .expect("add document"); @@ -2259,7 +2243,6 @@ fn two_grids_over_one_timestamp_write_and_read_independently() { true, None, platform_version, - None, ) .expect("delete document"); assert_eq!(count_for(&trending, shared_bucket), 0); @@ -2542,7 +2525,6 @@ fn ranked_chain_below_bucket_update_materializes_like_insert() { true, None, platform_version, - None, ) .expect("add document"); @@ -2563,7 +2545,6 @@ fn ranked_chain_below_bucket_update_materializes_like_insert() { None, None, platform_version, - None, ) .expect("update document to a new group value"); @@ -2769,7 +2750,6 @@ fn ttl_drops_expired_buckets_and_walkers_skip_them() { true, None, platform_version, - None, ) .expect("add document"); document @@ -2811,7 +2791,6 @@ fn ttl_drops_expired_buckets_and_walkers_skip_them() { true, None, platform_version, - None, ) .expect("deleting a document whose windows were dropped succeeds"); @@ -2846,7 +2825,6 @@ fn ttl_drops_expired_buckets_and_walkers_skip_them() { None, None, platform_version, - None, ) .expect("updating a document whose windows were all dropped succeeds"); assert!( @@ -2873,7 +2851,6 @@ fn ttl_drops_expired_buckets_and_walkers_skip_them() { None, None, platform_version, - None, ) .expect("updating a live document under a TTL'd index succeeds"); @@ -3035,7 +3012,6 @@ fn an_unwritten_window_ranks_empty_and_proves_it() { true, None, platform_version, - None, ) .expect("add document"); }; @@ -3376,7 +3352,6 @@ fn ttl_partial_drain_resumes_across_writes_and_removals_stay_exact() { true, None, platform_version, - None, ) .expect("add document"); document @@ -3450,7 +3425,6 @@ fn ttl_partial_drain_resumes_across_writes_and_removals_stay_exact() { true, None, platform_version, - None, ) .unwrap_or_else(|e| panic!("deleting a doc from a {label} must succeed: {e:?}")); } @@ -3607,7 +3581,6 @@ fn run_ttl_drain_cycle(contract: &DataContract) { true, None, platform_version, - None, ) .expect("add document"); }; @@ -3790,7 +3763,6 @@ fn ttl_budget_boundary_after_zero_tree_keeps_deletes_exact() { true, None, platform_version, - None, ) .expect("add document"); @@ -3957,7 +3929,6 @@ fn ttl_draining_write_never_exceeds_its_estimate() { apply, None, platform_version, - None, ) .expect("add document") }; @@ -4065,7 +4036,6 @@ fn ttl_update_only_write_drains_expired_buckets() { true, None, platform_version, - None, ) .expect("add document"); @@ -4086,7 +4056,6 @@ fn ttl_update_only_write_drains_expired_buckets() { None, None, platform_version, - None, ) .expect("an update past the horizon succeeds and drains"); @@ -4219,7 +4188,6 @@ fn ttl_index_bytes_bill_to_processing_without_refunds() { apply, None, platform_version, - None, ) .expect("add document") }; @@ -4272,7 +4240,6 @@ fn ttl_index_bytes_bill_to_processing_without_refunds() { true, None, platform_version, - None, ) .expect("delete document") }; @@ -4450,7 +4417,6 @@ fn ttl_shared_grid_drains_once_per_write() { true, None, platform_version, - None, ) .expect("add document"); @@ -4499,7 +4465,6 @@ fn ttl_shared_grid_drains_once_per_write() { true, None, platform_version, - None, ) .expect("add extra group document"); } @@ -4525,7 +4490,6 @@ fn ttl_shared_grid_drains_once_per_write() { None, None, platform_version, - None, ) .expect("an update against a partially drained shared-grid bucket succeeds"); }; @@ -4650,7 +4614,6 @@ fn ttl_delete_only_write_drains_expired_buckets() { true, None, platform_version, - None, ) .expect("add document"); document.id() @@ -4671,7 +4634,6 @@ fn ttl_delete_only_write_drains_expired_buckets() { true, None, platform_version, - None, ) .expect("a delete past the horizon succeeds and drains"); @@ -4799,7 +4761,6 @@ fn grouped_creates_reuse_pending_trees_under_a_ttl_level() { }, None, platform_version, - None, ) .expect("a grouped create sharing one new live TTL bucket must apply"); @@ -4896,7 +4857,6 @@ fn apply_drive_operations_rolls_back_ttl_preparation_when_conversion_fails_witho true, None, platform_version, - None, ) .expect("add document"); let root_before = drive @@ -4924,7 +4884,6 @@ fn apply_drive_operations_rolls_back_ttl_preparation_when_conversion_fails_witho }, None, platform_version, - None, ) .expect_err("deleting a missing document fails conversion"); let root_after = drive @@ -4980,7 +4939,6 @@ fn delete_index_only_document_rolls_back_ttl_preparation_when_the_tuple_mismatch true, None, pv, - None, ) .expect_err("a tuple no entry commits to must be rejected"); let root_after = drive diff --git a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/v0/mod.rs b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/v0/mod.rs index cca2580f36f..cdcd3a632d6 100644 --- a/packages/rs-drive/src/drive/document/insert/add_document_for_contract/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/insert/add_document_for_contract/v0/mod.rs @@ -6,7 +6,6 @@ use crate::fees::op::LowLevelDriveOperation; use dpp::block::block_info::BlockInfo; use dpp::fee::fee_result::FeeResult; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use grovedb::TransactionArg; @@ -22,7 +21,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut drive_operations: Vec = vec![]; self.add_document_for_contract_apply_and_add_to_operations( @@ -35,13 +33,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/document/insert/add_document_to_primary_storage/v0/mod.rs b/packages/rs-drive/src/drive/document/insert/add_document_to_primary_storage/v0/mod.rs index e7eab270b52..c7a6d0336fe 100644 --- a/packages/rs-drive/src/drive/document/insert/add_document_to_primary_storage/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/insert/add_document_to_primary_storage/v0/mod.rs @@ -895,7 +895,6 @@ mod keep_history_summable_e2e { true, None, PlatformVersion::latest(), - None, ) .expect("insert doc"); } @@ -1058,7 +1057,6 @@ mod keep_history_summable_e2e { Some(Cow::Owned(StorageFlags::SingleEpoch(0))), None, PlatformVersion::latest(), - None, ) .expect("update doc to v2"); diff --git a/packages/rs-drive/src/drive/document/insert/mod.rs b/packages/rs-drive/src/drive/document/insert/mod.rs index c70972cda78..2bd72ff8e8e 100644 --- a/packages/rs-drive/src/drive/document/insert/mod.rs +++ b/packages/rs-drive/src/drive/document/insert/mod.rs @@ -55,8 +55,6 @@ mod tests { use crate::util::object_size_info::{DocumentAndContractInfo, OwnedDocumentInfo}; use crate::util::storage_flags::StorageFlags; use crate::util::test_helpers::setup_contract; - use once_cell::sync::Lazy; - use std::collections::BTreeMap; use crate::config::DriveConfig; use crate::error::drive::DriveError; @@ -64,21 +62,15 @@ mod tests { use crate::query::DriveDocumentQuery; use crate::util::object_size_info::DocumentInfo::DocumentRefInfo; use crate::util::test_helpers::setup::setup_drive_with_initial_state_structure; - use dpp::block::epoch::Epoch; use dpp::data_contract::accessors::v0::DataContractV0Getters; use dpp::data_contract::DataContract; use dpp::document::serialization_traits::DocumentPlatformConversionMethodsV0; use dpp::document::{Document, DocumentV0Getters}; - use dpp::fee::default_costs::KnownCostItem::StorageDiskUsageCreditPerByte; - use dpp::fee::default_costs::{CachedEpochIndexFeeVersions, EpochCosts}; use dpp::fee::fee_result::FeeResult; use dpp::tests::json_document::json_document_to_document; use dpp::version::fee::FeeVersion; use dpp::version::PlatformVersion; - static EPOCH_CHANGE_FEE_VERSION_TEST: Lazy = - Lazy::new(|| BTreeMap::from([(0, FeeVersion::first())])); - #[test] fn test_add_dashpay_documents_no_transaction() { let (drive, dashpay) = setup_dashpay("add", true); @@ -117,7 +109,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -139,7 +130,6 @@ mod tests { true, None, platform_version, - None, ) .expect_err("expected not to be able to insert same document twice"); @@ -161,7 +151,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to override a document successfully"); } @@ -204,7 +193,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -226,7 +214,6 @@ mod tests { true, None, platform_version, - None, ) .expect_err("expected duplicate insert to return an error"); @@ -286,7 +273,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -308,7 +294,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect_err("expected not to be able to insert same document twice"); @@ -330,7 +315,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to override a document successfully"); } @@ -387,7 +371,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -395,10 +378,9 @@ mod tests { fee_result, FeeResult { storage_fee: 3058 - * Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ), + * FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte, processing_fee: expected_processing_fee, ..Default::default() } @@ -424,10 +406,9 @@ mod tests { let platform_version = PlatformVersion::first(); let expected_fee_result = FeeResult { storage_fee: 1305 - * Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ), + * FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte, // the contract stored under the latest protocol version carries its // version item, one more node to rehash on the insert processing_fee: 901140, @@ -447,10 +428,9 @@ mod tests { let platform_version = PlatformVersion::first(); let expected_fee_result = FeeResult { storage_fee: 1305 - * Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ), + * FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte, processing_fee: 73253660, ..Default::default() }; @@ -468,10 +448,9 @@ mod tests { let platform_version = PlatformVersion::latest(); let expected_fee_result = FeeResult { storage_fee: 1305 - * Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ), + * FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte, // the contract stored under the latest protocol version carries its // version item, one more node to rehash on the insert processing_fee: 901140, @@ -491,10 +470,9 @@ mod tests { let platform_version = PlatformVersion::latest(); let expected_fee_result = FeeResult { storage_fee: 1305 - * Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ), + * FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte, // estimated_size v1 adds the contract-version stamp varint to // the worst-case document size processing_fee: 73323060, @@ -516,10 +494,9 @@ mod tests { let platform_version = PlatformVersion::get(13).expect("expected protocol version 13"); let expected_fee_result = FeeResult { storage_fee: 1305 - * Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ), + * FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte, processing_fee: 900400, ..Default::default() }; @@ -597,7 +574,6 @@ mod tests { apply, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); assert_eq!(fee_result, expected_fee_result); @@ -653,7 +629,6 @@ mod tests { false, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -675,7 +650,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -829,7 +803,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -837,10 +810,9 @@ mod tests { fee_result, FeeResult { storage_fee: 1840 - * Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ), + * FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte, processing_fee: expected_processing_fee, ..Default::default() } @@ -921,7 +893,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -943,7 +914,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -965,7 +935,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); } @@ -1016,7 +985,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -1038,7 +1006,6 @@ mod tests { true, None, platform_version, - None, ) .expect_err( "expected not to be able to insert document with already existing unique index", @@ -1183,7 +1150,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a history-keeping document successfully"); @@ -1215,7 +1181,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a second history-keeping document successfully"); @@ -1317,7 +1282,6 @@ mod tests { false, Some(&db_transaction), platform_version, - None, ) .expect("expected to estimate insert of a history-keeping document"); diff --git a/packages/rs-drive/src/drive/document/insert_contested/add_contested_document/v0/mod.rs b/packages/rs-drive/src/drive/document/insert_contested/add_contested_document/v0/mod.rs index 602f0d1a253..0a1a00c5735 100644 --- a/packages/rs-drive/src/drive/document/insert_contested/add_contested_document/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/insert_contested/add_contested_document/v0/mod.rs @@ -69,13 +69,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/document/insert_contested/add_contested_document_for_contract/v0/mod.rs b/packages/rs-drive/src/drive/document/insert_contested/add_contested_document_for_contract/v0/mod.rs index 7056424ede0..54e1f192458 100644 --- a/packages/rs-drive/src/drive/document/insert_contested/add_contested_document_for_contract/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/insert_contested/add_contested_document_for_contract/v0/mod.rs @@ -39,13 +39,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/document/insert_contested/mod.rs b/packages/rs-drive/src/drive/document/insert_contested/mod.rs index 425c37887b4..99292dbb9ce 100644 --- a/packages/rs-drive/src/drive/document/insert_contested/mod.rs +++ b/packages/rs-drive/src/drive/document/insert_contested/mod.rs @@ -105,7 +105,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -127,7 +126,6 @@ mod tests { true, None, platform_version, - None, ) .expect_err( "expected not to be able to insert document with already existing unique index", diff --git a/packages/rs-drive/src/drive/document/query/mod.rs b/packages/rs-drive/src/drive/document/query/mod.rs index a34f54d0dba..5d11756cd51 100644 --- a/packages/rs-drive/src/drive/document/query/mod.rs +++ b/packages/rs-drive/src/drive/document/query/mod.rs @@ -138,13 +138,11 @@ impl Drive { protocol_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -193,13 +191,11 @@ impl Drive { protocol_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -232,13 +228,11 @@ impl Drive { protocol_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -295,13 +289,11 @@ impl Drive { protocol_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -360,13 +352,11 @@ impl Drive { protocol_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -461,14 +451,8 @@ impl Drive { platform_version, )?; let cost = if let Some(epoch) = epoch { - let fee_result = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee_result = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; fee_result.processing_fee } else { 0 @@ -605,7 +589,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -666,7 +649,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -737,7 +719,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -842,7 +823,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); diff --git a/packages/rs-drive/src/drive/document/query/query_chained_documents/v0/mod.rs b/packages/rs-drive/src/drive/document/query/query_chained_documents/v0/mod.rs index 3eb4f2c3d60..37964f2eca0 100644 --- a/packages/rs-drive/src/drive/document/query/query_chained_documents/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/query/query_chained_documents/v0/mod.rs @@ -33,15 +33,8 @@ impl Drive { platform_version, )?; let cost = if let Some(epoch) = epoch { - Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )? - .processing_fee + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)? + .processing_fee } else { 0 }; diff --git a/packages/rs-drive/src/drive/document/query/query_composite_documents/v0/mod.rs b/packages/rs-drive/src/drive/document/query/query_composite_documents/v0/mod.rs index 99bf2786502..d6dd3bf22ab 100644 --- a/packages/rs-drive/src/drive/document/query/query_composite_documents/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/query/query_composite_documents/v0/mod.rs @@ -33,15 +33,8 @@ impl Drive { platform_version, )?; let cost = if let Some(epoch) = epoch { - Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )? - .processing_fee + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)? + .processing_fee } else { 0 }; diff --git a/packages/rs-drive/src/drive/document/query/query_contested_documents_storage/v0/mod.rs b/packages/rs-drive/src/drive/document/query/query_contested_documents_storage/v0/mod.rs index 776d3e96845..b597c198f22 100644 --- a/packages/rs-drive/src/drive/document/query/query_contested_documents_storage/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/query/query_contested_documents_storage/v0/mod.rs @@ -89,14 +89,8 @@ impl Drive { }) .collect::, ProtocolError>>()?; let cost = if let Some(epoch) = epoch { - let fee_result = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee_result = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; fee_result.processing_fee } else { 0 diff --git a/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/v0/mod.rs b/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/v0/mod.rs index 4284b84783d..e9d6c1cbf57 100644 --- a/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/v0/mod.rs @@ -75,14 +75,8 @@ impl Drive { let contested_document_vote_poll_drive_query_execution_result = query.execute_no_proof(self, transaction, &mut drive_operations, platform_version)?; let cost = if let Some(epoch) = epoch { - let fee_result = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee_result = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; fee_result.processing_fee } else { 0 diff --git a/packages/rs-drive/src/drive/document/query/query_documents/v0/mod.rs b/packages/rs-drive/src/drive/document/query/query_documents/v0/mod.rs index 22d49b26786..215f8db5dc9 100644 --- a/packages/rs-drive/src/drive/document/query/query_documents/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/query/query_documents/v0/mod.rs @@ -96,15 +96,8 @@ impl Drive { platform_version, )?; let cost = if let Some(epoch) = epoch { - Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )? - .processing_fee + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)? + .processing_fee } else { 0 }; @@ -139,14 +132,8 @@ impl Drive { }) .collect::, Error>>()?; let cost = if let Some(epoch) = epoch { - let fee_result = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee_result = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; fee_result.processing_fee } else { 0 @@ -271,7 +258,6 @@ mod tests { true, None, platform_version, - None, ) .expect("insert"); diff --git a/packages/rs-drive/src/drive/document/query/query_documents_with_flags/v0/mod.rs b/packages/rs-drive/src/drive/document/query/query_documents_with_flags/v0/mod.rs index 37c3247ba21..073e539311c 100644 --- a/packages/rs-drive/src/drive/document/query/query_documents_with_flags/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/query/query_documents_with_flags/v0/mod.rs @@ -103,14 +103,8 @@ impl Drive { }) .collect::)>, Error>>()?; let cost = if let Some(epoch) = epoch { - let fee_result = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee_result = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; fee_result.processing_fee } else { 0 diff --git a/packages/rs-drive/src/drive/document/update/mod.rs b/packages/rs-drive/src/drive/document/update/mod.rs index 63cccb00bbc..723b0af7bde 100644 --- a/packages/rs-drive/src/drive/document/update/mod.rs +++ b/packages/rs-drive/src/drive/document/update/mod.rs @@ -54,7 +54,6 @@ mod tests { use crate::query::DriveDocumentQuery; use crate::util::test_helpers::setup::{setup_drive, setup_drive_with_initial_state_structure}; use crate::util::test_helpers::setup_contract; - use dpp::block::epoch::Epoch; use dpp::data_contract::accessors::v0::DataContractV0Getters; use dpp::data_contract::conversion::value::v0::DataContractValueConversionMethodsV0; use dpp::data_contract::document_type::methods::DocumentTypeV0Methods; @@ -62,19 +61,13 @@ mod tests { use dpp::document::serialization_traits::DocumentPlatformConversionMethodsV0; use dpp::document::specialized_document_factory::SpecializedDocumentFactory; use dpp::document::{Document, DocumentV0Getters, DocumentV0Setters}; - use dpp::fee::default_costs::KnownCostItem::StorageDiskUsageCreditPerByte; - use dpp::fee::default_costs::{CachedEpochIndexFeeVersions, EpochCosts}; use dpp::fee::fee_result::FeeResult; use dpp::platform_value; use dpp::serialization::ValueConvertible; use dpp::tests::json_document::json_document_to_document; use dpp::version::fee::FeeVersion; - use once_cell::sync::Lazy; use platform_version::version::PlatformVersion; - static EPOCH_CHANGE_FEE_VERSION_TEST: Lazy = - Lazy::new(|| BTreeMap::from([(0, FeeVersion::first())])); - /// Build a `Document` from a legacy un-tagged `platform_value!` map by /// inserting `$formatVersion: "0"` and routing through canonical /// `ValueConvertible::from_object`. Replaces the deleted @@ -139,7 +132,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should create alice profile"); @@ -169,7 +161,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should update alice profile"); } @@ -217,7 +208,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should create alice profile"); @@ -264,7 +254,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should update alice profile"); @@ -306,7 +295,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect_err("expected updating a nonexistent document to fail"); @@ -367,7 +355,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should create alice profile"); @@ -422,7 +409,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should update alice profile"); @@ -484,7 +470,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should create alice profile"); @@ -530,7 +515,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to delete document"); @@ -577,7 +561,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should update alice profile"); @@ -690,7 +673,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should add document"); @@ -724,7 +706,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should update document"); @@ -746,7 +727,6 @@ mod tests { true, None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should delete document"); } @@ -844,7 +824,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should add document"); @@ -875,7 +854,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should update document"); @@ -948,7 +926,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should update document without changing indexed fields"); @@ -1084,7 +1061,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should add document"); @@ -1101,7 +1077,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should update document with all indexed fields still null"); @@ -1118,7 +1093,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should update document setting firstName"); @@ -1141,7 +1115,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("should update document clearing firstName"); @@ -1202,7 +1175,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -1217,7 +1189,6 @@ mod tests { StorageFlags::optional_default_as_cow(), Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect_err("expected not to be able to update a non mutable document"); @@ -1239,7 +1210,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect_err("expected not to be able to override a non mutable document"); } @@ -1302,7 +1272,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -1317,7 +1286,6 @@ mod tests { StorageFlags::optional_default_as_cow(), Some(&db_transaction), platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to update a document with history successfully"); } @@ -1410,10 +1378,9 @@ mod tests { platform_version, ); let original_bytes = original_fees.storage_fee - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; let expected_added_bytes = if using_history { //Explanation for 1237 @@ -1578,10 +1545,9 @@ mod tests { assert_eq!(*removed_credits, 25940733); let refund_equivalent_bytes = removed_credits.to_unsigned() - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; assert!(expected_added_bytes > refund_equivalent_bytes); assert_eq!(refund_equivalent_bytes, 960); // we refunded 960 instead of 963 @@ -1598,10 +1564,9 @@ mod tests { ); let original_bytes = original_fees.storage_fee - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; assert_eq!(original_bytes, expected_added_bytes); } @@ -1619,10 +1584,9 @@ mod tests { // we both add and remove bytes // this is because trees are added because of indexes, and also removed let added_bytes = update_fees.storage_fee - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; let expected_added_bytes = if using_history { 313 } else { 1 }; assert_eq!(added_bytes, expected_added_bytes); @@ -1699,10 +1663,9 @@ mod tests { platform_version, ); let original_bytes = original_fees.storage_fee - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; let expected_added_bytes = if using_history { 1238 } else { 962 }; assert_eq!(original_bytes, expected_added_bytes); if !using_history { @@ -1725,10 +1688,9 @@ mod tests { assert_eq!(*removed_credits, 25940733); let refund_equivalent_bytes = removed_credits.to_unsigned() - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; assert!(expected_added_bytes > refund_equivalent_bytes); assert_eq!(refund_equivalent_bytes, 960); // we refunded 960 instead of 1012 @@ -1745,10 +1707,9 @@ mod tests { ); let original_bytes = original_fees.storage_fee - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; assert_eq!(original_bytes, expected_added_bytes); } @@ -1766,10 +1727,9 @@ mod tests { // we both add and remove bytes // this is because trees are added because of indexes, and also removed let added_bytes = update_fees.storage_fee - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; let removed_credits = update_fees .fee_refunds @@ -1785,10 +1745,9 @@ mod tests { let expected_removed_credits = if using_history { 16286655 } else { 16232643 }; assert_eq!(*removed_credits, expected_removed_credits); let refund_equivalent_bytes = removed_credits.to_unsigned() - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; assert!(expected_added_bytes > refund_equivalent_bytes); let expected_remove_bytes = if using_history { 603 } else { 601 }; @@ -1906,10 +1865,9 @@ mod tests { platform_version, ); let original_bytes = original_fees.storage_fee - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; let expected_added_bytes = if using_history { //Explanation for 1237 @@ -2066,10 +2024,9 @@ mod tests { // we both add and remove bytes // this is because trees are added because of indexes, and also removed let added_bytes = update_fees.storage_fee - / Epoch::new(0).unwrap().cost_for_known_cost_item( - &EPOCH_CHANGE_FEE_VERSION_TEST, - StorageDiskUsageCreditPerByte, - ); + / FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; let expected_added_bytes = if using_history { 1239 } else { 963 }; assert_eq!(added_bytes, expected_added_bytes); @@ -2146,7 +2103,6 @@ mod tests { apply, transaction, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to add document") } @@ -2168,7 +2124,6 @@ mod tests { true, transaction, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect("expected to remove person") } @@ -2423,7 +2378,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should create document"); @@ -2446,7 +2400,6 @@ mod tests { storage_flags, None, platform_version, - None, ) .expect("should update document"); @@ -2500,7 +2453,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert first document"); @@ -2522,7 +2474,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert second document"); @@ -2618,7 +2569,6 @@ mod tests { StorageFlags::optional_default_as_cow(), Some(&db_transaction), platform_version, - None, ) .expect_err("expected updating an immutable document type to fail"); @@ -2672,7 +2622,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should create profile"); @@ -2702,7 +2651,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - None, ) .expect("expected to update document with serialization"); @@ -2779,7 +2727,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should create profile"); @@ -2808,7 +2755,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - None, ) .expect("expected to update document for contract id"); @@ -2868,7 +2814,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect_err("expected update_document_for_contract_id to fail"); @@ -2899,7 +2844,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect_err("expected update_document_for_contract_id with bad type to fail"); @@ -2934,7 +2878,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect_err("expected update_document_for_contract_id with malformed bytes to fail"); @@ -2995,7 +2938,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - None, ) .expect_err( "expected update_document_with_serialization_for_contract with bad type to fail", @@ -3036,7 +2978,6 @@ mod tests { StorageFlags::optional_default_as_cow(), None, platform_version, - Some(&EPOCH_CHANGE_FEE_VERSION_TEST), ) .expect_err("expected update_document_for_contract_id (dry run) to fail"); @@ -3184,7 +3125,6 @@ mod tests { true, None, platform_version, - None, ) .expect("insert widget"); @@ -3230,7 +3170,6 @@ mod tests { storage_flags, None, platform_version, - None, ) .expect( "summable-index update with unchanged keys must succeed; pre-fix this returned \ @@ -3441,7 +3380,6 @@ mod tests { true, None, platform_version, - None, ) .expect("insert widget"); @@ -3484,7 +3422,6 @@ mod tests { storage_flags, None, platform_version, - None, ) .expect("key-changing update on aggregate index must succeed"); diff --git a/packages/rs-drive/src/drive/document/update/update_document_for_contract/mod.rs b/packages/rs-drive/src/drive/document/update/update_document_for_contract/mod.rs index 5c3658a7b2f..8371a8987c9 100644 --- a/packages/rs-drive/src/drive/document/update/update_document_for_contract/mod.rs +++ b/packages/rs-drive/src/drive/document/update/update_document_for_contract/mod.rs @@ -14,7 +14,6 @@ use dpp::fee::fee_result::FeeResult; use dpp::version::PlatformVersion; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use grovedb::TransactionArg; use std::borrow::Cow; @@ -47,7 +46,6 @@ impl Drive { storage_flags: Option>, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -66,7 +64,6 @@ impl Drive { storage_flags, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "update_document_for_contract".to_string(), diff --git a/packages/rs-drive/src/drive/document/update/update_document_for_contract/v0/mod.rs b/packages/rs-drive/src/drive/document/update/update_document_for_contract/v0/mod.rs index bb3e639c571..56e5fb3d96a 100644 --- a/packages/rs-drive/src/drive/document/update/update_document_for_contract/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/update/update_document_for_contract/v0/mod.rs @@ -9,7 +9,6 @@ use dpp::block::block_info::BlockInfo; use dpp::data_contract::document_type::DocumentTypeRef; use dpp::data_contract::DataContract; use dpp::document::Document; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::version::PlatformVersion; use grovedb::TransactionArg; @@ -30,7 +29,6 @@ impl Drive { storage_flags: Option>, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut drive_operations: Vec = vec![]; let estimated_costs_only_with_layer_info = (!apply).then(EstimatedLayers::new); @@ -52,13 +50,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/document/update/update_document_for_contract_id/mod.rs b/packages/rs-drive/src/drive/document/update/update_document_for_contract_id/mod.rs index d6563600f27..38c6d85126b 100644 --- a/packages/rs-drive/src/drive/document/update/update_document_for_contract_id/mod.rs +++ b/packages/rs-drive/src/drive/document/update/update_document_for_contract_id/mod.rs @@ -12,7 +12,6 @@ use dpp::fee::fee_result::FeeResult; use dpp::version::PlatformVersion; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use grovedb::TransactionArg; use std::borrow::Cow; @@ -45,7 +44,6 @@ impl Drive { storage_flags: Option>, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -64,7 +62,6 @@ impl Drive { storage_flags, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "update_document_for_contract_id".to_string(), diff --git a/packages/rs-drive/src/drive/document/update/update_document_for_contract_id/v0/mod.rs b/packages/rs-drive/src/drive/document/update/update_document_for_contract_id/v0/mod.rs index c846499de65..689e74fbfeb 100644 --- a/packages/rs-drive/src/drive/document/update/update_document_for_contract_id/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/update/update_document_for_contract_id/v0/mod.rs @@ -11,7 +11,6 @@ use dpp::data_contract::accessors::v0::DataContractV0Getters; use dpp::document::serialization_traits::DocumentPlatformConversionMethodsV0; use dpp::document::Document; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::version::PlatformVersion; use grovedb::TransactionArg; @@ -32,7 +31,6 @@ impl Drive { storage_flags: Option>, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut drive_operations: Vec = vec![]; let estimated_costs_only_with_layer_info = (!apply).then(EstimatedLayers::new); @@ -72,13 +70,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/document/update/update_document_with_serialization_for_contract/mod.rs b/packages/rs-drive/src/drive/document/update/update_document_with_serialization_for_contract/mod.rs index b6f5740684e..ace203736d0 100644 --- a/packages/rs-drive/src/drive/document/update/update_document_with_serialization_for_contract/mod.rs +++ b/packages/rs-drive/src/drive/document/update/update_document_with_serialization_for_contract/mod.rs @@ -13,7 +13,6 @@ use dpp::fee::fee_result::FeeResult; use dpp::version::PlatformVersion; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use grovedb::TransactionArg; use std::borrow::Cow; @@ -48,7 +47,6 @@ impl Drive { storage_flags: Option>, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -68,7 +66,6 @@ impl Drive { storage_flags, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "update_document_with_serialization_for_contract".to_string(), diff --git a/packages/rs-drive/src/drive/document/update/update_document_with_serialization_for_contract/v0/mod.rs b/packages/rs-drive/src/drive/document/update/update_document_with_serialization_for_contract/v0/mod.rs index 0d163e19aad..74142184e88 100644 --- a/packages/rs-drive/src/drive/document/update/update_document_with_serialization_for_contract/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/update/update_document_with_serialization_for_contract/v0/mod.rs @@ -11,7 +11,6 @@ use dpp::data_contract::DataContract; use dpp::document::Document; use dpp::fee::fee_result::FeeResult; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use grovedb::TransactionArg; use std::borrow::Cow; @@ -32,7 +31,6 @@ impl Drive { storage_flags: Option>, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut drive_operations: Vec = vec![]; let estimated_costs_only_with_layer_info = (!apply).then(EstimatedLayers::new); @@ -57,13 +55,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/group/fetch/fetch_action_id_has_signer/v0/mod.rs b/packages/rs-drive/src/drive/group/fetch/fetch_action_id_has_signer/v0/mod.rs index 3cd3ed07de0..32da602ad74 100644 --- a/packages/rs-drive/src/drive/group/fetch/fetch_action_id_has_signer/v0/mod.rs +++ b/packages/rs-drive/src/drive/group/fetch/fetch_action_id_has_signer/v0/mod.rs @@ -88,13 +88,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) } diff --git a/packages/rs-drive/src/drive/group/insert/add_group_action/v0/mod.rs b/packages/rs-drive/src/drive/group/insert/add_group_action/v0/mod.rs index 769e74eae15..b4166880670 100644 --- a/packages/rs-drive/src/drive/group/insert/add_group_action/v0/mod.rs +++ b/packages/rs-drive/src/drive/group/insert/add_group_action/v0/mod.rs @@ -59,13 +59,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/group/insert/add_new_groups/v0/mod.rs b/packages/rs-drive/src/drive/group/insert/add_new_groups/v0/mod.rs index b0ca1bcf737..2d4af35f1ed 100644 --- a/packages/rs-drive/src/drive/group/insert/add_new_groups/v0/mod.rs +++ b/packages/rs-drive/src/drive/group/insert/add_new_groups/v0/mod.rs @@ -39,13 +39,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/identity/balance/update.rs b/packages/rs-drive/src/drive/identity/balance/update.rs index 93f04720b0e..1d4bf04a392 100644 --- a/packages/rs-drive/src/drive/identity/balance/update.rs +++ b/packages/rs-drive/src/drive/identity/balance/update.rs @@ -493,7 +493,6 @@ mod tests { apply, Some(&db_transaction), platform_version, - None, ) .expect("expected to remove from identity balance"); @@ -1066,7 +1065,6 @@ mod tests { true, None, platform_version, - None, ); assert!(matches!( @@ -1089,7 +1087,6 @@ mod tests { true, None, platform_version, - None, ); assert!(matches!( diff --git a/packages/rs-drive/src/drive/identity/contract_info/identity_contract_nonce/fetch_identity_contract_nonce/v0/mod.rs b/packages/rs-drive/src/drive/identity/contract_info/identity_contract_nonce/fetch_identity_contract_nonce/v0/mod.rs index 265ee0b2428..fab9681a197 100644 --- a/packages/rs-drive/src/drive/identity/contract_info/identity_contract_nonce/fetch_identity_contract_nonce/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/contract_info/identity_contract_nonce/fetch_identity_contract_nonce/v0/mod.rs @@ -106,13 +106,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) } diff --git a/packages/rs-drive/src/drive/identity/fetch/balance/fetch_identity_balance/v0/mod.rs b/packages/rs-drive/src/drive/identity/fetch/balance/fetch_identity_balance/v0/mod.rs index fd6ace12c9a..98974cdaf4b 100644 --- a/packages/rs-drive/src/drive/identity/fetch/balance/fetch_identity_balance/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/balance/fetch_identity_balance/v0/mod.rs @@ -51,13 +51,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) } diff --git a/packages/rs-drive/src/drive/identity/fetch/balance/fetch_identity_balance_include_debt/v0/mod.rs b/packages/rs-drive/src/drive/identity/fetch/balance/fetch_identity_balance_include_debt/v0/mod.rs index b3f47ce16cd..60a4901f1a9 100644 --- a/packages/rs-drive/src/drive/identity/fetch/balance/fetch_identity_balance_include_debt/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/balance/fetch_identity_balance_include_debt/v0/mod.rs @@ -48,13 +48,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) } diff --git a/packages/rs-drive/src/drive/identity/fetch/full_identity/fetch_full_identity/v0/mod.rs b/packages/rs-drive/src/drive/identity/fetch/full_identity/fetch_full_identity/v0/mod.rs index 845f7ca37d3..279f2de26df 100644 --- a/packages/rs-drive/src/drive/identity/fetch/full_identity/fetch_full_identity/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/full_identity/fetch_full_identity/v0/mod.rs @@ -27,14 +27,7 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fee = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee = self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((maybe_identity, fee)) } diff --git a/packages/rs-drive/src/drive/identity/fetch/nonce/fetch_identity_nonce/v0/mod.rs b/packages/rs-drive/src/drive/identity/fetch/nonce/fetch_identity_nonce/v0/mod.rs index 8aa7fbe80d6..692c529b8f1 100644 --- a/packages/rs-drive/src/drive/identity/fetch/nonce/fetch_identity_nonce/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/nonce/fetch_identity_nonce/v0/mod.rs @@ -100,13 +100,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) } diff --git a/packages/rs-drive/src/drive/identity/fetch/revision/fetch_identity_revision/v0/mod.rs b/packages/rs-drive/src/drive/identity/fetch/revision/fetch_identity_revision/v0/mod.rs index 5257b2f4323..808550bdf79 100644 --- a/packages/rs-drive/src/drive/identity/fetch/revision/fetch_identity_revision/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/revision/fetch_identity_revision/v0/mod.rs @@ -100,13 +100,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) } diff --git a/packages/rs-drive/src/drive/identity/fetch/revision/mod.rs b/packages/rs-drive/src/drive/identity/fetch/revision/mod.rs index cf9e4cb4388..d98e32aa34e 100644 --- a/packages/rs-drive/src/drive/identity/fetch/revision/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/revision/mod.rs @@ -83,7 +83,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to update revision"); diff --git a/packages/rs-drive/src/drive/identity/insert/add_new_identity/v0/mod.rs b/packages/rs-drive/src/drive/identity/insert/add_new_identity/v0/mod.rs index a26ed05c780..4a783a68fa6 100644 --- a/packages/rs-drive/src/drive/identity/insert/add_new_identity/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/insert/add_new_identity/v0/mod.rs @@ -45,13 +45,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/identity/key/budget/mod.rs b/packages/rs-drive/src/drive/identity/key/budget/mod.rs index 7c773faba68..5993ac893f1 100644 --- a/packages/rs-drive/src/drive/identity/key/budget/mod.rs +++ b/packages/rs-drive/src/drive/identity/key/budget/mod.rs @@ -295,15 +295,14 @@ mod tests { &platform_version.drive, ) .expect("expected to apply"); - let fee = Drive::calculate_fee( - None, - Some(applied_operations), - &block().epoch, - drive.config.epochs_per_era, - platform_version, - None, - ) - .expect("expected a fee"); + let fee = drive + .calculate_fee( + None, + Some(applied_operations), + &block().epoch, + platform_version, + ) + .expect("expected a fee"); assert_eq!(fee.storage_fee, 0); assert!(fee.fee_refunds.0.is_empty()); } diff --git a/packages/rs-drive/src/drive/identity/key/fetch/fetch_identity_keys/v0/mod.rs b/packages/rs-drive/src/drive/identity/key/fetch/fetch_identity_keys/v0/mod.rs index ca2e7bc7b56..415e21fd5eb 100644 --- a/packages/rs-drive/src/drive/identity/key/fetch/fetch_identity_keys/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/key/fetch/fetch_identity_keys/v0/mod.rs @@ -48,14 +48,7 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fees = self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((value, fees)) } diff --git a/packages/rs-drive/src/drive/identity/update/methods/add_new_non_unique_keys_to_identity/v0/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/add_new_non_unique_keys_to_identity/v0/mod.rs index 0b7acaa24db..2f776bc049a 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/add_new_non_unique_keys_to_identity/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/add_new_non_unique_keys_to_identity/v0/mod.rs @@ -40,13 +40,11 @@ impl Drive { &mut drive_operations, &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/identity/update/methods/add_new_unique_keys_to_identity/v0/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/add_new_unique_keys_to_identity/v0/mod.rs index 791a769a53f..7b618cf586a 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/add_new_unique_keys_to_identity/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/add_new_unique_keys_to_identity/v0/mod.rs @@ -40,13 +40,11 @@ impl Drive { &mut drive_operations, &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/identity/update/methods/add_to_identity_balance/v0/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/add_to_identity_balance/v0/mod.rs index 0a6a367849a..20eece0534d 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/add_to_identity_balance/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/add_to_identity_balance/v0/mod.rs @@ -41,13 +41,11 @@ impl Drive { &mut drive_operations, &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/identity/update/methods/add_to_identity_balance/v1/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/add_to_identity_balance/v1/mod.rs index 37dc9d67cb3..bb2cce92e21 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/add_to_identity_balance/v1/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/add_to_identity_balance/v1/mod.rs @@ -63,13 +63,11 @@ impl Drive { self.commit_transaction(owned_transaction, &platform_version.drive)?; } - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) @@ -232,7 +230,6 @@ mod tests { &block_info(), None, platform_version, - None, ) .expect("expected to apply the batch"); @@ -273,7 +270,6 @@ mod tests { &block_info(), None, platform_version, - None, ) .expect("expected to apply the batch"); @@ -378,7 +374,6 @@ mod tests { &block_info(), None, platform_version, - None, ) .expect("expected to apply the batch"); @@ -419,7 +414,6 @@ mod tests { &block_info(), None, platform_version, - None, ) .expect("expected to apply the batch"); @@ -460,7 +454,6 @@ mod tests { &block_info(), None, platform_version, - None, ) .expect("expected to apply the batch"); diff --git a/packages/rs-drive/src/drive/identity/update/methods/disable_identity_keys/v0/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/disable_identity_keys/v0/mod.rs index 4ea5ba49d43..06cac04e037 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/disable_identity_keys/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/disable_identity_keys/v0/mod.rs @@ -56,13 +56,11 @@ impl Drive { &mut drive_operations, &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, // TODO: Does disable mean delete? Check if previous_fee_versions are required in this case )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/identity/update/methods/disable_identity_keys/v1/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/disable_identity_keys/v1/mod.rs index b018e3775c2..926ff32861a 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/disable_identity_keys/v1/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/disable_identity_keys/v1/mod.rs @@ -55,13 +55,11 @@ impl Drive { &mut drive_operations, &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, // TODO: Does disable mean delete? Check if previous_fee_versions are required in this case )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/identity/update/methods/merge_identity_nonce/v0/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/merge_identity_nonce/v0/mod.rs index 9d6e3febeb5..4853147dd28 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/merge_identity_nonce/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/merge_identity_nonce/v0/mod.rs @@ -52,13 +52,11 @@ impl Drive { &mut drive_operations, &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Some(fees) diff --git a/packages/rs-drive/src/drive/identity/update/methods/remove_from_identity_balance/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/remove_from_identity_balance/mod.rs index 3010336d7c2..1db2cd6d2f6 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/remove_from_identity_balance/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/remove_from_identity_balance/mod.rs @@ -9,7 +9,6 @@ use dpp::block::block_info::BlockInfo; use dpp::fee::fee_result::FeeResult; use dpp::fee::Credits; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use grovedb::TransactionArg; @@ -37,7 +36,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -53,7 +51,6 @@ impl Drive { apply, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "remove_from_identity_balance".to_string(), diff --git a/packages/rs-drive/src/drive/identity/update/methods/remove_from_identity_balance/v0/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/remove_from_identity_balance/v0/mod.rs index 4101ea05eeb..b9056036348 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/remove_from_identity_balance/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/remove_from_identity_balance/v0/mod.rs @@ -9,7 +9,6 @@ use dpp::block::block_info::BlockInfo; use dpp::fee::fee_result::FeeResult; use dpp::fee::Credits; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use grovedb::TransactionArg; @@ -24,7 +23,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut estimated_costs_only_with_layer_info = (!apply).then(EstimatedLayers::new); @@ -44,13 +42,11 @@ impl Drive { &mut drive_operations, &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/identity/update/methods/update_identity_key_limits/v0/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/update_identity_key_limits/v0/mod.rs index acfdb920dd6..d530a413bd2 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/update_identity_key_limits/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/update_identity_key_limits/v0/mod.rs @@ -74,13 +74,11 @@ impl Drive { &platform_version.drive, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, ) } diff --git a/packages/rs-drive/src/drive/identity/update/methods/update_identity_revision/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/update_identity_revision/mod.rs index 576bd65bd30..d287a64b70e 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/update_identity_revision/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/update_identity_revision/mod.rs @@ -13,8 +13,6 @@ use dpp::prelude::Revision; use dpp::version::PlatformVersion; use grovedb::TransactionArg; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; - impl Drive { /// Updates the revision for a specific identity. This function is version controlled. /// @@ -39,7 +37,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -55,7 +52,6 @@ impl Drive { apply, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "update_identity_revision".to_string(), diff --git a/packages/rs-drive/src/drive/identity/update/methods/update_identity_revision/v0/mod.rs b/packages/rs-drive/src/drive/identity/update/methods/update_identity_revision/v0/mod.rs index acf2b86e094..940b060cdef 100644 --- a/packages/rs-drive/src/drive/identity/update/methods/update_identity_revision/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/methods/update_identity_revision/v0/mod.rs @@ -13,8 +13,6 @@ use dpp::prelude::Revision; use dpp::version::PlatformVersion; use grovedb::TransactionArg; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; - impl Drive { /// Update revision for specific identity #[inline(always)] @@ -27,7 +25,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut estimated_costs_only_with_layer_info = (!apply).then(EstimatedLayers::new); @@ -47,13 +44,11 @@ impl Drive { &mut drive_operations, &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/identity/update/mod.rs b/packages/rs-drive/src/drive/identity/update/mod.rs index 5c493a6cb36..d6e3dd412b5 100644 --- a/packages/rs-drive/src/drive/identity/update/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/mod.rs @@ -14,7 +14,6 @@ mod tests { mod add_new_keys_to_identity { use super::*; - use crate::drive::Drive; use crate::fees::op::LowLevelDriveOperation; use dpp::block::block_info::BlockInfo; use dpp::block::epoch::Epoch; @@ -247,15 +246,14 @@ mod tests { ) .expect("expected to apply operations"); - let fee_result = Drive::calculate_fee( - None, - Some(drive_operations), - &Epoch::new(0).unwrap(), - drive.config.epochs_per_era, - platform_version, - None, - ) - .expect("expected fee result"); + let fee_result = drive + .calculate_fee( + None, + Some(drive_operations), + &Epoch::new(0).unwrap(), + platform_version, + ) + .expect("expected fee result"); assert_eq!(fee_result, expected_fee_result); @@ -853,7 +851,6 @@ mod tests { apply, Some(&db_transaction), platform_version, - None, ) .expect("should update revision"); diff --git a/packages/rs-drive/src/drive/identity/withdrawals/calculate_current_withdrawal_limit/v1/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/calculate_current_withdrawal_limit/v1/mod.rs index 963ba63f15e..2dedb290738 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/calculate_current_withdrawal_limit/v1/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/calculate_current_withdrawal_limit/v1/mod.rs @@ -339,7 +339,6 @@ mod tests { &block(day_one), Some(&transaction), &platform_version, - None, ) .expect("expected to apply the pooling operations"); drive @@ -572,7 +571,6 @@ mod tests { &block(t2), Some(&transaction), &platform_version, - None, ) .expect("expected to apply the pooling operations"); drive diff --git a/packages/rs-drive/src/drive/identity/withdrawals/fetch_in_flight_withdrawal_amount/v0/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/fetch_in_flight_withdrawal_amount/v0/mod.rs index 9cabc3fa0d6..d0dfd94240d 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/fetch_in_flight_withdrawal_amount/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/fetch_in_flight_withdrawal_amount/v0/mod.rs @@ -157,7 +157,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("expected to apply"); @@ -178,7 +177,6 @@ mod tests { &BlockInfo::default(), Some(&transaction), platform_version, - None, ) .expect("expected to apply"); diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/mod.rs index a2dafcb7cbc..b67e7f89b7e 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/mod.rs @@ -46,7 +46,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("to apply drive ops"); diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/mod.rs index b7817dd338d..0db5c3ae640 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/mod.rs @@ -55,7 +55,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("to apply batch"); @@ -77,7 +76,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("to apply batch"); @@ -101,7 +99,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .expect("to apply batch"); diff --git a/packages/rs-drive/src/drive/prefunded_specialized_balances/fetch/single_balance/v0/mod.rs b/packages/rs-drive/src/drive/prefunded_specialized_balances/fetch/single_balance/v0/mod.rs index c02d03e5f60..a55ba5128ba 100644 --- a/packages/rs-drive/src/drive/prefunded_specialized_balances/fetch/single_balance/v0/mod.rs +++ b/packages/rs-drive/src/drive/prefunded_specialized_balances/fetch/single_balance/v0/mod.rs @@ -50,13 +50,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) } diff --git a/packages/rs-drive/src/drive/tokens/apply_status/v0/mod.rs b/packages/rs-drive/src/drive/tokens/apply_status/v0/mod.rs index b2d2b6bddcb..1cedb947d23 100644 --- a/packages/rs-drive/src/drive/tokens/apply_status/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/apply_status/v0/mod.rs @@ -32,13 +32,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/tokens/balance/add_to_previous_token_balance/mod.rs b/packages/rs-drive/src/drive/tokens/balance/add_to_previous_token_balance/mod.rs index 64c9b3ed5c4..84c7f4be52e 100644 --- a/packages/rs-drive/src/drive/tokens/balance/add_to_previous_token_balance/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/add_to_previous_token_balance/mod.rs @@ -10,7 +10,6 @@ use dpp::fee::fee_result::FeeResult; use dpp::fee::Credits; use dpp::balances::credits::TokenAmount; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use grovedb::TransactionArg; @@ -26,7 +25,6 @@ impl Drive { /// * `apply` - A boolean indicating whether the operation should be applied or not. /// * `transaction` - The transaction information related to the operation. /// * `platform_version` - The platform version. - /// * `previous_fee_versions` - Cached fee versions, if any. /// /// # Returns /// @@ -41,7 +39,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -58,7 +55,6 @@ impl Drive { apply, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "add_to_identity_token_balance".to_string(), diff --git a/packages/rs-drive/src/drive/tokens/balance/add_to_previous_token_balance/v0/mod.rs b/packages/rs-drive/src/drive/tokens/balance/add_to_previous_token_balance/v0/mod.rs index c67064f2230..879fcad86f0 100644 --- a/packages/rs-drive/src/drive/tokens/balance/add_to_previous_token_balance/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/add_to_previous_token_balance/v0/mod.rs @@ -8,7 +8,6 @@ use dpp::fee::fee_result::FeeResult; use dpp::fee::Credits; use crate::drive::tokens::paths::token_balances_path_vec; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use dpp::ProtocolError; use grovedb::{Element, TransactionArg}; @@ -28,7 +27,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut estimated_costs_only_with_layer_info = (!apply).then(EstimatedLayers::new); @@ -49,13 +47,11 @@ impl Drive { &mut drive_operations, &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) } @@ -187,7 +183,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add initial token balance"); @@ -203,7 +198,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -252,7 +246,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -300,7 +293,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected boundary insert to succeed"); @@ -345,7 +337,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to seed balance"); @@ -358,7 +349,6 @@ mod tests { true, None, platform_version, - None, ); assert!(result.is_err(), "expected checked_add overflow error"); @@ -409,7 +399,6 @@ mod tests { false, None, platform_version, - None, ) .expect("expected estimation to succeed"); @@ -465,7 +454,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add zero balance"); @@ -509,7 +497,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add initial token balance"); @@ -522,7 +509,6 @@ mod tests { true, None, platform_version, - None, ); assert!( diff --git a/packages/rs-drive/src/drive/tokens/balance/fetch_identities_token_balances/mod.rs b/packages/rs-drive/src/drive/tokens/balance/fetch_identities_token_balances/mod.rs index 9e45812091c..df1b39326ff 100644 --- a/packages/rs-drive/src/drive/tokens/balance/fetch_identities_token_balances/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/fetch_identities_token_balances/mod.rs @@ -91,13 +91,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/balance/fetch_identities_token_balances/v0/mod.rs b/packages/rs-drive/src/drive/tokens/balance/fetch_identities_token_balances/v0/mod.rs index 9b87c58b9ee..428794f4375 100644 --- a/packages/rs-drive/src/drive/tokens/balance/fetch_identities_token_balances/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/fetch_identities_token_balances/v0/mod.rs @@ -104,7 +104,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add balance A"); @@ -117,7 +116,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add balance B"); diff --git a/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balance/mod.rs b/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balance/mod.rs index 8b563ae97b4..974256cde78 100644 --- a/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balance/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balance/mod.rs @@ -74,13 +74,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balance/v0/mod.rs b/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balance/v0/mod.rs index 2e7d701e787..7e72ca9ea47 100644 --- a/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balance/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balance/v0/mod.rs @@ -195,7 +195,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add balance"); diff --git a/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/mod.rs b/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/mod.rs index c7abc0266fd..880c641ba58 100644 --- a/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/mod.rs @@ -92,13 +92,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/v0/mod.rs b/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/v0/mod.rs index 50198d29714..6902463a2ee 100644 --- a/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/v0/mod.rs @@ -119,7 +119,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add balance for A"); @@ -132,7 +131,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add balance for C"); diff --git a/packages/rs-drive/src/drive/tokens/balance/prove_identities_token_balances/mod.rs b/packages/rs-drive/src/drive/tokens/balance/prove_identities_token_balances/mod.rs index 558e2c84393..341820520c8 100644 --- a/packages/rs-drive/src/drive/tokens/balance/prove_identities_token_balances/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/prove_identities_token_balances/mod.rs @@ -88,13 +88,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/balance/prove_identity_token_balances/mod.rs b/packages/rs-drive/src/drive/tokens/balance/prove_identity_token_balances/mod.rs index 535ba73464f..fb3e66f74a3 100644 --- a/packages/rs-drive/src/drive/tokens/balance/prove_identity_token_balances/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/prove_identity_token_balances/mod.rs @@ -88,13 +88,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/balance/remove_from_identity_token_balance/mod.rs b/packages/rs-drive/src/drive/tokens/balance/remove_from_identity_token_balance/mod.rs index 5528badc49c..8686cc227a4 100644 --- a/packages/rs-drive/src/drive/tokens/balance/remove_from_identity_token_balance/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/remove_from_identity_token_balance/mod.rs @@ -9,7 +9,6 @@ use dpp::block::block_info::BlockInfo; use dpp::fee::fee_result::FeeResult; use dpp::fee::Credits; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use grovedb::TransactionArg; @@ -39,7 +38,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -56,7 +54,6 @@ impl Drive { apply, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "remove_from_identity_balance".to_string(), diff --git a/packages/rs-drive/src/drive/tokens/balance/remove_from_identity_token_balance/v0/mod.rs b/packages/rs-drive/src/drive/tokens/balance/remove_from_identity_token_balance/v0/mod.rs index a6579790c47..fe39e55bc10 100644 --- a/packages/rs-drive/src/drive/tokens/balance/remove_from_identity_token_balance/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/balance/remove_from_identity_token_balance/v0/mod.rs @@ -10,7 +10,6 @@ use dpp::fee::fee_result::FeeResult; use dpp::fee::Credits; use crate::drive::tokens::paths::token_balances_path_vec; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::version::PlatformVersion; use grovedb::{Element, TransactionArg}; @@ -26,7 +25,6 @@ impl Drive { apply: bool, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut estimated_costs_only_with_layer_info = (!apply).then(EstimatedLayers::new); @@ -47,13 +45,11 @@ impl Drive { &mut drive_operations, &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) } @@ -166,7 +162,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to seed balance"); } @@ -188,7 +183,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to remove partial balance"); @@ -212,7 +206,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to remove full balance"); @@ -235,7 +228,6 @@ mod tests { true, None, platform_version, - None, ); assert!(matches!( @@ -279,7 +271,6 @@ mod tests { true, None, platform_version, - None, ); assert!(matches!( @@ -328,7 +319,6 @@ mod tests { false, // apply=false, cost-only branch None, platform_version, - None, ) .expect("expected estimation to succeed"); diff --git a/packages/rs-drive/src/drive/tokens/balance/update.rs b/packages/rs-drive/src/drive/tokens/balance/update.rs index fecb7590dab..0567a6fa88e 100644 --- a/packages/rs-drive/src/drive/tokens/balance/update.rs +++ b/packages/rs-drive/src/drive/tokens/balance/update.rs @@ -441,7 +441,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to add to identity balance"); @@ -500,7 +499,6 @@ mod tests { false, None, platform_version, - None, ) .expect("expected to add to identity balance"); diff --git a/packages/rs-drive/src/drive/tokens/burn/v0/mod.rs b/packages/rs-drive/src/drive/tokens/burn/v0/mod.rs index fb00a33fb48..9667df2770a 100644 --- a/packages/rs-drive/src/drive/tokens/burn/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/burn/v0/mod.rs @@ -31,13 +31,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/tokens/contract_info/fetch_token_contract_info/mod.rs b/packages/rs-drive/src/drive/tokens/contract_info/fetch_token_contract_info/mod.rs index f3286ea9a7d..8956aaaedcc 100644 --- a/packages/rs-drive/src/drive/tokens/contract_info/fetch_token_contract_info/mod.rs +++ b/packages/rs-drive/src/drive/tokens/contract_info/fetch_token_contract_info/mod.rs @@ -64,13 +64,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/direct_purchase/fetch_token_direct_purchase_price/mod.rs b/packages/rs-drive/src/drive/tokens/direct_purchase/fetch_token_direct_purchase_price/mod.rs index d56b8e7444c..091d49f6dd8 100644 --- a/packages/rs-drive/src/drive/tokens/direct_purchase/fetch_token_direct_purchase_price/mod.rs +++ b/packages/rs-drive/src/drive/tokens/direct_purchase/fetch_token_direct_purchase_price/mod.rs @@ -62,13 +62,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/direct_purchase/set_direct_purchase_price/mod.rs b/packages/rs-drive/src/drive/tokens/direct_purchase/set_direct_purchase_price/mod.rs index d953b3e73de..8c23881b775 100644 --- a/packages/rs-drive/src/drive/tokens/direct_purchase/set_direct_purchase_price/mod.rs +++ b/packages/rs-drive/src/drive/tokens/direct_purchase/set_direct_purchase_price/mod.rs @@ -40,13 +40,11 @@ impl Drive { &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/tokens/distribution/add_pre_programmed_distribution/v1/mod.rs b/packages/rs-drive/src/drive/tokens/distribution/add_pre_programmed_distribution/v1/mod.rs index 8d0c4e036bc..5e405dd12ba 100644 --- a/packages/rs-drive/src/drive/tokens/distribution/add_pre_programmed_distribution/v1/mod.rs +++ b/packages/rs-drive/src/drive/tokens/distribution/add_pre_programmed_distribution/v1/mod.rs @@ -389,7 +389,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected the update adding both tokens to succeed"); diff --git a/packages/rs-drive/src/drive/tokens/freeze/v0/mod.rs b/packages/rs-drive/src/drive/tokens/freeze/v0/mod.rs index 7edaafd176c..71e0b466f24 100644 --- a/packages/rs-drive/src/drive/tokens/freeze/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/freeze/v0/mod.rs @@ -35,13 +35,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/tokens/info/fetch_identities_token_infos/mod.rs b/packages/rs-drive/src/drive/tokens/info/fetch_identities_token_infos/mod.rs index d114efadc90..534ac3433e4 100644 --- a/packages/rs-drive/src/drive/tokens/info/fetch_identities_token_infos/mod.rs +++ b/packages/rs-drive/src/drive/tokens/info/fetch_identities_token_infos/mod.rs @@ -92,13 +92,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/info/fetch_identity_token_info/mod.rs b/packages/rs-drive/src/drive/tokens/info/fetch_identity_token_info/mod.rs index 3fa1a5dad03..9e0fb8cf89f 100644 --- a/packages/rs-drive/src/drive/tokens/info/fetch_identity_token_info/mod.rs +++ b/packages/rs-drive/src/drive/tokens/info/fetch_identity_token_info/mod.rs @@ -73,13 +73,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/info/fetch_identity_token_infos/mod.rs b/packages/rs-drive/src/drive/tokens/info/fetch_identity_token_infos/mod.rs index 2291e204663..a48b5132702 100644 --- a/packages/rs-drive/src/drive/tokens/info/fetch_identity_token_infos/mod.rs +++ b/packages/rs-drive/src/drive/tokens/info/fetch_identity_token_infos/mod.rs @@ -92,13 +92,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/info/prove_identities_token_infos/mod.rs b/packages/rs-drive/src/drive/tokens/info/prove_identities_token_infos/mod.rs index 884295ab9ac..23e7fec04ee 100644 --- a/packages/rs-drive/src/drive/tokens/info/prove_identities_token_infos/mod.rs +++ b/packages/rs-drive/src/drive/tokens/info/prove_identities_token_infos/mod.rs @@ -88,13 +88,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/info/prove_identity_token_infos/mod.rs b/packages/rs-drive/src/drive/tokens/info/prove_identity_token_infos/mod.rs index d42cc23e300..eef156f586d 100644 --- a/packages/rs-drive/src/drive/tokens/info/prove_identity_token_infos/mod.rs +++ b/packages/rs-drive/src/drive/tokens/info/prove_identity_token_infos/mod.rs @@ -88,13 +88,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/mint/v0/mod.rs b/packages/rs-drive/src/drive/tokens/mint/v0/mod.rs index 1b7323f9de7..7d69151d435 100644 --- a/packages/rs-drive/src/drive/tokens/mint/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/mint/v0/mod.rs @@ -35,13 +35,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/tokens/mint_many/v0/mod.rs b/packages/rs-drive/src/drive/tokens/mint_many/v0/mod.rs index 33b48575fbf..c195b8bad0a 100644 --- a/packages/rs-drive/src/drive/tokens/mint_many/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/mint_many/v0/mod.rs @@ -34,13 +34,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/tokens/order_escrow/mod.rs b/packages/rs-drive/src/drive/tokens/order_escrow/mod.rs index dcebf600541..d5ad05bc43b 100644 --- a/packages/rs-drive/src/drive/tokens/order_escrow/mod.rs +++ b/packages/rs-drive/src/drive/tokens/order_escrow/mod.rs @@ -434,15 +434,14 @@ mod tests { &platform_version.drive, ) .unwrap_or_else(|error| panic!("{name}: expected to estimate: {error:?}")); - let fee = Drive::calculate_fee( - None, - Some(costs), - &BlockInfo::default().epoch, - drive.config.epochs_per_era, - platform_version, - None, - ) - .unwrap_or_else(|error| panic!("{name}: expected a fee: {error:?}")); + let fee = drive + .calculate_fee( + None, + Some(costs), + &BlockInfo::default().epoch, + platform_version, + ) + .unwrap_or_else(|error| panic!("{name}: expected a fee: {error:?}")); assert!( fee.processing_fee > 0, "{name}: an estimated write costs something" @@ -713,15 +712,14 @@ mod tests { ) -> (FeeResult, FeeResult) { let platform_version = PlatformVersion::latest(); let fee = |costs: Vec| { - Drive::calculate_fee( - None, - Some(costs), - &BlockInfo::default().epoch, - drive.config.epochs_per_era, - platform_version, - None, - ) - .expect("expected a fee") + drive + .calculate_fee( + None, + Some(costs), + &BlockInfo::default().epoch, + platform_version, + ) + .expect("expected a fee") }; let mut estimation = Some(EstimatedLayers::new()); @@ -1087,7 +1085,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to store the listing"); } diff --git a/packages/rs-drive/src/drive/tokens/shielded_pool/mod.rs b/packages/rs-drive/src/drive/tokens/shielded_pool/mod.rs index d75d9958547..0e138cd4053 100644 --- a/packages/rs-drive/src/drive/tokens/shielded_pool/mod.rs +++ b/packages/rs-drive/src/drive/tokens/shielded_pool/mod.rs @@ -260,7 +260,6 @@ mod tests { true, None, platform_version, - None, ) .expect("add token balance"); @@ -752,16 +751,15 @@ mod tests { }) .collect(); let reads = costs.len(); - let fee = Drive::calculate_fee( - None, - Some(costs), - &BlockInfo::default().epoch, - drive.config.epochs_per_era, - platform_version, - None, - ) - .expect("price the metered operations") - .processing_fee; + let fee = drive + .calculate_fee( + None, + Some(costs), + &BlockInfo::default().epoch, + platform_version, + ) + .expect("price the metered operations") + .processing_fee; (reads, fee) }; diff --git a/packages/rs-drive/src/drive/tokens/status/fetch_token_status/mod.rs b/packages/rs-drive/src/drive/tokens/status/fetch_token_status/mod.rs index 68751026c04..8accf9ea3c5 100644 --- a/packages/rs-drive/src/drive/tokens/status/fetch_token_status/mod.rs +++ b/packages/rs-drive/src/drive/tokens/status/fetch_token_status/mod.rs @@ -56,13 +56,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/status/fetch_token_statuses/mod.rs b/packages/rs-drive/src/drive/tokens/status/fetch_token_statuses/mod.rs index c38f2667180..675ef163f10 100644 --- a/packages/rs-drive/src/drive/tokens/status/fetch_token_statuses/mod.rs +++ b/packages/rs-drive/src/drive/tokens/status/fetch_token_statuses/mod.rs @@ -76,13 +76,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/status/prove_token_statuses/mod.rs b/packages/rs-drive/src/drive/tokens/status/prove_token_statuses/mod.rs index 8c74e0e4725..ee6081a6150 100644 --- a/packages/rs-drive/src/drive/tokens/status/prove_token_statuses/mod.rs +++ b/packages/rs-drive/src/drive/tokens/status/prove_token_statuses/mod.rs @@ -72,13 +72,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((value, fees)) diff --git a/packages/rs-drive/src/drive/tokens/system/add_to_token_total_supply/v0/mod.rs b/packages/rs-drive/src/drive/tokens/system/add_to_token_total_supply/v0/mod.rs index 8a3839053b0..004fb019130 100644 --- a/packages/rs-drive/src/drive/tokens/system/add_to_token_total_supply/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/system/add_to_token_total_supply/v0/mod.rs @@ -40,13 +40,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((fees, token_amount)) diff --git a/packages/rs-drive/src/drive/tokens/system/create_token_trees/v0/mod.rs b/packages/rs-drive/src/drive/tokens/system/create_token_trees/v0/mod.rs index d3ff50e8ca8..57778331a79 100644 --- a/packages/rs-drive/src/drive/tokens/system/create_token_trees/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/system/create_token_trees/v0/mod.rs @@ -54,13 +54,11 @@ impl Drive { )?; // If applying, calculate fees - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/v0/mod.rs b/packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/v0/mod.rs index 56b01052720..b328edc489c 100644 --- a/packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/v0/mod.rs @@ -154,7 +154,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add token balance"); @@ -224,7 +223,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add balance"); @@ -237,7 +235,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to remove balance"); @@ -284,7 +281,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add token balance"); } diff --git a/packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/v0/mod.rs b/packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/v0/mod.rs index 1852e3b30ca..5aac594cfc5 100644 --- a/packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/v0/mod.rs @@ -45,13 +45,11 @@ impl Drive { &mut drive_operations, platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok((token_amount, fees)) } diff --git a/packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/v0/mod.rs b/packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/v0/mod.rs index 4cbe322d7a4..a2eef05320d 100644 --- a/packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/v0/mod.rs @@ -382,7 +382,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add balance"); } diff --git a/packages/rs-drive/src/drive/tokens/system/remove_from_token_total_supply/v0/mod.rs b/packages/rs-drive/src/drive/tokens/system/remove_from_token_total_supply/v0/mod.rs index 5b5f248159f..da6acc02967 100644 --- a/packages/rs-drive/src/drive/tokens/system/remove_from_token_total_supply/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/system/remove_from_token_total_supply/v0/mod.rs @@ -36,13 +36,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/tokens/transfer/v0/mod.rs b/packages/rs-drive/src/drive/tokens/transfer/v0/mod.rs index 2f974df648f..5abb3b555cc 100644 --- a/packages/rs-drive/src/drive/tokens/transfer/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/transfer/v0/mod.rs @@ -33,13 +33,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/tokens/unfreeze/v0/mod.rs b/packages/rs-drive/src/drive/tokens/unfreeze/v0/mod.rs index cdf331defad..84378e9b8f9 100644 --- a/packages/rs-drive/src/drive/tokens/unfreeze/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/unfreeze/v0/mod.rs @@ -35,13 +35,11 @@ impl Drive { platform_version, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/votes/fetch/fetch_contested_document_vote_poll_contender_count/v0/mod.rs b/packages/rs-drive/src/drive/votes/fetch/fetch_contested_document_vote_poll_contender_count/v0/mod.rs index 99e977041f0..fcff2c95297 100644 --- a/packages/rs-drive/src/drive/votes/fetch/fetch_contested_document_vote_poll_contender_count/v0/mod.rs +++ b/packages/rs-drive/src/drive/votes/fetch/fetch_contested_document_vote_poll_contender_count/v0/mod.rs @@ -93,14 +93,8 @@ impl Drive { } }; - let fee_result = Drive::calculate_fee( - None, - Some(cost_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - )?; + let fee_result = + self.calculate_fee(None, Some(cost_operations), epoch, platform_version)?; Ok((fee_result, contenders)) } } diff --git a/packages/rs-drive/src/drive/votes/fetch/fetch_contested_document_vote_poll_stored_info/v0/mod.rs b/packages/rs-drive/src/drive/votes/fetch/fetch_contested_document_vote_poll_stored_info/v0/mod.rs index 7e4b45ac8c8..f88dc6756f3 100644 --- a/packages/rs-drive/src/drive/votes/fetch/fetch_contested_document_vote_poll_stored_info/v0/mod.rs +++ b/packages/rs-drive/src/drive/votes/fetch/fetch_contested_document_vote_poll_stored_info/v0/mod.rs @@ -38,16 +38,7 @@ impl Drive { )?; let fee_result = epoch - .map(|epoch| { - Drive::calculate_fee( - None, - Some(cost_operations), - epoch, - self.config.epochs_per_era, - platform_version, - None, - ) - }) + .map(|epoch| self.calculate_fee(None, Some(cost_operations), epoch, platform_version)) .transpose()?; let Some(element) = maybe_element else { return Ok((fee_result, None)); diff --git a/packages/rs-drive/src/drive/votes/insert/contested_resource/individual_vote/register_contested_resource_identity_vote/v0/mod.rs b/packages/rs-drive/src/drive/votes/insert/contested_resource/individual_vote/register_contested_resource_identity_vote/v0/mod.rs index 53e882b2c32..64395f12740 100644 --- a/packages/rs-drive/src/drive/votes/insert/contested_resource/individual_vote/register_contested_resource_identity_vote/v0/mod.rs +++ b/packages/rs-drive/src/drive/votes/insert/contested_resource/individual_vote/register_contested_resource_identity_vote/v0/mod.rs @@ -52,13 +52,11 @@ impl Drive { &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/drive/votes/insert/yes_no/register_yes_no_identity_vote/v0/mod.rs b/packages/rs-drive/src/drive/votes/insert/yes_no/register_yes_no_identity_vote/v0/mod.rs index 3865deb1b15..8c305ab7334 100644 --- a/packages/rs-drive/src/drive/votes/insert/yes_no/register_yes_no_identity_vote/v0/mod.rs +++ b/packages/rs-drive/src/drive/votes/insert/yes_no/register_yes_no_identity_vote/v0/mod.rs @@ -41,13 +41,11 @@ impl Drive { &mut drive_operations, &platform_version.drive, )?; - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) } diff --git a/packages/rs-drive/src/fees/calculate_fee/mod.rs b/packages/rs-drive/src/fees/calculate_fee/mod.rs index f2a6516a5ed..8b3febbd38c 100644 --- a/packages/rs-drive/src/fees/calculate_fee/mod.rs +++ b/packages/rs-drive/src/fees/calculate_fee/mod.rs @@ -3,15 +3,19 @@ use crate::error::drive::DriveError; use crate::error::Error; use crate::fees::op::{BaseOp, LowLevelDriveOperation}; use dpp::block::epoch::Epoch; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use dpp::version::PlatformVersion; use enum_map::EnumMap; mod v0; +mod v1; impl Drive { /// Calculates fees for the given operations. Returns the storage and processing costs. + /// + /// From generation 1 (protocol version 15) a refund is priced at the storage rate of the + /// epoch that stored the bytes, read from that epoch's tree; generation 0 prices it at the + /// block's rate. // Developer note : If there would ever need to be more parameters, they could be added as an option. // For example, we could transform // pub fn calculate_fee( @@ -31,27 +35,203 @@ impl Drive { // All places in old code would just use a None for new_operations // And calculate_fee_v0 would not use new_operations pub fn calculate_fee( + &self, base_operations: Option>, drive_operations: Option>, epoch: &Epoch, - epochs_per_era: u16, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version.drive.methods.fees.calculate_fee { 0 => Self::calculate_fee_v0( base_operations, drive_operations, epoch, - epochs_per_era, + self.config.epochs_per_era, &platform_version.fee_version, - previous_fee_versions, ), + 1 => self.calculate_fee_v1(base_operations, drive_operations, epoch, platform_version), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "Drive::calculate_fee".to_string(), - known_versions: vec![0], + known_versions: vec![0, 1], received: version, })), } } } + +#[cfg(test)] +mod tests { + use super::*; + use crate::drive::credit_pools::epochs::operations_factory::EpochOperations; + use crate::util::batch::grovedb_op_batch::GroveDbOpBatchV0Methods; + use crate::util::batch::GroveDbOpBatch; + use crate::util::test_helpers::setup::setup_drive_with_initial_state_structure; + use dpp::fee::epoch::distribution::calculate_storage_fee_refund_amount_and_leftovers; + use dpp::fee::Credits; + use dpp::version::fee::FeeVersion; + use dpp::version::{ProtocolVersion, PLATFORM_VERSIONS}; + use grovedb_costs::storage_cost::removal::{ + StorageRemovalPerEpochByIdentifier, StorageRemovedBytes, + }; + use grovedb_costs::storage_cost::StorageCost; + use grovedb_costs::OperationCost; + use platform_version::version::mocks::v4_test::TEST_PROTOCOL_VERSION_4; + + const OWNER: [u8; 32] = [7; 32]; + const REMOVED_BYTES: u32 = 1_000; + const REMOVED_SYSTEM_BYTES: u32 = 50; + const REMOVING_EPOCH: u16 = 15; + + /// A Drive whose `epochs` record the given protocol versions, as their first blocks do. + fn drive_with_epoch_protocol_versions(epochs: &[(u16, ProtocolVersion)]) -> Drive { + let drive = setup_drive_with_initial_state_structure(None); + if epochs.is_empty() { + return drive; + } + let mut batch = GroveDbOpBatch::new(); + for (epoch_index, protocol_version) in epochs { + let epoch = Epoch::new(*epoch_index).expect("expected an epoch"); + batch.push(epoch.update_protocol_version_operation(*protocol_version)); + } + drive + .grove_apply_batch(batch, false, None, &PlatformVersion::latest().drive) + .expect("expected to record the protocol versions"); + drive + } + + /// Prices the removal of one element holding `REMOVED_BYTES` of the owner's from each of + /// `storing_epochs`, and `REMOVED_SYSTEM_BYTES` of the system's, in `REMOVING_EPOCH`. + fn price_removal( + drive: &Drive, + storing_epochs: &[u16], + platform_version: &PlatformVersion, + ) -> Result { + let mut removal = StorageRemovalPerEpochByIdentifier::default(); + for storing_epoch in storing_epochs { + removal + .entry(OWNER) + .or_default() + .insert(*storing_epoch, REMOVED_BYTES); + } + removal + .entry([0; 32]) + .or_default() + .insert(REMOVING_EPOCH, REMOVED_SYSTEM_BYTES); + let removed_bytes = LowLevelDriveOperation::CalculatedCostOperation(OperationCost { + storage_cost: StorageCost { + removed_bytes: StorageRemovedBytes::SectionedStorageRemoval(removal), + ..Default::default() + }, + ..Default::default() + }); + + drive.calculate_fee( + None, + Some(vec![removed_bytes]), + &Epoch::new(REMOVING_EPOCH).expect("expected an epoch"), + platform_version, + ) + } + + fn refund_at_rate(drive: &Drive, storing_epoch: u16, rate: Credits) -> Credits { + calculate_storage_fee_refund_amount_and_leftovers( + REMOVED_BYTES as Credits * rate, + storing_epoch, + REMOVING_EPOCH, + drive.config.epochs_per_era, + ) + .expect("expected a refund") + .0 + } + + fn owner_refund(fee_result: &FeeResult, storing_epoch: u16) -> Option { + fee_result + .fee_refunds + .get(&OWNER) + .and_then(|credits_per_epoch| credits_per_epoch.get(&storing_epoch).copied()) + } + + /// Every schedule so far has the first schedule's storage rate, so the generations agree. + #[test] + fn should_price_a_refund_the_same_at_every_protocol_version() { + let drive = + drive_with_epoch_protocol_versions(&[(12, PlatformVersion::latest().protocol_version)]); + let rate = FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; + let expected_refund = refund_at_rate(&drive, 12, rate); + assert!(expected_refund > 0); + + for platform_version in PLATFORM_VERSIONS { + let fee_result = price_removal(&drive, &[12], platform_version) + .expect("expected to calculate the fee"); + + assert_eq!( + owner_refund(&fee_result, 12), + Some(expected_refund), + "protocol version {}", + platform_version.protocol_version + ); + assert_eq!(fee_result.removed_bytes_from_system, REMOVED_SYSTEM_BYTES); + } + } + + #[test] + fn should_price_a_refund_at_the_storage_rate_of_the_epoch_that_stored_the_bytes() { + let latest = PlatformVersion::latest(); + // Epoch 12 ran a protocol version charging twice the storage rate; epoch 14 ran the + // latest. Epoch 15, the removing block's own, records nothing yet. + let drive = drive_with_epoch_protocol_versions(&[ + (12, TEST_PROTOCOL_VERSION_4), + (14, latest.protocol_version), + ]); + let rate = latest + .fee_version + .storage + .storage_disk_usage_credit_per_byte; + + let fee_result = price_removal(&drive, &[12, 14, REMOVING_EPOCH], latest) + .expect("expected to calculate the fee"); + assert_eq!( + owner_refund(&fee_result, 12), + Some(refund_at_rate(&drive, 12, 2 * rate)) + ); + assert_eq!( + owner_refund(&fee_result, 14), + Some(refund_at_rate(&drive, 14, rate)) + ); + assert_eq!( + owner_refund(&fee_result, REMOVING_EPOCH), + Some(refund_at_rate(&drive, REMOVING_EPOCH, rate)) + ); + assert_eq!(fee_result.removed_bytes_from_system, REMOVED_SYSTEM_BYTES); + + // Generation 0 prices every refund at the block's rate. + let protocol_version_14 = PlatformVersion::get(14).expect("expected protocol version 14"); + let fee_result = price_removal(&drive, &[12, 14], protocol_version_14) + .expect("expected to calculate the fee"); + assert_eq!( + owner_refund(&fee_result, 12), + Some(refund_at_rate(&drive, 12, rate)) + ); + assert_eq!( + owner_refund(&fee_result, 14), + Some(refund_at_rate(&drive, 14, rate)) + ); + } + + /// An earlier epoch that stored bytes had a block, which recorded its protocol version, so + /// a missing record is corrupted state, which generation 1 does not price over. + #[test] + fn should_not_price_a_refund_from_an_epoch_that_recorded_no_protocol_version() { + let drive = drive_with_epoch_protocol_versions(&[]); + + assert!(price_removal(&drive, &[13], PlatformVersion::latest()).is_err()); + assert!(price_removal( + &drive, + &[13], + PlatformVersion::get(14).expect("expected protocol version 14") + ) + .is_ok()); + } +} diff --git a/packages/rs-drive/src/fees/calculate_fee/v0/mod.rs b/packages/rs-drive/src/fees/calculate_fee/v0/mod.rs index 1bbd9bf7fd3..9a8f7543cdc 100644 --- a/packages/rs-drive/src/fees/calculate_fee/v0/mod.rs +++ b/packages/rs-drive/src/fees/calculate_fee/v0/mod.rs @@ -5,7 +5,6 @@ use crate::fees::op::{BaseOp, LowLevelDriveOperation}; use dpp::block::epoch::Epoch; use dpp::fee::fee_result::FeeResult; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use enum_map::EnumMap; use platform_version::version::fee::FeeVersion; @@ -18,7 +17,6 @@ impl Drive { epoch: &Epoch, epochs_per_era: u16, fee_version: &FeeVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { let mut aggregate_fee_result = FeeResult::default(); if let Some(base_operations) = base_operations { @@ -40,7 +38,6 @@ impl Drive { epoch, epochs_per_era, fee_version, - previous_fee_versions, )? { aggregate_fee_result.checked_add_assign(drive_fee_result)?; } diff --git a/packages/rs-drive/src/fees/calculate_fee/v1/mod.rs b/packages/rs-drive/src/fees/calculate_fee/v1/mod.rs new file mode 100644 index 00000000000..11618f1df5e --- /dev/null +++ b/packages/rs-drive/src/fees/calculate_fee/v1/mod.rs @@ -0,0 +1,73 @@ +use crate::drive::Drive; +use crate::error::Error; +use crate::fees::op::{BaseOp, LowLevelDriveOperation}; +use dpp::block::epoch::{Epoch, EpochIndex}; +use dpp::fee::fee_result::FeeResult; +use dpp::fee::Credits; +use dpp::version::PlatformVersion; +use dpp::ProtocolError; +use enum_map::EnumMap; + +impl Drive { + /// Calculates fees for the given operations, pricing each refund at the storage rate of the + /// epoch that stored the bytes. Generation 0 prices every refund at the block's rate. + #[inline(always)] + pub(super) fn calculate_fee_v1( + &self, + base_operations: Option>, + drive_operations: Option>, + epoch: &Epoch, + platform_version: &PlatformVersion, + ) -> Result { + let mut aggregate_fee_result = Self::calculate_fee_v0( + base_operations, + None, + epoch, + self.config.epochs_per_era, + &platform_version.fee_version, + )?; + + if let Some(drive_operations) = drive_operations { + for drive_fee_result in LowLevelDriveOperation::consume_to_fees_v1( + drive_operations, + epoch, + self.config.epochs_per_era, + &platform_version.fee_version, + |storing_epoch| self.storage_rate_of_epoch(storing_epoch, epoch, platform_version), + )? { + aggregate_fee_result.checked_add_assign(drive_fee_result)?; + } + } + + Ok(aggregate_fee_result) + } + + /// The storage rate of the fee schedule of the protocol version `storing_epoch` ran. + /// + /// Bytes stored in the block's own epoch are priced at the block's rate: that epoch's + /// protocol version is the block's, and it is only recorded at the end of the epoch's first + /// block. An earlier epoch that stored bytes had a block, so its first block recorded its + /// protocol version, nothing removes that record, and it was committed before this block + /// started, so it is read without a transaction. + fn storage_rate_of_epoch( + &self, + storing_epoch: EpochIndex, + epoch: &Epoch, + platform_version: &PlatformVersion, + ) -> Result { + if storing_epoch == epoch.index { + return Ok(platform_version + .fee_version + .storage + .storage_disk_usage_credit_per_byte); + } + let protocol_version = + self.get_epoch_protocol_version(&Epoch::new(storing_epoch)?, None, platform_version)?; + let storing_platform_version = + PlatformVersion::get(protocol_version).map_err(ProtocolError::from)?; + Ok(storing_platform_version + .fee_version + .storage + .storage_disk_usage_credit_per_byte) + } +} diff --git a/packages/rs-drive/src/fees/op.rs b/packages/rs-drive/src/fees/op.rs index 3793a5ede9b..0c49387c897 100644 --- a/packages/rs-drive/src/fees/op.rs +++ b/packages/rs-drive/src/fees/op.rs @@ -3,7 +3,6 @@ use grovedb_costs::storage_cost::removal::Identifier; use grovedb_costs::storage_cost::removal::StorageRemovedBytes::{ BasicStorageRemoval, NoStorageRemoval, SectionedStorageRemoval, }; -use std::collections::BTreeMap; use enum_map::Enum; use grovedb::batch::key_info::KeyInfo; @@ -31,8 +30,7 @@ use crate::util::batch::grovedb_op_batch::GroveDbOpBatchV0Methods; #[cfg(test)] use crate::util::grove_operations::pending_grove_operations::count_copied_pending_grove_operations; use crate::util::storage_flags::StorageFlags; -use dpp::block::epoch::Epoch; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; +use dpp::block::epoch::{Epoch, EpochIndex}; use dpp::fee::fee_result::refunds::FeeRefunds; use dpp::fee::fee_result::{FeeResult, LifetimeStorageFees}; use dpp::fee::Credits; @@ -318,7 +316,6 @@ impl LowLevelDriveOperation { epoch: &Epoch, epochs_per_era: u16, fee_version: &FeeVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result, Error> { drive_operations .into_iter() @@ -328,10 +325,13 @@ impl LowLevelDriveOperation { processing_fee: op.cost(fee_version), ..Default::default() }), - CalculatedEphemeralCostOperation(cost, EphemeralPricing::DocumentTtl { - credit_per_byte, - lifetime_epochs, - }) => { + CalculatedEphemeralCostOperation( + cost, + EphemeralPricing::DocumentTtl { + credit_per_byte, + lifetime_epochs, + }, + ) => { // The writes of a document whose type declares a `ttl`: // each added byte costs the price of the document's // remaining lifetime, as a storage fee the pools pay @@ -376,11 +376,7 @@ impl LowLevelDriveOperation { // construction: TTL elements carry no storage flags, // so their removal can only ever be basic. let ephemeral_bytes_fee = (cost.storage_cost.added_bytes as u64) - .checked_mul( - fee_version - .storage - .ttl_ephemeral_disk_usage_credit_per_byte, - ) + .checked_mul(fee_version.storage.ttl_ephemeral_disk_usage_credit_per_byte) .ok_or(Error::Fee(FeeError::Overflow( "overflow pricing ephemeral bytes", )))?; @@ -412,7 +408,8 @@ impl LowLevelDriveOperation { let cost = operation.operation_cost()?; // There is no need for a checked multiply here because added bytes are u64 and // storage disk usage credit per byte should never be high enough to cause an overflow - let storage_fee = cost.storage_cost.added_bytes as u64 * fee_version.storage.storage_disk_usage_credit_per_byte; + let storage_fee = cost.storage_cost.added_bytes as u64 + * fee_version.storage.storage_disk_usage_credit_per_byte; let processing_fee = cost.ephemeral_cost(fee_version)?; let (fee_refunds, removed_bytes_from_system) = match cost.storage_cost.removed_bytes { @@ -422,32 +419,25 @@ impl LowLevelDriveOperation { (FeeRefunds::default(), amount) } SectionedStorageRemoval(mut removal_per_epoch_by_identifier) => { - let system_amount = removal_per_epoch_by_identifier .remove(&Identifier::default()) .map_or(0, |a| a.values().sum()); - if fee_version.fee_version_number == 1 { - ( - FeeRefunds::from_storage_removal( - removal_per_epoch_by_identifier, - epoch.index, - epochs_per_era, - &BTreeMap::default(), - )?, - system_amount, - ) - } else { - let previous_fee_versions = previous_fee_versions.ok_or(Error::Drive(DriveError::CorruptedCodeExecution("expected previous epoch index fee versions to be able to offer refunds")))?; - ( - FeeRefunds::from_storage_removal( - removal_per_epoch_by_identifier, - epoch.index, - epochs_per_era, - previous_fee_versions, - )?, - system_amount, - ) - } + // This arm used to price every refund against the first schedule, + // for fee version number 1, the number of every schedule a + // protocol version selecting this generation (up to 14) runs. + // Those schedules all have the first one's storage rate, so the + // block's rate here changes no refund. + let storage_rate = + fee_version.storage.storage_disk_usage_credit_per_byte; + ( + FeeRefunds::from_storage_removal( + removal_per_epoch_by_identifier, + epoch.index, + epochs_per_era, + |_| Ok::<_, Error>(storage_rate), + )?, + system_amount, + ) } }; Ok(FeeResult { @@ -462,6 +452,64 @@ impl LowLevelDriveOperation { .collect() } + /// Returns a list of the costs of the Drive operations, pricing the bytes a refund returns + /// at the storage rate `storage_rate_of_epoch` gives for the epoch that stored them. + /// + /// Generation 1 wraps generation 0, which prices every refund at the block's rate. Each + /// calculated cost's sectioned removal is handed to generation 0 as a basic removal of as + /// many bytes, which it prices the same way apart from the refund, and the refund and the + /// system's removed bytes of that operation's fee result are then computed here. + /// Should only be used by Calculate fee + pub fn consume_to_fees_v1( + drive_operations: Vec, + epoch: &Epoch, + epochs_per_era: u16, + fee_version: &FeeVersion, + storage_rate_of_epoch: impl Fn(EpochIndex) -> Result, + ) -> Result, Error> { + let mut sectioned_removals = Vec::new(); + let drive_operations = drive_operations + .into_iter() + .enumerate() + .map(|(position, operation)| { + let CalculatedCostOperation(mut cost) = operation else { + return operation; + }; + let removed_bytes = cost.storage_cost.removed_bytes.total_removed_bytes(); + match std::mem::replace( + &mut cost.storage_cost.removed_bytes, + BasicStorageRemoval(removed_bytes), + ) { + SectionedStorageRemoval(removal) => { + sectioned_removals.push((position, removal)) + } + other_removal => cost.storage_cost.removed_bytes = other_removal, + } + CalculatedCostOperation(cost) + }) + .collect(); + + let mut fee_results = + Self::consume_to_fees_v0(drive_operations, epoch, epochs_per_era, fee_version)?; + for (position, mut removal) in sectioned_removals { + let fee_result = fee_results.get_mut(position).ok_or(Error::Drive( + DriveError::CorruptedCodeExecution( + "fee generation 0 returns one fee result per operation", + ), + ))?; + fee_result.removed_bytes_from_system = removal + .remove(&Identifier::default()) + .map_or(0, |bytes_per_epoch| bytes_per_epoch.values().sum()); + fee_result.fee_refunds = FeeRefunds::from_storage_removal( + removal, + epoch.index, + epochs_per_era, + &storage_rate_of_epoch, + )?; + } + Ok(fee_results) + } + /// Returns the cost of this operation pub fn operation_cost(self) -> Result { match self { diff --git a/packages/rs-drive/src/query/contested_resource_votes_given_by_identity_query.rs b/packages/rs-drive/src/query/contested_resource_votes_given_by_identity_query.rs index 83e223b306c..dbb0ec53ab2 100644 --- a/packages/rs-drive/src/query/contested_resource_votes_given_by_identity_query.rs +++ b/packages/rs-drive/src/query/contested_resource_votes_given_by_identity_query.rs @@ -65,13 +65,11 @@ impl ContestedResourceVotesGivenByIdentityQuery { platform_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -117,13 +115,11 @@ impl ContestedResourceVotesGivenByIdentityQuery { let result = self.execute_no_proof(drive, transaction, &mut drive_operations, platform_version)?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { diff --git a/packages/rs-drive/src/query/drive_contested_document_query.rs b/packages/rs-drive/src/query/drive_contested_document_query.rs index e7a803e7fcf..c9c4749add2 100644 --- a/packages/rs-drive/src/query/drive_contested_document_query.rs +++ b/packages/rs-drive/src/query/drive_contested_document_query.rs @@ -116,13 +116,11 @@ impl DriveContestedDocumentQuery<'_> { platform_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { diff --git a/packages/rs-drive/src/query/drive_document_average_query/drive_dispatcher.rs b/packages/rs-drive/src/query/drive_document_average_query/drive_dispatcher.rs index 5d3a044024d..b9021d9b7f1 100644 --- a/packages/rs-drive/src/query/drive_document_average_query/drive_dispatcher.rs +++ b/packages/rs-drive/src/query/drive_document_average_query/drive_dispatcher.rs @@ -563,7 +563,6 @@ mod tests { true, None, platform_version, - None, ) .expect("insert widget"); } @@ -2251,7 +2250,6 @@ mod tests { true, None, platform_version, - None, ) .expect("insert score"); } diff --git a/packages/rs-drive/src/query/drive_document_count_query/tests.rs b/packages/rs-drive/src/query/drive_document_count_query/tests.rs index 5f1a2176aba..8c1173d2518 100644 --- a/packages/rs-drive/src/query/drive_document_count_query/tests.rs +++ b/packages/rs-drive/src/query/drive_document_count_query/tests.rs @@ -107,7 +107,6 @@ fn insert_person_doc( true, None, platform_version, - None, ) .expect("expected to insert document"); } @@ -1315,7 +1314,6 @@ fn test_compound_range_in_summed_no_proof_uses_per_in_aggregate_fanout() { true, None, platform_version, - None, ) .expect("expected to insert widget"); } @@ -1594,7 +1592,6 @@ fn test_range_distinct_proof_uses_compile_time_default_query_limit_not_operator_ true, None, platform_version, - None, ) .expect("expected to insert widget"); } @@ -3059,7 +3056,6 @@ mod range_countable_point_lookup_tests { true, None, platform_version, - None, ) .expect("insert widget"); } @@ -3110,7 +3106,6 @@ mod range_countable_point_lookup_tests { true, None, platform_version, - None, ) .expect("insert gizmo"); } @@ -3946,7 +3941,6 @@ mod prefix_to_last { true, None, platform_version, - None, ) .expect("expected to insert a like"); } @@ -4148,7 +4142,6 @@ mod prefix_to_last { true, None, platform_version, - None, ) .expect("expected to insert a like"); } @@ -4402,7 +4395,6 @@ mod prefix_to_last_in_with_trailing_equal { true, None, platform_version, - None, ) .expect("expected to insert a geo document"); } @@ -4610,7 +4602,6 @@ mod at_chain_value_tree_counts { true, None, platform_version, - None, ) .expect("expected to insert the document"); } diff --git a/packages/rs-drive/src/query/drive_document_having_query/tests.rs b/packages/rs-drive/src/query/drive_document_having_query/tests.rs index 8b70c0bdad3..430b762443c 100644 --- a/packages/rs-drive/src/query/drive_document_having_query/tests.rs +++ b/packages/rs-drive/src/query/drive_document_having_query/tests.rs @@ -666,7 +666,6 @@ mod execution { true, None, pv, - None, ) .unwrap_or_else(|e| { panic!("expected to insert a {document_type_name} document: {e}") @@ -1369,7 +1368,6 @@ mod identifier_group_keys { true, None, pv, - None, ) .expect("expected to insert a grade document"); } @@ -1658,7 +1656,6 @@ mod pinned_prefix { true, None, pv, - None, ) .expect("expected to insert a grade document"); } @@ -2083,7 +2080,6 @@ mod pinned_prefix { true, None, pv, - None, ) .expect("expected to insert a tagged grade document"); } @@ -2236,7 +2232,6 @@ mod pinned_prefix { true, None, pv, - None, ) .expect("expected to insert a tagged grade document"); } @@ -2463,7 +2458,6 @@ mod prefix_level { true, None, pv, - None, ) .expect("expected to insert a like"); } diff --git a/packages/rs-drive/src/query/drive_document_ranked_query/tests.rs b/packages/rs-drive/src/query/drive_document_ranked_query/tests.rs index b4f9566f54e..517e93f93ff 100644 --- a/packages/rs-drive/src/query/drive_document_ranked_query/tests.rs +++ b/packages/rs-drive/src/query/drive_document_ranked_query/tests.rs @@ -883,7 +883,6 @@ fn insert_docs( true, None, pv, - None, ) .unwrap_or_else(|e| panic!("expected to insert a {document_type_name} document: {e}")); } @@ -1941,7 +1940,6 @@ fn insert_dishes(drive: &Drive, contract: &DataContract, rows: &[(&str, &str, i6 true, None, pv, - None, ) .unwrap_or_else(|e| panic!("expected to insert a dish document: {e}")); } @@ -2243,7 +2241,6 @@ mod pinned_prefix { true, None, pv, - None, ) .expect("expected to insert a grade document"); } @@ -2478,7 +2475,6 @@ mod pinned_prefix { true, None, pv, - None, ) .expect("expected to insert a tagged grade document"); } @@ -3176,7 +3172,6 @@ mod pinned_prefix { true, None, pv, - None, ) .expect("expected to insert a dualGrade document"); } @@ -3387,7 +3382,6 @@ mod pinned_prefix { true, Some(&transaction), pv, - None, ) .expect("expected to insert Y's grade inside the transaction"); @@ -3658,7 +3652,6 @@ mod pinned_prefix { true, None, pv, - None, ) .expect("expected to commit the mid-window grade"); } @@ -3825,7 +3818,6 @@ mod prefix_level { true, None, pv, - None, ) .expect("expected to insert a trending document"); } diff --git a/packages/rs-drive/src/query/drive_document_sum_query/tests.rs b/packages/rs-drive/src/query/drive_document_sum_query/tests.rs index df757ee862a..ead4fbb7cb8 100644 --- a/packages/rs-drive/src/query/drive_document_sum_query/tests.rs +++ b/packages/rs-drive/src/query/drive_document_sum_query/tests.rs @@ -614,7 +614,6 @@ mod limit_policy_regression { true, None, platform_version, - None, ) .expect("insert widget"); } diff --git a/packages/rs-drive/src/query/mod.rs b/packages/rs-drive/src/query/mod.rs index 2ef3ba79a39..81586ca16be 100644 --- a/packages/rs-drive/src/query/mod.rs +++ b/packages/rs-drive/src/query/mod.rs @@ -3752,13 +3752,11 @@ impl<'a> DriveDocumentQuery<'a> { platform_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -3809,13 +3807,11 @@ impl<'a> DriveDocumentQuery<'a> { platform_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -3868,13 +3864,11 @@ impl<'a> DriveDocumentQuery<'a> { platform_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -5676,7 +5670,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a tip"); tip.id() diff --git a/packages/rs-drive/src/query/unsigned_index_key_order_tests.rs b/packages/rs-drive/src/query/unsigned_index_key_order_tests.rs index b9370a934da..5644654b187 100644 --- a/packages/rs-drive/src/query/unsigned_index_key_order_tests.rs +++ b/packages/rs-drive/src/query/unsigned_index_key_order_tests.rs @@ -136,7 +136,6 @@ pub(crate) fn insert_document( true, None, platform_version, - None, ) .expect("expected to insert the document"); } diff --git a/packages/rs-drive/src/query/vote_poll_contestant_votes_query.rs b/packages/rs-drive/src/query/vote_poll_contestant_votes_query.rs index af508661710..b6289b3d504 100644 --- a/packages/rs-drive/src/query/vote_poll_contestant_votes_query.rs +++ b/packages/rs-drive/src/query/vote_poll_contestant_votes_query.rs @@ -133,13 +133,11 @@ impl ContestedDocumentVotePollVotesDriveQuery { platform_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -180,13 +178,11 @@ impl ContestedDocumentVotePollVotesDriveQuery { let result = self.execute_no_proof(drive, transaction, &mut drive_operations, platform_version)?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { diff --git a/packages/rs-drive/src/query/vote_poll_vote_state_query.rs b/packages/rs-drive/src/query/vote_poll_vote_state_query.rs index 3976118adf3..89cfa758a2c 100644 --- a/packages/rs-drive/src/query/vote_poll_vote_state_query.rs +++ b/packages/rs-drive/src/query/vote_poll_vote_state_query.rs @@ -297,13 +297,11 @@ impl ContestedDocumentVotePollDriveQuery { platform_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -345,13 +343,11 @@ impl ContestedDocumentVotePollDriveQuery { let result = self.execute_no_proof(drive, transaction, &mut drive_operations, platform_version)?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { diff --git a/packages/rs-drive/src/query/vote_polls_by_document_type_query.rs b/packages/rs-drive/src/query/vote_polls_by_document_type_query.rs index 39b600c52c4..d32ed05fc8d 100644 --- a/packages/rs-drive/src/query/vote_polls_by_document_type_query.rs +++ b/packages/rs-drive/src/query/vote_polls_by_document_type_query.rs @@ -233,13 +233,11 @@ impl VotePollsByDocumentTypeQuery { let result = self.execute_no_proof(drive, transaction, &mut drive_operations, platform_version)?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { diff --git a/packages/rs-drive/src/query/vote_polls_by_end_date_query.rs b/packages/rs-drive/src/query/vote_polls_by_end_date_query.rs index 54aadcdc6fe..0b4f20c0c50 100644 --- a/packages/rs-drive/src/query/vote_polls_by_end_date_query.rs +++ b/packages/rs-drive/src/query/vote_polls_by_end_date_query.rs @@ -377,13 +377,11 @@ impl VotePollsByEndDateDriveQuery { platform_version, )?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -422,13 +420,11 @@ impl VotePollsByEndDateDriveQuery { let result = self.execute_no_proof(drive, transaction, &mut drive_operations, platform_version)?; let cost = if let Some(block_info) = block_info { - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { diff --git a/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/mod.rs b/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/mod.rs index 8402f09d04a..561e9d1e708 100644 --- a/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/mod.rs +++ b/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/mod.rs @@ -191,7 +191,6 @@ pub(super) mod fee_floor_support { &BlockInfo::default(), Some(&tx), platform_version, - None, ) .expect("apply"); let t = fr.total_base_fee(); diff --git a/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/shielded_withdrawal_transition.rs b/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/shielded_withdrawal_transition.rs index 106e0db1c80..4bb305322fa 100644 --- a/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/shielded_withdrawal_transition.rs +++ b/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/shielded_withdrawal_transition.rs @@ -563,7 +563,6 @@ mod tests { &BlockInfo::default(), Some(&tx), platform_version, - None, ) .expect("apply write ops"); let actual_cost = fee_result.total_base_fee(); diff --git a/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/unshield_transition.rs b/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/unshield_transition.rs index adae1927679..62e8b35b1cd 100644 --- a/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/unshield_transition.rs +++ b/packages/rs-drive/src/state_transition_action/action_convert_to_operations/shielded/unshield_transition.rs @@ -288,14 +288,7 @@ mod tests { let measure = |ops: Vec| { let drive = setup_drive_with_initial_state_structure(None); drive - .apply_drive_operations( - ops, - true, - &BlockInfo::default(), - None, - platform_version, - None, - ) + .apply_drive_operations(ops, true, &BlockInfo::default(), None, platform_version) .expect("apply") }; let fee_one = compute_shielded_unshield_fee(1, platform_version).expect("fee"); diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/document_transition/state_generated_properties.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/document_transition/state_generated_properties.rs index 85756f142ac..803e742b38f 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/document_transition/state_generated_properties.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/document_transition/state_generated_properties.rs @@ -78,15 +78,13 @@ pub(super) fn generate_state_read_properties( let position = token_contract_info.token_contract_position(); // The check recomputes the token id, a double SHA-256 the write pays for as Drive // prices a hash. - fee.checked_add_assign(Drive::calculate_fee( + fee.checked_add_assign(drive.calculate_fee( None, Some(vec![LowLevelDriveOperation::FunctionOperation( FunctionOp::new_with_byte_count(HashFunction::Sha256_2, TOKEN_ID_PREIMAGE_SIZE), )]), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?)?; if calculate_token_id(token_contract_id.as_bytes(), position) != token_id.to_buffer() { return Err(Error::Drive(DriveError::CorruptedDriveState(format!( diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_burn_from_pool_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_burn_from_pool_transition_action/v0/transformer.rs index cb818e4d8df..23493587c76 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_burn_from_pool_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_burn_from_pool_transition_action/v0/transformer.rs @@ -61,13 +61,11 @@ impl TokenBurnFromPoolTransitionActionV0 { platform_version, )?; - let mut fee_result = Drive::calculate_fee( + let mut fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; // The Halo 2 verification and per-action work GroveDB cannot meter, charged here so diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_burn_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_burn_transition_action/v0/transformer.rs index 021239e60b9..91aa12d2a25 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_burn_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_burn_transition_action/v0/transformer.rs @@ -82,13 +82,11 @@ impl TokenBurnTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -204,13 +202,11 @@ impl TokenBurnTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_claim_to_pool_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_claim_to_pool_transition_action/v0/transformer.rs index 38ec71157a2..ea271f05e2c 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_claim_to_pool_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_claim_to_pool_transition_action/v0/transformer.rs @@ -71,13 +71,11 @@ impl TokenClaimToPoolTransitionActionV0 { platform_version, )?; - let mut fee_result = Drive::calculate_fee( + let mut fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; // The Halo 2 verification and per-action work GroveDB cannot meter, charged here so diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_claim_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_claim_transition_action/v0/transformer.rs index 2b477bea967..46528d46108 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_claim_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_claim_transition_action/v0/transformer.rs @@ -157,13 +157,11 @@ impl TokenClaimTransitionActionV0 { platform_version, )?; - let mut fee_result = Drive::calculate_fee( + let mut fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; // We can not change the note on a claim @@ -297,13 +295,11 @@ pub(crate) fn resolve_token_claim( platform_version, )?; - let last_paid_time_fee_result = Drive::calculate_fee( + let last_paid_time_fee_result = drive.calculate_fee( None, Some(last_paid_time_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.checked_add_assign(last_paid_time_fee_result)?; @@ -420,13 +416,11 @@ pub(crate) fn resolve_token_claim( let start_from_moment_for_distribution = last_paid_moment.unwrap_or(contract_creation_cycle_start); - let last_paid_time_fee_result = Drive::calculate_fee( + let last_paid_time_fee_result = drive.calculate_fee( None, Some(last_paid_time_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; fee_result.checked_add_assign(last_paid_time_fee_result)?; @@ -588,13 +582,11 @@ pub(crate) fn resolve_token_claim( transaction, platform_version, )?; - fee_result.checked_add_assign(Drive::calculate_fee( + fee_result.checked_add_assign(drive.calculate_fee( None, Some(claim_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?)?; if let Some(claimed_at_ms) = already_claimed_at { return Ok(Err( diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_config_update_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_config_update_transition_action/v0/transformer.rs index d6fe6b6bcec..b24e32d5766 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_config_update_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_config_update_transition_action/v0/transformer.rs @@ -79,13 +79,11 @@ impl TokenConfigUpdateTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -188,13 +186,11 @@ impl TokenConfigUpdateTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_destroy_frozen_funds_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_destroy_frozen_funds_transition_action/v0/transformer.rs index f82e4865240..e1383616529 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_destroy_frozen_funds_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_destroy_frozen_funds_transition_action/v0/transformer.rs @@ -90,13 +90,11 @@ impl TokenDestroyFrozenFundsTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let Some(token_amount) = maybe_token_amount else { @@ -237,13 +235,11 @@ impl TokenDestroyFrozenFundsTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let Some(token_amount) = maybe_token_amount else { diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_direct_purchase_to_pool_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_direct_purchase_to_pool_transition_action/v0/transformer.rs index 1511aa3e142..05260520623 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_direct_purchase_to_pool_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_direct_purchase_to_pool_transition_action/v0/transformer.rs @@ -62,13 +62,11 @@ impl TokenDirectPurchaseToPoolTransitionActionV0 { platform_version, )?; - let mut fee_result = Drive::calculate_fee( + let mut fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; // The Halo 2 verification and per-action work GroveDB cannot meter, charged here so diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_direct_purchase_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_direct_purchase_transition_action/v0/transformer.rs index f6a837517bb..89b5ef64d38 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_direct_purchase_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_direct_purchase_transition_action/v0/transformer.rs @@ -92,13 +92,11 @@ impl TokenDirectPurchaseTransitionActionV0 { platform_version, )?; - let mut fee_result = Drive::calculate_fee( + let mut fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; // We can not change the note on a direct purchase diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_emergency_action_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_emergency_action_transition_action/v0/transformer.rs index 78f1b0e0e2d..17ac2f28fa7 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_emergency_action_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_emergency_action_transition_action/v0/transformer.rs @@ -78,13 +78,11 @@ impl TokenEmergencyActionTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -187,13 +185,11 @@ impl TokenEmergencyActionTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_freeze_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_freeze_transition_action/v0/transformer.rs index 8fb7c02db8f..36914ae16a2 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_freeze_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_freeze_transition_action/v0/transformer.rs @@ -78,13 +78,11 @@ impl TokenFreezeTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -187,13 +185,11 @@ impl TokenFreezeTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_mint_to_pool_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_mint_to_pool_transition_action/v0/transformer.rs index e0af04f8d4f..5e8859cffbd 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_mint_to_pool_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_mint_to_pool_transition_action/v0/transformer.rs @@ -61,13 +61,11 @@ impl TokenMintToPoolTransitionActionV0 { platform_version, )?; - let mut fee_result = Drive::calculate_fee( + let mut fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; // The Halo 2 verification and per-action work GroveDB cannot meter, charged here so diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_mint_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_mint_transition_action/v0/transformer.rs index 808ee91c375..5d0c8d73e50 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_mint_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_mint_transition_action/v0/transformer.rs @@ -87,13 +87,11 @@ impl TokenMintTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -264,13 +262,11 @@ impl TokenMintTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_set_price_for_direct_purchase_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_set_price_for_direct_purchase_transition_action/v0/transformer.rs index 15c21f894d6..162f0f76a35 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_set_price_for_direct_purchase_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_set_price_for_direct_purchase_transition_action/v0/transformer.rs @@ -78,13 +78,11 @@ impl TokenSetPriceForDirectPurchaseTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -189,13 +187,11 @@ impl TokenSetPriceForDirectPurchaseTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_shield_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_shield_transition_action/v0/transformer.rs index 23b2e58f096..b651df3cef0 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_shield_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_shield_transition_action/v0/transformer.rs @@ -61,13 +61,11 @@ impl TokenShieldTransitionActionV0 { platform_version, )?; - let mut fee_result = Drive::calculate_fee( + let mut fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; // Shielded token transitions carry no public note to change. diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_shielded_transfer_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_shielded_transfer_transition_action/v0/transformer.rs index 0fa2cf911ec..a1c9d039e23 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_shielded_transfer_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_shielded_transfer_transition_action/v0/transformer.rs @@ -60,13 +60,11 @@ impl TokenShieldedTransferTransitionActionV0 { platform_version, )?; - let mut fee_result = Drive::calculate_fee( + let mut fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; // Shielded token transitions carry no public note to change. diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_transfer_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_transfer_transition_action/v0/transformer.rs index 64739f3d3a9..2fcadf37d2d 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_transfer_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_transfer_transition_action/v0/transformer.rs @@ -73,13 +73,11 @@ impl TokenTransferTransitionActionV0 { )? .into_data()?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; // Return the TokenTransferTransitionActionV0 with the relevant data @@ -157,13 +155,11 @@ impl TokenTransferTransitionActionV0 { )? .into_data()?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; // Return the TokenTransferTransitionActionV0 with the relevant data diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_unfreeze_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_unfreeze_transition_action/v0/transformer.rs index 05b3a26331f..542ab74dc75 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_unfreeze_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_unfreeze_transition_action/v0/transformer.rs @@ -78,13 +78,11 @@ impl TokenUnfreezeTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -187,13 +185,11 @@ impl TokenUnfreezeTransitionActionV0 { platform_version, )?; - let fee_result = Drive::calculate_fee( + let fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { diff --git a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_unshield_transition_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_unshield_transition_action/v0/transformer.rs index 78c47fa04a1..3a4bc4c5e4f 100644 --- a/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_unshield_transition_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/batch/batched_transition/token_transition/token_unshield_transition_action/v0/transformer.rs @@ -62,13 +62,11 @@ impl TokenUnshieldTransitionActionV0 { platform_version, )?; - let mut fee_result = Drive::calculate_fee( + let mut fee_result = drive.calculate_fee( None, Some(drive_operations), &block_info.epoch, - drive.config.epochs_per_era, platform_version, - None, )?; // Shielded token transitions carry no public note to change. diff --git a/packages/rs-drive/src/structure/tests.rs b/packages/rs-drive/src/structure/tests.rs index bb645a2fe7c..bf51fd0e283 100644 --- a/packages/rs-drive/src/structure/tests.rs +++ b/packages/rs-drive/src/structure/tests.rs @@ -742,7 +742,6 @@ mod fixtures { &BlockInfo::default(), None, platform_version, - None, ) .expect("expected to record a document removal"); conformance_of(&drive, "contract_with_document_removals", run); @@ -827,7 +826,6 @@ mod fixtures { &BlockInfo::default(), None, platform_version, - None, ) .expect("expected to fill and claim the fee pots"); conformance_of(&drive, "moderated_contract", run); @@ -881,7 +879,6 @@ mod fixtures { &BlockInfo::default(), None, platform_version, - None, ) .expect("expected to count a moderation action"); conformance_of(&drive, "elected_contract", run); @@ -993,7 +990,6 @@ mod fixtures { &BlockInfo::default(), None, platform_version, - None, ) .expect("expected to record the proposals of two team actions"); drive @@ -1009,7 +1005,6 @@ mod fixtures { &BlockInfo::default(), None, platform_version, - None, ) .expect("expected to record an approval of a team action"); conformance_of(&drive, "contract_with_team_actions", run); @@ -1226,7 +1221,6 @@ mod fixtures { &BlockInfo::default(), None, platform_version, - None, ) .expect("expected to set address balances"); conformance_of(&drive, "address_balances", run); @@ -1894,7 +1888,6 @@ mod fixtures { true, None, platform_version, - None, ) .expect("expected to add the document"); } diff --git a/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/mod.rs b/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/mod.rs index 793199433ef..144e6a4e855 100644 --- a/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/mod.rs +++ b/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/mod.rs @@ -9,7 +9,6 @@ use crate::error::{drive::DriveError, Error}; use dpp::block::block_info::BlockInfo; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::fee::fee_result::FeeResult; use grovedb::TransactionArg; @@ -41,7 +40,6 @@ impl Drive { block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { match platform_version .drive @@ -55,7 +53,6 @@ impl Drive { block_info, transaction, platform_version, - previous_fee_versions, ), 1 => self.apply_drive_operations_v1( operations, @@ -63,7 +60,6 @@ impl Drive { block_info, transaction, platform_version, - previous_fee_versions, ), 2 => self.apply_drive_operations_v2( operations, @@ -71,7 +67,6 @@ impl Drive { block_info, transaction, platform_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "apply_drive_operations".to_string(), @@ -146,7 +141,6 @@ mod tests { &BlockInfo::default(), None, platform_version, - None, ) } diff --git a/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v0/mod.rs b/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v0/mod.rs index 05342553cc3..10b22a78657 100644 --- a/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v0/mod.rs +++ b/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v0/mod.rs @@ -14,7 +14,6 @@ use dpp::version::PlatformVersion; use crate::util::batch::drive_op_batch::finalize_task::{ DriveOperationFinalizationTasks, DriveOperationFinalizeTask, }; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; impl Drive { /// Applies a list of high level DriveOperations to the drive, and calculates the fee for them. @@ -41,7 +40,6 @@ impl Drive { block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { if operations.is_empty() { return Ok(FeeResult::default()); @@ -107,13 +105,11 @@ impl Drive { } } - Drive::calculate_fee( + self.calculate_fee( None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } } diff --git a/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v1/mod.rs b/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v1/mod.rs index c73feab43be..a0172c299ca 100644 --- a/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v1/mod.rs +++ b/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v1/mod.rs @@ -17,7 +17,6 @@ use grovedb_costs::storage_cost::removal::StorageRemovedBytes; use crate::util::batch::drive_op_batch::finalize_task::{ DriveOperationFinalizationTasks, DriveOperationFinalizeTask, }; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; impl Drive { /// Applies a list of high level DriveOperations to the drive, and calculates the fee for them. @@ -85,7 +84,6 @@ impl Drive { block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { DriveOperation::refuse_repeated_token_balance_writes(&operations)?; self.refuse_repeated_counter_moves(&operations, block_info, transaction, platform_version)?; @@ -241,13 +239,11 @@ impl Drive { } } - Drive::calculate_fee( + self.calculate_fee( None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } } @@ -384,7 +380,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .unwrap(); assert_eq!( @@ -417,7 +412,6 @@ mod tests { &block_info, None, platform_version, - None, ) .unwrap(); assert_eq!(processing_pool(&drive, platform_version), 31); @@ -444,7 +438,7 @@ mod tests { DriveOperation::GroveDBOpBatch(GroveDbOpBatch::from_operations(vec![pool_write])), ]; drive - .apply_drive_operations(batch, true, &block_info, None, platform_version, None) + .apply_drive_operations(batch, true, &block_info, None, platform_version) .unwrap(); assert_eq!(balance(&drive, recipient, platform_version), 13); assert_eq!(debt(&drive, recipient, platform_version), 0); @@ -488,7 +482,6 @@ mod tests { &block_info, None, platform_version, - None, ) .unwrap(); let actual = drive @@ -498,7 +491,6 @@ mod tests { &block_info, None, platform_version, - None, ) .unwrap(); assert_eq!(actual, expected); @@ -509,8 +501,7 @@ mod tests { false, &block_info, None, - platform_version, - None + platform_version ) .unwrap(), FeeResult::default() @@ -522,8 +513,7 @@ mod tests { true, &block_info, None, - platform_version, - None + platform_version ) .unwrap(), FeeResult::default() @@ -567,7 +557,6 @@ mod tests { &debt_test_block_info(), None, platform_version, - None, ); assert!(matches!(result, Err(Error::Fee(FeeError::Overflow(_))))); assert_eq!( @@ -627,7 +616,6 @@ mod tests { &block_info, None, platform_version, - None, ); if corrupted { assert!(matches!( @@ -654,8 +642,7 @@ mod tests { true, &block_info, Some(&transaction), - platform_version, - None + platform_version ) .is_err()); assert_eq!( @@ -691,8 +678,7 @@ mod tests { apply, &block_info, None, - legacy, - None + legacy ), Err(Error::Drive(DriveError::NotSupported(_))) )); diff --git a/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v2/mod.rs b/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v2/mod.rs index d541634fbf2..3b7b69f625c 100644 --- a/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v2/mod.rs +++ b/packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v2/mod.rs @@ -17,7 +17,6 @@ use crate::util::batch::drive_op_batch::finalize_task::{ DriveOperationFinalizationTasks, DriveOperationFinalizeTask, }; use crate::util::estimated_layers::EstimatedLayers; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use grovedb::batch::key_info::KeyInfo::KnownKey; use grovedb::batch::KeyInfoPath; @@ -102,7 +101,6 @@ impl Drive { block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, - previous_fee_versions: Option<&CachedEpochIndexFeeVersions>, ) -> Result { DriveOperation::refuse_repeated_token_balance_writes(&operations)?; self.refuse_repeated_counter_moves(&operations, block_info, transaction, platform_version)?; @@ -281,13 +279,11 @@ impl Drive { } } - Drive::calculate_fee( + self.calculate_fee( None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } } diff --git a/packages/rs-drive/src/util/batch/drive_op_batch/mod.rs b/packages/rs-drive/src/util/batch/drive_op_batch/mod.rs index b9d3d4c1051..951ae5e8afe 100644 --- a/packages/rs-drive/src/util/batch/drive_op_batch/mod.rs +++ b/packages/rs-drive/src/util/batch/drive_op_batch/mod.rs @@ -860,7 +860,6 @@ mod tests { &BlockInfo::default(), Some(&db_transaction), platform_version, - None, ) .expect("expected to insert contract and document"); @@ -980,7 +979,6 @@ mod tests { &BlockInfo::default(), Some(&db_transaction), platform_version, - None, ) .expect("expected to be able to insert documents"); @@ -1091,7 +1089,6 @@ mod tests { &BlockInfo::default(), Some(&db_transaction), platform_version, - None, ) .expect("expected to be able to insert documents"); @@ -1226,7 +1223,6 @@ mod tests { &BlockInfo::default(), Some(&db_transaction), platform_version, - None, ) .expect("expected to be able to insert documents"); @@ -1337,7 +1333,6 @@ mod tests { &BlockInfo::default(), Some(&db_transaction), platform_version, - None, ) .expect("expected to be able to insert documents"); @@ -1397,7 +1392,6 @@ mod tests { &BlockInfo::default(), Some(&db_transaction), platform_version, - None, ) .expect("expected to be able to update documents"); @@ -1554,7 +1548,6 @@ mod tests { &BlockInfo::default(), Some(&db_transaction), platform_version, - None, ) .expect("expected to be able to insert documents"); @@ -1608,7 +1601,6 @@ mod tests { &BlockInfo::default(), Some(&db_transaction), platform_version, - None, ) .expect("expected to be able to update documents"); @@ -2067,7 +2059,6 @@ mod tests { true, None, platform_version, - None, ) .expect("add token balance"); } @@ -2121,7 +2112,6 @@ mod tests { &BlockInfo::default(), None, platform_version, - None, ); assert!( @@ -2162,7 +2152,6 @@ mod tests { &BlockInfo::default(), None, platform_version, - None, ); assert!( diff --git a/packages/rs-drive/src/util/test_helpers/setup.rs b/packages/rs-drive/src/util/test_helpers/setup.rs index a55d7fda7a3..014277537b9 100644 --- a/packages/rs-drive/src/util/test_helpers/setup.rs +++ b/packages/rs-drive/src/util/test_helpers/setup.rs @@ -109,7 +109,6 @@ pub fn setup_document( true, transaction, platform_version, - None, ) .unwrap(); } diff --git a/packages/rs-drive/src/verify/address_funds/verify_address_info/v0/mod.rs b/packages/rs-drive/src/verify/address_funds/verify_address_info/v0/mod.rs index eb0b8f58680..a47d4aabded 100644 --- a/packages/rs-drive/src/verify/address_funds/verify_address_info/v0/mod.rs +++ b/packages/rs-drive/src/verify/address_funds/verify_address_info/v0/mod.rs @@ -97,7 +97,6 @@ mod tests { &BlockInfo::default(), None, platform_version, - None, ) .expect("expected to apply operations"); } diff --git a/packages/rs-drive/src/verify/document/verify_proof/v0/mod.rs b/packages/rs-drive/src/verify/document/verify_proof/v0/mod.rs index 428c1146b9d..0fbdd0aa345 100644 --- a/packages/rs-drive/src/verify/document/verify_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/document/verify_proof/v0/mod.rs @@ -125,7 +125,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert document"); } diff --git a/packages/rs-drive/src/verify/document/verify_proof_keep_serialized/v0/mod.rs b/packages/rs-drive/src/verify/document/verify_proof_keep_serialized/v0/mod.rs index 0ba12179fa8..ce20122e7ae 100644 --- a/packages/rs-drive/src/verify/document/verify_proof_keep_serialized/v0/mod.rs +++ b/packages/rs-drive/src/verify/document/verify_proof_keep_serialized/v0/mod.rs @@ -136,7 +136,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert document"); } diff --git a/packages/rs-drive/src/verify/document/verify_start_at_document_in_proof/v0/mod.rs b/packages/rs-drive/src/verify/document/verify_start_at_document_in_proof/v0/mod.rs index 38eeb0e1944..149483b5cad 100644 --- a/packages/rs-drive/src/verify/document/verify_start_at_document_in_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/document/verify_start_at_document_in_proof/v0/mod.rs @@ -163,7 +163,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert document"); diff --git a/packages/rs-drive/src/verify/single_document/verify_proof/v0/mod.rs b/packages/rs-drive/src/verify/single_document/verify_proof/v0/mod.rs index e1b85d5ffa5..d750ef49072 100644 --- a/packages/rs-drive/src/verify/single_document/verify_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/single_document/verify_proof/v0/mod.rs @@ -111,7 +111,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert document"); diff --git a/packages/rs-drive/src/verify/single_document/verify_proof_keep_serialized/v0/mod.rs b/packages/rs-drive/src/verify/single_document/verify_proof_keep_serialized/v0/mod.rs index 947d16762eb..0af274689bd 100644 --- a/packages/rs-drive/src/verify/single_document/verify_proof_keep_serialized/v0/mod.rs +++ b/packages/rs-drive/src/verify/single_document/verify_proof_keep_serialized/v0/mod.rs @@ -127,7 +127,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert document"); diff --git a/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs b/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs index c0ab82e2d34..612cb9cdc93 100644 --- a/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs @@ -4574,7 +4574,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert document"); @@ -4588,7 +4587,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to delete document"); @@ -4713,7 +4711,6 @@ mod tests { true, None, latest, - None, ) .expect("expected to insert document"); @@ -4820,7 +4817,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert document"); @@ -4952,7 +4948,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert document"); diff --git a/packages/rs-drive/tests/compound_cursor_tests.rs b/packages/rs-drive/tests/compound_cursor_tests.rs index eac743f8abd..28d105a1f9d 100644 --- a/packages/rs-drive/tests/compound_cursor_tests.rs +++ b/packages/rs-drive/tests/compound_cursor_tests.rs @@ -132,7 +132,6 @@ fn assert_compound_cursor_pages_for_index( true, None, platform_version, - None, ) .expect("should insert row"); rows.push((a, b, document)); @@ -376,7 +375,6 @@ fn setup_left_over_fixture( true, None, platform_version, - None, ) .expect("should insert row"); inserted.push((*values, document)); diff --git a/packages/rs-drive/tests/query_tests.rs b/packages/rs-drive/tests/query_tests.rs index 68e1ecddae0..a6ec6e24474 100644 --- a/packages/rs-drive/tests/query_tests.rs +++ b/packages/rs-drive/tests/query_tests.rs @@ -68,7 +68,6 @@ use dpp::document::serialization_traits::{ DocumentCborMethodsV0, DocumentPlatformConversionMethodsV0, }; use dpp::document::{DocumentV0Getters, DocumentV0Setters}; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::identity::TimestampMillis; use dpp::platform_value; use dpp::platform_value::string_encoding::Encoding; @@ -78,12 +77,10 @@ use dpp::serialization::ValueConvertible; use dpp::tests::json_document::json_document_to_contract; #[cfg(feature = "server")] use dpp::util::cbor_serializer; -use dpp::version::fee::FeeVersion; use dpp::version::PlatformVersion; #[cfg(feature = "server")] use drive::drive::contract::test_helpers::add_init_contracts_structure_operations; use drive::util::batch::grovedb_op_batch::GroveDbOpBatchV0Methods; -use once_cell::sync::Lazy; use rand::prelude::StdRng; use drive::drive::document::query::QueryDocumentsOutcomeV0Methods; @@ -280,7 +277,6 @@ pub fn setup_family_tests( true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); } @@ -355,7 +351,6 @@ fn setup_family_tests_with_people( true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); } @@ -430,7 +425,6 @@ pub fn setup_countable_family_tests( true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); } @@ -502,7 +496,6 @@ pub fn setup_family_tests_with_nulls(count: u32, seed: u64) -> (Drive, DataContr true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); } @@ -575,7 +568,6 @@ pub fn setup_family_tests_only_first_name_index(count: u32, seed: u64) -> (Drive true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); } @@ -935,7 +927,6 @@ pub fn add_domains_to_contract( true, transaction, platform_version, - None, ) .expect("document should be inserted"); } @@ -977,7 +968,6 @@ pub fn add_withdrawals_to_contract( true, transaction, platform_version, - None, ) .expect("document should be inserted"); } @@ -1232,7 +1222,6 @@ pub fn setup_dpns_test_with_data(path: &str) -> (Drive, DataContract) { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); } @@ -2235,7 +2224,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -2280,7 +2268,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -3582,7 +3569,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -3627,7 +3613,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -4046,9 +4031,6 @@ mod tests { let platform_version = PlatformVersion::latest(); let (drive, contract) = setup_family_tests(10, 73509, platform_version); - let epoch_change_fee_version_test: Lazy = - Lazy::new(|| BTreeMap::from([(0, FeeVersion::first())])); - let db_transaction = drive.grove.start_transaction(); let mut rng = rand::rngs::StdRng::seed_from_u64(84594); @@ -4095,7 +4077,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -4125,7 +4106,6 @@ mod tests { storage_flags, Some(&db_transaction), platform_version, - Some(&epoch_change_fee_version_test), ) .expect("expected to override document"); assert!(fee.storage_fee > 0); @@ -5051,9 +5031,6 @@ mod tests { let platform_version = PlatformVersion::latest(); - let epoch_change_fee_version_test: Lazy = - Lazy::new(|| BTreeMap::from([(0, FeeVersion::first())])); - let db_transaction = drive.grove.start_transaction(); let root_hash = drive @@ -5162,7 +5139,6 @@ mod tests { true, Some(&db_transaction), platform_version, - Some(&epoch_change_fee_version_test), ) .expect("expected to be able to delete the document"); } @@ -6603,7 +6579,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -6647,7 +6622,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -6811,7 +6785,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -6858,7 +6831,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -7034,7 +7006,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -7079,7 +7050,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -8182,7 +8152,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should add document"); @@ -8417,7 +8386,6 @@ mod tests { true, None, platform_version, - None, ) .expect("should add document"); } @@ -9633,7 +9601,6 @@ mod gapped_index_query_tests { true, None, platform_version, - None, ) .expect("should add document"); } @@ -9957,7 +9924,6 @@ mod dpns_identity_records_paging { true, None, platform_version, - None, ) .expect("expected to insert a domain document"); } diff --git a/packages/rs-drive/tests/query_tests_history.rs b/packages/rs-drive/tests/query_tests_history.rs index bd7317ce28e..2e89d4eded5 100644 --- a/packages/rs-drive/tests/query_tests_history.rs +++ b/packages/rs-drive/tests/query_tests_history.rs @@ -5,7 +5,6 @@ use dpp::document::Document; #[cfg(feature = "server")] use dpp::util::cbor_serializer; -use once_cell::sync::Lazy; #[cfg(feature = "server")] use rand::seq::SliceRandom; #[cfg(feature = "server")] @@ -51,9 +50,7 @@ use dpp::document::serialization_traits::{ DocumentCborMethodsV0, DocumentPlatformConversionMethodsV0, }; use dpp::document::DocumentV0Getters; -use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use dpp::tests::json_document::json_document_to_contract; -use dpp::version::fee::FeeVersion; use dpp::version::PlatformVersion; use drive::util::batch::grovedb_op_batch::GroveDbOpBatchV0Methods; #[cfg(feature = "server")] @@ -165,9 +162,6 @@ pub fn setup( ) -> (Drive, DataContract) { let drive_config = DriveConfig::default(); - let epoch_change_fee_version_test: Lazy = - Lazy::new(|| BTreeMap::from([(0, FeeVersion::first())])); - let drive = setup_drive(Some(drive_config)); let db_transaction = drive.grove.start_transaction(); @@ -234,7 +228,6 @@ pub fn setup( true, Some(&db_transaction), platform_version, - Some(&epoch_change_fee_version_test), ) .expect("expected to add document"); } @@ -354,9 +347,6 @@ fn test_query_historical_first_platform_version() { let platform_version = PlatformVersion::first(); let (drive, contract) = setup(10, None, 73509, platform_version); - let epoch_change_fee_version_test: Lazy = - Lazy::new(|| BTreeMap::from([(0, FeeVersion::first())])); - let db_transaction = drive.grove.start_transaction(); let root_hash = drive @@ -1217,7 +1207,6 @@ fn test_query_historical_first_platform_version() { true, Some(&db_transaction), platform_version, - Some(&epoch_change_fee_version_test), ) .expect("document should be inserted"); @@ -1263,7 +1252,6 @@ fn test_query_historical_first_platform_version() { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); @@ -1755,9 +1743,6 @@ fn test_query_historical_latest_platform_version() { let platform_version = PlatformVersion::latest(); let (drive, contract) = setup(10, None, 73509, platform_version); - let epoch_change_fee_version_test: Lazy = - Lazy::new(|| BTreeMap::from([(0, FeeVersion::first())])); - let db_transaction = drive.grove.start_transaction(); let root_hash = drive @@ -2621,7 +2606,6 @@ fn test_query_historical_latest_platform_version() { true, Some(&db_transaction), platform_version, - Some(&epoch_change_fee_version_test), ) .expect("document should be inserted"); @@ -2667,7 +2651,6 @@ fn test_query_historical_latest_platform_version() { true, Some(&db_transaction), platform_version, - None, ) .expect("document should be inserted"); diff --git a/packages/rs-platform-version/src/version/drive_versions/v10.rs b/packages/rs-platform-version/src/version/drive_versions/v10.rs index 281f858302f..65c6948da3d 100644 --- a/packages/rs-platform-version/src/version/drive_versions/v10.rs +++ b/packages/rs-platform-version/src/version/drive_versions/v10.rs @@ -13,9 +13,10 @@ use crate::version::drive_versions::drive_verify_method_versions::v4::DRIVE_VERI use crate::version::drive_versions::drive_vote_method_versions::v4::DRIVE_VOTE_METHOD_VERSIONS_V4; use crate::version::drive_versions::v9::DRIVE_VERSION_V9; use crate::version::drive_versions::{ - DriveBatchOperationsMethodVersion, DriveInitializationMethodVersions, DriveMethodVersions, - DrivePlatformSystemMethodVersions, DrivePrefundedSpecializedMethodVersions, - DriveSystemEstimationCostsMethodVersions, DriveVersion, + DriveBatchOperationsMethodVersion, DriveFeesMethodVersions, DriveInitializationMethodVersions, + DriveMethodVersions, DrivePlatformSystemMethodVersions, + DrivePrefundedSpecializedMethodVersions, DriveSystemEstimationCostsMethodVersions, + DriveVersion, }; /// Drive version 10, introduced in protocol v15: @@ -75,6 +76,9 @@ use crate::version::drive_versions::{ /// * **Core fork activations**: `platform_system.fetch_core_fork_activation_height` and /// `store_core_fork_activation_height` are `Some(0)` (`None` before): Drive keeps, in `Misc`, /// the chain locked Core height at which Platform first saw each tracked Core fork active. +/// * **Refunds at the storing epoch's rate** (protocol v15 note 25): `fees.calculate_fee` 1 +/// prices the bytes a refund returns at the storage rate of the protocol version that ran the +/// epoch that stored them, which that epoch's tree records. /// /// Everything else matches `DRIVE_VERSION_V9`. pub const DRIVE_VERSION_V10: DriveVersion = DriveVersion { @@ -117,6 +121,7 @@ pub const DRIVE_VERSION_V10: DriveVersion = DriveVersion { fetch_core_fork_activation_height: Some(0), // changed in v10: the Core fork activations store_core_fork_activation_height: Some(0), // changed in v10: the Core fork activations }, + fees: DriveFeesMethodVersions { calculate_fee: 1 }, // changed in v10: refunds at the storing epoch's rate (note 25) ..DRIVE_VERSION_V9.methods }, ..DRIVE_VERSION_V9 diff --git a/packages/rs-platform-version/src/version/fee/mod.rs b/packages/rs-platform-version/src/version/fee/mod.rs index fcacff7b8df..fa3ebf39073 100644 --- a/packages/rs-platform-version/src/version/fee/mod.rs +++ b/packages/rs-platform-version/src/version/fee/mod.rs @@ -46,13 +46,11 @@ pub type FeeVersionNumber = u32; /// number up by that position, which is correct exactly while this holds, so a new entry is /// appended with the next number and never skips or reuses one. /// -/// A new number is needed only when a value the fee history serves changes (the storage, -/// processing, hashing or signature costs), because saved state keeps only the number and -/// reloads the entry registered here. Schedules that change other groups keep the previous -/// number, which is why `FEE_VERSION2` to `FEE_VERSION4` all carry 1 and are not listed. -/// Registering different storage rates also requires refunds priced at the rate active when the -/// bytes were stored; `calculate_fee` generation 0 prices them at the removal epoch's rate -/// (dashpay/platform#4703 has a version of that rule). +/// Saved state keeps only the number and reloads the entry registered here, and block execution +/// does not read what it reloads: from protocol version 15 a refund is priced at the storage rate +/// of the protocol version that ran the epoch that stored the bytes, which the epoch's tree +/// records. Schedules keep the previous number, which is why `FEE_VERSION2` to `FEE_VERSION4` +/// all carry 1 and are not listed. pub const FEE_VERSIONS: &[FeeVersion] = &[FEE_VERSION1]; #[derive(Clone, Debug, Encode, Decode, Default, PartialEq, Eq)] diff --git a/packages/rs-platform-version/src/version/mocks/mod.rs b/packages/rs-platform-version/src/version/mocks/mod.rs index aef47dea3d5..c2d2c94a49f 100644 --- a/packages/rs-platform-version/src/version/mocks/mod.rs +++ b/packages/rs-platform-version/src/version/mocks/mod.rs @@ -1,4 +1,5 @@ pub mod v2_test; pub mod v3_test; +pub mod v4_test; pub const TEST_PROTOCOL_VERSION_SHIFT_BYTES: u32 = 28; diff --git a/packages/rs-platform-version/src/version/mocks/v4_test.rs b/packages/rs-platform-version/src/version/mocks/v4_test.rs new file mode 100644 index 00000000000..29c703154a4 --- /dev/null +++ b/packages/rs-platform-version/src/version/mocks/v4_test.rs @@ -0,0 +1,24 @@ +use crate::version::fee::storage::FeeStorageVersion; +use crate::version::fee::v4::FEE_VERSION4; +use crate::version::fee::FeeVersion; +use crate::version::mocks::TEST_PROTOCOL_VERSION_SHIFT_BYTES; +use crate::version::protocol_version::PlatformVersion; +use crate::version::v15::PLATFORM_V15; + +pub const TEST_PROTOCOL_VERSION_4: u32 = (1 << TEST_PROTOCOL_VERSION_SHIFT_BYTES) + 4; + +/// Protocol version 15 with twice its storage rate, so a test can tell which epoch's schedule +/// priced a refund. No network runs it. +pub const TEST_PLATFORM_V4: PlatformVersion = PlatformVersion { + protocol_version: TEST_PROTOCOL_VERSION_4, + fee_version: FeeVersion { + storage: FeeStorageVersion { + storage_disk_usage_credit_per_byte: 2 * FEE_VERSION4 + .storage + .storage_disk_usage_credit_per_byte, + ..FEE_VERSION4.storage + }, + ..FEE_VERSION4 + }, + ..PLATFORM_V15 +}; diff --git a/packages/rs-platform-version/src/version/protocol_version.rs b/packages/rs-platform-version/src/version/protocol_version.rs index a16235b99e8..a2df2e6fc87 100644 --- a/packages/rs-platform-version/src/version/protocol_version.rs +++ b/packages/rs-platform-version/src/version/protocol_version.rs @@ -8,6 +8,8 @@ use crate::version::mocks::v2_test::TEST_PLATFORM_V2; #[cfg(feature = "mock-versions")] use crate::version::mocks::v3_test::TEST_PLATFORM_V3; #[cfg(feature = "mock-versions")] +use crate::version::mocks::v4_test::TEST_PLATFORM_V4; +#[cfg(feature = "mock-versions")] use crate::version::mocks::TEST_PROTOCOL_VERSION_SHIFT_BYTES; use crate::version::system_data_contract_versions::SystemDataContractVersions; #[cfg(feature = "mock-versions")] @@ -69,7 +71,8 @@ pub const PLATFORM_VERSIONS: &[PlatformVersion] = &[ // We use OnceLock to be able to modify the version mocks pub static PLATFORM_TEST_VERSIONS: OnceLock> = OnceLock::new(); #[cfg(feature = "mock-versions")] -const DEFAULT_PLATFORM_TEST_VERSIONS: &[PlatformVersion] = &[TEST_PLATFORM_V2, TEST_PLATFORM_V3]; +const DEFAULT_PLATFORM_TEST_VERSIONS: &[PlatformVersion] = + &[TEST_PLATFORM_V2, TEST_PLATFORM_V3, TEST_PLATFORM_V4]; pub const LATEST_PLATFORM_VERSION: &PlatformVersion = &PLATFORM_V15; @@ -85,7 +88,7 @@ impl PlatformVersion { // Init default set of test versions let versions = PLATFORM_TEST_VERSIONS - .get_or_init(|| vec![TEST_PLATFORM_V2, TEST_PLATFORM_V3]); + .get_or_init(|| vec![TEST_PLATFORM_V2, TEST_PLATFORM_V3, TEST_PLATFORM_V4]); return versions.get(test_version as usize - 2).ok_or( PlatformVersionError::UnknownVersionError(format!( @@ -113,7 +116,7 @@ impl PlatformVersion { // Init default set of test versions let versions = PLATFORM_TEST_VERSIONS - .get_or_init(|| vec![TEST_PLATFORM_V2, TEST_PLATFORM_V3]); + .get_or_init(|| vec![TEST_PLATFORM_V2, TEST_PLATFORM_V3, TEST_PLATFORM_V4]); return versions.get(test_version as usize - 2); } diff --git a/packages/rs-platform-version/src/version/system_limits/mod.rs b/packages/rs-platform-version/src/version/system_limits/mod.rs index 500ae9835f1..f15fe978e49 100644 --- a/packages/rs-platform-version/src/version/system_limits/mod.rs +++ b/packages/rs-platform-version/src/version/system_limits/mod.rs @@ -579,10 +579,11 @@ mod tests { fn mock_platform_versions_carry_the_same_documents_batch_cap() { use crate::version::mocks::v2_test::TEST_PLATFORM_V2; use crate::version::mocks::v3_test::TEST_PLATFORM_V3; + use crate::version::mocks::v4_test::TEST_PLATFORM_V4; use crate::version::protocol_version::PLATFORM_TEST_VERSIONS; - let versions = - PLATFORM_TEST_VERSIONS.get_or_init(|| vec![TEST_PLATFORM_V2, TEST_PLATFORM_V3]); + let versions = PLATFORM_TEST_VERSIONS + .get_or_init(|| vec![TEST_PLATFORM_V2, TEST_PLATFORM_V3, TEST_PLATFORM_V4]); assert!( !versions.is_empty(), "the mock version registry is empty; this test would assert nothing" diff --git a/packages/rs-platform-version/src/version/v15.rs b/packages/rs-platform-version/src/version/v15.rs index 6a754bfd357..4569ae889f3 100644 --- a/packages/rs-platform-version/src/version/v15.rs +++ b/packages/rs-platform-version/src/version/v15.rs @@ -505,9 +505,16 @@ pub const PROTOCOL_VERSION_15: ProtocolVersion = 15; /// profile create and replace triggers, which made the identity, writer and type byte /// checks and refused with `DataTriggerConditionError` (40500). Protocol v14 keeps /// DashPay v2 and bindings 2, and earlier versions the contract and bindings they had. +/// +/// 25. **Refunds at the storing epoch's rate**: `calculate_fee` 1 (`DRIVE_VERSION_V10`) prices +/// the bytes a storage refund returns at the storage rate of the fee schedule of the +/// protocol version that ran the epoch that stored them, read from that epoch's tree, +/// where the epoch's first block records its protocol version. Bytes stored in the block's +/// own epoch are priced at the block's rate. Generation 0 priced every refund at the +/// block's rate. Every schedule so far has the same storage rate, so no refund changes. pub const PLATFORM_V15: PlatformVersion = PlatformVersion { protocol_version: PROTOCOL_VERSION_15, - drive: DRIVE_VERSION_V10, // changed: apply_contract_with_serialization 1 writes nothing for a contract whose format version 1 bytes match the stored one's (note 8); vote method versions v4: register_identity_vote 1 registers a yes/no vote, remove_all_votes_given_by_identities 1 also removes the yes/no votes of a masternode that left the list, every yes_no method and remove_vote_poll_end_date_query_operations Some(0) make yes/no polls active, add_vote_poll_end_date_query_operations 1 adds only the entry when the batch already queues the end date's tree with other storage flags, and verify methods v4 make the yes/no proof verifiers active (note 10) and verify_private_document_entries Some(0) a page of a private type's store (note 13); state transition method versions v5: document_create_transition 1 deletes a consumed document from what its lookup read (note 11); document method versions v5: insert_empty_private_document_store_operation Some(0) creates a private document type's store, and fetch_private_document_entries and prove_private_document_entries Some(0) read and prove a page of it (note 13); apply_drive_operations 2 resolves a batch's estimate, remove_reference_for_index_level_for_contract_operations 2, stateless_delete_of_non_tree_for_costs 1 and for_total_system_credits_update 1 describe their layers as they are (note 14); create_initial_state_structure 5 adds the token marketplace escrow trees; calculate_total_tokens_balance 2 counts escrowed tokens; the escrow primitives; the identity balance, token balance, prefunded specialized balance and contract fee pot estimations (for_balances 1, for_token_balances 1, estimated_cost_for_prefunded_specialized_balance_update 2, add_estimation_costs_for_contract_fee_pot_update 1) keep a deeper layer description (note 17); fetch_core_fork_activation_height and store_core_fork_activation_height Some(0) keep the Core fork activations (note 18) + drive: DRIVE_VERSION_V10, // changed: calculate_fee 1 prices a refund at the storing epoch's rate (note 25); apply_contract_with_serialization 1 writes nothing for a contract whose format version 1 bytes match the stored one's (note 8); vote method versions v4: register_identity_vote 1 registers a yes/no vote, remove_all_votes_given_by_identities 1 also removes the yes/no votes of a masternode that left the list, every yes_no method and remove_vote_poll_end_date_query_operations Some(0) make yes/no polls active, add_vote_poll_end_date_query_operations 1 adds only the entry when the batch already queues the end date's tree with other storage flags, and verify methods v4 make the yes/no proof verifiers active (note 10) and verify_private_document_entries Some(0) a page of a private type's store (note 13); state transition method versions v5: document_create_transition 1 deletes a consumed document from what its lookup read (note 11); document method versions v5: insert_empty_private_document_store_operation Some(0) creates a private document type's store, and fetch_private_document_entries and prove_private_document_entries Some(0) read and prove a page of it (note 13); apply_drive_operations 2 resolves a batch's estimate, remove_reference_for_index_level_for_contract_operations 2, stateless_delete_of_non_tree_for_costs 1 and for_total_system_credits_update 1 describe their layers as they are (note 14); create_initial_state_structure 5 adds the token marketplace escrow trees; calculate_total_tokens_balance 2 counts escrowed tokens; the escrow primitives; the identity balance, token balance, prefunded specialized balance and contract fee pot estimations (for_balances 1, for_token_balances 1, estimated_cost_for_prefunded_specialized_balance_update 2, add_estimation_costs_for_contract_fee_pot_update 1) keep a deeper layer description (note 17); fetch_core_fork_activation_height and store_core_fork_activation_height Some(0) keep the Core fork activations (note 18) drive_abci: DriveAbciVersion { structs: DRIVE_ABCI_STRUCTURE_VERSIONS_V2, methods: DRIVE_ABCI_METHOD_VERSIONS_V11, // changed: the yes/no poll's tally, record, clean-up and finish hook are Some(0) (note 10); verify_chain_lock_locally 1 rejects a chain lock locally only when Platform holds the quorums active at its signing height, and verify_chain_lock_through_core 1 has Core's verifychainlock check the others before submitchainlock; consensus_params_update 2 installs the full evidence policy (note 16); update_core_info 1 records the chain locked height at which Core's V24 is first seen active (note 18); build_untied_withdrawal_transactions_from_documents 1 emits asset unlock payload version 2 once V24 is recorded as active (note 20); update_voter_identity 1 re-enables the voter key of the address a masternode returns to (note 22)