From bff412608640a65a9080306fc173f998e1072241 Mon Sep 17 00:00:00 2001 From: Quantum Explorer Date: Thu, 5 Mar 2026 08:24:17 +0700 Subject: [PATCH 1/5] refactor(dpp): extract user_fee_increase from StateTransitionLike into its own trait MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit StateTransitionLike previously required all state transitions to implement user_fee_increase() and set_user_fee_increase(), but 4 transitions don't support fee adjustment (MasternodeVote, ShieldedTransfer, Unshield, ShieldedWithdrawal). They returned 0 and ignored the setter. Extract these methods into a new StateTransitionHasUserFeeIncrease trait so the contract is honest — only transitions that actually support fee adjustment implement it. Co-Authored-By: Claude Opus 4.6 --- packages/rs-dpp/src/state_transition/mod.rs | 54 ++++++++++++++++++- .../state_transition_like.rs | 17 +++--- .../v0/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 21 ++++---- .../v0/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 18 ++++--- .../v0/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 18 ++++--- .../v0/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 7 ++- .../v0/state_transition_like.rs | 4 ++ .../batch_transition/state_transition_like.rs | 20 +++---- .../v0/state_transition_like.rs | 4 ++ .../v1/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 22 ++++---- .../v0/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 18 ++++--- .../v0/state_transition_like.rs | 3 ++ .../state_transition_like.rs | 18 ++++--- .../v0/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 18 ++++--- .../v0/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 20 +++---- .../v0/state_transition_like.rs | 4 ++ .../v1/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 18 ++++--- .../v0/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 18 ++++--- .../v0/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 18 ++++--- .../v0/state_transition_like.rs | 4 ++ .../state_transition_like.rs | 14 ----- .../v0/state_transition_like.rs | 10 ---- .../rs-dpp/src/state_transition/traits/mod.rs | 2 + .../state_transition_has_user_fee_increase.rs | 13 +++++ .../traits/state_transition_like.rs | 6 +-- .../batch/advanced_structure/v0/mod.rs | 2 +- .../batch/transformer/v0/mod.rs | 2 +- .../v0/transformer.rs | 2 +- 39 files changed, 273 insertions(+), 146 deletions(-) create mode 100644 packages/rs-dpp/src/state_transition/traits/state_transition_has_user_fee_increase.rs diff --git a/packages/rs-dpp/src/state_transition/mod.rs b/packages/rs-dpp/src/state_transition/mod.rs index 8f41b601ded..e925929d7a9 100644 --- a/packages/rs-dpp/src/state_transition/mod.rs +++ b/packages/rs-dpp/src/state_transition/mod.rs @@ -593,7 +593,24 @@ impl StateTransition { /// returns the fee_increase additional percentage multiplier, it affects only processing costs pub fn user_fee_increase(&self) -> UserFeeIncrease { - call_method!(self, user_fee_increase) + match self { + StateTransition::DataContractCreate(st) => st.user_fee_increase(), + StateTransition::DataContractUpdate(st) => st.user_fee_increase(), + StateTransition::Batch(st) => st.user_fee_increase(), + StateTransition::IdentityCreate(st) => st.user_fee_increase(), + StateTransition::IdentityTopUp(st) => st.user_fee_increase(), + StateTransition::IdentityCreditWithdrawal(st) => st.user_fee_increase(), + StateTransition::IdentityUpdate(st) => st.user_fee_increase(), + StateTransition::IdentityCreditTransfer(st) => st.user_fee_increase(), + StateTransition::IdentityCreditTransferToAddresses(st) => st.user_fee_increase(), + StateTransition::IdentityCreateFromAddresses(st) => st.user_fee_increase(), + StateTransition::IdentityTopUpFromAddresses(st) => st.user_fee_increase(), + StateTransition::AddressFundsTransfer(st) => st.user_fee_increase(), + StateTransition::AddressFundingFromAssetLock(st) => st.user_fee_increase(), + StateTransition::AddressCreditWithdrawal(st) => st.user_fee_increase(), + // These transitions don't support user fee adjustment + StateTransition::MasternodeVote(_) => 0, + } } /// Calculates the estimated minimum fee required for this state transition. @@ -745,7 +762,40 @@ impl StateTransition { /// set fee multiplier pub fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { - call_method!(self, set_user_fee_increase, user_fee_increase) + match self { + StateTransition::DataContractCreate(st) => st.set_user_fee_increase(user_fee_increase), + StateTransition::DataContractUpdate(st) => st.set_user_fee_increase(user_fee_increase), + StateTransition::Batch(st) => st.set_user_fee_increase(user_fee_increase), + StateTransition::IdentityCreate(st) => st.set_user_fee_increase(user_fee_increase), + StateTransition::IdentityTopUp(st) => st.set_user_fee_increase(user_fee_increase), + StateTransition::IdentityCreditWithdrawal(st) => { + st.set_user_fee_increase(user_fee_increase) + } + StateTransition::IdentityUpdate(st) => st.set_user_fee_increase(user_fee_increase), + StateTransition::IdentityCreditTransfer(st) => { + st.set_user_fee_increase(user_fee_increase) + } + StateTransition::IdentityCreditTransferToAddresses(st) => { + st.set_user_fee_increase(user_fee_increase) + } + StateTransition::IdentityCreateFromAddresses(st) => { + st.set_user_fee_increase(user_fee_increase) + } + StateTransition::IdentityTopUpFromAddresses(st) => { + st.set_user_fee_increase(user_fee_increase) + } + StateTransition::AddressFundsTransfer(st) => { + st.set_user_fee_increase(user_fee_increase) + } + StateTransition::AddressFundingFromAssetLock(st) => { + st.set_user_fee_increase(user_fee_increase) + } + StateTransition::AddressCreditWithdrawal(st) => { + st.set_user_fee_increase(user_fee_increase) + } + // These transitions don't support user fee adjustment — no-op + StateTransition::MasternodeVote(_) => {} + } } /// set a new signature diff --git a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/state_transition_like.rs index abd26d8a9d0..2ddaf374b54 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/state_transition_like.rs @@ -1,6 +1,7 @@ use crate::address_funds::AddressWitness; use crate::prelude::UserFeeIncrease; use crate::state_transition::address_credit_withdrawal_transition::AddressCreditWithdrawalTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionType, StateTransitionWitnessSigned, }; @@ -28,14 +29,20 @@ impl StateTransitionLike for AddressCreditWithdrawalTransition { } } - /// returns the fee multiplier + fn unique_identifiers(&self) -> Vec { + match self { + AddressCreditWithdrawalTransition::V0(transition) => transition.unique_identifiers(), + } + } +} + +impl StateTransitionHasUserFeeIncrease for AddressCreditWithdrawalTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { AddressCreditWithdrawalTransition::V0(transition) => transition.user_fee_increase(), } } - /// set a fee multiplier fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { AddressCreditWithdrawalTransition::V0(transition) => { @@ -43,12 +50,6 @@ impl StateTransitionLike for AddressCreditWithdrawalTransition { } } } - - fn unique_identifiers(&self) -> Vec { - match self { - AddressCreditWithdrawalTransition::V0(transition) => transition.unique_identifiers(), - } - } } impl StateTransitionWitnessSigned for AddressCreditWithdrawalTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/v0/state_transition_like.rs index 48f0ceb36f6..209ff0710a0 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/v0/state_transition_like.rs @@ -2,6 +2,7 @@ use crate::address_funds::AddressWitness; use crate::prelude::UserFeeIncrease; use crate::state_transition::address_credit_withdrawal_transition::v0::AddressCreditWithdrawalTransitionV0; use crate::state_transition::address_credit_withdrawal_transition::AddressCreditWithdrawalTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionType}, @@ -41,6 +42,9 @@ impl StateTransitionLike for AddressCreditWithdrawalTransitionV0 { .collect() } +} + +impl StateTransitionHasUserFeeIncrease for AddressCreditWithdrawalTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/state_transition_like.rs index d8e6a271abc..a436a1c865a 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/state_transition_like.rs @@ -1,6 +1,7 @@ use crate::address_funds::AddressWitness; use crate::prelude::UserFeeIncrease; use crate::state_transition::address_funding_from_asset_lock_transition::AddressFundingFromAssetLockTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionSingleSigned, StateTransitionType, StateTransitionWitnessSigned, @@ -31,26 +32,26 @@ impl StateTransitionLike for AddressFundingFromAssetLockTransition { } } - /// returns the fee multiplier - fn user_fee_increase(&self) -> UserFeeIncrease { + fn unique_identifiers(&self) -> Vec { match self { - AddressFundingFromAssetLockTransition::V0(transition) => transition.user_fee_increase(), + AddressFundingFromAssetLockTransition::V0(transition) => { + transition.unique_identifiers() + } } } +} - /// set a fee multiplier - fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { +impl StateTransitionHasUserFeeIncrease for AddressFundingFromAssetLockTransition { + fn user_fee_increase(&self) -> UserFeeIncrease { match self { - AddressFundingFromAssetLockTransition::V0(transition) => { - transition.set_user_fee_increase(user_fee_increase) - } + AddressFundingFromAssetLockTransition::V0(transition) => transition.user_fee_increase(), } } - fn unique_identifiers(&self) -> Vec { + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { AddressFundingFromAssetLockTransition::V0(transition) => { - transition.unique_identifiers() + transition.set_user_fee_increase(user_fee_increase) } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/v0/state_transition_like.rs index 60dc5ba0efa..4e56ccfaa9f 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/v0/state_transition_like.rs @@ -4,6 +4,7 @@ use crate::address_funds::AddressWitness; use crate::prelude::UserFeeIncrease; use crate::state_transition::address_funding_from_asset_lock_transition::v0::AddressFundingFromAssetLockTransitionV0; use crate::state_transition::address_funding_from_asset_lock_transition::AddressFundingFromAssetLockTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransition, StateTransitionSingleSigned, StateTransitionWitnessSigned, }; @@ -40,6 +41,9 @@ impl StateTransitionLike for AddressFundingFromAssetLockTransitionV0 { vec![] } +} + +impl StateTransitionHasUserFeeIncrease for AddressFundingFromAssetLockTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/state_transition_like.rs index 49b27322a1e..5053705b695 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/state_transition_like.rs @@ -1,6 +1,7 @@ use crate::address_funds::AddressWitness; use crate::prelude::UserFeeIncrease; use crate::state_transition::address_funds_transfer_transition::AddressFundsTransferTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionType, StateTransitionWitnessSigned, }; @@ -27,13 +28,20 @@ impl StateTransitionLike for AddressFundsTransferTransition { } } - /// returns the fee multiplier + fn unique_identifiers(&self) -> Vec { + match self { + AddressFundsTransferTransition::V0(transition) => transition.unique_identifiers(), + } + } +} + +impl StateTransitionHasUserFeeIncrease for AddressFundsTransferTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { AddressFundsTransferTransition::V0(transition) => transition.user_fee_increase(), } } - /// set a fee multiplier + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { AddressFundsTransferTransition::V0(transition) => { @@ -41,12 +49,6 @@ impl StateTransitionLike for AddressFundsTransferTransition { } } } - - fn unique_identifiers(&self) -> Vec { - match self { - AddressFundsTransferTransition::V0(transition) => transition.unique_identifiers(), - } - } } impl StateTransitionWitnessSigned for AddressFundsTransferTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/v0/state_transition_like.rs index 998dafc3ec0..edda29b57f6 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/v0/state_transition_like.rs @@ -2,6 +2,7 @@ use crate::address_funds::AddressWitness; use crate::prelude::UserFeeIncrease; use crate::state_transition::address_funds_transfer_transition::v0::AddressFundsTransferTransitionV0; use crate::state_transition::address_funds_transfer_transition::AddressFundsTransferTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionType}, @@ -41,6 +42,9 @@ impl StateTransitionLike for AddressFundsTransferTransitionV0 { .collect() } +} + +impl StateTransitionHasUserFeeIncrease for AddressFundsTransferTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/state_transition_like.rs index 8645f42dfa7..b4afdea3238 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/state_transition_like.rs @@ -1,5 +1,6 @@ use crate::prelude::UserFeeIncrease; use crate::state_transition::data_contract_create_transition::DataContractCreateTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType, }; @@ -26,13 +27,20 @@ impl StateTransitionLike for DataContractCreateTransition { } } - /// returns the fee multiplier + fn unique_identifiers(&self) -> Vec { + match self { + DataContractCreateTransition::V0(transition) => transition.unique_identifiers(), + } + } +} + +impl StateTransitionHasUserFeeIncrease for DataContractCreateTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { DataContractCreateTransition::V0(transition) => transition.user_fee_increase(), } } - /// set a fee multiplier + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { DataContractCreateTransition::V0(transition) => { @@ -40,12 +48,6 @@ impl StateTransitionLike for DataContractCreateTransition { } } } - - fn unique_identifiers(&self) -> Vec { - match self { - DataContractCreateTransition::V0(transition) => transition.unique_identifiers(), - } - } } impl StateTransitionSingleSigned for DataContractCreateTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/state_transition_like.rs index c7dedddb275..66d61a94f9c 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/state_transition_like.rs @@ -1,6 +1,7 @@ use platform_value::BinaryData; use crate::prelude::UserFeeIncrease; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionOwned, StateTransitionType}, @@ -33,6 +34,9 @@ impl StateTransitionLike for DataContractCreateTransitionV0 { )] } +} + +impl StateTransitionHasUserFeeIncrease for DataContractCreateTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/state_transition_like.rs index fde49e35265..ffac26245eb 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/state_transition_like.rs @@ -1,5 +1,6 @@ use crate::prelude::UserFeeIncrease; use crate::state_transition::data_contract_update_transition::DataContractUpdateTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType, }; @@ -32,13 +33,15 @@ impl StateTransitionLike for DataContractUpdateTransition { } } - /// returns the fee increase multiplier +} + +impl StateTransitionHasUserFeeIncrease for DataContractUpdateTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { DataContractUpdateTransition::V0(transition) => transition.user_fee_increase(), } } - /// set a fee increase multiplier + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { DataContractUpdateTransition::V0(transition) => { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/state_transition_like.rs index 54293eec29e..6a0149073d5 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/state_transition_like.rs @@ -3,6 +3,7 @@ use base64::Engine; use platform_value::BinaryData; use crate::prelude::UserFeeIncrease; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionOwned, StateTransitionType}, @@ -36,6 +37,9 @@ impl StateTransitionLike for DataContractUpdateTransitionV0 { )] } +} + +impl StateTransitionHasUserFeeIncrease for DataContractUpdateTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/state_transition_like.rs index 47fc08fb107..6e086e05299 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/state_transition_like.rs @@ -1,5 +1,6 @@ use crate::prelude::UserFeeIncrease; use crate::state_transition::batch_transition::BatchTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType, }; @@ -29,27 +30,28 @@ impl StateTransitionLike for BatchTransition { } } - /// returns the fee multiplier + fn unique_identifiers(&self) -> Vec { + match self { + BatchTransition::V0(transition) => transition.unique_identifiers(), + BatchTransition::V1(transition) => transition.unique_identifiers(), + } + } +} + +impl StateTransitionHasUserFeeIncrease for BatchTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { BatchTransition::V0(transition) => transition.user_fee_increase(), BatchTransition::V1(transition) => transition.user_fee_increase(), } } - /// set a fee multiplier + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { BatchTransition::V0(transition) => transition.set_user_fee_increase(user_fee_increase), BatchTransition::V1(transition) => transition.set_user_fee_increase(user_fee_increase), } } - - fn unique_identifiers(&self) -> Vec { - match self { - BatchTransition::V0(transition) => transition.unique_identifiers(), - BatchTransition::V1(transition) => transition.unique_identifiers(), - } - } } impl StateTransitionSingleSigned for BatchTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v0/state_transition_like.rs index 34af17a83c8..082e6e2875b 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v0/state_transition_like.rs @@ -4,6 +4,7 @@ use crate::state_transition::state_transitions::document::batch_transition::batc use crate::state_transition::batch_transition::{ BatchTransition, BatchTransitionV0, }; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::StateTransitionType::Batch; use crate::state_transition::{StateTransition, StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType}; use crate::version::FeatureVersion; @@ -47,6 +48,9 @@ impl StateTransitionLike for BatchTransitionV0 { .collect() } +} + +impl StateTransitionHasUserFeeIncrease for BatchTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v1/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v1/state_transition_like.rs index 2be84470190..244ebc0d84b 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v1/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v1/state_transition_like.rs @@ -1,6 +1,7 @@ use crate::prelude::UserFeeIncrease; use crate::state_transition::state_transitions::document::batch_transition::batched_transition::document_transition::DocumentTransitionV0Methods; use crate::state_transition::batch_transition::{BatchTransition, BatchTransitionV1}; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::StateTransitionType::Batch; use crate::state_transition::{StateTransition, StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType}; use crate::version::FeatureVersion; @@ -65,6 +66,9 @@ impl StateTransitionLike for BatchTransitionV1 { .collect() } +} + +impl StateTransitionHasUserFeeIncrease for BatchTransitionV1 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/state_transition_like.rs index 448effdf358..6f4622a4a52 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/state_transition_like.rs @@ -1,6 +1,7 @@ use crate::address_funds::AddressWitness; use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_create_from_addresses_transition::IdentityCreateFromAddressesTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionType, StateTransitionWitnessSigned, }; @@ -29,25 +30,26 @@ impl StateTransitionLike for IdentityCreateFromAddressesTransition { } } - /// returns the fee multiplier - fn user_fee_increase(&self) -> UserFeeIncrease { + fn unique_identifiers(&self) -> Vec { match self { - IdentityCreateFromAddressesTransition::V0(transition) => transition.user_fee_increase(), + IdentityCreateFromAddressesTransition::V0(transition) => { + transition.unique_identifiers() + } } } - /// set a fee multiplier - fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { +} + +impl StateTransitionHasUserFeeIncrease for IdentityCreateFromAddressesTransition { + fn user_fee_increase(&self) -> UserFeeIncrease { match self { - IdentityCreateFromAddressesTransition::V0(transition) => { - transition.set_user_fee_increase(user_fee_increase) - } + IdentityCreateFromAddressesTransition::V0(transition) => transition.user_fee_increase(), } } - fn unique_identifiers(&self) -> Vec { + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { IdentityCreateFromAddressesTransition::V0(transition) => { - transition.unique_identifiers() + transition.set_user_fee_increase(user_fee_increase) } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/v0/state_transition_like.rs index ab5bd620350..5fcba5bcd95 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/v0/state_transition_like.rs @@ -2,6 +2,7 @@ use crate::address_funds::AddressWitness; use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_create_from_addresses_transition::v0::IdentityCreateFromAddressesTransitionV0; use crate::state_transition::identity_create_from_addresses_transition::IdentityCreateFromAddressesTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{StateTransition, StateTransitionWitnessSigned}; use crate::{ prelude::Identifier, @@ -40,6 +41,9 @@ impl StateTransitionLike for IdentityCreateFromAddressesTransitionV0 { .collect() } +} + +impl StateTransitionHasUserFeeIncrease for IdentityCreateFromAddressesTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_transition/state_transition_like.rs index 01387649e09..bdb3419d2db 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_transition/state_transition_like.rs @@ -1,5 +1,6 @@ use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_create_transition::IdentityCreateTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType, }; @@ -26,13 +27,20 @@ impl StateTransitionLike for IdentityCreateTransition { } } - /// returns the fee multiplier + fn unique_identifiers(&self) -> Vec { + match self { + IdentityCreateTransition::V0(transition) => transition.unique_identifiers(), + } + } +} + +impl StateTransitionHasUserFeeIncrease for IdentityCreateTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { IdentityCreateTransition::V0(transition) => transition.user_fee_increase(), } } - /// set a fee multiplier + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { IdentityCreateTransition::V0(transition) => { @@ -40,12 +48,6 @@ impl StateTransitionLike for IdentityCreateTransition { } } } - - fn unique_identifiers(&self) -> Vec { - match self { - IdentityCreateTransition::V0(transition) => transition.unique_identifiers(), - } - } } impl StateTransitionSingleSigned for IdentityCreateTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_transition/v0/state_transition_like.rs index ffd900f2582..9772394e1f5 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_transition/v0/state_transition_like.rs @@ -4,6 +4,7 @@ use platform_value::BinaryData; use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_create_transition::IdentityCreateTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionOwned, StateTransitionType}, @@ -41,7 +42,9 @@ impl StateTransitionLike for IdentityCreateTransitionV0 { fn unique_identifiers(&self) -> Vec { vec![BASE64_STANDARD.encode(self.identity_id)] } +} +impl StateTransitionHasUserFeeIncrease for IdentityCreateTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/state_transition_like.rs index 5ae295ad37d..c152a8c3723 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/state_transition_like.rs @@ -1,5 +1,6 @@ use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_credit_transfer_to_addresses_transition::IdentityCreditTransferToAddressesTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType, }; @@ -30,27 +31,28 @@ impl StateTransitionLike for IdentityCreditTransferToAddressesTransition { } } - /// returns the fee multiplier - fn user_fee_increase(&self) -> UserFeeIncrease { + fn unique_identifiers(&self) -> Vec { match self { IdentityCreditTransferToAddressesTransition::V0(transition) => { - transition.user_fee_increase() + transition.unique_identifiers() } } } - /// set a fee multiplier - fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { +} + +impl StateTransitionHasUserFeeIncrease for IdentityCreditTransferToAddressesTransition { + fn user_fee_increase(&self) -> UserFeeIncrease { match self { IdentityCreditTransferToAddressesTransition::V0(transition) => { - transition.set_user_fee_increase(user_fee_increase) + transition.user_fee_increase() } } } - fn unique_identifiers(&self) -> Vec { + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { IdentityCreditTransferToAddressesTransition::V0(transition) => { - transition.unique_identifiers() + transition.set_user_fee_increase(user_fee_increase) } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/v0/state_transition_like.rs index 0010de2759b..3db66ae1d75 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/v0/state_transition_like.rs @@ -3,6 +3,7 @@ use base64::Engine; use platform_value::BinaryData; use crate::prelude::UserFeeIncrease; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionOwned, StateTransitionType}, @@ -45,6 +46,9 @@ impl StateTransitionLike for IdentityCreditTransferToAddressesTransitionV0 { )] } +} + +impl StateTransitionHasUserFeeIncrease for IdentityCreditTransferToAddressesTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/state_transition_like.rs index 6a360117170..016e9898cac 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/state_transition_like.rs @@ -1,5 +1,6 @@ use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_credit_transfer_transition::IdentityCreditTransferTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType, }; @@ -26,13 +27,20 @@ impl StateTransitionLike for IdentityCreditTransferTransition { } } - /// returns the fee multiplier + fn unique_identifiers(&self) -> Vec { + match self { + IdentityCreditTransferTransition::V0(transition) => transition.unique_identifiers(), + } + } +} + +impl StateTransitionHasUserFeeIncrease for IdentityCreditTransferTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { IdentityCreditTransferTransition::V0(transition) => transition.user_fee_increase(), } } - /// set a fee multiplier + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { IdentityCreditTransferTransition::V0(transition) => { @@ -40,12 +48,6 @@ impl StateTransitionLike for IdentityCreditTransferTransition { } } } - - fn unique_identifiers(&self) -> Vec { - match self { - IdentityCreditTransferTransition::V0(transition) => transition.unique_identifiers(), - } - } } impl StateTransitionSingleSigned for IdentityCreditTransferTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/state_transition_like.rs index 35562f314e6..1840ea547d8 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/state_transition_like.rs @@ -3,6 +3,7 @@ use base64::Engine; use platform_value::BinaryData; use crate::prelude::UserFeeIncrease; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionOwned, StateTransitionType}, @@ -46,6 +47,9 @@ impl StateTransitionLike for IdentityCreditTransferTransitionV0 { )] } +} + +impl StateTransitionHasUserFeeIncrease for IdentityCreditTransferTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/state_transition_like.rs index edcefc5c0a3..231220b0be8 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/state_transition_like.rs @@ -1,5 +1,6 @@ use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType, }; @@ -33,14 +34,22 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransition { } } - /// returns the fee multiplier + fn unique_identifiers(&self) -> Vec { + match self { + IdentityCreditWithdrawalTransition::V0(transition) => transition.unique_identifiers(), + IdentityCreditWithdrawalTransition::V1(transition) => transition.unique_identifiers(), + } + } +} + +impl StateTransitionHasUserFeeIncrease for IdentityCreditWithdrawalTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.user_fee_increase(), IdentityCreditWithdrawalTransition::V1(transition) => transition.user_fee_increase(), } } - /// set a fee multiplier + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { IdentityCreditWithdrawalTransition::V0(transition) => { @@ -51,13 +60,6 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransition { } } } - - fn unique_identifiers(&self) -> Vec { - match self { - IdentityCreditWithdrawalTransition::V0(transition) => transition.unique_identifiers(), - IdentityCreditWithdrawalTransition::V1(transition) => transition.unique_identifiers(), - } - } } impl StateTransitionSingleSigned for IdentityCreditWithdrawalTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/state_transition_like.rs index 4cd598f5fa3..f28784d254a 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/state_transition_like.rs @@ -3,6 +3,7 @@ use base64::Engine; use platform_value::BinaryData; use crate::prelude::UserFeeIncrease; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionOwned, StateTransitionType}, @@ -46,6 +47,9 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransitionV0 { )] } +} + +impl StateTransitionHasUserFeeIncrease for IdentityCreditWithdrawalTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/state_transition_like.rs index 8f34f9e20ae..c140df1a33e 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/state_transition_like.rs @@ -3,6 +3,7 @@ use base64::Engine; use platform_value::BinaryData; use crate::prelude::UserFeeIncrease; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionOwned, StateTransitionType}, @@ -45,6 +46,9 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransitionV1 { )] } +} + +impl StateTransitionHasUserFeeIncrease for IdentityCreditWithdrawalTransitionV1 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/state_transition_like.rs index 4aadf684e05..389bca4a9d3 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/state_transition_like.rs @@ -1,6 +1,7 @@ use crate::address_funds::AddressWitness; use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_topup_from_addresses_transition::IdentityTopUpFromAddressesTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionOwned, StateTransitionType, StateTransitionWitnessSigned, }; @@ -29,13 +30,20 @@ impl StateTransitionLike for IdentityTopUpFromAddressesTransition { } } - /// returns the fee multiplier + fn unique_identifiers(&self) -> Vec { + match self { + IdentityTopUpFromAddressesTransition::V0(transition) => transition.unique_identifiers(), + } + } +} + +impl StateTransitionHasUserFeeIncrease for IdentityTopUpFromAddressesTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { IdentityTopUpFromAddressesTransition::V0(transition) => transition.user_fee_increase(), } } - /// set a fee multiplier + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { IdentityTopUpFromAddressesTransition::V0(transition) => { @@ -43,12 +51,6 @@ impl StateTransitionLike for IdentityTopUpFromAddressesTransition { } } } - - fn unique_identifiers(&self) -> Vec { - match self { - IdentityTopUpFromAddressesTransition::V0(transition) => transition.unique_identifiers(), - } - } } impl StateTransitionOwned for IdentityTopUpFromAddressesTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/v0/state_transition_like.rs index 1a4ad2f873b..222ee9e152f 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/v0/state_transition_like.rs @@ -1,6 +1,7 @@ use crate::address_funds::AddressWitness; use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_topup_from_addresses_transition::IdentityTopUpFromAddressesTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionOwned, StateTransitionType}, @@ -42,6 +43,9 @@ impl StateTransitionLike for IdentityTopUpFromAddressesTransitionV0 { .collect() } +} + +impl StateTransitionHasUserFeeIncrease for IdentityTopUpFromAddressesTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/state_transition_like.rs index 1c691a066d7..610d3b004d6 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/state_transition_like.rs @@ -1,5 +1,6 @@ use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_topup_transition::IdentityTopUpTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType, }; @@ -26,13 +27,20 @@ impl StateTransitionLike for IdentityTopUpTransition { } } - /// returns the fee multiplier + fn unique_identifiers(&self) -> Vec { + match self { + IdentityTopUpTransition::V0(transition) => transition.unique_identifiers(), + } + } +} + +impl StateTransitionHasUserFeeIncrease for IdentityTopUpTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { IdentityTopUpTransition::V0(transition) => transition.user_fee_increase(), } } - /// set a fee multiplier + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { IdentityTopUpTransition::V0(transition) => { @@ -40,12 +48,6 @@ impl StateTransitionLike for IdentityTopUpTransition { } } } - - fn unique_identifiers(&self) -> Vec { - match self { - IdentityTopUpTransition::V0(transition) => transition.unique_identifiers(), - } - } } impl StateTransitionSingleSigned for IdentityTopUpTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/v0/state_transition_like.rs index e200060be40..aad966badb6 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/v0/state_transition_like.rs @@ -4,6 +4,7 @@ use platform_value::BinaryData; use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_topup_transition::IdentityTopUpTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionOwned, StateTransitionType}, @@ -53,6 +54,9 @@ impl StateTransitionLike for IdentityTopUpTransitionV0 { } } +} + +impl StateTransitionHasUserFeeIncrease for IdentityTopUpTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/state_transition_like.rs index e2f5c49a525..359fd1e5bad 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/state_transition_like.rs @@ -1,5 +1,6 @@ use crate::prelude::UserFeeIncrease; use crate::state_transition::identity_update_transition::IdentityUpdateTransition; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::state_transition::{ StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType, }; @@ -26,13 +27,20 @@ impl StateTransitionLike for IdentityUpdateTransition { } } - /// returns the fee multiplier + fn unique_identifiers(&self) -> Vec { + match self { + IdentityUpdateTransition::V0(transition) => transition.unique_identifiers(), + } + } +} + +impl StateTransitionHasUserFeeIncrease for IdentityUpdateTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { IdentityUpdateTransition::V0(transition) => transition.user_fee_increase(), } } - /// set a fee multiplier + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { match self { IdentityUpdateTransition::V0(transition) => { @@ -40,12 +48,6 @@ impl StateTransitionLike for IdentityUpdateTransition { } } } - - fn unique_identifiers(&self) -> Vec { - match self { - IdentityUpdateTransition::V0(transition) => transition.unique_identifiers(), - } - } } impl StateTransitionSingleSigned for IdentityUpdateTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/state_transition_like.rs index 1ab60ed4c37..8303d2dd27a 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/state_transition_like.rs @@ -3,6 +3,7 @@ use base64::Engine; use platform_value::BinaryData; use crate::prelude::UserFeeIncrease; +use crate::state_transition::StateTransitionHasUserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionOwned, StateTransitionType}, @@ -46,6 +47,9 @@ impl StateTransitionLike for IdentityUpdateTransitionV0 { )] } +} + +impl StateTransitionHasUserFeeIncrease for IdentityUpdateTransitionV0 { fn user_fee_increase(&self) -> UserFeeIncrease { self.user_fee_increase } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/state_transition_like.rs index 3cfe7951e7f..87c857024ee 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/state_transition_like.rs @@ -1,4 +1,3 @@ -use crate::prelude::UserFeeIncrease; use crate::state_transition::masternode_vote_transition::MasternodeVoteTransition; use crate::state_transition::{ StateTransitionLike, StateTransitionOwned, StateTransitionSingleSigned, StateTransitionType, @@ -32,19 +31,6 @@ impl StateTransitionLike for MasternodeVoteTransition { } } - fn user_fee_increase(&self) -> UserFeeIncrease { - match self { - MasternodeVoteTransition::V0(transition) => transition.user_fee_increase(), - } - } - - fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { - match self { - MasternodeVoteTransition::V0(transition) => { - transition.set_user_fee_increase(user_fee_increase) - } - } - } } impl StateTransitionSingleSigned for MasternodeVoteTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/v0/state_transition_like.rs index 3fbb336b58c..bbf64cace71 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/v0/state_transition_like.rs @@ -2,7 +2,6 @@ use base64::prelude::BASE64_STANDARD; use base64::Engine; use platform_value::BinaryData; -use crate::prelude::UserFeeIncrease; use crate::{ prelude::Identifier, state_transition::{StateTransitionLike, StateTransitionOwned, StateTransitionType}, @@ -32,15 +31,6 @@ impl StateTransitionLike for MasternodeVoteTransitionV0 { MasternodeVote } - fn user_fee_increase(&self) -> UserFeeIncrease { - // The user fee increase for a masternode votes is always 0 - 0 - } - - fn set_user_fee_increase(&mut self, _fee_multiplier: UserFeeIncrease) { - // Setting does nothing - } - fn modified_data_ids(&self) -> Vec { vec![self.voter_identity_id] } diff --git a/packages/rs-dpp/src/state_transition/traits/mod.rs b/packages/rs-dpp/src/state_transition/traits/mod.rs index 15e2dd989e0..94823082b9a 100644 --- a/packages/rs-dpp/src/state_transition/traits/mod.rs +++ b/packages/rs-dpp/src/state_transition/traits/mod.rs @@ -5,6 +5,7 @@ mod state_transition_identity_id_from_inputs; mod state_transition_identity_signed; #[cfg(feature = "state-transition-json-conversion")] mod state_transition_json_convert; +mod state_transition_has_user_fee_increase; mod state_transition_like; mod state_transition_multi_signed; mod state_transition_owned; @@ -22,6 +23,7 @@ pub use state_transition_identity_id_from_inputs::*; pub use state_transition_identity_signed::*; #[cfg(feature = "state-transition-json-conversion")] pub use state_transition_json_convert::*; +pub use state_transition_has_user_fee_increase::*; pub use state_transition_like::*; pub use state_transition_multi_signed::*; pub use state_transition_owned::*; diff --git a/packages/rs-dpp/src/state_transition/traits/state_transition_has_user_fee_increase.rs b/packages/rs-dpp/src/state_transition/traits/state_transition_has_user_fee_increase.rs new file mode 100644 index 00000000000..7ff37560f15 --- /dev/null +++ b/packages/rs-dpp/src/state_transition/traits/state_transition_has_user_fee_increase.rs @@ -0,0 +1,13 @@ +use crate::prelude::UserFeeIncrease; + +/// Trait for state transitions that support a user-adjustable fee increase. +/// +/// Not all state transitions support fee adjustment — for example, shielded +/// transitions have fees cryptographically locked by the Orchard binding +/// signature, and masternode votes always use a fee increase of 0. +pub trait StateTransitionHasUserFeeIncrease { + /// returns the fee multiplier + fn user_fee_increase(&self) -> UserFeeIncrease; + /// set a fee multiplier + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease); +} diff --git a/packages/rs-dpp/src/state_transition/traits/state_transition_like.rs b/packages/rs-dpp/src/state_transition/traits/state_transition_like.rs index 9114b87470c..389e45fa3fb 100644 --- a/packages/rs-dpp/src/state_transition/traits/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/traits/state_transition_like.rs @@ -1,6 +1,6 @@ use std::fmt::Debug; -use crate::prelude::{Identifier, UserFeeIncrease}; +use crate::prelude::Identifier; use crate::version::FeatureVersion; use crate::state_transition::StateTransitionType; @@ -35,10 +35,6 @@ pub trait StateTransitionLike: fn state_transition_protocol_version(&self) -> FeatureVersion; /// returns the type of State Transition fn state_transition_type(&self) -> StateTransitionType; - /// returns the fee multiplier - fn user_fee_increase(&self) -> UserFeeIncrease; - /// set a fee multiplier - fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease); /// get modified ids list fn modified_data_ids(&self) -> Vec; diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/advanced_structure/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/advanced_structure/v0/mod.rs index 9f8bad74d68..d2986568768 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/advanced_structure/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/advanced_structure/v0/mod.rs @@ -9,7 +9,7 @@ use dpp::identity::PartialIdentity; use dpp::state_transition::batch_transition::batched_transition::document_transition::DocumentTransition; use dpp::state_transition::batch_transition::document_base_transition::v0::v0_methods::DocumentBaseTransitionV0Methods; use dpp::state_transition::batch_transition::BatchTransition; -use dpp::state_transition::{StateTransitionIdentitySigned, StateTransitionLike, StateTransitionOwned}; +use dpp::state_transition::{StateTransitionHasUserFeeIncrease, StateTransitionIdentitySigned, StateTransitionOwned}; use dpp::state_transition::batch_transition::accessors::DocumentsBatchTransitionAccessorsV0; use dpp::state_transition::batch_transition::batched_transition::BatchedTransitionRef; use dpp::state_transition::batch_transition::document_base_transition::document_base_transition_trait::DocumentBaseTransitionAccessors; diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/transformer/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/transformer/v0/mod.rs index 7fa3f97d7ba..ef7d2427950 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/transformer/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/transformer/v0/mod.rs @@ -29,7 +29,7 @@ use dpp::state_transition::batch_transition::batched_transition::BatchedTransiti use dpp::state_transition::batch_transition::BatchTransition; use dpp::state_transition::batch_transition::document_base_transition::v0::v0_methods::DocumentBaseTransitionV0Methods; use dpp::state_transition::batch_transition::batched_transition::document_purchase_transition::v0::v0_methods::DocumentPurchaseTransitionV0Methods; -use dpp::state_transition::{StateTransitionLike, StateTransitionOwned}; +use dpp::state_transition::{StateTransitionHasUserFeeIncrease, StateTransitionOwned}; use drive::state_transition_action::batch::batched_transition::document_transition::document_create_transition_action::DocumentCreateTransitionAction; use drive::state_transition_action::batch::batched_transition::document_transition::document_delete_transition_action::DocumentDeleteTransitionAction; use drive::state_transition_action::batch::batched_transition::document_transition::document_replace_transition_action::DocumentReplaceTransitionAction; diff --git a/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/v0/transformer.rs index 8c5520f7d7d..a6a2eb7015d 100644 --- a/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/v0/transformer.rs @@ -9,7 +9,7 @@ use dpp::state_transition::identity_credit_transfer_transition::v0::IdentityCred use dpp::state_transition::identity_credit_withdrawal_transition::accessors::IdentityCreditWithdrawalTransitionAccessorsV0; use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; use dpp::state_transition::identity_update_transition::v0::IdentityUpdateTransitionV0; -use dpp::state_transition::StateTransitionLike; +use dpp::state_transition::StateTransitionHasUserFeeIncrease; impl BumpIdentityNonceActionV0 { /// from identity update From a56aa942c5e83ef0f6c64fda6ca136992e5eac39 Mon Sep 17 00:00:00 2001 From: Quantum Explorer Date: Thu, 5 Mar 2026 08:37:10 +0700 Subject: [PATCH 2/5] style(dpp): fix formatting after trait extraction Co-Authored-By: Claude Opus 4.6 --- .../v0/state_transition_like.rs | 1 - .../v0/state_transition_like.rs | 1 - .../v0/state_transition_like.rs | 1 - .../v0/state_transition_like.rs | 1 - .../data_contract_update_transition/state_transition_like.rs | 1 - .../v0/state_transition_like.rs | 1 - .../document/batch_transition/v0/state_transition_like.rs | 1 - .../document/batch_transition/v1/state_transition_like.rs | 1 - .../v0/state_transition_like.rs | 1 - .../v0/state_transition_like.rs | 1 - .../v0/state_transition_like.rs | 1 - .../v0/state_transition_like.rs | 1 - .../v1/state_transition_like.rs | 1 - .../v0/state_transition_like.rs | 1 - .../identity_topup_transition/v0/state_transition_like.rs | 1 - .../identity_update_transition/v0/state_transition_like.rs | 1 - .../masternode_vote_transition/state_transition_like.rs | 1 - packages/rs-dpp/src/state_transition/traits/mod.rs | 4 ++-- 18 files changed, 2 insertions(+), 19 deletions(-) diff --git a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/v0/state_transition_like.rs index 209ff0710a0..ca1cbcac4e8 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_credit_withdrawal_transition/v0/state_transition_like.rs @@ -41,7 +41,6 @@ impl StateTransitionLike for AddressCreditWithdrawalTransitionV0 { .map(|(key, (nonce, _))| key.base64_string_with_nonce(*nonce)) .collect() } - } impl StateTransitionHasUserFeeIncrease for AddressCreditWithdrawalTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/v0/state_transition_like.rs index 4e56ccfaa9f..f6501c6968d 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funding_from_asset_lock_transition/v0/state_transition_like.rs @@ -40,7 +40,6 @@ impl StateTransitionLike for AddressFundingFromAssetLockTransitionV0 { fn unique_identifiers(&self) -> Vec { vec![] } - } impl StateTransitionHasUserFeeIncrease for AddressFundingFromAssetLockTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/v0/state_transition_like.rs index edda29b57f6..c580fd7fa5f 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/address_funds/address_funds_transfer_transition/v0/state_transition_like.rs @@ -41,7 +41,6 @@ impl StateTransitionLike for AddressFundsTransferTransitionV0 { .map(|(key, (nonce, _))| key.base64_string_with_nonce(*nonce)) .collect() } - } impl StateTransitionHasUserFeeIncrease for AddressFundsTransferTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/state_transition_like.rs index 66d61a94f9c..9e1905b73a0 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/state_transition_like.rs @@ -33,7 +33,6 @@ impl StateTransitionLike for DataContractCreateTransitionV0 { self.data_contract.id() )] } - } impl StateTransitionHasUserFeeIncrease for DataContractCreateTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/state_transition_like.rs index ffac26245eb..9adfe22c523 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/state_transition_like.rs @@ -32,7 +32,6 @@ impl StateTransitionLike for DataContractUpdateTransition { DataContractUpdateTransition::V0(transition) => transition.unique_identifiers(), } } - } impl StateTransitionHasUserFeeIncrease for DataContractUpdateTransition { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/state_transition_like.rs index 6a0149073d5..ade85c63b37 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/state_transition_like.rs @@ -36,7 +36,6 @@ impl StateTransitionLike for DataContractUpdateTransitionV0 { self.identity_contract_nonce )] } - } impl StateTransitionHasUserFeeIncrease for DataContractUpdateTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v0/state_transition_like.rs index 082e6e2875b..8792b86a38d 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v0/state_transition_like.rs @@ -47,7 +47,6 @@ impl StateTransitionLike for BatchTransitionV0 { }) .collect() } - } impl StateTransitionHasUserFeeIncrease for BatchTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v1/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v1/state_transition_like.rs index 244ebc0d84b..35fcbcf681c 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v1/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/document/batch_transition/v1/state_transition_like.rs @@ -65,7 +65,6 @@ impl StateTransitionLike for BatchTransitionV1 { }) .collect() } - } impl StateTransitionHasUserFeeIncrease for BatchTransitionV1 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/v0/state_transition_like.rs index 5fcba5bcd95..49bfbc030a4 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_create_from_addresses_transition/v0/state_transition_like.rs @@ -40,7 +40,6 @@ impl StateTransitionLike for IdentityCreateFromAddressesTransitionV0 { .map(|(key, (nonce, _))| key.base64_string_with_nonce(*nonce)) .collect() } - } impl StateTransitionHasUserFeeIncrease for IdentityCreateFromAddressesTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/v0/state_transition_like.rs index 3db66ae1d75..ba2e3b1ee89 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_to_addresses_transition/v0/state_transition_like.rs @@ -45,7 +45,6 @@ impl StateTransitionLike for IdentityCreditTransferToAddressesTransitionV0 { self.nonce )] } - } impl StateTransitionHasUserFeeIncrease for IdentityCreditTransferToAddressesTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/state_transition_like.rs index 1840ea547d8..f1ed89219bb 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/state_transition_like.rs @@ -46,7 +46,6 @@ impl StateTransitionLike for IdentityCreditTransferTransitionV0 { self.nonce )] } - } impl StateTransitionHasUserFeeIncrease for IdentityCreditTransferTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/state_transition_like.rs index f28784d254a..545e044229f 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/state_transition_like.rs @@ -46,7 +46,6 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransitionV0 { self.nonce )] } - } impl StateTransitionHasUserFeeIncrease for IdentityCreditWithdrawalTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/state_transition_like.rs index c140df1a33e..f94670f1a97 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/state_transition_like.rs @@ -45,7 +45,6 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransitionV1 { self.nonce )] } - } impl StateTransitionHasUserFeeIncrease for IdentityCreditWithdrawalTransitionV1 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/v0/state_transition_like.rs index 222ee9e152f..846526cb1ee 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_from_addresses_transition/v0/state_transition_like.rs @@ -42,7 +42,6 @@ impl StateTransitionLike for IdentityTopUpFromAddressesTransitionV0 { .map(|(key, (nonce, _))| key.base64_string_with_nonce(*nonce)) .collect() } - } impl StateTransitionHasUserFeeIncrease for IdentityTopUpFromAddressesTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/v0/state_transition_like.rs index aad966badb6..cc03847b110 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_topup_transition/v0/state_transition_like.rs @@ -53,7 +53,6 @@ impl StateTransitionLike for IdentityTopUpTransitionV0 { } } } - } impl StateTransitionHasUserFeeIncrease for IdentityTopUpTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/state_transition_like.rs index 8303d2dd27a..f118a65bb16 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/state_transition_like.rs @@ -46,7 +46,6 @@ impl StateTransitionLike for IdentityUpdateTransitionV0 { self.nonce )] } - } impl StateTransitionHasUserFeeIncrease for IdentityUpdateTransitionV0 { diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/state_transition_like.rs index 87c857024ee..e4d99d6e343 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/state_transition_like.rs @@ -30,7 +30,6 @@ impl StateTransitionLike for MasternodeVoteTransition { MasternodeVoteTransition::V0(transition) => transition.unique_identifiers(), } } - } impl StateTransitionSingleSigned for MasternodeVoteTransition { diff --git a/packages/rs-dpp/src/state_transition/traits/mod.rs b/packages/rs-dpp/src/state_transition/traits/mod.rs index 94823082b9a..7f6578e6f0f 100644 --- a/packages/rs-dpp/src/state_transition/traits/mod.rs +++ b/packages/rs-dpp/src/state_transition/traits/mod.rs @@ -1,11 +1,11 @@ mod state_transition_addresses_fee_strategy; mod state_transition_estimated_fee_validation; mod state_transition_field_types; +mod state_transition_has_user_fee_increase; mod state_transition_identity_id_from_inputs; mod state_transition_identity_signed; #[cfg(feature = "state-transition-json-conversion")] mod state_transition_json_convert; -mod state_transition_has_user_fee_increase; mod state_transition_like; mod state_transition_multi_signed; mod state_transition_owned; @@ -19,11 +19,11 @@ mod state_transition_witness_validation; pub use state_transition_addresses_fee_strategy::*; pub use state_transition_estimated_fee_validation::*; pub use state_transition_field_types::*; +pub use state_transition_has_user_fee_increase::*; pub use state_transition_identity_id_from_inputs::*; pub use state_transition_identity_signed::*; #[cfg(feature = "state-transition-json-conversion")] pub use state_transition_json_convert::*; -pub use state_transition_has_user_fee_increase::*; pub use state_transition_like::*; pub use state_transition_multi_signed::*; pub use state_transition_owned::*; From dc1112f88cc0cf5a24f5f9dd23100ab7683e737d Mon Sep 17 00:00:00 2001 From: Quantum Explorer Date: Thu, 5 Mar 2026 08:39:20 +0700 Subject: [PATCH 3/5] fix(wasm-dpp): add StateTransitionHasUserFeeIncrease import to wasm-dpp Co-Authored-By: Claude Opus 4.6 --- .../state_transition/data_contract_create_transition/mod.rs | 1 + .../state_transition/data_contract_update_transition/mod.rs | 1 + .../src/document/state_transition/batch_transition/mod.rs | 1 + .../identity_create_transition/transition.rs | 1 + .../identity_credit_transfer_transition/transition.rs | 1 + .../identity_credit_withdrawal_transition/transition.rs | 1 + .../state_transition/identity_topup_transition/transition.rs | 1 + .../identity_update_transition/transition.rs | 1 + .../state_transition/masternode_vote_transition/mod.rs | 5 ++--- 9 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/wasm-dpp/src/data_contract/state_transition/data_contract_create_transition/mod.rs b/packages/wasm-dpp/src/data_contract/state_transition/data_contract_create_transition/mod.rs index 105428e15f7..73bc6556c2b 100644 --- a/packages/wasm-dpp/src/data_contract/state_transition/data_contract_create_transition/mod.rs +++ b/packages/wasm-dpp/src/data_contract/state_transition/data_contract_create_transition/mod.rs @@ -10,6 +10,7 @@ use dpp::errors::consensus::ConsensusError; use dpp::serialization::{PlatformDeserializable, PlatformSerializable}; use dpp::state_transition::data_contract_create_transition::accessors::DataContractCreateTransitionAccessorsV0; use dpp::state_transition::data_contract_create_transition::DataContractCreateTransition; +use dpp::state_transition::StateTransitionHasUserFeeIncrease; use dpp::state_transition::{ StateTransitionIdentitySigned, StateTransitionOwned, StateTransitionSingleSigned, }; diff --git a/packages/wasm-dpp/src/data_contract/state_transition/data_contract_update_transition/mod.rs b/packages/wasm-dpp/src/data_contract/state_transition/data_contract_update_transition/mod.rs index c6339ede341..30f83268f2a 100644 --- a/packages/wasm-dpp/src/data_contract/state_transition/data_contract_update_transition/mod.rs +++ b/packages/wasm-dpp/src/data_contract/state_transition/data_contract_update_transition/mod.rs @@ -7,6 +7,7 @@ use dpp::serialization::{PlatformDeserializable, PlatformSerializable}; use dpp::state_transition::data_contract_update_transition::accessors::DataContractUpdateTransitionAccessorsV0; use dpp::state_transition::data_contract_update_transition::DataContractUpdateTransition; use dpp::state_transition::{StateTransition, StateTransitionValueConvert}; +use dpp::state_transition::StateTransitionHasUserFeeIncrease; use dpp::state_transition::{ StateTransitionIdentitySigned, StateTransitionOwned, StateTransitionSingleSigned, }; diff --git a/packages/wasm-dpp/src/document/state_transition/batch_transition/mod.rs b/packages/wasm-dpp/src/document/state_transition/batch_transition/mod.rs index ba10c028357..41d32042920 100644 --- a/packages/wasm-dpp/src/document/state_transition/batch_transition/mod.rs +++ b/packages/wasm-dpp/src/document/state_transition/batch_transition/mod.rs @@ -14,6 +14,7 @@ use dpp::platform_value::BinaryData; use dpp::serialization::PlatformSerializable; use dpp::state_transition::batch_transition::accessors::DocumentsBatchTransitionAccessorsV0; use dpp::state_transition::batch_transition::BatchTransition; +use dpp::state_transition::StateTransitionHasUserFeeIncrease; use dpp::state_transition::{StateTransition, StateTransitionOwned, StateTransitionSingleSigned}; use wasm_bindgen::prelude::*; diff --git a/packages/wasm-dpp/src/identity/state_transition/identity_create_transition/transition.rs b/packages/wasm-dpp/src/identity/state_transition/identity_create_transition/transition.rs index bd395585f0f..12e5bd812fa 100644 --- a/packages/wasm-dpp/src/identity/state_transition/identity_create_transition/transition.rs +++ b/packages/wasm-dpp/src/identity/state_transition/identity_create_transition/transition.rs @@ -29,6 +29,7 @@ use dpp::platform_value::string_encoding; use dpp::platform_value::string_encoding::Encoding; use dpp::serialization::PlatformSerializable; use dpp::state_transition::identity_create_transition::accessors::IdentityCreateTransitionAccessorsV0; +use dpp::state_transition::StateTransitionHasUserFeeIncrease; use dpp::state_transition::{StateTransition, StateTransitionOwned, StateTransitionSingleSigned}; use dpp::{ identity::state_transition::asset_lock_proof::AssetLockProof, diff --git a/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs b/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs index ade82e4ee36..a12620803f0 100644 --- a/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +++ b/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs @@ -20,6 +20,7 @@ use dpp::state_transition::identity_credit_transfer_transition::accessors::Ident use dpp::state_transition::identity_credit_transfer_transition::IdentityCreditTransferTransition; use dpp::state_transition::{StateTransition, StateTransitionIdentitySigned}; +use dpp::state_transition::StateTransitionHasUserFeeIncrease; use dpp::state_transition::{StateTransitionLike, StateTransitionSingleSigned}; #[wasm_bindgen(js_name=IdentityCreditTransferTransition)] #[derive(Clone)] diff --git a/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs b/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs index aaa55ee45ea..08663fb7ad6 100644 --- a/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs +++ b/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs @@ -20,6 +20,7 @@ use dpp::serialization::PlatformSerializable; use dpp::state_transition::identity_credit_withdrawal_transition::accessors::IdentityCreditWithdrawalTransitionAccessorsV0; use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; use dpp::state_transition::{StateTransition, StateTransitionIdentitySigned}; +use dpp::state_transition::StateTransitionHasUserFeeIncrease; use dpp::state_transition::{StateTransitionLike, StateTransitionSingleSigned}; use dpp::withdrawal::Pooling; diff --git a/packages/wasm-dpp/src/identity/state_transition/identity_topup_transition/transition.rs b/packages/wasm-dpp/src/identity/state_transition/identity_topup_transition/transition.rs index ee152e5c2d2..749a0ea3f80 100644 --- a/packages/wasm-dpp/src/identity/state_transition/identity_topup_transition/transition.rs +++ b/packages/wasm-dpp/src/identity/state_transition/identity_topup_transition/transition.rs @@ -28,6 +28,7 @@ use dpp::platform_value::string_encoding::Encoding; use dpp::serialization::PlatformSerializable; use dpp::state_transition::identity_topup_transition::accessors::IdentityTopUpTransitionAccessorsV0; use dpp::state_transition::identity_topup_transition::IdentityTopUpTransition; +use dpp::state_transition::StateTransitionHasUserFeeIncrease; use dpp::state_transition::{StateTransition, StateTransitionOwned, StateTransitionSingleSigned}; use dpp::{ identifier::Identifier, identity::state_transition::asset_lock_proof::AssetLockProof, diff --git a/packages/wasm-dpp/src/identity/state_transition/identity_update_transition/transition.rs b/packages/wasm-dpp/src/identity/state_transition/identity_update_transition/transition.rs index 30e0782aea9..fc44b6c49dd 100644 --- a/packages/wasm-dpp/src/identity/state_transition/identity_update_transition/transition.rs +++ b/packages/wasm-dpp/src/identity/state_transition/identity_update_transition/transition.rs @@ -19,6 +19,7 @@ use dpp::state_transition::identity_update_transition::accessors::IdentityUpdate use dpp::state_transition::identity_update_transition::IdentityUpdateTransition; use dpp::state_transition::public_key_in_creation::IdentityPublicKeyInCreation; use dpp::state_transition::StateTransitionIdentitySigned; +use dpp::state_transition::StateTransitionHasUserFeeIncrease; use dpp::state_transition::{StateTransition, StateTransitionOwned, StateTransitionSingleSigned}; use dpp::version::PlatformVersion; use dpp::{identifier::Identifier, state_transition::StateTransitionLike}; diff --git a/packages/wasm-dpp/src/voting/state_transition/masternode_vote_transition/mod.rs b/packages/wasm-dpp/src/voting/state_transition/masternode_vote_transition/mod.rs index 60236e98171..5df546d4153 100644 --- a/packages/wasm-dpp/src/voting/state_transition/masternode_vote_transition/mod.rs +++ b/packages/wasm-dpp/src/voting/state_transition/masternode_vote_transition/mod.rs @@ -225,12 +225,11 @@ impl MasternodeVoteTransitionWasm { #[wasm_bindgen(js_name=getUserFeeIncrease)] pub fn get_user_fee_increase(&self) -> u16 { - self.0.user_fee_increase() + 0 } #[wasm_bindgen(js_name=setUserFeeIncrease)] - pub fn set_user_fee_increase(&mut self, user_fee_increase: u16) { - self.0.set_user_fee_increase(user_fee_increase); + pub fn set_user_fee_increase(&mut self, _user_fee_increase: u16) { } #[wasm_bindgen(js_name=getIdentityContractNonce)] From 0fb37a53bbf878cd75021a0723177352358e0772 Mon Sep 17 00:00:00 2001 From: Quantum Explorer Date: Thu, 5 Mar 2026 08:52:20 +0700 Subject: [PATCH 4/5] fix: add StateTransitionHasUserFeeIncrease import to wasm-dpp2, wasm-sdk, and drive-abci tests Co-Authored-By: Claude Opus 4.6 --- .../identity_credit_transfer_to_addresses/tests.rs | 1 + .../data_contract_update_transition/mod.rs | 2 +- .../identity_credit_transfer_transition/transition.rs | 2 +- .../identity_credit_withdrawal_transition/transition.rs | 2 +- .../identity_update_transition/transition.rs | 2 +- .../state_transition/masternode_vote_transition/mod.rs | 3 +-- .../src/identity/transitions/create_transition.rs | 5 ++++- .../identity/transitions/credit_withdrawal_transition.rs | 4 ++-- .../transitions/identity_credit_transfer_transition.rs | 4 ++-- .../identity/transitions/masternode_vote_transition.rs | 9 ++++----- .../src/identity/transitions/top_up_transition.rs | 5 ++++- .../src/identity/transitions/update_transition.rs | 4 ++-- 12 files changed, 24 insertions(+), 19 deletions(-) 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 f98f0d1e10e..c1135c18003 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 @@ -21,6 +21,7 @@ mod tests { use dpp::state_transition::identity_credit_transfer_to_addresses_transition::v0::IdentityCreditTransferToAddressesTransitionV0; use dpp::state_transition::identity_credit_transfer_to_addresses_transition::IdentityCreditTransferToAddressesTransition; use dpp::state_transition::StateTransition; + use dpp::state_transition::StateTransitionHasUserFeeIncrease; use platform_version::version::PlatformVersion; use rand::rngs::StdRng; use rand::SeedableRng; diff --git a/packages/wasm-dpp/src/data_contract/state_transition/data_contract_update_transition/mod.rs b/packages/wasm-dpp/src/data_contract/state_transition/data_contract_update_transition/mod.rs index 30f83268f2a..9ce90d5c004 100644 --- a/packages/wasm-dpp/src/data_contract/state_transition/data_contract_update_transition/mod.rs +++ b/packages/wasm-dpp/src/data_contract/state_transition/data_contract_update_transition/mod.rs @@ -6,8 +6,8 @@ use dpp::consensus::ConsensusError; use dpp::serialization::{PlatformDeserializable, PlatformSerializable}; use dpp::state_transition::data_contract_update_transition::accessors::DataContractUpdateTransitionAccessorsV0; use dpp::state_transition::data_contract_update_transition::DataContractUpdateTransition; -use dpp::state_transition::{StateTransition, StateTransitionValueConvert}; use dpp::state_transition::StateTransitionHasUserFeeIncrease; +use dpp::state_transition::{StateTransition, StateTransitionValueConvert}; use dpp::state_transition::{ StateTransitionIdentitySigned, StateTransitionOwned, StateTransitionSingleSigned, }; diff --git a/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs b/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs index a12620803f0..2d752d11f51 100644 --- a/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +++ b/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs @@ -19,8 +19,8 @@ use dpp::serialization::PlatformSerializable; use dpp::state_transition::identity_credit_transfer_transition::accessors::IdentityCreditTransferTransitionAccessorsV0; use dpp::state_transition::identity_credit_transfer_transition::IdentityCreditTransferTransition; -use dpp::state_transition::{StateTransition, StateTransitionIdentitySigned}; use dpp::state_transition::StateTransitionHasUserFeeIncrease; +use dpp::state_transition::{StateTransition, StateTransitionIdentitySigned}; use dpp::state_transition::{StateTransitionLike, StateTransitionSingleSigned}; #[wasm_bindgen(js_name=IdentityCreditTransferTransition)] #[derive(Clone)] diff --git a/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs b/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs index 08663fb7ad6..b4d3185bba9 100644 --- a/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs +++ b/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs @@ -19,8 +19,8 @@ use dpp::platform_value::{string_encoding, BinaryData}; use dpp::serialization::PlatformSerializable; use dpp::state_transition::identity_credit_withdrawal_transition::accessors::IdentityCreditWithdrawalTransitionAccessorsV0; use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; -use dpp::state_transition::{StateTransition, StateTransitionIdentitySigned}; use dpp::state_transition::StateTransitionHasUserFeeIncrease; +use dpp::state_transition::{StateTransition, StateTransitionIdentitySigned}; use dpp::state_transition::{StateTransitionLike, StateTransitionSingleSigned}; use dpp::withdrawal::Pooling; diff --git a/packages/wasm-dpp/src/identity/state_transition/identity_update_transition/transition.rs b/packages/wasm-dpp/src/identity/state_transition/identity_update_transition/transition.rs index fc44b6c49dd..8966f12fb99 100644 --- a/packages/wasm-dpp/src/identity/state_transition/identity_update_transition/transition.rs +++ b/packages/wasm-dpp/src/identity/state_transition/identity_update_transition/transition.rs @@ -18,8 +18,8 @@ use dpp::serialization::PlatformSerializable; use dpp::state_transition::identity_update_transition::accessors::IdentityUpdateTransitionAccessorsV0; use dpp::state_transition::identity_update_transition::IdentityUpdateTransition; use dpp::state_transition::public_key_in_creation::IdentityPublicKeyInCreation; -use dpp::state_transition::StateTransitionIdentitySigned; use dpp::state_transition::StateTransitionHasUserFeeIncrease; +use dpp::state_transition::StateTransitionIdentitySigned; use dpp::state_transition::{StateTransition, StateTransitionOwned, StateTransitionSingleSigned}; use dpp::version::PlatformVersion; use dpp::{identifier::Identifier, state_transition::StateTransitionLike}; diff --git a/packages/wasm-dpp/src/voting/state_transition/masternode_vote_transition/mod.rs b/packages/wasm-dpp/src/voting/state_transition/masternode_vote_transition/mod.rs index 5df546d4153..48a9c98055c 100644 --- a/packages/wasm-dpp/src/voting/state_transition/masternode_vote_transition/mod.rs +++ b/packages/wasm-dpp/src/voting/state_transition/masternode_vote_transition/mod.rs @@ -229,8 +229,7 @@ impl MasternodeVoteTransitionWasm { } #[wasm_bindgen(js_name=setUserFeeIncrease)] - pub fn set_user_fee_increase(&mut self, _user_fee_increase: u16) { - } + pub fn set_user_fee_increase(&mut self, _user_fee_increase: u16) {} #[wasm_bindgen(js_name=getIdentityContractNonce)] pub fn get_identity_nonce(&self) -> u64 { diff --git a/packages/wasm-dpp2/src/identity/transitions/create_transition.rs b/packages/wasm-dpp2/src/identity/transitions/create_transition.rs index 65f053f5588..d728378315c 100644 --- a/packages/wasm-dpp2/src/identity/transitions/create_transition.rs +++ b/packages/wasm-dpp2/src/identity/transitions/create_transition.rs @@ -17,7 +17,10 @@ use dpp::state_transition::identity_create_transition::IdentityCreateTransition; use dpp::state_transition::identity_create_transition::accessors::IdentityCreateTransitionAccessorsV0; use dpp::state_transition::identity_create_transition::v0::IdentityCreateTransitionV0; use dpp::state_transition::public_key_in_creation::IdentityPublicKeyInCreation; -use dpp::state_transition::{StateTransition, StateTransitionLike, StateTransitionSingleSigned}; +use dpp::state_transition::{ + StateTransition, StateTransitionHasUserFeeIncrease, StateTransitionLike, + StateTransitionSingleSigned, +}; use serde::Deserialize; use wasm_bindgen::JsValue; use wasm_bindgen::prelude::wasm_bindgen; diff --git a/packages/wasm-dpp2/src/identity/transitions/credit_withdrawal_transition.rs b/packages/wasm-dpp2/src/identity/transitions/credit_withdrawal_transition.rs index 53988440955..cd0323b9a88 100644 --- a/packages/wasm-dpp2/src/identity/transitions/credit_withdrawal_transition.rs +++ b/packages/wasm-dpp2/src/identity/transitions/credit_withdrawal_transition.rs @@ -20,8 +20,8 @@ use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCredit use dpp::state_transition::identity_credit_withdrawal_transition::accessors::IdentityCreditWithdrawalTransitionAccessorsV0; use dpp::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; use dpp::state_transition::{ - StateTransition, StateTransitionIdentitySigned, StateTransitionLike, - StateTransitionSingleSigned, + StateTransition, StateTransitionHasUserFeeIncrease, StateTransitionIdentitySigned, + StateTransitionLike, StateTransitionSingleSigned, }; use serde::Deserialize; use wasm_bindgen::JsValue; diff --git a/packages/wasm-dpp2/src/identity/transitions/identity_credit_transfer_transition.rs b/packages/wasm-dpp2/src/identity/transitions/identity_credit_transfer_transition.rs index 0e6872eee22..1ae19d58ffb 100644 --- a/packages/wasm-dpp2/src/identity/transitions/identity_credit_transfer_transition.rs +++ b/packages/wasm-dpp2/src/identity/transitions/identity_credit_transfer_transition.rs @@ -13,8 +13,8 @@ use dpp::state_transition::identity_credit_transfer_transition::IdentityCreditTr use dpp::state_transition::identity_credit_transfer_transition::accessors::IdentityCreditTransferTransitionAccessorsV0; use dpp::state_transition::identity_credit_transfer_transition::v0::IdentityCreditTransferTransitionV0; use dpp::state_transition::{ - StateTransition, StateTransitionIdentitySigned, StateTransitionLike, - StateTransitionSingleSigned, + StateTransition, StateTransitionHasUserFeeIncrease, StateTransitionIdentitySigned, + StateTransitionLike, StateTransitionSingleSigned, }; use serde::Deserialize; use wasm_bindgen::prelude::wasm_bindgen; diff --git a/packages/wasm-dpp2/src/identity/transitions/masternode_vote_transition.rs b/packages/wasm-dpp2/src/identity/transitions/masternode_vote_transition.rs index 1eb21075249..06e342d3039 100644 --- a/packages/wasm-dpp2/src/identity/transitions/masternode_vote_transition.rs +++ b/packages/wasm-dpp2/src/identity/transitions/masternode_vote_transition.rs @@ -5,7 +5,7 @@ use crate::identifier::{IdentifierLikeJs, IdentifierWasm}; use crate::impl_wasm_conversions; use crate::impl_wasm_type_info; use crate::state_transitions::StateTransitionWasm; -use crate::utils::{try_from_options, try_to_u16, try_to_u32, try_to_u64}; +use crate::utils::{try_from_options, try_to_u32, try_to_u64}; use dpp::identity::KeyID; use dpp::identity::state_transition::OptionallyAssetLockProved; use dpp::platform_value::BinaryData; @@ -242,7 +242,7 @@ impl MasternodeVoteTransitionWasm { #[wasm_bindgen(getter = "userFeeIncrease")] pub fn user_fee_increase(&self) -> u16 { - self.0.user_fee_increase() + 0 } #[wasm_bindgen(getter = "assetLockProof")] @@ -253,9 +253,8 @@ impl MasternodeVoteTransitionWasm { } #[wasm_bindgen(setter = "userFeeIncrease")] - pub fn set_user_fee_increase(&mut self, amount: JsValue) -> WasmDppResult<()> { - self.0 - .set_user_fee_increase(try_to_u16(&amount, "userFeeIncrease")?); + pub fn set_user_fee_increase(&mut self, _amount: JsValue) -> WasmDppResult<()> { + // MasternodeVoteTransition no longer supports user fee increase; no-op. Ok(()) } diff --git a/packages/wasm-dpp2/src/identity/transitions/top_up_transition.rs b/packages/wasm-dpp2/src/identity/transitions/top_up_transition.rs index 4caf9b28807..f0d7467f16b 100644 --- a/packages/wasm-dpp2/src/identity/transitions/top_up_transition.rs +++ b/packages/wasm-dpp2/src/identity/transitions/top_up_transition.rs @@ -13,7 +13,10 @@ use dpp::serialization::{PlatformDeserializable, PlatformSerializable}; use dpp::state_transition::identity_topup_transition::IdentityTopUpTransition; use dpp::state_transition::identity_topup_transition::accessors::IdentityTopUpTransitionAccessorsV0; use dpp::state_transition::identity_topup_transition::v0::IdentityTopUpTransitionV0; -use dpp::state_transition::{StateTransition, StateTransitionLike, StateTransitionSingleSigned}; +use dpp::state_transition::{ + StateTransition, StateTransitionHasUserFeeIncrease, StateTransitionLike, + StateTransitionSingleSigned, +}; use serde::Deserialize; use wasm_bindgen::prelude::wasm_bindgen; diff --git a/packages/wasm-dpp2/src/identity/transitions/update_transition.rs b/packages/wasm-dpp2/src/identity/transitions/update_transition.rs index a5ad053b7dd..348bd1dca48 100644 --- a/packages/wasm-dpp2/src/identity/transitions/update_transition.rs +++ b/packages/wasm-dpp2/src/identity/transitions/update_transition.rs @@ -18,8 +18,8 @@ use dpp::state_transition::identity_update_transition::accessors::IdentityUpdate use dpp::state_transition::identity_update_transition::v0::IdentityUpdateTransitionV0; use dpp::state_transition::public_key_in_creation::IdentityPublicKeyInCreation; use dpp::state_transition::{ - StateTransition, StateTransitionIdentitySigned, StateTransitionLike, - StateTransitionSingleSigned, + StateTransition, StateTransitionHasUserFeeIncrease, StateTransitionIdentitySigned, + StateTransitionLike, StateTransitionSingleSigned, }; use serde::Deserialize; use wasm_bindgen::JsValue; From 418b0b1fa12170a505c6f1e2fc6fb1abe8b41794 Mon Sep 17 00:00:00 2001 From: Quantum Explorer Date: Thu, 5 Mar 2026 08:57:06 +0700 Subject: [PATCH 5/5] fix(wasm-dpp2): remove unused StateTransitionLike imports Co-Authored-By: Claude Opus 4.6 --- .../wasm-dpp2/src/identity/transitions/create_transition.rs | 3 +-- .../transitions/identity_credit_transfer_transition.rs | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/wasm-dpp2/src/identity/transitions/create_transition.rs b/packages/wasm-dpp2/src/identity/transitions/create_transition.rs index d728378315c..bf24d4348d0 100644 --- a/packages/wasm-dpp2/src/identity/transitions/create_transition.rs +++ b/packages/wasm-dpp2/src/identity/transitions/create_transition.rs @@ -18,8 +18,7 @@ use dpp::state_transition::identity_create_transition::accessors::IdentityCreate use dpp::state_transition::identity_create_transition::v0::IdentityCreateTransitionV0; use dpp::state_transition::public_key_in_creation::IdentityPublicKeyInCreation; use dpp::state_transition::{ - StateTransition, StateTransitionHasUserFeeIncrease, StateTransitionLike, - StateTransitionSingleSigned, + StateTransition, StateTransitionHasUserFeeIncrease, StateTransitionSingleSigned, }; use serde::Deserialize; use wasm_bindgen::JsValue; diff --git a/packages/wasm-dpp2/src/identity/transitions/identity_credit_transfer_transition.rs b/packages/wasm-dpp2/src/identity/transitions/identity_credit_transfer_transition.rs index 1ae19d58ffb..98bc83f6333 100644 --- a/packages/wasm-dpp2/src/identity/transitions/identity_credit_transfer_transition.rs +++ b/packages/wasm-dpp2/src/identity/transitions/identity_credit_transfer_transition.rs @@ -14,7 +14,7 @@ use dpp::state_transition::identity_credit_transfer_transition::accessors::Ident use dpp::state_transition::identity_credit_transfer_transition::v0::IdentityCreditTransferTransitionV0; use dpp::state_transition::{ StateTransition, StateTransitionHasUserFeeIncrease, StateTransitionIdentitySigned, - StateTransitionLike, StateTransitionSingleSigned, + StateTransitionSingleSigned, }; use serde::Deserialize; use wasm_bindgen::prelude::wasm_bindgen;