From 3e41c7fd1171ccd98577f34a3f05f7c1b478e39d Mon Sep 17 00:00:00 2001 From: QuantumExplorer Date: Sat, 7 Nov 2026 14:28:50 +0700 Subject: [PATCH 1/5] refactor(platform): price storage refunds from the block's fee schedule and drop the fee history from Drive Drive::calculate_fee and everything above it took previous_fee_versions, a map from epoch to fee schedule. Its only reader was the refund branch of consume_to_fees_v0, which ignored it for fee_version_number 1, the number of every shipped schedule. Every shipped schedule also has the same storage rate, so no block on any network reads the map. FeeRefunds::from_storage_removal now takes the block's FeeVersion and the parameter is gone from 45 functions and about 860 calls, along with KnownCostItem and EpochCosts, which only read through the map. Platform state still records and saves the map in the same format. No fee or refund changes at any protocol version. should_price_a_refund_the_same_at_every_protocol_version checks that, and should_keep_one_storage_rate_on_every_protocol_version fails on a schedule that changes the rate, since refunds would then need the rate of the epoch that stored the bytes. Co-Authored-By: Claude Opus 5.5 --- book/src/contributing/coding-conventions.md | 18 ++- book/src/data-model/key-limits.md | 2 +- book/src/drive/batch-operations.md | 2 - book/src/drive/cost-tracking.md | 3 +- book/src/drive/finalize-tasks.md | 1 - book/src/fees/overview.md | 6 + .../src/state-transitions/drive-operations.md | 4 +- book/src/versioning/versioned-dispatch.md | 5 +- packages/rs-dpp/src/fee/default_costs/mod.rs | 144 +----------------- packages/rs-dpp/src/fee/fee_result/refunds.rs | 56 ++++--- .../src/abci/handler/finalize_block.rs | 1 - .../src/execution/check_tx/v0/mod.rs | 2 - .../v0/mod.rs | 2 - .../v0/mod.rs | 6 - .../block_processing_end_events/tests.rs | 15 +- .../update_masternode_identities/v0/mod.rs | 4 - .../update_masternode_identities/v1/mod.rs | 4 - .../v1/payout_tests.rs | 1 - .../update_operator_identity/v0/mod.rs | 9 -- .../update_owner_withdrawal_address/mod.rs | 4 - .../v0/mod.rs | 2 - .../v1/mod.rs | 1 - .../v0/mod.rs | 1 - .../v1/mod.rs | 1 - .../v0/mod.rs | 1 - .../v1/mod.rs | 1 - .../v0/mod.rs | 1 - .../v1/mod.rs | 9 -- .../create_genesis_state/test/addresses.rs | 1 - .../create_genesis_state/v0/mod.rs | 1 - .../create_genesis_state/v1/mod.rs | 1 - .../token_history_storage_flags_tests.rs | 1 - .../v0/mod.rs | 1 - .../execute_event/mod.rs | 4 - .../execute_event/v0/mod.rs | 23 --- .../execute_event/v1/mod.rs | 13 +- .../process_raw_state_transitions/v0/mod.rs | 3 +- .../process_validation_result/mod.rs | 8 - .../process_validation_result/v0/mod.rs | 4 - .../process_validation_result/v1/mod.rs | 4 - .../validate_fees_of_event/mod.rs | 18 +-- .../validate_fees_of_event/v0/mod.rs | 79 +--------- .../validate_fees_of_event/v1/mod.rs | 28 +--- .../voting/award_document_to_winner/v0/mod.rs | 1 - .../v0/mod.rs | 2 - .../v0/mod.rs | 3 - .../has_pending_withdrawal_work/v0/mod.rs | 2 - .../v1/mod.rs | 1 - .../v1/mod.rs | 1 - .../v2/mod.rs | 1 - .../v0/mod.rs | 1 - .../proof/verify_is_not_spent/v0/mod.rs | 1 - .../state_v1/mod.rs | 1 - .../state_v0/mod.rs | 1 - .../token/token_shielded_pool_common/mod.rs | 1 - .../triggers/withdrawals/v0/mod.rs | 1 - .../triggers/withdrawals/v2/mod.rs | 1 - .../batch/state/v0/fetch_contender.rs | 1 - .../batch/tests/document/action_fees.rs | 2 - .../tests/document/commit_reveal_lookup.rs | 1 - .../tests/document/derived_index_values.rs | 1 - .../batch/tests/document/dpns_v3.rs | 1 - .../batch/tests/document/duplicate_keys.rs | 1 - .../batch/tests/document/gas_sponsorship.rs | 1 - .../tests/document/long_string_sizing.rs | 1 - .../tests/document/token_market_orders.rs | 1 - .../batch/tests/token/shielded/mod.rs | 1 - .../token/shielded/nullifier_batch_guard.rs | 3 - .../v0/property_constraint_aggregates.rs | 1 - .../contract_fee_claim/tests.rs | 1 - .../tests/seated_team.rs | 2 - .../tests/seated_team/settled.rs | 1 - .../tests.rs | 13 +- .../tests.rs | 2 - .../state_transition/state_transitions/mod.rs | 1 - .../shield_from_asset_lock/tests.rs | 9 +- .../shield_from_identity/tests.rs | 1 - .../transform_into_action/v0/mod.rs | 1 - .../src/platform_types/platform_state/mod.rs | 3 +- .../address_funds/address_info/v0/mod.rs | 1 - .../addresses_branch_state/v0/mod.rs | 2 +- .../address_funds/addresses_infos/v0/mod.rs | 1 - .../contract_document_removals/v0/mod.rs | 1 - .../contract_fee_pots/v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../query/contract_moderation_queries/mod.rs | 1 - .../src/query/document_history/v0/mod.rs | 1 - .../document_query/v1/dispatch/chained.rs | 1 - .../src/query/document_query/v1/tests.rs | 1 - packages/rs-drive-abci/src/query/mod.rs | 19 +-- .../src/test/helpers/fast_forward_to_block.rs | 1 - .../src/test/helpers/fee_pools.rs | 1 - .../rs-drive-abci/tests/document_outcome.rs | 1 - .../tests/document_query_signature.rs | 1 - .../rs-drive-abci/tests/older_node_answers.rs | 1 - .../query_request_errors/composite_caps.rs | 1 - .../query_request_errors/document_features.rs | 1 - .../query_request_errors/offset_controls.rs | 1 - .../test_cases/vote_extension_round_tests.rs | 1 - .../benches/document_average_worst_case.rs | 1 - .../benches/document_count_worst_case.rs | 1 - .../benches/document_sum_worst_case.rs | 1 - .../prove_address_funds_trunk_query/v0/mod.rs | 9 +- .../prove/prove_balance_and_nonce/v0/mod.rs | 9 +- .../prove_balances_with_nonces/v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../v1/mod.rs | 1 - .../fetch_action_fee_multiplier/v0/mod.rs | 1 - .../fee_pots/fetch_contract_fee_pot/mod.rs | 1 - .../src/drive/contract/fee_pots/tests.rs | 2 - .../get_fetch/fetch_contract/v0/mod.rs | 2 - .../get_contract_with_fetch_info/mod.rs | 5 - .../get_contract_with_fetch_info/v0/mod.rs | 2 - .../insert/add_contract_to_storage/v1/mod.rs | 4 +- .../contract/insert/add_description/v0/mod.rs | 1 - .../insert/add_new_keywords/v0/mod.rs | 1 - .../contract/insert/insert_contract/v0/mod.rs | 1 - .../v0/tests/batched_group_drain.rs | 3 - .../v0/tests/chained_query_e2e_tests.rs | 4 - .../v0/tests/composite_query_e2e_tests.rs | 2 - .../v0/tests/countable_e2e_tests.rs | 6 - .../tests/index_only_array_index_e2e_tests.rs | 2 - .../v0/tests/index_only_e2e_tests.rs | 21 --- .../index_only_scalar_terminal_e2e_tests.rs | 2 - .../v0/tests/noncounted_sibling_e2e_tests.rs | 9 -- .../v0/tests/preallocated_index_e2e_tests.rs | 6 - .../v0/tests/prefix_ranked_index_e2e_tests.rs | 11 -- .../tests/range_countable_index_e2e_tests.rs | 16 -- .../v0/tests/ranked_index_e2e_tests.rs | 8 - .../shared_prefix_aggregation_e2e_tests.rs | 4 - .../v0/tests/skip_if_absent_e2e_tests.rs | 5 - .../summable_off_count_index_e2e_tests.rs | 13 +- .../typed_array_counter_index_e2e_tests.rs | 2 - .../contract/insert/insert_contract/v1/mod.rs | 1 - .../contract/insert/insert_contract/v2/mod.rs | 1 - .../rekey_unsigned_integer_index_values.rs | 4 - packages/rs-drive/src/drive/contract/mod.rs | 17 +-- .../contract/moderation/action_count_tests.rs | 1 - .../moderation/add_contract_ban/v0/mod.rs | 1 - .../add_contract_suspension/v0/mod.rs | 1 - .../moderation/add_contract_warning/v0/mod.rs | 1 - .../moderation/document_removal_tests.rs | 12 -- .../fetch_contract_document_removals/mod.rs | 1 - .../mod.rs | 2 - .../fetch_contract_moderation_status/mod.rs | 1 - .../fetch_contract_team_action/mod.rs | 1 - .../fetch_contract_team_action_signers/mod.rs | 1 - .../moderation/remove_contract_ban/v0/mod.rs | 1 - .../remove_contract_suspension/v0/mod.rs | 1 - .../remove_contract_warnings/v0/mod.rs | 1 - .../contract/moderation/team_action_tests.rs | 7 - .../src/drive/contract/moderation/tests.rs | 9 +- .../contract/update/update_contract/mod.rs | 35 ++--- .../contract/update/update_contract/v0/mod.rs | 7 - .../contract/update/update_contract/v1/mod.rs | 8 - .../contract/update/update_contract/v2/mod.rs | 15 -- .../update/update_description/v0/mod.rs | 1 - .../contract/update/update_keywords/v0/mod.rs | 1 - .../fetch/fetch_contract_group_info/v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../insert/insert_contract_group/v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../rs-drive/src/drive/document/cost/tests.rs | 1 - .../delete_document_for_contract/mod.rs | 3 - .../delete_document_for_contract/v0/mod.rs | 3 - .../delete_document_for_contract_id/mod.rs | 3 - .../delete_document_for_contract_id/v0/mod.rs | 3 - .../mod.rs | 2 - .../mod.rs | 8 - .../v0/mod.rs | 3 - .../rs-drive/src/drive/document/delete/mod.rs | 58 ++----- .../drive/document/derived_index_values.rs | 3 - .../document/expiration/expiration_tests.rs | 9 -- .../get_fetch/fetch_document_history/mod.rs | 1 - .../validate_uniqueness_of_data/v2/mod.rs | 1 - .../drive/document/index_uniqueness/mod.rs | 5 - .../document/insert/add_document/v0/mod.rs | 1 - .../aggregating_index_fee_estimate_tests.rs | 1 - .../array_index_e2e_tests.rs | 3 - .../integer_range_index_e2e_tests.rs | 7 - .../insert/add_document_for_contract/mod.rs | 3 - .../time_range_index_e2e_tests.rs | 46 +----- .../add_document_for_contract/v0/mod.rs | 3 - .../add_document_to_primary_storage/v0/mod.rs | 2 - .../rs-drive/src/drive/document/insert/mod.rs | 78 +++------- .../add_contested_document/v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../drive/document/insert_contested/mod.rs | 2 - .../rs-drive/src/drive/document/query/mod.rs | 10 -- .../query/query_chained_documents/v0/mod.rs | 1 - .../query/query_composite_documents/v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../document/query/query_documents/v0/mod.rs | 3 - .../query_documents_with_flags/v0/mod.rs | 1 - .../rs-drive/src/drive/document/update/mod.rs | 129 ++++------------ .../update_document_for_contract/mod.rs | 3 - .../update_document_for_contract/v0/mod.rs | 3 - .../update_document_for_contract_id/mod.rs | 3 - .../update_document_for_contract_id/v0/mod.rs | 3 - .../mod.rs | 3 - .../v0/mod.rs | 3 - .../fetch_action_id_has_signer/v0/mod.rs | 1 - .../group/insert/add_group_action/v0/mod.rs | 1 - .../group/insert/add_new_groups/v0/mod.rs | 1 - .../src/drive/identity/balance/update.rs | 3 - .../fetch_identity_contract_nonce/v0/mod.rs | 1 - .../balance/fetch_identity_balance/v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../fetch_full_identity/v0/mod.rs | 1 - .../nonce/fetch_identity_nonce/v0/mod.rs | 1 - .../fetch_identity_revision/v0/mod.rs | 1 - .../src/drive/identity/fetch/revision/mod.rs | 1 - .../insert/add_new_identity/v0/mod.rs | 1 - .../src/drive/identity/key/budget/mod.rs | 1 - .../key/fetch/fetch_identity_keys/v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../add_new_unique_keys_to_identity/v0/mod.rs | 1 - .../methods/add_to_identity_balance/v0/mod.rs | 1 - .../methods/add_to_identity_balance/v1/mod.rs | 6 - .../methods/disable_identity_keys/v0/mod.rs | 1 - .../methods/disable_identity_keys/v1/mod.rs | 1 - .../methods/merge_identity_nonce/v0/mod.rs | 1 - .../remove_from_identity_balance/mod.rs | 3 - .../remove_from_identity_balance/v0/mod.rs | 3 - .../update_identity_key_limits/v0/mod.rs | 1 - .../methods/update_identity_revision/mod.rs | 4 - .../update_identity_revision/v0/mod.rs | 4 - .../rs-drive/src/drive/identity/update/mod.rs | 2 - .../v1/mod.rs | 2 - .../v0/mod.rs | 2 - .../withdrawals/transaction/index/mod.rs | 1 - .../withdrawals/transaction/queue/mod.rs | 3 - .../fetch/single_balance/v0/mod.rs | 1 - .../src/drive/tokens/apply_status/v0/mod.rs | 1 - .../add_to_previous_token_balance/mod.rs | 4 - .../add_to_previous_token_balance/v0/mod.rs | 13 -- .../fetch_identities_token_balances/mod.rs | 1 - .../fetch_identities_token_balances/v0/mod.rs | 2 - .../fetch_identity_token_balance/mod.rs | 1 - .../fetch_identity_token_balance/v0/mod.rs | 1 - .../fetch_identity_token_balances/mod.rs | 1 - .../fetch_identity_token_balances/v0/mod.rs | 2 - .../prove_identities_token_balances/mod.rs | 1 - .../prove_identity_token_balances/mod.rs | 1 - .../remove_from_identity_token_balance/mod.rs | 3 - .../v0/mod.rs | 9 -- .../src/drive/tokens/balance/update.rs | 2 - .../rs-drive/src/drive/tokens/burn/v0/mod.rs | 1 - .../fetch_token_contract_info/mod.rs | 1 - .../fetch_token_direct_purchase_price/mod.rs | 1 - .../set_direct_purchase_price/mod.rs | 1 - .../add_pre_programmed_distribution/v1/mod.rs | 1 - .../src/drive/tokens/freeze/v0/mod.rs | 1 - .../info/fetch_identities_token_infos/mod.rs | 1 - .../info/fetch_identity_token_info/mod.rs | 1 - .../info/fetch_identity_token_infos/mod.rs | 1 - .../info/prove_identities_token_infos/mod.rs | 1 - .../info/prove_identity_token_infos/mod.rs | 1 - .../rs-drive/src/drive/tokens/mint/v0/mod.rs | 1 - .../src/drive/tokens/mint_many/v0/mod.rs | 1 - .../src/drive/tokens/order_escrow/mod.rs | 3 - .../src/drive/tokens/shielded_pool/mod.rs | 2 - .../tokens/status/fetch_token_status/mod.rs | 1 - .../tokens/status/fetch_token_statuses/mod.rs | 1 - .../tokens/status/prove_token_statuses/mod.rs | 1 - .../add_to_token_total_supply/v0/mod.rs | 1 - .../system/create_token_trees/v0/mod.rs | 1 - .../v0/mod.rs | 4 - .../system/fetch_token_total_supply/v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../remove_from_token_total_supply/v0/mod.rs | 1 - .../src/drive/tokens/transfer/v0/mod.rs | 1 - .../src/drive/tokens/unfreeze/v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../register_yes_no_identity_vote/v0/mod.rs | 1 - .../rs-drive/src/fees/calculate_fee/mod.rs | 82 +++++++++- .../rs-drive/src/fees/calculate_fee/v0/mod.rs | 3 - packages/rs-drive/src/fees/op.rs | 60 +++----- ..._resource_votes_given_by_identity_query.rs | 2 - .../query/drive_contested_document_query.rs | 1 - .../drive_dispatcher.rs | 2 - .../query/drive_document_count_query/tests.rs | 9 -- .../drive_document_having_query/tests.rs | 6 - .../drive_document_ranked_query/tests.rs | 8 - .../query/drive_document_sum_query/tests.rs | 1 - packages/rs-drive/src/query/mod.rs | 4 - .../query/unsigned_index_key_order_tests.rs | 1 - .../query/vote_poll_contestant_votes_query.rs | 2 - .../src/query/vote_poll_vote_state_query.rs | 2 - .../vote_polls_by_document_type_query.rs | 1 - .../src/query/vote_polls_by_end_date_query.rs | 2 - .../shielded/mod.rs | 1 - .../shielded_withdrawal_transition.rs | 1 - .../shielded/unshield_transition.rs | 9 +- .../state_generated_properties.rs | 1 - .../v0/transformer.rs | 1 - .../v0/transformer.rs | 2 - .../v0/transformer.rs | 1 - .../v0/transformer.rs | 4 - .../v0/transformer.rs | 2 - .../v0/transformer.rs | 2 - .../v0/transformer.rs | 1 - .../v0/transformer.rs | 1 - .../v0/transformer.rs | 2 - .../v0/transformer.rs | 2 - .../v0/transformer.rs | 1 - .../v0/transformer.rs | 2 - .../v0/transformer.rs | 2 - .../v0/transformer.rs | 1 - .../v0/transformer.rs | 1 - .../v0/transformer.rs | 2 - .../v0/transformer.rs | 2 - .../v0/transformer.rs | 1 - packages/rs-drive/src/structure/tests.rs | 7 - .../apply_drive_operations/mod.rs | 6 - .../apply_drive_operations/v0/mod.rs | 3 - .../apply_drive_operations/v1/mod.rs | 23 +-- .../apply_drive_operations/v2/mod.rs | 3 - .../src/util/batch/drive_op_batch/mod.rs | 11 -- .../rs-drive/src/util/test_helpers/setup.rs | 1 - .../verify_address_info/v0/mod.rs | 1 - .../verify/document/verify_proof/v0/mod.rs | 1 - .../verify_proof_keep_serialized/v0/mod.rs | 1 - .../v0/mod.rs | 1 - .../single_document/verify_proof/v0/mod.rs | 1 - .../verify_proof_keep_serialized/v0/mod.rs | 1 - .../v0/mod.rs | 5 - .../rs-drive/tests/compound_cursor_tests.rs | 2 - packages/rs-drive/tests/query_tests.rs | 34 ----- .../rs-drive/tests/query_tests_history.rs | 17 --- .../src/version/fee/mod.rs | 43 +++++- 336 files changed, 318 insertions(+), 1515 deletions(-) diff --git a/book/src/contributing/coding-conventions.md b/book/src/contributing/coding-conventions.md index c4ee2670626..830a420a641 100644 --- a/book/src/contributing/coding-conventions.md +++ b/book/src/contributing/coding-conventions.md @@ -174,11 +174,16 @@ 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 must not change the storage rate on its own. Refunds are priced at +the rate of the block that removes the bytes, which is right only while every +schedule has the same rate, and +`should_keep_one_storage_rate_on_every_protocol_version` fails otherwise. See +the [Fee System Overview](../fees/overview.md). ### Consensus code reads the version from state @@ -225,8 +230,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..cb7ff81730d 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()); @@ -153,7 +152,6 @@ impl Drive { &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..314d43a1982 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, + fee_version, )?, system_amount) } }; diff --git a/book/src/drive/finalize-tasks.md b/book/src/drive/finalize-tasks.md index 60e3ff3e84d..ddb782f2c38 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 { // ... diff --git a/book/src/fees/overview.md b/book/src/fees/overview.md index 2a0ca963e16..5d6e2ffd46a 100644 --- a/book/src/fees/overview.md +++ b/book/src/fees/overview.md @@ -482,6 +482,12 @@ 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. +A refund is priced at the storage rate of the schedule of the block that removes +the bytes. Every schedule has had the same rate so far, so that is also the rate +the bytes were paid at. A schedule that changes the rate fails +`should_keep_one_storage_rate_on_every_protocol_version` and has to make refunds +use the storing epoch's rate first. + 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..5c5bc3ac851 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()); @@ -241,7 +240,7 @@ pub(crate) fn apply_drive_operations_v0( Drive::calculate_fee( None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, previous_fee_versions, + self.config.epochs_per_era, platform_version, ) } ``` @@ -309,7 +308,6 @@ Drive::calculate_fee( &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..d553c4d3e0a 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; @@ -13,6 +11,7 @@ use crate::ProtocolError; use bincode::{Decode, DecodeUntrusted, Encode}; use platform_value::Identifier; +use platform_version::version::fee::FeeVersion; use serde::{Deserialize, Serialize}; use std::collections::btree_map::Iter; use std::collections::BTreeMap; @@ -40,7 +39,7 @@ impl FeeRefunds { storage_removal: I, current_epoch_index: EpochIndex, epochs_per_era: u16, - previous_fee_versions: &CachedEpochIndexFeeVersions, + fee_version: &FeeVersion, ) -> Result where I: IntoIterator, @@ -59,7 +58,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(fee_version.storage.storage_disk_usage_credit_per_byte) .ok_or(ProtocolError::Overflow("storage written bytes cost overflow"))?; let (amount, _) = calculate_storage_fee_refund_amount_and_leftovers( @@ -178,11 +177,6 @@ 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::*; @@ -197,18 +191,46 @@ 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, FeeVersion::first()) + .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_refunds_at_the_storage_rate_of_the_given_schedule() { + let identity_id = [0; 32]; + let refund_at = |fee_version: &FeeVersion| { + let bytes_per_epoch = IntMap::from_iter([(1, 100)]); + let storage_removal = + BytesPerEpochByIdentifier::from_iter([(identity_id, bytes_per_epoch)]); + + FeeRefunds::from_storage_removal(storage_removal, 3, 20, fee_version) + .expect("should create fee refunds") + .get(&identity_id) + .expect("should exist") + .get(&1) + .copied() + .expect("should exist") + }; + let expected_refund_at = |rate: Credits| { + calculate_storage_fee_refund_amount_and_leftovers(100 * rate, 1, 3, 20) + .expect("should calculate the refund") + .0 + }; + + let schedule = FeeVersion::first(); + let rate = schedule.storage.storage_disk_usage_credit_per_byte; + let mut doubled_schedule = schedule.clone(); + doubled_schedule.storage.storage_disk_usage_credit_per_byte = 2 * rate; + + assert_eq!(refund_at(schedule), expected_refund_at(rate)); + assert_eq!(refund_at(&doubled_schedule), expected_refund_at(2 * rate)); + assert!(refund_at(&doubled_schedule) > refund_at(schedule)); + } } } 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..fd218aa4079 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 @@ -135,7 +135,6 @@ impl DocumentCreateTransitionActionStateValidationV1 for DocumentCreateTransitio &block_info.epoch, platform.drive.config.epochs_per_era, platform_version, - None, ) .map_err(Error::Drive)?; execution_context 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..aef40205c44 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 @@ -142,7 +142,6 @@ impl DocumentIndexOnlyDeleteTransitionActionStateValidationV0 &block_info.epoch, platform.drive.config.epochs_per_era, platform_version, - None, ) .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/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..278ed6992fc 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 @@ -101,7 +101,6 @@ pub(crate) fn charge_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..afafbe85b18 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 @@ -39,7 +39,6 @@ pub(crate) fn fetch_contender( &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..a4b756941ae 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 @@ -474,7 +474,6 @@ fn read_aggregates( &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..670c636e1b5 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 @@ -93,7 +93,6 @@ impl ShieldFromIdentityStateTransitionTransformIntoActionValidationV0 &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, 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..d32c709d85a 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 @@ -95,7 +95,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, ) )) } else { @@ -152,7 +151,6 @@ impl Drive { 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..6e8eacb62cc 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 @@ -100,7 +100,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, ) .map(Some) })?; @@ -171,7 +170,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; if add_to_cache_if_pulled { 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..5c60270a990 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 @@ -46,7 +46,6 @@ impl Drive { &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..91700c8e931 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 @@ -44,7 +44,6 @@ impl Drive { &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..cb6d65e327d 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 @@ -71,7 +71,6 @@ impl Drive { &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..ab14c4b7cd4 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 @@ -62,7 +62,6 @@ impl Drive { &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..b4b8442379a 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 @@ -59,7 +59,6 @@ impl Drive { &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..f81316d0e43 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 @@ -56,7 +56,6 @@ impl Drive { &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..36d7a82f11c 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 @@ -61,7 +61,6 @@ impl Drive { &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..dcc66dc23dc 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 @@ -59,7 +59,6 @@ impl Drive { &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..aa62deb1a90 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 @@ -113,7 +113,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; Ok((fee, removal)) } 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..ab9d89b3799 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 @@ -124,7 +124,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; Ok((fee, counts)) } @@ -185,7 +184,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; Ok((fee, count)) } 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..35d3cf51252 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 @@ -107,7 +107,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; Ok((fee, status)) } 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..b2d2e63e440 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 @@ -107,7 +107,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; Ok((fee, action)) } 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..31ac843a0cd 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 @@ -121,7 +121,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; Ok((fee, signers)) } 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..107a97d7f28 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 @@ -53,7 +53,6 @@ impl Drive { &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..c0a50e3d119 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 @@ -53,7 +53,6 @@ impl Drive { &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..270882a802a 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 @@ -53,7 +53,6 @@ impl Drive { &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..1894e755610 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( @@ -137,7 +135,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } @@ -808,7 +805,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update with new doc type should succeed"); @@ -884,7 +880,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -1023,7 +1018,6 @@ mod tests { false, None, platform_version, - None, ) .expect("apply=false on existing should succeed via insert delegation"); @@ -1353,7 +1347,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..71c7aeb38ac 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( @@ -133,7 +131,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } @@ -353,7 +350,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding tokens should succeed"); } @@ -397,7 +393,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding groups should succeed"); } @@ -460,7 +455,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update keyword delta via update_contract should succeed"); } @@ -573,7 +567,6 @@ mod tests { true, None, platform_version, - None, ) .expect("clearing keywords via update_contract should succeed"); @@ -639,7 +632,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..b6a18b4681a 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( @@ -142,7 +140,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } @@ -545,7 +542,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding the token should succeed"); @@ -644,7 +640,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding the token should succeed"); @@ -692,7 +687,6 @@ mod tests { true, None, platform_version, - None, ) .expect("a later update should leave the claims subtree alone"); } @@ -809,7 +803,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update keeping existing tokens should succeed"); } @@ -874,7 +867,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding the token should succeed"); @@ -1033,7 +1025,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update adding two tokens should succeed"); @@ -1070,7 +1061,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update after the upgrade should succeed"); @@ -1163,7 +1153,6 @@ mod tests { true, None, platform_version, - None, ) .expect("update keeping existing tokens should succeed"); } @@ -1225,7 +1214,6 @@ mod tests { false, None, platform_version, - None, ) .expect("estimate adding a pooled token through contract update") } else { @@ -1249,7 +1237,6 @@ mod tests { true, None, platform_version, - None, ) .expect("add token through contract update"); } else { @@ -1297,7 +1284,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 +1302,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..7a2cc49a8f4 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 @@ -46,7 +46,6 @@ impl Drive { &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..433b84b5107 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 @@ -46,7 +46,6 @@ impl Drive { &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..8787d6e4263 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 @@ -46,7 +46,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; 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..5fed79c1532 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 @@ -47,7 +47,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; 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..bed3ab3c115 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 @@ -54,7 +54,6 @@ impl Drive { &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..4811fba6590 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 @@ -75,7 +75,6 @@ impl Drive { &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..25c326282e4 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); @@ -44,7 +42,6 @@ impl Drive { &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..e06130345f0 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); @@ -62,7 +60,6 @@ impl Drive { &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..21832f43ecd 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"); @@ -342,7 +341,6 @@ mod tests { &Epoch::new(0).expect("expected epoch 0"), drive.config.epochs_per_era, platform_version, - None, ) .expect("expected the fee") } 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..32cc1fecb0d 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); @@ -86,7 +84,6 @@ impl Drive { &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..624d8ef0789 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 @@ -65,7 +65,6 @@ impl Drive { &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..8cf771bf21a 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( @@ -41,7 +39,6 @@ impl Drive { &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..ad4e110c640 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 @@ -75,7 +75,6 @@ impl Drive { &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..0d336763038 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 @@ -45,7 +45,6 @@ impl Drive { &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..4e981be3235 100644 --- a/packages/rs-drive/src/drive/document/query/mod.rs +++ b/packages/rs-drive/src/drive/document/query/mod.rs @@ -144,7 +144,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -199,7 +198,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -238,7 +236,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -301,7 +298,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -366,7 +362,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -467,7 +462,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -605,7 +599,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -666,7 +659,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -737,7 +729,6 @@ mod tests { true, Some(&db_transaction), platform_version, - None, ) .expect("expected to insert a document successfully"); @@ -842,7 +833,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..fca8648c24e 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 @@ -39,7 +39,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )? .processing_fee } else { 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..3b8cab1c1da 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 @@ -39,7 +39,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )? .processing_fee } else { 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..88d1e2e42fb 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 @@ -95,7 +95,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { 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..ee1585f22d2 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 @@ -81,7 +81,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { 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..29bd4897820 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 @@ -102,7 +102,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )? .processing_fee } else { @@ -145,7 +144,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -271,7 +269,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..cadf3463c4a 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 @@ -109,7 +109,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { 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..ca97e13eb34 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); @@ -58,7 +56,6 @@ impl Drive { &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..c4e7ca3ae3d 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); @@ -78,7 +76,6 @@ impl Drive { &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..e63860103bb 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); @@ -63,7 +61,6 @@ impl Drive { &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..35c8b4f2dc9 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 @@ -94,7 +94,6 @@ impl Drive { &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..e9b0bef0d62 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 @@ -65,7 +65,6 @@ impl Drive { &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..d07f345622f 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 @@ -45,7 +45,6 @@ impl Drive { &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..96732383254 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 @@ -112,7 +112,6 @@ impl Drive { &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..3d81d318409 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 @@ -57,7 +57,6 @@ impl Drive { &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..ba28a1d8665 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 @@ -54,7 +54,6 @@ impl Drive { &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..1e665fbdd14 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 @@ -33,7 +33,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; 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..ee2761846e4 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 @@ -106,7 +106,6 @@ impl Drive { &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..4d82fe311d0 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 @@ -106,7 +106,6 @@ impl Drive { &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..f24f5ae7067 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 @@ -51,7 +51,6 @@ impl Drive { &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..13952f28878 100644 --- a/packages/rs-drive/src/drive/identity/key/budget/mod.rs +++ b/packages/rs-drive/src/drive/identity/key/budget/mod.rs @@ -301,7 +301,6 @@ mod tests { &block().epoch, drive.config.epochs_per_era, platform_version, - None, ) .expect("expected a fee"); assert_eq!(fee.storage_fee, 0); 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..d27d5f7b22a 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 @@ -54,7 +54,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; 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..9614a091eda 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 @@ -46,7 +46,6 @@ impl Drive { &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..677469f28f1 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 @@ -46,7 +46,6 @@ impl Drive { &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..f9c429ddf7d 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 @@ -47,7 +47,6 @@ impl Drive { &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..dae48c72708 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 @@ -69,7 +69,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - None, )?; Ok(fees) @@ -232,7 +231,6 @@ mod tests { &block_info(), None, platform_version, - None, ) .expect("expected to apply the batch"); @@ -273,7 +271,6 @@ mod tests { &block_info(), None, platform_version, - None, ) .expect("expected to apply the batch"); @@ -378,7 +375,6 @@ mod tests { &block_info(), None, platform_version, - None, ) .expect("expected to apply the batch"); @@ -419,7 +415,6 @@ mod tests { &block_info(), None, platform_version, - None, ) .expect("expected to apply the batch"); @@ -460,7 +455,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..f201bd8ba87 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 @@ -62,7 +62,6 @@ impl Drive { &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..244a6329015 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 @@ -61,7 +61,6 @@ impl Drive { &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..29aa387b9f9 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 @@ -58,7 +58,6 @@ impl Drive { &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..7a938a44253 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); @@ -50,7 +48,6 @@ impl Drive { &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..44372b20a07 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 @@ -80,7 +80,6 @@ impl Drive { &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..ed3bcb74937 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); @@ -53,7 +50,6 @@ impl Drive { &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..a224cbcf12e 100644 --- a/packages/rs-drive/src/drive/identity/update/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/mod.rs @@ -253,7 +253,6 @@ mod tests { &Epoch::new(0).unwrap(), drive.config.epochs_per_era, platform_version, - None, ) .expect("expected fee result"); @@ -853,7 +852,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..0de46d94340 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 @@ -56,7 +56,6 @@ impl Drive { &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..21425345809 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 @@ -38,7 +38,6 @@ impl Drive { &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..507c9749442 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); @@ -55,7 +53,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) } @@ -187,7 +184,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add initial token balance"); @@ -203,7 +199,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -252,7 +247,6 @@ mod tests { true, None, platform_version, - None, ); assert!( @@ -300,7 +294,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected boundary insert to succeed"); @@ -345,7 +338,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to seed balance"); @@ -358,7 +350,6 @@ mod tests { true, None, platform_version, - None, ); assert!(result.is_err(), "expected checked_add overflow error"); @@ -409,7 +400,6 @@ mod tests { false, None, platform_version, - None, ) .expect("expected estimation to succeed"); @@ -465,7 +455,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add zero balance"); @@ -509,7 +498,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to add initial token balance"); @@ -522,7 +510,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..e8308a1cba4 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 @@ -97,7 +97,6 @@ impl Drive { &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..6d942e0f7b5 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 @@ -80,7 +80,6 @@ impl Drive { &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..6d420ac243e 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 @@ -98,7 +98,6 @@ impl Drive { &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..32af4ecb8de 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 @@ -94,7 +94,6 @@ impl Drive { &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..76e3077705b 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 @@ -94,7 +94,6 @@ impl Drive { &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..f6cb1ad44c1 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); @@ -53,7 +51,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - previous_fee_versions, )?; Ok(fees) } @@ -166,7 +163,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to seed balance"); } @@ -188,7 +184,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to remove partial balance"); @@ -212,7 +207,6 @@ mod tests { true, None, platform_version, - None, ) .expect("expected to remove full balance"); @@ -235,7 +229,6 @@ mod tests { true, None, platform_version, - None, ); assert!(matches!( @@ -279,7 +272,6 @@ mod tests { true, None, platform_version, - None, ); assert!(matches!( @@ -328,7 +320,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..24a7cadf843 100644 --- a/packages/rs-drive/src/drive/tokens/burn/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/burn/v0/mod.rs @@ -37,7 +37,6 @@ impl Drive { &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..046d44e6d11 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 @@ -70,7 +70,6 @@ impl Drive { &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..ae855dd4cfe 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 @@ -68,7 +68,6 @@ impl Drive { &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..df4c180b0bd 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 @@ -46,7 +46,6 @@ impl Drive { &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..f5332b0f75e 100644 --- a/packages/rs-drive/src/drive/tokens/freeze/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/freeze/v0/mod.rs @@ -41,7 +41,6 @@ impl Drive { &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..3397923109e 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 @@ -98,7 +98,6 @@ impl Drive { &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..3e7ffe1a8d4 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 @@ -79,7 +79,6 @@ impl Drive { &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..2d3ea0edfc6 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 @@ -98,7 +98,6 @@ impl Drive { &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..fe5f507c833 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 @@ -94,7 +94,6 @@ impl Drive { &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..b5bbf53aa8a 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 @@ -94,7 +94,6 @@ impl Drive { &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..54e73a7c537 100644 --- a/packages/rs-drive/src/drive/tokens/mint/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/mint/v0/mod.rs @@ -41,7 +41,6 @@ impl Drive { &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..c7572aa4be2 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 @@ -40,7 +40,6 @@ impl Drive { &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..f6c107e2f36 100644 --- a/packages/rs-drive/src/drive/tokens/order_escrow/mod.rs +++ b/packages/rs-drive/src/drive/tokens/order_escrow/mod.rs @@ -440,7 +440,6 @@ mod tests { &BlockInfo::default().epoch, drive.config.epochs_per_era, platform_version, - None, ) .unwrap_or_else(|error| panic!("{name}: expected a fee: {error:?}")); assert!( @@ -719,7 +718,6 @@ mod tests { &BlockInfo::default().epoch, drive.config.epochs_per_era, platform_version, - None, ) .expect("expected a fee") }; @@ -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..e31bd0d5b0d 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"); @@ -758,7 +757,6 @@ mod tests { &BlockInfo::default().epoch, drive.config.epochs_per_era, platform_version, - None, ) .expect("price the metered operations") .processing_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..77696b5a9cf 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 @@ -62,7 +62,6 @@ impl Drive { &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..815c514712c 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 @@ -82,7 +82,6 @@ impl Drive { &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..76bd482f0d0 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 @@ -78,7 +78,6 @@ impl Drive { &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..bb1d2de7921 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 @@ -46,7 +46,6 @@ impl Drive { &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..1596b6d8a24 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 @@ -60,7 +60,6 @@ impl Drive { &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..5195b2299ff 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 @@ -51,7 +51,6 @@ impl Drive { &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..4dc39cac736 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 @@ -42,7 +42,6 @@ impl Drive { &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..504148348d3 100644 --- a/packages/rs-drive/src/drive/tokens/transfer/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/transfer/v0/mod.rs @@ -39,7 +39,6 @@ impl Drive { &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..eac8abd97fd 100644 --- a/packages/rs-drive/src/drive/tokens/unfreeze/v0/mod.rs +++ b/packages/rs-drive/src/drive/tokens/unfreeze/v0/mod.rs @@ -41,7 +41,6 @@ impl Drive { &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..c639045eff3 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 @@ -99,7 +99,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, )?; 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..d07069d62a7 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 @@ -45,7 +45,6 @@ impl Drive { epoch, self.config.epochs_per_era, platform_version, - None, ) }) .transpose()?; 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..200e351d8bd 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 @@ -58,7 +58,6 @@ impl Drive { &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..ea68326aa22 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 @@ -47,7 +47,6 @@ impl Drive { &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..16d7dd29969 100644 --- a/packages/rs-drive/src/fees/calculate_fee/mod.rs +++ b/packages/rs-drive/src/fees/calculate_fee/mod.rs @@ -3,7 +3,6 @@ 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; @@ -36,7 +35,6 @@ impl Drive { 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( @@ -45,7 +43,6 @@ impl Drive { epoch, epochs_per_era, &platform_version.fee_version, - previous_fee_versions, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "Drive::calculate_fee".to_string(), @@ -55,3 +52,82 @@ impl Drive { } } } + +#[cfg(test)] +mod tests { + use super::*; + use dpp::fee::epoch::distribution::calculate_storage_fee_refund_amount_and_leftovers; + use dpp::fee::epoch::DEFAULT_EPOCHS_PER_ERA; + use dpp::version::fee::FeeVersion; + use dpp::version::PLATFORM_VERSIONS; + use grovedb_costs::storage_cost::removal::{ + StorageRemovalPerEpochByIdentifier, StorageRemovedBytes, + }; + use grovedb_costs::storage_cost::StorageCost; + use grovedb_costs::OperationCost; + + /// Refunds used to be priced against an empty fee history, which resolves every epoch to the + /// first schedule. This holds every protocol version to that amount now that they read the + /// rate from their own schedule. + #[test] + fn should_price_a_refund_the_same_at_every_protocol_version() { + const OWNER: [u8; 32] = [7; 32]; + const STORING_EPOCH: u16 = 12; + const REMOVED_BYTES: u32 = 1_000; + const REMOVED_SYSTEM_BYTES: u32 = 50; + let removing_epoch = Epoch::new(15).expect("expected an epoch"); + + let (expected_refund, _) = calculate_storage_fee_refund_amount_and_leftovers( + REMOVED_BYTES as u64 + * FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte, + STORING_EPOCH, + removing_epoch.index, + DEFAULT_EPOCHS_PER_ERA, + ) + .expect("expected a refund"); + assert!(expected_refund > 0); + + for platform_version in PLATFORM_VERSIONS { + let mut removal = StorageRemovalPerEpochByIdentifier::default(); + removal + .entry(OWNER) + .or_default() + .insert(STORING_EPOCH, REMOVED_BYTES); + removal + .entry([0; 32]) + .or_default() + .insert(STORING_EPOCH, REMOVED_SYSTEM_BYTES); + let removed_bytes = LowLevelDriveOperation::CalculatedCostOperation(OperationCost { + storage_cost: StorageCost { + removed_bytes: StorageRemovedBytes::SectionedStorageRemoval(removal), + ..Default::default() + }, + ..Default::default() + }); + + let fee_result = Drive::calculate_fee( + None, + Some(vec![removed_bytes]), + &removing_epoch, + DEFAULT_EPOCHS_PER_ERA, + platform_version, + ) + .expect("expected to calculate the fee"); + + assert_eq!( + fee_result + .fee_refunds + .get(&OWNER) + .and_then(|credits_per_epoch| { + credits_per_epoch.get(&STORING_EPOCH).copied() + }), + Some(expected_refund), + "protocol version {}", + platform_version.protocol_version + ); + assert_eq!(fee_result.removed_bytes_from_system, REMOVED_SYSTEM_BYTES); + } + } +} 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/op.rs b/packages/rs-drive/src/fees/op.rs index 3793a5ede9b..b3dfe0d035b 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; @@ -32,7 +31,6 @@ use crate::util::batch::grovedb_op_batch::GroveDbOpBatchV0Methods; 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::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,23 @@ 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, - ) - } + // Every shipped schedule has the same storage rate and this arm + // used to price all of them against the first one, so reading it + // from the block's schedule changes no refund at any protocol + // version. `should_keep_one_storage_rate_on_every_protocol_version` + // fails if a schedule ever changes the rate. + ( + FeeRefunds::from_storage_removal( + removal_per_epoch_by_identifier, + epoch.index, + epochs_per_era, + fee_version, + )?, + system_amount, + ) } }; Ok(FeeResult { 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..bb77c006061 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 @@ -71,7 +71,6 @@ impl ContestedResourceVotesGivenByIdentityQuery { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -123,7 +122,6 @@ impl ContestedResourceVotesGivenByIdentityQuery { &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..877b74dcabf 100644 --- a/packages/rs-drive/src/query/drive_contested_document_query.rs +++ b/packages/rs-drive/src/query/drive_contested_document_query.rs @@ -122,7 +122,6 @@ impl DriveContestedDocumentQuery<'_> { &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..04796542df5 100644 --- a/packages/rs-drive/src/query/mod.rs +++ b/packages/rs-drive/src/query/mod.rs @@ -3758,7 +3758,6 @@ impl<'a> DriveDocumentQuery<'a> { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -3815,7 +3814,6 @@ impl<'a> DriveDocumentQuery<'a> { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -3874,7 +3872,6 @@ impl<'a> DriveDocumentQuery<'a> { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -5676,7 +5673,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..60f1bec06ec 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 @@ -139,7 +139,6 @@ impl ContestedDocumentVotePollVotesDriveQuery { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -186,7 +185,6 @@ impl ContestedDocumentVotePollVotesDriveQuery { &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..f0dc45aa662 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 @@ -303,7 +303,6 @@ impl ContestedDocumentVotePollDriveQuery { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -351,7 +350,6 @@ impl ContestedDocumentVotePollDriveQuery { &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..2f5f3e483e5 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 @@ -239,7 +239,6 @@ impl VotePollsByDocumentTypeQuery { &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..a1fc99d8d0d 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 @@ -383,7 +383,6 @@ impl VotePollsByEndDateDriveQuery { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; fee_result.processing_fee } else { @@ -428,7 +427,6 @@ impl VotePollsByEndDateDriveQuery { &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..20ddbd864e7 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 @@ -86,7 +86,6 @@ pub(super) fn generate_state_read_properties( &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..53443a0df65 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 @@ -67,7 +67,6 @@ impl TokenBurnFromPoolTransitionActionV0 { &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..e40e7415175 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 @@ -88,7 +88,6 @@ impl TokenBurnTransitionActionV0 { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -210,7 +209,6 @@ impl TokenBurnTransitionActionV0 { &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..dcda0e59742 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 @@ -77,7 +77,6 @@ impl TokenClaimToPoolTransitionActionV0 { &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..dc2511e0e1f 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 @@ -163,7 +163,6 @@ impl TokenClaimTransitionActionV0 { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; // We can not change the note on a claim @@ -303,7 +302,6 @@ pub(crate) fn resolve_token_claim( &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; fee_result.checked_add_assign(last_paid_time_fee_result)?; @@ -426,7 +424,6 @@ pub(crate) fn resolve_token_claim( &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; fee_result.checked_add_assign(last_paid_time_fee_result)?; @@ -594,7 +591,6 @@ pub(crate) fn resolve_token_claim( &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..44f8022e018 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 @@ -85,7 +85,6 @@ impl TokenConfigUpdateTransitionActionV0 { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -194,7 +193,6 @@ impl TokenConfigUpdateTransitionActionV0 { &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..ee0ac65ee1c 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 @@ -96,7 +96,6 @@ impl TokenDestroyFrozenFundsTransitionActionV0 { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; let Some(token_amount) = maybe_token_amount else { @@ -243,7 +242,6 @@ impl TokenDestroyFrozenFundsTransitionActionV0 { &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..be951170034 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 @@ -68,7 +68,6 @@ impl TokenDirectPurchaseToPoolTransitionActionV0 { &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..b88ef6ebde6 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 @@ -98,7 +98,6 @@ impl TokenDirectPurchaseTransitionActionV0 { &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..c265cb104e4 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 @@ -84,7 +84,6 @@ impl TokenEmergencyActionTransitionActionV0 { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -193,7 +192,6 @@ impl TokenEmergencyActionTransitionActionV0 { &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..860db84173d 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 @@ -84,7 +84,6 @@ impl TokenFreezeTransitionActionV0 { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -193,7 +192,6 @@ impl TokenFreezeTransitionActionV0 { &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..f375da9d8a2 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 @@ -67,7 +67,6 @@ impl TokenMintToPoolTransitionActionV0 { &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..116f84ce3d3 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 @@ -93,7 +93,6 @@ impl TokenMintTransitionActionV0 { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -270,7 +269,6 @@ impl TokenMintTransitionActionV0 { &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..bc32adb9954 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 @@ -84,7 +84,6 @@ impl TokenSetPriceForDirectPurchaseTransitionActionV0 { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -195,7 +194,6 @@ impl TokenSetPriceForDirectPurchaseTransitionActionV0 { &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..d13d70150db 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 @@ -67,7 +67,6 @@ impl TokenShieldTransitionActionV0 { &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..4157bb91b4d 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 @@ -66,7 +66,6 @@ impl TokenShieldedTransferTransitionActionV0 { &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..85dd5b92b1b 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 @@ -79,7 +79,6 @@ impl TokenTransferTransitionActionV0 { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; // Return the TokenTransferTransitionActionV0 with the relevant data @@ -163,7 +162,6 @@ impl TokenTransferTransitionActionV0 { &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..c1083718617 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 @@ -84,7 +84,6 @@ impl TokenUnfreezeTransitionActionV0 { &block_info.epoch, drive.config.epochs_per_era, platform_version, - None, )?; let (base_action, change_note) = match base_action_validation_result.is_valid() { @@ -193,7 +192,6 @@ impl TokenUnfreezeTransitionActionV0 { &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..610cd0aed57 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 @@ -68,7 +68,6 @@ impl TokenUnshieldTransitionActionV0 { &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..74d8b2ca956 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()); @@ -113,7 +111,6 @@ impl Drive { &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..4089c708f2b 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)?; @@ -247,7 +245,6 @@ impl Drive { &block_info.epoch, self.config.epochs_per_era, platform_version, - previous_fee_versions, ) } } @@ -384,7 +381,6 @@ mod tests { &block_info, Some(&transaction), platform_version, - None, ) .unwrap(); assert_eq!( @@ -417,7 +413,6 @@ mod tests { &block_info, None, platform_version, - None, ) .unwrap(); assert_eq!(processing_pool(&drive, platform_version), 31); @@ -444,7 +439,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 +483,6 @@ mod tests { &block_info, None, platform_version, - None, ) .unwrap(); let actual = drive @@ -498,7 +492,6 @@ mod tests { &block_info, None, platform_version, - None, ) .unwrap(); assert_eq!(actual, expected); @@ -509,8 +502,7 @@ mod tests { false, &block_info, None, - platform_version, - None + platform_version ) .unwrap(), FeeResult::default() @@ -522,8 +514,7 @@ mod tests { true, &block_info, None, - platform_version, - None + platform_version ) .unwrap(), FeeResult::default() @@ -567,7 +558,6 @@ mod tests { &debt_test_block_info(), None, platform_version, - None, ); assert!(matches!(result, Err(Error::Fee(FeeError::Overflow(_))))); assert_eq!( @@ -627,7 +617,6 @@ mod tests { &block_info, None, platform_version, - None, ); if corrupted { assert!(matches!( @@ -654,8 +643,7 @@ mod tests { true, &block_info, Some(&transaction), - platform_version, - None + platform_version ) .is_err()); assert_eq!( @@ -691,8 +679,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..f403c79820f 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)?; @@ -287,7 +285,6 @@ impl Drive { &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/fee/mod.rs b/packages/rs-platform-version/src/version/fee/mod.rs index fcacff7b8df..fc4c28ca52b 100644 --- a/packages/rs-platform-version/src/version/fee/mod.rs +++ b/packages/rs-platform-version/src/version/fee/mod.rs @@ -46,13 +46,13 @@ 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. A new number is needed only for a schedule that changes the +/// storage rate, which also requires refunds priced at the rate active when the bytes were +/// stored: they are priced at the rate of the block that removes the bytes, and +/// `should_keep_one_storage_rate_on_every_protocol_version` fails on such a schedule +/// (dashpay/platform#4703 has a version of that rule). Other 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)] @@ -184,3 +184,32 @@ impl From for FeeVersion { } } } + +#[cfg(test)] +mod tests { + use super::*; + use crate::version::PLATFORM_VERSIONS; + + /// A refund is priced at the storage rate of the block that removes the bytes, while the + /// owner paid the rate of the epoch that stored them. Those two only agree while the rate + /// never changes. A schedule that changes it has to make refunds use the storing epoch's rate + /// first; platform state keeps which fee version each epoch ran on for that. + #[test] + fn should_keep_one_storage_rate_on_every_protocol_version() { + let rate = FeeVersion::first() + .storage + .storage_disk_usage_credit_per_byte; + + for platform_version in PLATFORM_VERSIONS { + assert_eq!( + platform_version + .fee_version + .storage + .storage_disk_usage_credit_per_byte, + rate, + "protocol version {} changes the storage rate", + platform_version.protocol_version + ); + } + } +} From f61087d0c4af8fb823acc96298fcad5f25805b33 Mon Sep 17 00:00:00 2001 From: QuantumExplorer Date: Sat, 7 Nov 2026 16:15:41 +0700 Subject: [PATCH 2/5] feat(platform): price storage refunds at the storing epoch's rate from protocol version 15 A refund returns the part of an owner's storage fee not yet paid out to epochs, and that fee was charged at the storage rate of the epoch that stored the bytes. calculate_fee 1, selected by DRIVE_VERSION_V10, reads the protocol version that epoch recorded at its first block (get_epoch_protocol_version) and takes the rate from that version's fee schedule. Bytes stored in the block's own epoch use the block's rate, since that epoch is only recorded at the end of its first block. consume_to_fees_v1 wraps generation 0, handing it each sectioned removal as a basic removal of as many bytes, and prices the refunds itself. calculate_fee reads state now, so it is a Drive method and drops epochs_per_era, which all 171 callers passed from that Drive's config. FeeRefunds::from_storage_removal takes a rate per storing epoch, and generation 0 passes the block's rate for every epoch, as before. Every schedule so far has the same storage rate, so no fee changes at any protocol version. TEST_PLATFORM_V4 (mock-versions only) doubles it, so should_price_a_refund_at_the_storage_rate_of_the_epoch_that_stored_the_bytes can tell the epochs apart. The pin on one storage rate is no longer needed and is removed. Co-Authored-By: Claude Opus 5.5 --- book/src/contributing/coding-conventions.md | 8 +- book/src/drive/batch-operations.md | 3 +- book/src/drive/cost-tracking.md | 8 +- book/src/drive/finalize-tasks.md | 2 +- book/src/fees/overview.md | 12 +- .../src/state-transitions/drive-operations.md | 8 +- packages/rs-dpp/src/fee/fee_result/refunds.rs | 84 ++++--- .../state_v1/mod.rs | 17 +- .../state_v0/mod.rs | 17 +- .../token/token_shielded_pool_common/mod.rs | 3 +- .../batch/state/v0/fetch_contender.rs | 3 +- .../v0/property_constraint_aggregates.rs | 3 +- .../transform_into_action/v0/mod.rs | 3 +- .../v0/mod.rs | 3 +- .../v1/mod.rs | 3 +- .../fetch_action_fee_multiplier/v0/mod.rs | 8 +- .../fee_pots/fetch_contract_fee_pot/mod.rs | 9 +- .../get_fetch/fetch_contract/v0/mod.rs | 6 +- .../get_contract_with_fetch_info/v0/mod.rs | 18 +- .../contract/insert/add_description/v0/mod.rs | 3 +- .../insert/add_new_keywords/v0/mod.rs | 3 +- .../contract/insert/insert_contract/v0/mod.rs | 3 +- .../contract/insert/insert_contract/v1/mod.rs | 3 +- .../contract/insert/insert_contract/v2/mod.rs | 3 +- .../moderation/add_contract_ban/v0/mod.rs | 3 +- .../add_contract_suspension/v0/mod.rs | 3 +- .../moderation/add_contract_warning/v0/mod.rs | 3 +- .../fetch_contract_document_removals/mod.rs | 9 +- .../mod.rs | 18 +- .../fetch_contract_moderation_status/mod.rs | 9 +- .../fetch_contract_team_action/mod.rs | 9 +- .../fetch_contract_team_action_signers/mod.rs | 9 +- .../moderation/remove_contract_ban/v0/mod.rs | 3 +- .../remove_contract_suspension/v0/mod.rs | 3 +- .../remove_contract_warnings/v0/mod.rs | 3 +- .../contract/update/update_contract/v0/mod.rs | 3 +- .../contract/update/update_contract/v1/mod.rs | 3 +- .../contract/update/update_contract/v2/mod.rs | 3 +- .../update/update_description/v0/mod.rs | 3 +- .../contract/update/update_keywords/v0/mod.rs | 3 +- .../fetch/fetch_contract_group_info/v0/mod.rs | 8 +- .../v0/mod.rs | 8 +- .../insert/insert_contract_group/v0/mod.rs | 3 +- .../v0/mod.rs | 3 +- .../delete_document_for_contract/v0/mod.rs | 3 +- .../delete_document_for_contract_id/v0/mod.rs | 3 +- .../mod.rs | 16 +- .../v0/mod.rs | 3 +- .../document/insert/add_document/v0/mod.rs | 3 +- .../add_document_for_contract/v0/mod.rs | 3 +- .../add_contested_document/v0/mod.rs | 3 +- .../v0/mod.rs | 3 +- .../rs-drive/src/drive/document/query/mod.rs | 24 +- .../query/query_chained_documents/v0/mod.rs | 10 +- .../query/query_composite_documents/v0/mod.rs | 10 +- .../v0/mod.rs | 9 +- .../v0/mod.rs | 9 +- .../document/query/query_documents/v0/mod.rs | 19 +- .../query_documents_with_flags/v0/mod.rs | 9 +- .../update_document_for_contract/v0/mod.rs | 3 +- .../update_document_for_contract_id/v0/mod.rs | 3 +- .../v0/mod.rs | 3 +- .../fetch_action_id_has_signer/v0/mod.rs | 3 +- .../group/insert/add_group_action/v0/mod.rs | 3 +- .../group/insert/add_new_groups/v0/mod.rs | 3 +- .../fetch_identity_contract_nonce/v0/mod.rs | 3 +- .../balance/fetch_identity_balance/v0/mod.rs | 3 +- .../v0/mod.rs | 3 +- .../fetch_full_identity/v0/mod.rs | 8 +- .../nonce/fetch_identity_nonce/v0/mod.rs | 3 +- .../fetch_identity_revision/v0/mod.rs | 3 +- .../insert/add_new_identity/v0/mod.rs | 3 +- .../src/drive/identity/key/budget/mod.rs | 16 +- .../key/fetch/fetch_identity_keys/v0/mod.rs | 8 +- .../v0/mod.rs | 3 +- .../add_new_unique_keys_to_identity/v0/mod.rs | 3 +- .../methods/add_to_identity_balance/v0/mod.rs | 3 +- .../methods/add_to_identity_balance/v1/mod.rs | 3 +- .../methods/disable_identity_keys/v0/mod.rs | 3 +- .../methods/disable_identity_keys/v1/mod.rs | 3 +- .../methods/merge_identity_nonce/v0/mod.rs | 3 +- .../remove_from_identity_balance/v0/mod.rs | 3 +- .../update_identity_key_limits/v0/mod.rs | 3 +- .../update_identity_revision/v0/mod.rs | 3 +- .../rs-drive/src/drive/identity/update/mod.rs | 17 +- .../fetch/single_balance/v0/mod.rs | 3 +- .../src/drive/tokens/apply_status/v0/mod.rs | 3 +- .../add_to_previous_token_balance/v0/mod.rs | 3 +- .../fetch_identities_token_balances/mod.rs | 3 +- .../fetch_identity_token_balance/mod.rs | 3 +- .../fetch_identity_token_balances/mod.rs | 3 +- .../prove_identities_token_balances/mod.rs | 3 +- .../prove_identity_token_balances/mod.rs | 3 +- .../v0/mod.rs | 3 +- .../rs-drive/src/drive/tokens/burn/v0/mod.rs | 3 +- .../fetch_token_contract_info/mod.rs | 3 +- .../fetch_token_direct_purchase_price/mod.rs | 3 +- .../set_direct_purchase_price/mod.rs | 3 +- .../src/drive/tokens/freeze/v0/mod.rs | 3 +- .../info/fetch_identities_token_infos/mod.rs | 3 +- .../info/fetch_identity_token_info/mod.rs | 3 +- .../info/fetch_identity_token_infos/mod.rs | 3 +- .../info/prove_identities_token_infos/mod.rs | 3 +- .../info/prove_identity_token_infos/mod.rs | 3 +- .../rs-drive/src/drive/tokens/mint/v0/mod.rs | 3 +- .../src/drive/tokens/mint_many/v0/mod.rs | 3 +- .../src/drive/tokens/order_escrow/mod.rs | 32 +-- .../src/drive/tokens/shielded_pool/mod.rs | 18 +- .../tokens/status/fetch_token_status/mod.rs | 3 +- .../tokens/status/fetch_token_statuses/mod.rs | 3 +- .../tokens/status/prove_token_statuses/mod.rs | 3 +- .../add_to_token_total_supply/v0/mod.rs | 3 +- .../system/create_token_trees/v0/mod.rs | 3 +- .../system/fetch_token_total_supply/v0/mod.rs | 3 +- .../remove_from_token_total_supply/v0/mod.rs | 3 +- .../src/drive/tokens/transfer/v0/mod.rs | 3 +- .../src/drive/tokens/unfreeze/v0/mod.rs | 3 +- .../v0/mod.rs | 9 +- .../v0/mod.rs | 10 +- .../v0/mod.rs | 3 +- .../register_yes_no_identity_vote/v0/mod.rs | 3 +- .../rs-drive/src/fees/calculate_fee/mod.rs | 214 +++++++++++++----- .../rs-drive/src/fees/calculate_fee/v1/mod.rs | 73 ++++++ packages/rs-drive/src/fees/op.rs | 74 +++++- ..._resource_votes_given_by_identity_query.rs | 6 +- .../query/drive_contested_document_query.rs | 3 +- packages/rs-drive/src/query/mod.rs | 9 +- .../query/vote_poll_contestant_votes_query.rs | 6 +- .../src/query/vote_poll_vote_state_query.rs | 6 +- .../vote_polls_by_document_type_query.rs | 3 +- .../src/query/vote_polls_by_end_date_query.rs | 6 +- .../state_generated_properties.rs | 3 +- .../v0/transformer.rs | 3 +- .../v0/transformer.rs | 6 +- .../v0/transformer.rs | 3 +- .../v0/transformer.rs | 12 +- .../v0/transformer.rs | 6 +- .../v0/transformer.rs | 6 +- .../v0/transformer.rs | 3 +- .../v0/transformer.rs | 3 +- .../v0/transformer.rs | 6 +- .../v0/transformer.rs | 6 +- .../v0/transformer.rs | 3 +- .../v0/transformer.rs | 6 +- .../v0/transformer.rs | 6 +- .../v0/transformer.rs | 3 +- .../v0/transformer.rs | 3 +- .../v0/transformer.rs | 6 +- .../v0/transformer.rs | 6 +- .../v0/transformer.rs | 3 +- .../apply_drive_operations/v0/mod.rs | 3 +- .../apply_drive_operations/v1/mod.rs | 3 +- .../apply_drive_operations/v2/mod.rs | 3 +- .../src/version/drive_versions/v10.rs | 11 +- .../src/version/fee/mod.rs | 39 +--- .../src/version/mocks/mod.rs | 1 + .../src/version/mocks/v4_test.rs | 24 ++ .../src/version/protocol_version.rs | 9 +- .../src/version/system_limits/mod.rs | 5 +- .../rs-platform-version/src/version/v15.rs | 9 +- 160 files changed, 669 insertions(+), 680 deletions(-) create mode 100644 packages/rs-drive/src/fees/calculate_fee/v1/mod.rs create mode 100644 packages/rs-platform-version/src/version/mocks/v4_test.rs diff --git a/book/src/contributing/coding-conventions.md b/book/src/contributing/coding-conventions.md index 830a420a641..3b79f66926c 100644 --- a/book/src/contributing/coding-conventions.md +++ b/book/src/contributing/coding-conventions.md @@ -179,11 +179,9 @@ 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 must not change the storage rate on its own. Refunds are priced at -the rate of the block that removes the bytes, which is right only while every -schedule has the same rate, and -`should_keep_one_storage_rate_on_every_protocol_version` fails otherwise. See -the [Fee System Overview](../fees/overview.md). +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 diff --git a/book/src/drive/batch-operations.md b/book/src/drive/batch-operations.md index cb7ff81730d..a37445f6d75 100644 --- a/book/src/drive/batch-operations.md +++ b/book/src/drive/batch-operations.md @@ -146,11 +146,10 @@ 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, ) } diff --git a/book/src/drive/cost-tracking.md b/book/src/drive/cost-tracking.md index 314d43a1982..7d0396b1818 100644 --- a/book/src/drive/cost-tracking.md +++ b/book/src/drive/cost-tracking.md @@ -179,7 +179,7 @@ pub fn consume_to_fees_v0( removal_per_epoch_by_identifier, epoch.index, epochs_per_era, - fee_version, + |_| Ok(fee_version.storage.storage_disk_usage_credit_per_byte), )?, system_amount) } }; @@ -202,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 ddb782f2c38..8c5bf874e82 100644 --- a/book/src/drive/finalize-tasks.md +++ b/book/src/drive/finalize-tasks.md @@ -149,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 5d6e2ffd46a..02c5523939d 100644 --- a/book/src/fees/overview.md +++ b/book/src/fees/overview.md @@ -482,11 +482,13 @@ 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. -A refund is priced at the storage rate of the schedule of the block that removes -the bytes. Every schedule has had the same rate so far, so that is also the rate -the bytes were paid at. A schedule that changes the rate fails -`should_keep_one_storage_rate_on_every_protocol_version` and has to make refunds -use the storing epoch's rate first. +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 5c5bc3ac851..13a43aedd73 100644 --- a/book/src/state-transitions/drive-operations.md +++ b/book/src/state-transitions/drive-operations.md @@ -238,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, + self.calculate_fee( + None, Some(cost_operations), &block_info.epoch, platform_version, ) } ``` @@ -302,11 +301,10 @@ 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, ) ``` diff --git a/packages/rs-dpp/src/fee/fee_result/refunds.rs b/packages/rs-dpp/src/fee/fee_result/refunds.rs index d553c4d3e0a..ced32741fda 100644 --- a/packages/rs-dpp/src/fee/fee_result/refunds.rs +++ b/packages/rs-dpp/src/fee/fee_result/refunds.rs @@ -11,7 +11,6 @@ use crate::ProtocolError; use bincode::{Decode, DecodeUntrusted, Encode}; use platform_value::Identifier; -use platform_version::version::fee::FeeVersion; use serde::{Deserialize, Serialize}; use std::collections::btree_map::Iter; use std::collections::BTreeMap; @@ -34,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, - fee_version: &FeeVersion, - ) -> 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() @@ -58,7 +60,7 @@ impl FeeRefunds { // TODO Add in multipliers once they have been made let credits: Credits = (bytes as Credits) - .checked_mul(fee_version.storage.storage_disk_usage_credit_per_byte) + .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( @@ -70,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)) } @@ -181,8 +183,15 @@ mod tests { 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]; @@ -192,7 +201,7 @@ mod tests { BytesPerEpochByIdentifier::from_iter([(identity_id, bytes_per_epoch)]); let fee_refunds = - FeeRefunds::from_storage_removal(storage_removal, 3, 20, FeeVersion::first()) + 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"); @@ -202,35 +211,36 @@ mod tests { } #[test] - fn should_price_refunds_at_the_storage_rate_of_the_given_schedule() { + fn should_price_each_storing_epoch_at_its_own_storage_rate() { let identity_id = [0; 32]; - let refund_at = |fee_version: &FeeVersion| { - let bytes_per_epoch = IntMap::from_iter([(1, 100)]); - let storage_removal = - BytesPerEpochByIdentifier::from_iter([(identity_id, bytes_per_epoch)]); - - FeeRefunds::from_storage_removal(storage_removal, 3, 20, fee_version) - .expect("should create fee refunds") - .get(&identity_id) - .expect("should exist") - .get(&1) - .copied() - .expect("should exist") - }; - let expected_refund_at = |rate: Credits| { - calculate_storage_fee_refund_amount_and_leftovers(100 * rate, 1, 3, 20) - .expect("should calculate the refund") - .0 - }; - - let schedule = FeeVersion::first(); - let rate = schedule.storage.storage_disk_usage_credit_per_byte; - let mut doubled_schedule = schedule.clone(); - doubled_schedule.storage.storage_disk_usage_credit_per_byte = 2 * rate; - - assert_eq!(refund_at(schedule), expected_refund_at(rate)); - assert_eq!(refund_at(&doubled_schedule), expected_refund_at(2 * rate)); - assert!(refund_at(&doubled_schedule) > refund_at(schedule)); + 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/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 fd218aa4079..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,14 +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, - ) - .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 aef40205c44..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,14 +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, - ) - .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 278ed6992fc..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,11 +95,10 @@ 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, )?; execution_context.add_operation(ValidationOperation::PrecalculatedOperation(fee_result)); 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 afafbe85b18..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,11 +33,10 @@ 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, )?; match result.contenders.pop() { 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 a4b756941ae..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,11 +468,10 @@ 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, )?; execution_context.add_operation(ValidationOperation::PrecalculatedOperation(fee)); 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 670c636e1b5..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,11 +87,10 @@ 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, )?; execution_context diff --git a/packages/rs-drive/src/drive/contract/apply/apply_contract_with_serialization/v0/mod.rs b/packages/rs-drive/src/drive/contract/apply/apply_contract_with_serialization/v0/mod.rs index 084bc4cd911..a487ac5bdd3 100644 --- a/packages/rs-drive/src/drive/contract/apply/apply_contract_with_serialization/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/apply/apply_contract_with_serialization/v0/mod.rs @@ -57,11 +57,10 @@ impl Drive { )?; cost_operations.push(CalculatedCostOperation(fetch_cost)); - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/contract/apply/apply_contract_with_serialization/v1/mod.rs b/packages/rs-drive/src/drive/contract/apply/apply_contract_with_serialization/v1/mod.rs index 3adb443d51c..1685a12ad23 100644 --- a/packages/rs-drive/src/drive/contract/apply/apply_contract_with_serialization/v1/mod.rs +++ b/packages/rs-drive/src/drive/contract/apply/apply_contract_with_serialization/v1/mod.rs @@ -61,11 +61,10 @@ impl Drive { )?; cost_operations.push(CalculatedCostOperation(fetch_cost)); - let fees = Drive::calculate_fee( + let fees = self.calculate_fee( None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/contract/fee_pots/fetch_action_fee_multiplier/v0/mod.rs b/packages/rs-drive/src/drive/contract/fee_pots/fetch_action_fee_multiplier/v0/mod.rs index 7da03f21576..03b2b1c9642 100644 --- a/packages/rs-drive/src/drive/contract/fee_pots/fetch_action_fee_multiplier/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/fee_pots/fetch_action_fee_multiplier/v0/mod.rs @@ -46,13 +46,7 @@ impl Drive { "the fee_multiplier_permille must be set in fees to price document action fees", )))?, }; - let fee = Drive::calculate_fee( - None, - Some(drive_operations), - epoch, - self.config.epochs_per_era, - platform_version, - )?; + let fee = self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((fee, multiplier)) } } diff --git a/packages/rs-drive/src/drive/contract/fee_pots/fetch_contract_fee_pot/mod.rs b/packages/rs-drive/src/drive/contract/fee_pots/fetch_contract_fee_pot/mod.rs index c523f6e64d2..28de599cc5d 100644 --- a/packages/rs-drive/src/drive/contract/fee_pots/fetch_contract_fee_pot/mod.rs +++ b/packages/rs-drive/src/drive/contract/fee_pots/fetch_contract_fee_pot/mod.rs @@ -96,13 +96,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, - )?; + let fee = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((fee, state)) } version => Err(Error::Drive(DriveError::UnknownVersionMismatch { 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 d32c709d85a..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,11 +89,10 @@ 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, ) )) @@ -145,11 +144,10 @@ 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, ) )) 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 6e8eacb62cc..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,14 +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, - ) - .map(Some) + self.calculate_fee(None, Some(drive_operations), epoch, platform_version) + .map(Some) })?; Ok((fee_result, contract_fetch_info)) } @@ -164,13 +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, - )?; + 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_description/v0/mod.rs b/packages/rs-drive/src/drive/contract/insert/add_description/v0/mod.rs index 5c60270a990..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,11 +40,10 @@ 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, )?; 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 91700c8e931..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,11 +38,10 @@ 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, )?; 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 cb6d65e327d..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,11 +65,10 @@ impl Drive { platform_version, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, ) } 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 ab14c4b7cd4..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,11 +56,10 @@ impl Drive { platform_version, )?; - Drive::calculate_fee( + self.calculate_fee( None, Some(drive_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, ) } 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 b4b8442379a..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,11 +53,10 @@ 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, ) } 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 f81316d0e43..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,11 +50,10 @@ 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, ) } 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 36d7a82f11c..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,11 +55,10 @@ 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, ) } 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 dcc66dc23dc..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,11 +53,10 @@ 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, ) } 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 aa62deb1a90..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,13 +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, - )?; + 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 ab9d89b3799..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,13 +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, - )?; + let fee = + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)?; Ok((fee, counts)) } version => Err(Error::Drive(DriveError::UnknownVersionMismatch { @@ -178,13 +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, - )?; + 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 35d3cf51252..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,13 +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, - )?; + 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 b2d2e63e440..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,13 +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, - )?; + 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 31ac843a0cd..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,13 +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, - )?; + 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 107a97d7f28..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,11 +47,10 @@ 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, ) } 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 c0a50e3d119..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,11 +47,10 @@ 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, ) } 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 270882a802a..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,11 +47,10 @@ 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, ) } 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 1894e755610..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 @@ -129,11 +129,10 @@ 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, ) } 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 71c7aeb38ac..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 @@ -125,11 +125,10 @@ 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, ) } 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 b6a18b4681a..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 @@ -134,11 +134,10 @@ 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, ) } 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 7a2cc49a8f4..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,11 +40,10 @@ 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, )?; 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 433b84b5107..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,11 +40,10 @@ 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, )?; 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 8787d6e4263..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,13 +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, - )?; + 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 5fed79c1532..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,13 +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, - )?; + 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 bed3ab3c115..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,11 +48,10 @@ 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, ) } 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 4811fba6590..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,11 +69,10 @@ 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, ) } 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 25c326282e4..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 @@ -36,11 +36,10 @@ 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, )?; Ok(fees) 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 e06130345f0..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 @@ -54,11 +54,10 @@ 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, )?; 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 21832f43ecd..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 @@ -335,14 +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, - ) - .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/v0/mod.rs b/packages/rs-drive/src/drive/document/delete/delete_index_only_document_for_contract_operations/v0/mod.rs index 32cc1fecb0d..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 @@ -78,11 +78,10 @@ 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, ) } 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 624d8ef0789..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,11 +59,10 @@ 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, )?; Ok(fees) 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 8cf771bf21a..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 @@ -33,11 +33,10 @@ 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, )?; Ok(fees) 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 ad4e110c640..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,11 +69,10 @@ 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, )?; 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 0d336763038..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,11 +39,10 @@ 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, )?; Ok(fees) diff --git a/packages/rs-drive/src/drive/document/query/mod.rs b/packages/rs-drive/src/drive/document/query/mod.rs index 4e981be3235..5d11756cd51 100644 --- a/packages/rs-drive/src/drive/document/query/mod.rs +++ b/packages/rs-drive/src/drive/document/query/mod.rs @@ -138,11 +138,10 @@ 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, )?; fee_result.processing_fee @@ -192,11 +191,10 @@ 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, )?; fee_result.processing_fee @@ -230,11 +228,10 @@ 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, )?; fee_result.processing_fee @@ -292,11 +289,10 @@ 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, )?; fee_result.processing_fee @@ -356,11 +352,10 @@ 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, )?; fee_result.processing_fee @@ -456,13 +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, - )?; + 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_chained_documents/v0/mod.rs b/packages/rs-drive/src/drive/document/query/query_chained_documents/v0/mod.rs index fca8648c24e..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,14 +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, - )? - .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 3b8cab1c1da..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,14 +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, - )? - .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 88d1e2e42fb..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,13 +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, - )?; + 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 ee1585f22d2..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,13 +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, - )?; + 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 29bd4897820..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,14 +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, - )? - .processing_fee + self.calculate_fee(None, Some(drive_operations), epoch, platform_version)? + .processing_fee } else { 0 }; @@ -138,13 +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, - )?; + 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_with_flags/v0/mod.rs b/packages/rs-drive/src/drive/document/query/query_documents_with_flags/v0/mod.rs index cadf3463c4a..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,13 +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, - )?; + 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/update_document_for_contract/v0/mod.rs b/packages/rs-drive/src/drive/document/update/update_document_for_contract/v0/mod.rs index ca97e13eb34..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 @@ -50,11 +50,10 @@ 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, )?; Ok(fees) 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 c4e7ca3ae3d..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 @@ -70,11 +70,10 @@ 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, )?; 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 e63860103bb..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 @@ -55,11 +55,10 @@ 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, )?; 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 35c8b4f2dc9..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,11 +88,10 @@ 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, )?; 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 e9b0bef0d62..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,11 +59,10 @@ 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, )?; 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 d07f345622f..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,11 +39,10 @@ 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, )?; Ok(fees) 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 96732383254..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,11 +106,10 @@ 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, )?; 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 3d81d318409..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,11 +51,10 @@ 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, )?; 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 ba28a1d8665..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,11 +48,10 @@ 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, )?; 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 1e665fbdd14..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,13 +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, - )?; + 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 ee2761846e4..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,11 +100,10 @@ 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, )?; 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 4d82fe311d0..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,11 +100,10 @@ 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, )?; Ok((value, fees)) 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 f24f5ae7067..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,11 +45,10 @@ 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, )?; 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 13952f28878..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,14 +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, - ) - .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 d27d5f7b22a..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,13 +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, - )?; + 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 9614a091eda..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,11 +40,10 @@ 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, )?; 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 677469f28f1..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,11 +40,10 @@ 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, )?; 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 f9c429ddf7d..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,11 +41,10 @@ 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, )?; 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 dae48c72708..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,11 +63,10 @@ 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, )?; 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 f201bd8ba87..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,11 +56,10 @@ 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, )?; 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 244a6329015..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,11 +55,10 @@ 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, )?; 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 29aa387b9f9..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,11 +52,10 @@ 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, )?; 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 7a938a44253..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 @@ -42,11 +42,10 @@ 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, )?; 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 44372b20a07..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,11 +74,10 @@ 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, ) } 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 ed3bcb74937..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 @@ -44,11 +44,10 @@ 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, )?; diff --git a/packages/rs-drive/src/drive/identity/update/mod.rs b/packages/rs-drive/src/drive/identity/update/mod.rs index a224cbcf12e..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,14 +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, - ) - .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); 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 0de46d94340..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,11 +50,10 @@ 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, )?; 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 21425345809..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,11 +32,10 @@ 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, )?; 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 507c9749442..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 @@ -47,11 +47,10 @@ 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, )?; Ok(fees) 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 e8308a1cba4..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,11 +91,10 @@ 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, )?; 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 6d942e0f7b5..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,11 +74,10 @@ 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, )?; 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 6d420ac243e..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,11 +92,10 @@ 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, )?; 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 32af4ecb8de..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,11 +88,10 @@ 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, )?; 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 76e3077705b..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,11 +88,10 @@ 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, )?; 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 f6cb1ad44c1..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 @@ -45,11 +45,10 @@ 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, )?; Ok(fees) 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 24a7cadf843..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,11 +31,10 @@ 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, )?; 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 046d44e6d11..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,11 +64,10 @@ 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, )?; 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 ae855dd4cfe..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,11 +62,10 @@ 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, )?; 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 df4c180b0bd..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,11 +40,10 @@ 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, )?; 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 f5332b0f75e..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,11 +35,10 @@ 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, )?; 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 3397923109e..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,11 +92,10 @@ 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, )?; 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 3e7ffe1a8d4..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,11 +73,10 @@ 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, )?; 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 2d3ea0edfc6..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,11 +92,10 @@ 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, )?; 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 fe5f507c833..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,11 +88,10 @@ 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, )?; 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 b5bbf53aa8a..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,11 +88,10 @@ 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, )?; 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 54e73a7c537..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,11 +35,10 @@ 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, )?; 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 c7572aa4be2..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,11 +34,10 @@ 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, )?; 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 f6c107e2f36..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,14 +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, - ) - .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" @@ -712,14 +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, - ) - .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()); 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 e31bd0d5b0d..0e138cd4053 100644 --- a/packages/rs-drive/src/drive/tokens/shielded_pool/mod.rs +++ b/packages/rs-drive/src/drive/tokens/shielded_pool/mod.rs @@ -751,15 +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, - ) - .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 77696b5a9cf..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,11 +56,10 @@ 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, )?; 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 815c514712c..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,11 +76,10 @@ 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, )?; 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 76bd482f0d0..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,11 +72,10 @@ 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, )?; 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 bb1d2de7921..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,11 +40,10 @@ 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, )?; 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 1596b6d8a24..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,11 +54,10 @@ 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, )?; 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 5195b2299ff..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,11 +45,10 @@ 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, )?; Ok((token_amount, fees)) 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 4dc39cac736..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,11 +36,10 @@ 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, )?; 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 504148348d3..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,11 +33,10 @@ 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, )?; 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 eac8abd97fd..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,11 +35,10 @@ 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, )?; 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 c639045eff3..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,13 +93,8 @@ impl Drive { } }; - let fee_result = Drive::calculate_fee( - None, - Some(cost_operations), - epoch, - self.config.epochs_per_era, - platform_version, - )?; + 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 d07069d62a7..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,15 +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, - ) - }) + .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 200e351d8bd..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,11 +52,10 @@ 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, )?; 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 ea68326aa22..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,11 +41,10 @@ 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, )?; 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 16d7dd29969..8b3febbd38c 100644 --- a/packages/rs-drive/src/fees/calculate_fee/mod.rs +++ b/packages/rs-drive/src/fees/calculate_fee/mod.rs @@ -8,9 +8,14 @@ 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( @@ -30,10 +35,10 @@ 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, ) -> Result { match platform_version.drive.methods.fees.calculate_fee { @@ -41,12 +46,13 @@ impl Drive { base_operations, drive_operations, epoch, - epochs_per_era, + self.config.epochs_per_era, &platform_version.fee_version, ), + 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, })), } @@ -56,73 +62,112 @@ impl Drive { #[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::epoch::DEFAULT_EPOCHS_PER_ERA; + use dpp::fee::Credits; use dpp::version::fee::FeeVersion; - use dpp::version::PLATFORM_VERSIONS; + 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; - /// Refunds used to be priced against an empty fee history, which resolves every epoch to the - /// first schedule. This holds every protocol version to that amount now that they read the - /// rate from their own schedule. - #[test] - fn should_price_a_refund_the_same_at_every_protocol_version() { - const OWNER: [u8; 32] = [7; 32]; - const STORING_EPOCH: u16 = 12; - const REMOVED_BYTES: u32 = 1_000; - const REMOVED_SYSTEM_BYTES: u32 = 50; - let removing_epoch = Epoch::new(15).expect("expected an epoch"); - - let (expected_refund, _) = calculate_storage_fee_refund_amount_and_leftovers( - REMOVED_BYTES as u64 - * FeeVersion::first() - .storage - .storage_disk_usage_credit_per_byte, - STORING_EPOCH, - removing_epoch.index, - DEFAULT_EPOCHS_PER_ERA, - ) - .expect("expected a refund"); - assert!(expected_refund > 0); + const OWNER: [u8; 32] = [7; 32]; + const REMOVED_BYTES: u32 = 1_000; + const REMOVED_SYSTEM_BYTES: u32 = 50; + const REMOVING_EPOCH: u16 = 15; - for platform_version in PLATFORM_VERSIONS { - let mut removal = StorageRemovalPerEpochByIdentifier::default(); + /// 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(STORING_EPOCH, REMOVED_SYSTEM_BYTES); - let removed_bytes = LowLevelDriveOperation::CalculatedCostOperation(OperationCost { - storage_cost: StorageCost { - removed_bytes: StorageRemovedBytes::SectionedStorageRemoval(removal), - ..Default::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() - }); - - let fee_result = Drive::calculate_fee( - None, - Some(vec![removed_bytes]), - &removing_epoch, - DEFAULT_EPOCHS_PER_ERA, - platform_version, - ) - .expect("expected to calculate the fee"); + }, + ..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!( - fee_result - .fee_refunds - .get(&OWNER) - .and_then(|credits_per_epoch| { - credits_per_epoch.get(&STORING_EPOCH).copied() - }), + owner_refund(&fee_result, 12), Some(expected_refund), "protocol version {}", platform_version.protocol_version @@ -130,4 +175,63 @@ mod tests { 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/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 b3dfe0d035b..0c49387c897 100644 --- a/packages/rs-drive/src/fees/op.rs +++ b/packages/rs-drive/src/fees/op.rs @@ -30,7 +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::block::epoch::{Epoch, EpochIndex}; use dpp::fee::fee_result::refunds::FeeRefunds; use dpp::fee::fee_result::{FeeResult, LifetimeStorageFees}; use dpp::fee::Credits; @@ -422,17 +422,19 @@ impl LowLevelDriveOperation { let system_amount = removal_per_epoch_by_identifier .remove(&Identifier::default()) .map_or(0, |a| a.values().sum()); - // Every shipped schedule has the same storage rate and this arm - // used to price all of them against the first one, so reading it - // from the block's schedule changes no refund at any protocol - // version. `should_keep_one_storage_rate_on_every_protocol_version` - // fails if a schedule ever changes the rate. + // 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, - fee_version, + |_| Ok::<_, Error>(storage_rate), )?, system_amount, ) @@ -450,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 bb77c006061..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,11 +65,10 @@ 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, )?; fee_result.processing_fee @@ -116,11 +115,10 @@ 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, )?; fee_result.processing_fee 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 877b74dcabf..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,11 +116,10 @@ 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, )?; fee_result.processing_fee diff --git a/packages/rs-drive/src/query/mod.rs b/packages/rs-drive/src/query/mod.rs index 04796542df5..81586ca16be 100644 --- a/packages/rs-drive/src/query/mod.rs +++ b/packages/rs-drive/src/query/mod.rs @@ -3752,11 +3752,10 @@ 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, )?; fee_result.processing_fee @@ -3808,11 +3807,10 @@ 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, )?; fee_result.processing_fee @@ -3866,11 +3864,10 @@ 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, )?; fee_result.processing_fee 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 60f1bec06ec..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,11 +133,10 @@ 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, )?; fee_result.processing_fee @@ -179,11 +178,10 @@ 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, )?; fee_result.processing_fee 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 f0dc45aa662..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,11 +297,10 @@ 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, )?; fee_result.processing_fee @@ -344,11 +343,10 @@ 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, )?; fee_result.processing_fee 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 2f5f3e483e5..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,11 +233,10 @@ 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, )?; fee_result.processing_fee 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 a1fc99d8d0d..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,11 +377,10 @@ 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, )?; fee_result.processing_fee @@ -421,11 +420,10 @@ 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, )?; fee_result.processing_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 20ddbd864e7..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,13 +78,12 @@ 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, )?)?; if calculate_token_id(token_contract_id.as_bytes(), position) != token_id.to_buffer() { 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 53443a0df65..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,11 +61,10 @@ 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, )?; 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 e40e7415175..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,11 +82,10 @@ 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, )?; @@ -203,11 +202,10 @@ 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, )?; 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 dcda0e59742..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,11 +71,10 @@ 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, )?; 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 dc2511e0e1f..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,11 +157,10 @@ 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, )?; @@ -296,11 +295,10 @@ 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, )?; @@ -418,11 +416,10 @@ 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, )?; @@ -585,11 +582,10 @@ 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, )?)?; if let Some(claimed_at_ms) = already_claimed_at { 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 44f8022e018..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,11 +79,10 @@ 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, )?; @@ -187,11 +186,10 @@ 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, )?; 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 ee0ac65ee1c..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,11 +90,10 @@ 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, )?; @@ -236,11 +235,10 @@ 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, )?; 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 be951170034..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,11 +62,10 @@ 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, )?; 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 b88ef6ebde6..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,11 +92,10 @@ 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, )?; 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 c265cb104e4..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,11 +78,10 @@ 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, )?; @@ -186,11 +185,10 @@ 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, )?; 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 860db84173d..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,11 +78,10 @@ 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, )?; @@ -186,11 +185,10 @@ 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, )?; 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 f375da9d8a2..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,11 +61,10 @@ 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, )?; 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 116f84ce3d3..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,11 +87,10 @@ 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, )?; @@ -263,11 +262,10 @@ 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, )?; 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 bc32adb9954..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,11 +78,10 @@ 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, )?; @@ -188,11 +187,10 @@ 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, )?; 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 d13d70150db..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,11 +61,10 @@ 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, )?; 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 4157bb91b4d..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,11 +60,10 @@ 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, )?; 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 85dd5b92b1b..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,11 +73,10 @@ 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, )?; @@ -156,11 +155,10 @@ 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, )?; 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 c1083718617..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,11 +78,10 @@ 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, )?; @@ -186,11 +185,10 @@ 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, )?; 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 610cd0aed57..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,11 +62,10 @@ 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, )?; 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 74d8b2ca956..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 @@ -105,11 +105,10 @@ impl Drive { } } - Drive::calculate_fee( + self.calculate_fee( None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, ) } 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 4089c708f2b..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 @@ -239,11 +239,10 @@ impl Drive { } } - Drive::calculate_fee( + self.calculate_fee( None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, ) } 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 f403c79820f..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 @@ -279,11 +279,10 @@ impl Drive { } } - Drive::calculate_fee( + self.calculate_fee( None, Some(cost_operations), &block_info.epoch, - self.config.epochs_per_era, platform_version, ) } 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 fc4c28ca52b..fa3ebf39073 100644 --- a/packages/rs-platform-version/src/version/fee/mod.rs +++ b/packages/rs-platform-version/src/version/fee/mod.rs @@ -47,12 +47,10 @@ pub type FeeVersionNumber = u32; /// appended with the next number and never skips or reuses one. /// /// Saved state keeps only the number and reloads the entry registered here, and block execution -/// does not read what it reloads. A new number is needed only for a schedule that changes the -/// storage rate, which also requires refunds priced at the rate active when the bytes were -/// stored: they are priced at the rate of the block that removes the bytes, and -/// `should_keep_one_storage_rate_on_every_protocol_version` fails on such a schedule -/// (dashpay/platform#4703 has a version of that rule). Other schedules keep the previous number, -/// which is why `FEE_VERSION2` to `FEE_VERSION4` all carry 1 and are not listed. +/// 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)] @@ -184,32 +182,3 @@ impl From for FeeVersion { } } } - -#[cfg(test)] -mod tests { - use super::*; - use crate::version::PLATFORM_VERSIONS; - - /// A refund is priced at the storage rate of the block that removes the bytes, while the - /// owner paid the rate of the epoch that stored them. Those two only agree while the rate - /// never changes. A schedule that changes it has to make refunds use the storing epoch's rate - /// first; platform state keeps which fee version each epoch ran on for that. - #[test] - fn should_keep_one_storage_rate_on_every_protocol_version() { - let rate = FeeVersion::first() - .storage - .storage_disk_usage_credit_per_byte; - - for platform_version in PLATFORM_VERSIONS { - assert_eq!( - platform_version - .fee_version - .storage - .storage_disk_usage_credit_per_byte, - rate, - "protocol version {} changes the storage rate", - platform_version.protocol_version - ); - } - } -} 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) From 388829c21d1c1328dd51a9df8415cc279db55767 Mon Sep 17 00:00:00 2001 From: QuantumExplorer Date: Mon, 9 Nov 2026 15:46:29 +0700 Subject: [PATCH 3/5] fix(platform): charge the read of a storing epoch's record and keep the current epoch check From protocol version 15 a refund reads the protocol version of the epoch that stored the bytes. The read now goes to the processing fee, once per earlier storing epoch in a calculation. from_storage_removal checks the current epoch's bound again, as it did before the rate became a closure. The fast_forward_to_block test helper records the protocol version of an epoch it jumps to without processing the change, as the epoch's first block would. Co-Authored-By: Claude Opus 5.5 --- book/src/drive/cost-tracking.md | 4 +- book/src/fees/overview.md | 5 +- packages/rs-dpp/src/fee/fee_result/refunds.rs | 33 ++++++++++- .../src/test/helpers/fast_forward_to_block.rs | 16 +++++ .../epochs/get_epoch_protocol_version/mod.rs | 42 ++++++++++++++ .../get_epoch_protocol_version/v0/mod.rs | 29 ++++++++-- .../rs-drive/src/fees/calculate_fee/mod.rs | 58 +++++++++++++++---- .../rs-drive/src/fees/calculate_fee/v1/mod.rs | 37 ++++++++++-- packages/rs-drive/src/fees/op.rs | 4 +- 9 files changed, 199 insertions(+), 29 deletions(-) diff --git a/book/src/drive/cost-tracking.md b/book/src/drive/cost-tracking.md index 7d0396b1818..26b05d7d00b 100644 --- a/book/src/drive/cost-tracking.md +++ b/book/src/drive/cost-tracking.md @@ -206,7 +206,9 @@ Generation 0 prices every refund at the current block's storage rate. From proto `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`. +version from the epoch's tree, so it is a method on `Drive`. The read is charged to the +processing fee, once per earlier storing epoch in a calculation; bytes stored in the block's own +epoch need no read. Estimated costs carry no storing epochs, so an estimate has no such read. ## Ephemeral Cost Calculation diff --git a/book/src/fees/overview.md b/book/src/fees/overview.md index 02c5523939d..30afc2e6ef3 100644 --- a/book/src/fees/overview.md +++ b/book/src/fees/overview.md @@ -485,8 +485,9 @@ 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 +fee schedule has the rate, so `Drive::calculate_fee` reads it from there and adds +the read to the processing fee, once per earlier storing epoch in a calculation. +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. diff --git a/packages/rs-dpp/src/fee/fee_result/refunds.rs b/packages/rs-dpp/src/fee/fee_result/refunds.rs index ced32741fda..b6cd36b8d1c 100644 --- a/packages/rs-dpp/src/fee/fee_result/refunds.rs +++ b/packages/rs-dpp/src/fee/fee_result/refunds.rs @@ -3,7 +3,7 @@ //! Fee refunds are calculated based on removed bytes per epoch. //! -use crate::block::epoch::EpochIndex; +use crate::block::epoch::{Epoch, EpochIndex}; use crate::fee::epoch::distribution::calculate_storage_fee_refund_amount_and_leftovers; use crate::fee::epoch::{BytesPerEpoch, CreditsPerEpoch}; use crate::fee::Credits; @@ -39,13 +39,13 @@ impl FeeRefunds { storage_removal: I, current_epoch_index: EpochIndex, epochs_per_era: u16, - storage_rate_of_epoch: F, + mut storage_rate_of_epoch: F, ) -> Result where I: IntoIterator, C: IntoIterator, E: TryInto, - F: Fn(EpochIndex) -> Result, + F: FnMut(EpochIndex) -> Result, Err: From, { let refunds_per_epoch_by_identifier = storage_removal @@ -57,6 +57,8 @@ impl FeeRefunds { .map(|(encoded_epoch_index, bytes)| { let epoch_index : u16 = encoded_epoch_index.try_into().map_err(|_| ProtocolError::Overflow("can't fit u64 epoch index from StorageRemovalPerEpochByIdentifier to u16 EpochIndex"))?; + Epoch::new(current_epoch_index)?; + // TODO Add in multipliers once they have been made let credits: Credits = (bytes as Credits) @@ -182,6 +184,7 @@ mod tests { mod from_storage_removal { use super::*; + use crate::block::epoch::MAX_EPOCH; use nohash_hasher::IntMap; use platform_version::version::fee::FeeVersion; use std::iter::FromIterator; @@ -210,6 +213,30 @@ mod tests { assert!(credits_per_epoch.get(&1).is_some()); } + #[test] + fn should_refuse_a_current_epoch_above_the_maximum() { + let bytes_per_epoch = IntMap::from_iter([(1, 100)]); + let storage_removal = + BytesPerEpochByIdentifier::from_iter([([0; 32], bytes_per_epoch)]); + + assert!(FeeRefunds::from_storage_removal( + storage_removal.clone(), + MAX_EPOCH, + 20, + first_schedule_rate + ) + .is_ok()); + assert!(matches!( + FeeRefunds::from_storage_removal( + storage_removal, + MAX_EPOCH + 1, + 20, + first_schedule_rate + ), + Err(ProtocolError::Overflow(_)) + )); + } + #[test] fn should_price_each_storing_epoch_at_its_own_storage_rate() { let identity_id = [0; 32]; 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 7dfac51d0e7..7f45c8673e9 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 @@ -13,7 +13,10 @@ use crate::test::helpers::setup::TempPlatform; use dpp::block::block_info::BlockInfo; use dpp::block::epoch::Epoch; use dpp::block::extended_block_info::v0::ExtendedBlockInfoV0; +use drive::drive::credit_pools::epochs::operations_factory::EpochOperations; use drive::drive::credit_pools::operations::update_unpaid_epoch_index_operation; +use drive::util::batch::grovedb_op_batch::GroveDbOpBatchV0Methods; +use drive::util::batch::GroveDbOpBatch; use platform_version::version::PlatformVersion; use std::sync::Arc; @@ -68,6 +71,19 @@ pub(crate) fn fast_forward_to_block( core_block_height, epoch_index, ) + } else { + // Bytes stored in this epoch are refunded at the rate of the protocol version it + // recorded, which the epoch's first block writes and this jump skips. + let mut batch = GroveDbOpBatch::new(); + batch.push( + block_info + .epoch + .update_protocol_version_operation(protocol_version), + ); + platform + .drive + .grove_apply_batch(batch, false, None, &platform_version.drive) + .expect("expected to record the epoch's protocol version"); } } diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/get_epoch_protocol_version/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/get_epoch_protocol_version/mod.rs index 9bbc1e8b987..05f6ce6a7f7 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/get_epoch_protocol_version/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/get_epoch_protocol_version/mod.rs @@ -3,6 +3,7 @@ mod v0; use crate::drive::Drive; use crate::error::drive::DriveError; use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; use dpp::block::epoch::Epoch; @@ -44,4 +45,45 @@ impl Drive { })), } } + + /// Returns the protocol version for the epoch and pushes the cost of reading it onto + /// `drive_operations`, for a read a fee has to pay for. + /// + /// # Arguments + /// + /// * `epoch_tree` - An Epoch instance. + /// * `transaction` - A TransactionArg instance. + /// * `drive_operations` - Receives the cost of the read. + /// * `platform_version` - A PlatformVersion instance representing the version of Platform. + /// + /// # Returns + /// + /// A Result containing the protocol version or an Error. + pub fn get_epoch_protocol_version_operations( + &self, + epoch_tree: &Epoch, + transaction: TransactionArg, + drive_operations: &mut Vec, + platform_version: &PlatformVersion, + ) -> Result { + match platform_version + .drive + .methods + .credit_pools + .epochs + .get_epoch_protocol_version + { + 0 => self.get_epoch_protocol_version_operations_v0( + epoch_tree, + transaction, + drive_operations, + platform_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "get_epoch_protocol_version_operations".to_string(), + known_versions: vec![0], + received: version, + })), + } + } } diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/get_epoch_protocol_version/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/get_epoch_protocol_version/v0/mod.rs index 7bf8c93d3d9..c765623d7f3 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/get_epoch_protocol_version/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/get_epoch_protocol_version/v0/mod.rs @@ -1,6 +1,8 @@ use crate::drive::Drive; use crate::error::drive::DriveError; use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::util::grove_operations::push_drive_operation_result; use dpp::block::epoch::Epoch; @@ -17,16 +19,31 @@ impl Drive { transaction: TransactionArg, platform_version: &PlatformVersion, ) -> Result { - let element = self - .grove - .get( + self.get_epoch_protocol_version_operations_v0( + epoch_tree, + transaction, + &mut vec![], + platform_version, + ) + } + + /// Returns the protocol version the epoch recorded and pushes the cost of reading it + pub(super) fn get_epoch_protocol_version_operations_v0( + &self, + epoch_tree: &Epoch, + transaction: TransactionArg, + drive_operations: &mut Vec, + platform_version: &PlatformVersion, + ) -> Result { + let element = push_drive_operation_result( + self.grove.get( &epoch_tree.get_path(), KEY_PROTOCOL_VERSION.as_slice(), transaction, &platform_version.drive.grove_version, - ) - .unwrap() - .map_err(Error::from)?; + ), + drive_operations, + )?; let Element::Item(encoded_protocol_version, _) = element else { return Err(Error::Drive(DriveError::UnexpectedElementType( diff --git a/packages/rs-drive/src/fees/calculate_fee/mod.rs b/packages/rs-drive/src/fees/calculate_fee/mod.rs index 8b3febbd38c..da5517a4790 100644 --- a/packages/rs-drive/src/fees/calculate_fee/mod.rs +++ b/packages/rs-drive/src/fees/calculate_fee/mod.rs @@ -99,13 +99,9 @@ mod tests { 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 { + /// 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. + fn removal_operation(storing_epochs: &[u16]) -> LowLevelDriveOperation { let mut removal = StorageRemovalPerEpochByIdentifier::default(); for storing_epoch in storing_epochs { removal @@ -117,17 +113,24 @@ mod tests { .entry([0; 32]) .or_default() .insert(REMOVING_EPOCH, REMOVED_SYSTEM_BYTES); - let removed_bytes = LowLevelDriveOperation::CalculatedCostOperation(OperationCost { + LowLevelDriveOperation::CalculatedCostOperation(OperationCost { storage_cost: StorageCost { removed_bytes: StorageRemovedBytes::SectionedStorageRemoval(removal), ..Default::default() }, ..Default::default() - }); + }) + } + /// Prices `removal_operation(storing_epochs)` in `REMOVING_EPOCH`. + fn price_removal( + drive: &Drive, + storing_epochs: &[u16], + platform_version: &PlatformVersion, + ) -> Result { drive.calculate_fee( None, - Some(vec![removed_bytes]), + Some(vec![removal_operation(storing_epochs)]), &Epoch::new(REMOVING_EPOCH).expect("expected an epoch"), platform_version, ) @@ -220,6 +223,41 @@ mod tests { ); } + /// One element's bytes cost the same to remove whichever epoch stored them, so what an + /// earlier epoch adds is the read of its record, which one calculation pays for once. + #[test] + fn should_charge_the_read_of_an_earlier_epochs_record_once() { + let latest = PlatformVersion::latest(); + let drive = drive_with_epoch_protocol_versions(&[(12, latest.protocol_version)]); + let processing_fee = |storing_epoch, platform_version| { + price_removal(&drive, &[storing_epoch], platform_version) + .expect("expected to calculate the fee") + .processing_fee + }; + + let fee_without_a_read = processing_fee(REMOVING_EPOCH, latest); + let read_fee = processing_fee(12, latest) - fee_without_a_read; + assert!(read_fee > 0); + + let fee_of_two_removals = drive + .calculate_fee( + None, + Some(vec![removal_operation(&[12]), removal_operation(&[12])]), + &Epoch::new(REMOVING_EPOCH).expect("expected an epoch"), + latest, + ) + .expect("expected to calculate the fee") + .processing_fee; + assert_eq!(fee_of_two_removals, 2 * fee_without_a_read + read_fee); + + // Generation 0 reads nothing. + let protocol_version_14 = PlatformVersion::get(14).expect("expected protocol version 14"); + assert_eq!( + processing_fee(12, protocol_version_14), + processing_fee(REMOVING_EPOCH, protocol_version_14) + ); + } + /// 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] diff --git a/packages/rs-drive/src/fees/calculate_fee/v1/mod.rs b/packages/rs-drive/src/fees/calculate_fee/v1/mod.rs index 11618f1df5e..1def41970b1 100644 --- a/packages/rs-drive/src/fees/calculate_fee/v1/mod.rs +++ b/packages/rs-drive/src/fees/calculate_fee/v1/mod.rs @@ -7,10 +7,13 @@ use dpp::fee::Credits; use dpp::version::PlatformVersion; use dpp::ProtocolError; use enum_map::EnumMap; +use std::collections::btree_map::Entry; +use std::collections::BTreeMap; 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. + /// epoch that stored the bytes and charging for reading each earlier storing epoch's record + /// once. Generation 0 prices every refund at the block's rate and reads nothing. #[inline(always)] pub(super) fn calculate_fee_v1( &self, @@ -28,15 +31,34 @@ impl Drive { )?; if let Some(drive_operations) = drive_operations { + let mut storage_rates = BTreeMap::new(); + let mut record_reads = vec![]; + 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), + |storing_epoch| match storage_rates.entry(storing_epoch) { + Entry::Occupied(rate) => Ok(*rate.get()), + Entry::Vacant(rate) => Ok(*rate.insert(self.storage_rate_of_epoch( + storing_epoch, + epoch, + &mut record_reads, + platform_version, + )?)), + }, )? { aggregate_fee_result.checked_add_assign(drive_fee_result)?; } + + aggregate_fee_result.checked_add_assign(Self::calculate_fee_v0( + None, + Some(record_reads), + epoch, + self.config.epochs_per_era, + &platform_version.fee_version, + )?)?; } Ok(aggregate_fee_result) @@ -48,11 +70,12 @@ impl Drive { /// 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. + /// started, so it is read without a transaction. The cost of that read goes to `record_reads`. fn storage_rate_of_epoch( &self, storing_epoch: EpochIndex, epoch: &Epoch, + record_reads: &mut Vec, platform_version: &PlatformVersion, ) -> Result { if storing_epoch == epoch.index { @@ -61,8 +84,12 @@ impl Drive { .storage .storage_disk_usage_credit_per_byte); } - let protocol_version = - self.get_epoch_protocol_version(&Epoch::new(storing_epoch)?, None, platform_version)?; + let protocol_version = self.get_epoch_protocol_version_operations( + &Epoch::new(storing_epoch)?, + None, + record_reads, + platform_version, + )?; let storing_platform_version = PlatformVersion::get(protocol_version).map_err(ProtocolError::from)?; Ok(storing_platform_version diff --git a/packages/rs-drive/src/fees/op.rs b/packages/rs-drive/src/fees/op.rs index 0c49387c897..6870d7aeb6a 100644 --- a/packages/rs-drive/src/fees/op.rs +++ b/packages/rs-drive/src/fees/op.rs @@ -465,7 +465,7 @@ impl LowLevelDriveOperation { epoch: &Epoch, epochs_per_era: u16, fee_version: &FeeVersion, - storage_rate_of_epoch: impl Fn(EpochIndex) -> Result, + mut storage_rate_of_epoch: impl FnMut(EpochIndex) -> Result, ) -> Result, Error> { let mut sectioned_removals = Vec::new(); let drive_operations = drive_operations @@ -504,7 +504,7 @@ impl LowLevelDriveOperation { removal, epoch.index, epochs_per_era, - &storage_rate_of_epoch, + &mut storage_rate_of_epoch, )?; } Ok(fee_results) From 61e923c21628fd26c40a3721006560e4950df100 Mon Sep 17 00:00:00 2001 From: QuantumExplorer Date: Mon, 9 Nov 2026 16:09:49 +0700 Subject: [PATCH 4/5] test(drive): a refunding moderator deletion also pays for the storing epoch's record From protocol version 15 pricing a refund reads the record of the epoch that stored the bytes. A deletion that forfeits its refund prices nothing and reads nothing, so the two now differ by that read. Co-Authored-By: Claude Opus 5.5 --- .../moderation/document_removal_tests.rs | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) 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 4e0a47ada26..6a4fadaf79a 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 @@ -1320,7 +1320,8 @@ fn should_price_a_forfeiting_deletion_as_one_batch_when_it_rewrites_no_record() let contract = contract_with(true, false, &[POST]); // A moderator's deletion with a fresh record, with or without the forfeiture: nothing but // the document frees bytes, so the forfeiting batch is applied as one, as the other is, - // and costs the same, estimated and applied; only the refund differs. + // and costs the same, estimated and applied, apart from the refund and the read of the + // storing epoch's record that pricing the refund takes. let fees = |forfeiting: bool| { let drive = setup_drive_with_initial_state_structure(Some(platform_version)); insert(&drive, &contract); @@ -1359,7 +1360,30 @@ fn should_price_a_forfeiting_deletion_as_one_batch_when_it_rewrites_no_record() estimated.processing_fee ); assert_eq!(estimated_forfeiting.storage_fee, estimated.storage_fee); - assert_eq!(forfeiting.processing_fee, refunding.processing_fee); + let drive = setup_drive_with_initial_state_structure(Some(platform_version)); + let mut record_read = vec![]; + drive + .get_epoch_protocol_version_operations( + &Epoch::new(0).expect("epoch"), + None, + &mut record_read, + platform_version, + ) + .expect("expected the storing epoch's record"); + let record_read_fee = drive + .calculate_fee( + None, + Some(record_read), + &Epoch::new(3).expect("epoch"), + platform_version, + ) + .expect("expected to price the read") + .processing_fee; + assert!(record_read_fee > 0); + assert_eq!( + forfeiting.processing_fee + record_read_fee, + refunding.processing_fee + ); assert_eq!(forfeiting.storage_fee, refunding.storage_fee); assert!(forfeiting.fee_refunds.0.is_empty()); assert!(refunding.fee_refunds.get(author.as_bytes()).is_some()); From 79263869448686792f19bc34a2857a40ae87a88a Mon Sep 17 00:00:00 2001 From: QuantumExplorer Date: Mon, 9 Nov 2026 17:11:00 +0700 Subject: [PATCH 5/5] docs(platform): record the Rust fee API change in the changelog and fix two comments Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 12 ++++++++++++ .../src/platform_types/platform_state/mod.rs | 3 ++- .../src/version/drive_versions/v10.rs | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e61a28658f2..348c4c85324 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,18 @@ ### Changed +- **drive, dpp (Rust API):** `Drive::calculate_fee` is now a method and no longer takes + `epochs_per_era` or `previous_fee_versions`: + `drive.calculate_fee(base_operations, drive_operations, &epoch, platform_version)`. + `apply_drive_operations`, `update_contract` and the document, identity and token balance + methods that forwarded `previous_fee_versions` no longer take it. + `FeeRefunds::from_storage_removal` takes a closure giving the storage rate of a storing + epoch instead of the map. `dpp::fee::default_costs::{KnownCostItem, EpochCosts}` are + removed; read the rate from `FeeVersion`'s `storage.storage_disk_usage_credit_per_byte`. + Platform state still saves `previous_fee_versions` in the same format. From protocol + version 15 a refund is priced at the storing epoch's rate, and reading that epoch's record + adds to the processing fee (protocol v15 note 27). + - **drive (Rust API):** Drive's cost estimators write their layer descriptions into `drive::util::estimated_layers::EstimatedLayers` instead of `HashMap`, in `DriveLowLevelOperationConverter` 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 ad34ad517a7..51bd37a2884 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 @@ -69,7 +69,8 @@ pub struct PlatformState { pub hpmn_masternode_list: BTreeMap, /// 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. + /// execution: from protocol version 15 a refund uses the schedule of the epoch that stored + /// the bytes, read from that epoch's tree, and before it the removing block's schedule. pub previous_fee_versions: CachedEpochIndexFeeVersions, /// True when a field carried only by the full saved record has changed since 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 3725854df56..19cf3009495 100644 --- a/packages/rs-platform-version/src/version/drive_versions/v10.rs +++ b/packages/rs-platform-version/src/version/drive_versions/v10.rs @@ -132,7 +132,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) + fees: DriveFeesMethodVersions { calculate_fee: 1 }, // changed in v10: refunds at the storing epoch's rate (note 27) ..DRIVE_VERSION_V9.methods }, // changed in v10: GROVE_V5 (protocol v15 note 26), whose gates protocol v15 needs: a private