From 05da6d8e84b4d55d36094a07365ae251bf26c1a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= <git@kchr.de> Date: Wed, 24 May 2023 23:59:34 +0200 Subject: [PATCH] HoldReason: Improve usage (#13869) * HoldReason: Improve usage `HoldReason` was switched recently to use the `composite_enum` attribute that will merge the enums from all pallets in the runtime to `RuntimeHoldReason`. `pallet-nis` was still requiring that the variant was passed as constant to call `hold`. The proper implementation is to use the `HoldReason` from inside the pallet directly when calling `hold`. This is done by adding a `RuntimeHoldReason` as type to the `Config` trait and requiring that `Currency` is using the same reason. Besides that the pr changes the name `HoldIdentifier` in `pallet_balances::Config` to `RuntimeHoldReason`. * Update frame/nis/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Review comment * Fixes --------- Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> --- .../bin/node-template/runtime/src/lib.rs | 2 +- substrate/bin/node/runtime/src/lib.rs | 20 ++--------- substrate/client/executor/benches/bench.rs | 1 - substrate/frame/alliance/src/mock.rs | 2 +- substrate/frame/asset-rate/src/mock.rs | 2 +- substrate/frame/assets/src/mock.rs | 2 +- substrate/frame/atomic-swap/src/tests.rs | 2 +- substrate/frame/babe/src/mock.rs | 2 +- substrate/frame/balances/src/impl_fungible.rs | 2 +- substrate/frame/balances/src/lib.rs | 6 ++-- substrate/frame/balances/src/tests/mod.rs | 2 +- substrate/frame/beefy/src/mock.rs | 2 +- substrate/frame/bounties/src/tests.rs | 2 +- substrate/frame/child-bounties/src/tests.rs | 2 +- substrate/frame/contracts/src/tests.rs | 2 +- .../frame/conviction-voting/src/tests.rs | 2 +- substrate/frame/democracy/src/tests.rs | 2 +- .../election-provider-multi-phase/src/mock.rs | 2 +- .../test-staking-e2e/src/mock.rs | 2 +- substrate/frame/elections-phragmen/src/lib.rs | 2 +- substrate/frame/examples/basic/src/tests.rs | 2 +- .../frame/examples/dev-mode/src/tests.rs | 2 +- substrate/frame/executive/src/lib.rs | 2 +- substrate/frame/fast-unstake/src/mock.rs | 2 +- substrate/frame/grandpa/src/mock.rs | 2 +- substrate/frame/identity/src/tests.rs | 2 +- substrate/frame/indices/src/mock.rs | 2 +- substrate/frame/lottery/src/mock.rs | 2 +- substrate/frame/multisig/src/tests.rs | 2 +- .../frame/nft-fractionalization/src/lib.rs | 28 +++++++++++----- .../frame/nft-fractionalization/src/mock.rs | 14 ++------ substrate/frame/nfts/src/mock.rs | 2 +- substrate/frame/nicks/src/lib.rs | 2 +- substrate/frame/nis/src/lib.rs | 33 ++++++++----------- substrate/frame/nis/src/mock.rs | 16 ++------- .../nomination-pools/benchmarking/src/mock.rs | 2 +- substrate/frame/nomination-pools/src/mock.rs | 2 +- .../nomination-pools/test-staking/src/mock.rs | 2 +- .../frame/offences/benchmarking/src/mock.rs | 2 +- substrate/frame/preimage/src/mock.rs | 2 +- substrate/frame/proxy/src/tests.rs | 2 +- substrate/frame/recovery/src/mock.rs | 2 +- substrate/frame/referenda/src/mock.rs | 2 +- substrate/frame/root-offences/src/mock.rs | 2 +- substrate/frame/scored-pool/src/mock.rs | 2 +- .../frame/session/benchmarking/src/mock.rs | 2 +- substrate/frame/society/src/mock.rs | 2 +- substrate/frame/staking/src/mock.rs | 2 +- .../frame/state-trie-migration/src/lib.rs | 2 +- substrate/frame/statement/src/mock.rs | 2 +- substrate/frame/tips/src/tests.rs | 2 +- .../asset-tx-payment/src/mock.rs | 2 +- .../frame/transaction-payment/src/mock.rs | 2 +- .../frame/transaction-storage/src/mock.rs | 2 +- substrate/frame/treasury/src/tests.rs | 2 +- substrate/frame/uniques/src/mock.rs | 2 +- substrate/frame/utility/src/tests.rs | 2 +- substrate/frame/vesting/src/mock.rs | 2 +- substrate/frame/whitelist/src/mock.rs | 2 +- substrate/test-utils/runtime/src/lib.rs | 2 +- 60 files changed, 97 insertions(+), 127 deletions(-) diff --git a/substrate/bin/node-template/runtime/src/lib.rs b/substrate/bin/node-template/runtime/src/lib.rs index 49346fbdd77..b32ea0d9581 100644 --- a/substrate/bin/node-template/runtime/src/lib.rs +++ b/substrate/bin/node-template/runtime/src/lib.rs @@ -245,7 +245,7 @@ impl pallet_balances::Config for Runtime { type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>; type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 4bab2528ae2..21645c5aa7d 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -59,7 +59,6 @@ use pallet_nis::WithMaximumOf; use pallet_session::historical as pallet_session_historical; pub use pallet_transaction_payment::{CurrencyAdapter, Multiplier, TargetedFeeAdjustment}; use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo}; -use scale_info::TypeInfo; use sp_api::impl_runtime_apis; use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; use sp_consensus_grandpa::AuthorityId as GrandpaId; @@ -439,17 +438,6 @@ parameter_types! { pub const MaxReserves: u32 = 50; } -/// A reason for placing a hold on funds. -#[derive( - Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, MaxEncodedLen, Debug, TypeInfo, -)] -pub enum HoldReason { - /// The NIS Pallet has reserved it for a non-fungible receipt. - Nis, - /// Used by the NFT Fractionalization Pallet. - NftFractionalization, -} - impl pallet_balances::Config for Runtime { type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; @@ -462,7 +450,7 @@ impl pallet_balances::Config for Runtime { type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>; type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = HoldReason; + type RuntimeHoldReason = RuntimeHoldReason; type MaxHolds = ConstU32<2>; } @@ -1520,7 +1508,6 @@ parameter_types! { pub const ThawThrottle: (Perquintill, BlockNumber) = (Perquintill::from_percent(25), 5); pub Target: Perquintill = Perquintill::zero(); pub const NisPalletId: PalletId = PalletId(*b"py/nis "); - pub const NisHoldReason: HoldReason = HoldReason::Nis; } impl pallet_nis::Config for Runtime { @@ -1544,7 +1531,7 @@ impl pallet_nis::Config for Runtime { type IntakePeriod = IntakePeriod; type MaxIntakeWeight = MaxIntakeWeight; type ThawThrottle = ThawThrottle; - type HoldReason = NisHoldReason; + type RuntimeHoldReason = RuntimeHoldReason; } parameter_types! { @@ -1618,7 +1605,6 @@ parameter_types! { pub const NftFractionalizationPalletId: PalletId = PalletId(*b"fraction"); pub NewAssetSymbol: BoundedVec<u8, StringLimit> = (*b"FRAC").to_vec().try_into().unwrap(); pub NewAssetName: BoundedVec<u8, StringLimit> = (*b"Frac").to_vec().try_into().unwrap(); - pub const NftFractionalizationHoldReason: HoldReason = HoldReason::NftFractionalization; } impl pallet_nft_fractionalization::Config for Runtime { @@ -1636,7 +1622,7 @@ impl pallet_nft_fractionalization::Config for Runtime { type Nfts = Nfts; type PalletId = NftFractionalizationPalletId; type WeightInfo = pallet_nft_fractionalization::weights::SubstrateWeight<Runtime>; - type HoldReason = NftFractionalizationHoldReason; + type RuntimeHoldReason = RuntimeHoldReason; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); } diff --git a/substrate/client/executor/benches/bench.rs b/substrate/client/executor/benches/bench.rs index 38ae58adb61..66a82a17522 100644 --- a/substrate/client/executor/benches/bench.rs +++ b/substrate/client/executor/benches/bench.rs @@ -25,7 +25,6 @@ use sc_executor_common::{ }; use sc_executor_wasmtime::InstantiationStrategy; use sc_runtime_test::wasm_binary_unwrap as test_runtime; -use sp_wasm_interface::HostFunctions as _; use std::sync::{ atomic::{AtomicBool, AtomicUsize, Ordering}, Arc, diff --git a/substrate/frame/alliance/src/mock.rs b/substrate/frame/alliance/src/mock.rs index c334a3943b0..8513364c3ce 100644 --- a/substrate/frame/alliance/src/mock.rs +++ b/substrate/frame/alliance/src/mock.rs @@ -89,7 +89,7 @@ impl pallet_balances::Config for Test { type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/asset-rate/src/mock.rs b/substrate/frame/asset-rate/src/mock.rs index 9775b7a7479..2d90fcfecd7 100644 --- a/substrate/frame/asset-rate/src/mock.rs +++ b/substrate/frame/asset-rate/src/mock.rs @@ -77,7 +77,7 @@ impl pallet_balances::Config for Test { type MaxLocks = (); type MaxReserves = (); type ReserveIdentifier = [u8; 8]; - type HoldIdentifier = (); + type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type MaxHolds = (); type MaxFreezes = (); diff --git a/substrate/frame/assets/src/mock.rs b/substrate/frame/assets/src/mock.rs index 3926d2fa8b0..09d2bd22960 100644 --- a/substrate/frame/assets/src/mock.rs +++ b/substrate/frame/assets/src/mock.rs @@ -87,7 +87,7 @@ impl pallet_balances::Config for Test { type MaxLocks = (); type MaxReserves = (); type ReserveIdentifier = [u8; 8]; - type HoldIdentifier = (); + type RuntimeHoldReason = (); type FreezeIdentifier = (); type MaxHolds = (); type MaxFreezes = (); diff --git a/substrate/frame/atomic-swap/src/tests.rs b/substrate/frame/atomic-swap/src/tests.rs index 7437d62a99c..53ccd64bb27 100644 --- a/substrate/frame/atomic-swap/src/tests.rs +++ b/substrate/frame/atomic-swap/src/tests.rs @@ -64,7 +64,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/babe/src/mock.rs b/substrate/frame/babe/src/mock.rs index 4278fa4596a..c0ccc9a8acd 100644 --- a/substrate/frame/babe/src/mock.rs +++ b/substrate/frame/babe/src/mock.rs @@ -145,7 +145,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/balances/src/impl_fungible.rs b/substrate/frame/balances/src/impl_fungible.rs index f8f8fe17ae0..03c40bb3a84 100644 --- a/substrate/frame/balances/src/impl_fungible.rs +++ b/substrate/frame/balances/src/impl_fungible.rs @@ -207,7 +207,7 @@ impl<T: Config<I>, I: 'static> fungible::Mutate<T::AccountId> for Pallet<T, I> { impl<T: Config<I>, I: 'static> fungible::MutateHold<T::AccountId> for Pallet<T, I> {} impl<T: Config<I>, I: 'static> fungible::InspectHold<T::AccountId> for Pallet<T, I> { - type Reason = T::HoldIdentifier; + type Reason = T::RuntimeHoldReason; fn total_balance_on_hold(who: &T::AccountId) -> T::Balance { Self::account(who).reserved diff --git a/substrate/frame/balances/src/lib.rs b/substrate/frame/balances/src/lib.rs index 7ed725a77df..8d68f693b24 100644 --- a/substrate/frame/balances/src/lib.rs +++ b/substrate/frame/balances/src/lib.rs @@ -257,8 +257,8 @@ pub mod pallet { /// Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` type ReserveIdentifier: Parameter + Member + MaxEncodedLen + Ord + Copy; - /// The ID type for holds. - type HoldIdentifier: Parameter + Member + MaxEncodedLen + Ord + Copy; + /// The overarching hold reason. + type RuntimeHoldReason: Parameter + Member + MaxEncodedLen + Ord + Copy; /// The ID type for freezes. type FreezeIdentifier: Parameter + Member + MaxEncodedLen + Ord + Copy; @@ -437,7 +437,7 @@ pub mod pallet { _, Blake2_128Concat, T::AccountId, - BoundedVec<IdAmount<T::HoldIdentifier, T::Balance>, T::MaxHolds>, + BoundedVec<IdAmount<T::RuntimeHoldReason, T::Balance>, T::MaxHolds>, ValueQuery, >; diff --git a/substrate/frame/balances/src/tests/mod.rs b/substrate/frame/balances/src/tests/mod.rs index 4731dbf8ed3..6deb9885b79 100644 --- a/substrate/frame/balances/src/tests/mod.rs +++ b/substrate/frame/balances/src/tests/mod.rs @@ -137,7 +137,7 @@ impl Config for Test { type MaxReserves = ConstU32<2>; type ReserveIdentifier = TestId; type WeightInfo = (); - type HoldIdentifier = TestId; + type RuntimeHoldReason = TestId; type FreezeIdentifier = TestId; type MaxFreezes = ConstU32<2>; type MaxHolds = ConstU32<2>; diff --git a/substrate/frame/beefy/src/mock.rs b/substrate/frame/beefy/src/mock.rs index 6b6ffd6751f..7edf4d33975 100644 --- a/substrate/frame/beefy/src/mock.rs +++ b/substrate/frame/beefy/src/mock.rs @@ -161,7 +161,7 @@ impl pallet_balances::Config for Test { type ExistentialDeposit = ConstU128<1>; type AccountStore = System; type WeightInfo = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); type FreezeIdentifier = (); type MaxFreezes = (); diff --git a/substrate/frame/bounties/src/tests.rs b/substrate/frame/bounties/src/tests.rs index ef3da756487..fd5020dead4 100644 --- a/substrate/frame/bounties/src/tests.rs +++ b/substrate/frame/bounties/src/tests.rs @@ -102,7 +102,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } parameter_types! { diff --git a/substrate/frame/child-bounties/src/tests.rs b/substrate/frame/child-bounties/src/tests.rs index a936312aec8..a8f0e16ea21 100644 --- a/substrate/frame/child-bounties/src/tests.rs +++ b/substrate/frame/child-bounties/src/tests.rs @@ -105,7 +105,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } parameter_types! { diff --git a/substrate/frame/contracts/src/tests.rs b/substrate/frame/contracts/src/tests.rs index c32999d0ade..ed754b5908f 100644 --- a/substrate/frame/contracts/src/tests.rs +++ b/substrate/frame/contracts/src/tests.rs @@ -322,7 +322,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/conviction-voting/src/tests.rs b/substrate/frame/conviction-voting/src/tests.rs index f33e511a164..1ea3a56adac 100644 --- a/substrate/frame/conviction-voting/src/tests.rs +++ b/substrate/frame/conviction-voting/src/tests.rs @@ -94,7 +94,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/democracy/src/tests.rs b/substrate/frame/democracy/src/tests.rs index 06fde5129c6..dd726004648 100644 --- a/substrate/frame/democracy/src/tests.rs +++ b/substrate/frame/democracy/src/tests.rs @@ -146,7 +146,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } parameter_types! { diff --git a/substrate/frame/election-provider-multi-phase/src/mock.rs b/substrate/frame/election-provider-multi-phase/src/mock.rs index 732a650ce6d..cf797aea845 100644 --- a/substrate/frame/election-provider-multi-phase/src/mock.rs +++ b/substrate/frame/election-provider-multi-phase/src/mock.rs @@ -256,7 +256,7 @@ impl pallet_balances::Config for Runtime { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs b/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs index 490179e91dd..da7ccf6dce9 100644 --- a/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs +++ b/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs @@ -126,7 +126,7 @@ impl pallet_balances::Config for Runtime { type AccountStore = System; type MaxHolds = ConstU32<1>; type MaxFreezes = traits::ConstU32<1>; - type HoldIdentifier = (); + type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type WeightInfo = (); } diff --git a/substrate/frame/elections-phragmen/src/lib.rs b/substrate/frame/elections-phragmen/src/lib.rs index 33a8634cb3b..08ef4e8db9a 100644 --- a/substrate/frame/elections-phragmen/src/lib.rs +++ b/substrate/frame/elections-phragmen/src/lib.rs @@ -1352,7 +1352,7 @@ mod tests { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/examples/basic/src/tests.rs b/substrate/frame/examples/basic/src/tests.rs index 1d9cf81a507..3b12c3bdd72 100644 --- a/substrate/frame/examples/basic/src/tests.rs +++ b/substrate/frame/examples/basic/src/tests.rs @@ -89,7 +89,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/examples/dev-mode/src/tests.rs b/substrate/frame/examples/dev-mode/src/tests.rs index e2f06ddda6c..6b18b4183ea 100644 --- a/substrate/frame/examples/dev-mode/src/tests.rs +++ b/substrate/frame/examples/dev-mode/src/tests.rs @@ -83,7 +83,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = RuntimeHoldReason; type MaxHolds = (); } diff --git a/substrate/frame/executive/src/lib.rs b/substrate/frame/executive/src/lib.rs index 9ec78f25421..31cbb0ee7ba 100644 --- a/substrate/frame/executive/src/lib.rs +++ b/substrate/frame/executive/src/lib.rs @@ -886,7 +886,7 @@ mod tests { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = ConstU32<1>; - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = ConstU32<1>; } diff --git a/substrate/frame/fast-unstake/src/mock.rs b/substrate/frame/fast-unstake/src/mock.rs index d75c8938079..101ad908811 100644 --- a/substrate/frame/fast-unstake/src/mock.rs +++ b/substrate/frame/fast-unstake/src/mock.rs @@ -91,7 +91,7 @@ impl pallet_balances::Config for Runtime { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/grandpa/src/mock.rs b/substrate/frame/grandpa/src/mock.rs index ffc566ffe74..df012ab9dc6 100644 --- a/substrate/frame/grandpa/src/mock.rs +++ b/substrate/frame/grandpa/src/mock.rs @@ -144,7 +144,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/identity/src/tests.rs b/substrate/frame/identity/src/tests.rs index ba9749172e5..83035c402a7 100644 --- a/substrate/frame/identity/src/tests.rs +++ b/substrate/frame/identity/src/tests.rs @@ -87,7 +87,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/indices/src/mock.rs b/substrate/frame/indices/src/mock.rs index 8bd05d04ab4..f54e4dfa088 100644 --- a/substrate/frame/indices/src/mock.rs +++ b/substrate/frame/indices/src/mock.rs @@ -78,7 +78,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/lottery/src/mock.rs b/substrate/frame/lottery/src/mock.rs index 7afd0e319db..d89c9d6890e 100644 --- a/substrate/frame/lottery/src/mock.rs +++ b/substrate/frame/lottery/src/mock.rs @@ -91,7 +91,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/multisig/src/tests.rs b/substrate/frame/multisig/src/tests.rs index 7e7f1668026..cc0fbc80989 100644 --- a/substrate/frame/multisig/src/tests.rs +++ b/substrate/frame/multisig/src/tests.rs @@ -87,7 +87,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/nft-fractionalization/src/lib.rs b/substrate/frame/nft-fractionalization/src/lib.rs index e1c8b8fea89..459d89f5a81 100644 --- a/substrate/frame/nft-fractionalization/src/lib.rs +++ b/substrate/frame/nft-fractionalization/src/lib.rs @@ -63,8 +63,8 @@ pub mod pallet { sp_runtime::traits::{AccountIdConversion, StaticLookup}, traits::{ fungible::{ - hold::{Inspect as HoldInspectFungible, Mutate as HoldMutateFungible}, - Inspect as InspectFungible, Mutate as MutateFungible, + hold::Mutate as HoldMutateFungible, Inspect as InspectFungible, + Mutate as MutateFungible, }, fungibles::{ metadata::{MetadataDeposit, Mutate as MutateMetadata}, @@ -96,11 +96,10 @@ pub mod pallet { /// The currency mechanism, used for paying for deposits. type Currency: InspectFungible<Self::AccountId> + MutateFungible<Self::AccountId> - + HoldInspectFungible<Self::AccountId> - + HoldMutateFungible<Self::AccountId>; + + HoldMutateFungible<Self::AccountId, Reason = Self::RuntimeHoldReason>; - #[pallet::constant] - type HoldReason: Get<<Self::Currency as HoldInspectFungible<Self::AccountId>>::Reason>; + /// Overarching hold reason. + type RuntimeHoldReason: From<HoldReason>; /// The deposit paid by the user locking an NFT. The deposit is returned to the original NFT /// owner when the asset is unified and the NFT is unlocked. @@ -201,6 +200,14 @@ pub mod pallet { NftNotFractionalized, } + /// A reason for the pallet placing a hold on funds. + #[pallet::composite_enum] + pub enum HoldReason { + /// Reserved for a fractionalized NFT. + #[codec(index = 0)] + Fractionalized, + } + #[pallet::call] impl<T: Config> Pallet<T> { /// Lock the NFT and mint a new fungible asset. @@ -239,7 +246,7 @@ pub mod pallet { let pallet_account = Self::get_pallet_account(); let deposit = T::Deposit::get(); - T::Currency::hold(&T::HoldReason::get(), &nft_owner, deposit)?; + T::Currency::hold(&HoldReason::Fractionalized.into(), &nft_owner, deposit)?; Self::do_lock_nft(nft_collection_id, nft_id)?; Self::do_create_asset(asset_id.clone(), pallet_account.clone())?; Self::do_mint_asset(asset_id.clone(), &beneficiary, fractions)?; @@ -303,7 +310,12 @@ pub mod pallet { let asset_creator = details.asset_creator; Self::do_burn_asset(asset_id.clone(), &who, details.fractions)?; Self::do_unlock_nft(nft_collection_id, nft_id, &beneficiary)?; - T::Currency::release(&T::HoldReason::get(), &asset_creator, deposit, BestEffort)?; + T::Currency::release( + &HoldReason::Fractionalized.into(), + &asset_creator, + deposit, + BestEffort, + )?; Self::deposit_event(Event::NftUnified { nft_collection: nft_collection_id, diff --git a/substrate/frame/nft-fractionalization/src/mock.rs b/substrate/frame/nft-fractionalization/src/mock.rs index 05fbadb0393..62ff3df5b1a 100644 --- a/substrate/frame/nft-fractionalization/src/mock.rs +++ b/substrate/frame/nft-fractionalization/src/mock.rs @@ -20,7 +20,6 @@ use super::*; use crate as pallet_nft_fractionalization; -use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ construct_runtime, parameter_types, traits::{AsEnsureOriginWithArg, ConstU32, ConstU64}, @@ -28,7 +27,6 @@ use frame_support::{ }; use frame_system::EnsureSigned; use pallet_nfts::PalletFeatures; -use scale_info::TypeInfo; use sp_core::H256; use sp_runtime::{ testing::Header, @@ -83,13 +81,6 @@ impl frame_system::Config for Test { type MaxConsumers = ConstU32<16>; } -#[derive( - Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, MaxEncodedLen, Debug, TypeInfo, -)] -pub enum HoldIdentifier { - NftFractionalization, -} - impl pallet_balances::Config for Test { type Balance = u64; type DustRemoval = (); @@ -100,7 +91,7 @@ impl pallet_balances::Config for Test { type MaxLocks = (); type MaxReserves = ConstU32<50>; type ReserveIdentifier = [u8; 8]; - type HoldIdentifier = HoldIdentifier; + type RuntimeHoldReason = RuntimeHoldReason; type MaxHolds = ConstU32<1>; type FreezeIdentifier = (); type MaxFreezes = (); @@ -169,7 +160,6 @@ parameter_types! { pub const NftFractionalizationPalletId: PalletId = PalletId(*b"fraction"); pub NewAssetSymbol: BoundedVec<u8, StringLimit> = (*b"FRAC").to_vec().try_into().unwrap(); pub NewAssetName: BoundedVec<u8, StringLimit> = (*b"Frac").to_vec().try_into().unwrap(); - pub const HoldReason: HoldIdentifier = HoldIdentifier::NftFractionalization; } impl Config for Test { @@ -189,7 +179,7 @@ impl Config for Test { type StringLimit = StringLimit; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); - type HoldReason = HoldReason; + type RuntimeHoldReason = RuntimeHoldReason; } // Build genesis storage according to the mock runtime. diff --git a/substrate/frame/nfts/src/mock.rs b/substrate/frame/nfts/src/mock.rs index e2856a07b99..79f0b341e9f 100644 --- a/substrate/frame/nfts/src/mock.rs +++ b/substrate/frame/nfts/src/mock.rs @@ -90,7 +90,7 @@ impl pallet_balances::Config for Test { type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/nicks/src/lib.rs b/substrate/frame/nicks/src/lib.rs index 92865c773d8..7a7b33051b2 100644 --- a/substrate/frame/nicks/src/lib.rs +++ b/substrate/frame/nicks/src/lib.rs @@ -297,7 +297,7 @@ mod tests { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/nis/src/lib.rs b/substrate/frame/nis/src/lib.rs index c4d0d0d4202..48d322545a6 100644 --- a/substrate/frame/nis/src/lib.rs +++ b/substrate/frame/nis/src/lib.rs @@ -162,11 +162,7 @@ pub mod pallet { use frame_support::{ pallet_prelude::*, traits::{ - fungible::{ - self, - hold::{Inspect as FunHoldInspect, Mutate as FunHoldMutate}, - Balanced as FunBalanced, - }, + fungible::{self, hold::Mutate as FunHoldMutate, Balanced as FunBalanced}, nonfungible::{Inspect as NftInspect, Transfer as NftTransfer}, tokens::{ Fortitude::Polite, @@ -216,13 +212,10 @@ pub mod pallet { type Currency: FunInspect<Self::AccountId, Balance = Self::CurrencyBalance> + FunMutate<Self::AccountId> + FunBalanced<Self::AccountId> - + FunHoldInspect<Self::AccountId> - + FunHoldMutate<Self::AccountId>; - - /// The identifier of the hold reason. + + FunHoldMutate<Self::AccountId, Reason = Self::RuntimeHoldReason>; - #[pallet::constant] - type HoldReason: Get<<Self::Currency as FunHoldInspect<Self::AccountId>>::Reason>; + /// Overarching hold reason. + type RuntimeHoldReason: From<HoldReason>; /// Just the `Currency::Balance` type; we have this item to allow us to constrain it to /// `From<u64>`. @@ -569,14 +562,14 @@ pub mod pallet { |q| -> Result<(u32, BalanceOf<T>), DispatchError> { let queue_full = q.len() == T::MaxQueueLen::get() as usize; ensure!(!queue_full || q[0].amount < amount, Error::<T>::BidTooLow); - T::Currency::hold(&T::HoldReason::get(), &who, amount)?; + T::Currency::hold(&HoldReason::NftReceipt.into(), &who, amount)?; // queue is <Ordered: Lowest ... Highest><Fifo: Last ... First> let mut bid = Bid { amount, who: who.clone() }; let net = if queue_full { sp_std::mem::swap(&mut q[0], &mut bid); let _ = T::Currency::release( - &T::HoldReason::get(), + &HoldReason::NftReceipt.into(), &bid.who, bid.amount, BestEffort, @@ -637,7 +630,7 @@ pub mod pallet { queue.remove(pos); let new_len = queue.len() as u32; - T::Currency::release(&T::HoldReason::get(), &bid.who, bid.amount, BestEffort)?; + T::Currency::release(&HoldReason::NftReceipt.into(), &bid.who, bid.amount, BestEffort)?; Queues::<T>::insert(duration, queue); QueueTotals::<T>::mutate(|qs| { @@ -729,7 +722,7 @@ pub mod pallet { let dropped = receipt.proportion.is_zero(); if amount > on_hold { - T::Currency::release(&T::HoldReason::get(), &who, on_hold, Exact)?; + T::Currency::release(&HoldReason::NftReceipt.into(), &who, on_hold, Exact)?; let deficit = amount - on_hold; // Try to transfer deficit from pot to receipt owner. summary.receipts_on_hold.saturating_reduce(on_hold); @@ -744,7 +737,7 @@ pub mod pallet { // Transfer excess of `on_hold` to the pot if we have now fully compensated for // the receipt. T::Currency::transfer_on_hold( - &T::HoldReason::get(), + &HoldReason::NftReceipt.into(), &who, &our_account, on_hold, @@ -760,7 +753,7 @@ pub mod pallet { )?; summary.receipts_on_hold.saturating_reduce(on_hold); } - T::Currency::release(&T::HoldReason::get(), &who, amount, Exact)?; + T::Currency::release(&HoldReason::NftReceipt.into(), &who, amount, Exact)?; } if dropped { @@ -852,7 +845,7 @@ pub mod pallet { ensure!(owner == who, Error::<T>::NotOwner); // Unreserve and transfer the funds to the pot. - let reason = T::HoldReason::get(); + let reason = HoldReason::NftReceipt.into(); let us = Self::account_id(); T::Currency::transfer_on_hold(&reason, &who, &us, on_hold, Exact, Free, Polite) .map_err(|_| Error::<T>::Unfunded)?; @@ -903,7 +896,7 @@ pub mod pallet { )?; // Transfer the funds from the pot to the owner and reserve - let reason = T::HoldReason::get(); + let reason = HoldReason::NftReceipt.into(); let us = Self::account_id(); T::Currency::transfer_and_hold(&reason, &us, &who, amount, Exact, Expendable, Polite)?; @@ -959,7 +952,7 @@ pub mod pallet { let mut item = Receipts::<T>::get(index).ok_or(TokenError::UnknownAsset)?; let (owner, on_hold) = item.owner.take().ok_or(Error::<T>::AlreadyCommunal)?; - let reason = T::HoldReason::get(); + let reason = HoldReason::NftReceipt.into(); T::Currency::transfer_on_hold(&reason, &owner, dest, on_hold, Exact, OnHold, Polite)?; item.owner = Some((dest.clone(), on_hold)); diff --git a/substrate/frame/nis/src/mock.rs b/substrate/frame/nis/src/mock.rs index 0ca66909368..60aa0f756e9 100644 --- a/substrate/frame/nis/src/mock.rs +++ b/substrate/frame/nis/src/mock.rs @@ -19,7 +19,6 @@ use crate::{self as pallet_nis, Perquintill, WithMaximumOf}; -use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ ord_parameter_types, parameter_types, traits::{ @@ -30,7 +29,6 @@ use frame_support::{ PalletId, }; use pallet_balances::{Instance1, Instance2}; -use scale_info::TypeInfo; use sp_core::{ConstU128, H256}; use sp_runtime::{ testing::Header, @@ -95,17 +93,10 @@ impl pallet_balances::Config<Instance1> for Test { type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = HoldIdentifier; + type RuntimeHoldReason = RuntimeHoldReason; type MaxHolds = ConstU32<1>; } -#[derive( - Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, MaxEncodedLen, Debug, TypeInfo, -)] -pub enum HoldIdentifier { - Nis, -} - impl pallet_balances::Config<Instance2> for Test { type Balance = u128; type DustRemoval = (); @@ -122,7 +113,7 @@ impl pallet_balances::Config<Instance2> for Test { type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } @@ -133,7 +124,6 @@ parameter_types! { pub const MinReceipt: Perquintill = Perquintill::from_percent(1); pub const ThawThrottle: (Perquintill, u64) = (Perquintill::from_percent(25), 5); pub static MaxIntakeWeight: Weight = Weight::from_parts(2_000_000_000_000, 0); - pub const HoldReason: HoldIdentifier = HoldIdentifier::Nis; } ord_parameter_types! { @@ -161,7 +151,7 @@ impl pallet_nis::Config for Test { type MaxIntakeWeight = MaxIntakeWeight; type MinReceipt = MinReceipt; type ThawThrottle = ThawThrottle; - type HoldReason = HoldReason; + type RuntimeHoldReason = RuntimeHoldReason; } // This function basically just builds a genesis storage key/value store according to diff --git a/substrate/frame/nomination-pools/benchmarking/src/mock.rs b/substrate/frame/nomination-pools/benchmarking/src/mock.rs index cffb712ea2a..d94c63d1bf5 100644 --- a/substrate/frame/nomination-pools/benchmarking/src/mock.rs +++ b/substrate/frame/nomination-pools/benchmarking/src/mock.rs @@ -77,7 +77,7 @@ impl pallet_balances::Config for Runtime { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/nomination-pools/src/mock.rs b/substrate/frame/nomination-pools/src/mock.rs index 3ab9be516fd..f0b73bbea28 100644 --- a/substrate/frame/nomination-pools/src/mock.rs +++ b/substrate/frame/nomination-pools/src/mock.rs @@ -206,7 +206,7 @@ impl pallet_balances::Config for Runtime { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/nomination-pools/test-staking/src/mock.rs b/substrate/frame/nomination-pools/test-staking/src/mock.rs index 9726f5e6dad..a9c64508564 100644 --- a/substrate/frame/nomination-pools/test-staking/src/mock.rs +++ b/substrate/frame/nomination-pools/test-staking/src/mock.rs @@ -88,7 +88,7 @@ impl pallet_balances::Config for Runtime { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/offences/benchmarking/src/mock.rs b/substrate/frame/offences/benchmarking/src/mock.rs index 668d88e0bf3..ed0c6c7ea44 100644 --- a/substrate/frame/offences/benchmarking/src/mock.rs +++ b/substrate/frame/offences/benchmarking/src/mock.rs @@ -76,7 +76,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/preimage/src/mock.rs b/substrate/frame/preimage/src/mock.rs index 5054a77a812..7c645da2c51 100644 --- a/substrate/frame/preimage/src/mock.rs +++ b/substrate/frame/preimage/src/mock.rs @@ -86,7 +86,7 @@ impl pallet_balances::Config for Test { type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/proxy/src/tests.rs b/substrate/frame/proxy/src/tests.rs index f3771083c4d..54b76413bcf 100644 --- a/substrate/frame/proxy/src/tests.rs +++ b/substrate/frame/proxy/src/tests.rs @@ -90,7 +90,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } impl pallet_utility::Config for Test { diff --git a/substrate/frame/recovery/src/mock.rs b/substrate/frame/recovery/src/mock.rs index 5c190e2a241..523dd3aa3e8 100644 --- a/substrate/frame/recovery/src/mock.rs +++ b/substrate/frame/recovery/src/mock.rs @@ -88,7 +88,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/referenda/src/mock.rs b/substrate/frame/referenda/src/mock.rs index cdedb79556f..1a43257cb94 100644 --- a/substrate/frame/referenda/src/mock.rs +++ b/substrate/frame/referenda/src/mock.rs @@ -122,7 +122,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } parameter_types! { diff --git a/substrate/frame/root-offences/src/mock.rs b/substrate/frame/root-offences/src/mock.rs index e48360ed34e..8c48e34e4e0 100644 --- a/substrate/frame/root-offences/src/mock.rs +++ b/substrate/frame/root-offences/src/mock.rs @@ -123,7 +123,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/scored-pool/src/mock.rs b/substrate/frame/scored-pool/src/mock.rs index f10a1320ef8..83bc939e823 100644 --- a/substrate/frame/scored-pool/src/mock.rs +++ b/substrate/frame/scored-pool/src/mock.rs @@ -93,7 +93,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/session/benchmarking/src/mock.rs b/substrate/frame/session/benchmarking/src/mock.rs index b7671255f68..3b027492e0a 100644 --- a/substrate/frame/session/benchmarking/src/mock.rs +++ b/substrate/frame/session/benchmarking/src/mock.rs @@ -86,7 +86,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/society/src/mock.rs b/substrate/frame/society/src/mock.rs index 9f72febc210..6075f14da12 100644 --- a/substrate/frame/society/src/mock.rs +++ b/substrate/frame/society/src/mock.rs @@ -95,7 +95,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/staking/src/mock.rs b/substrate/frame/staking/src/mock.rs index 98b58010a24..f9af9f5003b 100644 --- a/substrate/frame/staking/src/mock.rs +++ b/substrate/frame/staking/src/mock.rs @@ -159,7 +159,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/state-trie-migration/src/lib.rs b/substrate/frame/state-trie-migration/src/lib.rs index 1f6266d9998..05ca21c1de7 100644 --- a/substrate/frame/state-trie-migration/src/lib.rs +++ b/substrate/frame/state-trie-migration/src/lib.rs @@ -1130,7 +1130,7 @@ mod mock { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/statement/src/mock.rs b/substrate/frame/statement/src/mock.rs index f4d9360c9a6..8b9e7a1a7d9 100644 --- a/substrate/frame/statement/src/mock.rs +++ b/substrate/frame/statement/src/mock.rs @@ -91,7 +91,7 @@ impl pallet_balances::Config for Test { type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = RuntimeHoldReason; type MaxHolds = (); } diff --git a/substrate/frame/tips/src/tests.rs b/substrate/frame/tips/src/tests.rs index b2d97de1831..b582e09f1bc 100644 --- a/substrate/frame/tips/src/tests.rs +++ b/substrate/frame/tips/src/tests.rs @@ -99,7 +99,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } parameter_types! { diff --git a/substrate/frame/transaction-payment/asset-tx-payment/src/mock.rs b/substrate/frame/transaction-payment/asset-tx-payment/src/mock.rs index be7baaf2b37..740915023a3 100644 --- a/substrate/frame/transaction-payment/asset-tx-payment/src/mock.rs +++ b/substrate/frame/transaction-payment/asset-tx-payment/src/mock.rs @@ -122,7 +122,7 @@ impl pallet_balances::Config for Runtime { type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/transaction-payment/src/mock.rs b/substrate/frame/transaction-payment/src/mock.rs index 741f094481c..28d57065eca 100644 --- a/substrate/frame/transaction-payment/src/mock.rs +++ b/substrate/frame/transaction-payment/src/mock.rs @@ -115,7 +115,7 @@ impl pallet_balances::Config for Runtime { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/transaction-storage/src/mock.rs b/substrate/frame/transaction-storage/src/mock.rs index 3a87d8eaea7..27a73ba3ced 100644 --- a/substrate/frame/transaction-storage/src/mock.rs +++ b/substrate/frame/transaction-storage/src/mock.rs @@ -86,7 +86,7 @@ impl pallet_balances::Config for Test { type ReserveIdentifier = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/treasury/src/tests.rs b/substrate/frame/treasury/src/tests.rs index 67b21ff6252..0659c2f5941 100644 --- a/substrate/frame/treasury/src/tests.rs +++ b/substrate/frame/treasury/src/tests.rs @@ -92,7 +92,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/uniques/src/mock.rs b/substrate/frame/uniques/src/mock.rs index bad393a4895..e783f0b7cf4 100644 --- a/substrate/frame/uniques/src/mock.rs +++ b/substrate/frame/uniques/src/mock.rs @@ -84,7 +84,7 @@ impl pallet_balances::Config for Test { type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/utility/src/tests.rs b/substrate/frame/utility/src/tests.rs index ecc78ae6b17..ced50f828d5 100644 --- a/substrate/frame/utility/src/tests.rs +++ b/substrate/frame/utility/src/tests.rs @@ -188,7 +188,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/frame/vesting/src/mock.rs b/substrate/frame/vesting/src/mock.rs index 1adb36b730b..31f35bbdab6 100644 --- a/substrate/frame/vesting/src/mock.rs +++ b/substrate/frame/vesting/src/mock.rs @@ -82,7 +82,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } parameter_types! { diff --git a/substrate/frame/whitelist/src/mock.rs b/substrate/frame/whitelist/src/mock.rs index d644cd661ec..63e7e9976ba 100644 --- a/substrate/frame/whitelist/src/mock.rs +++ b/substrate/frame/whitelist/src/mock.rs @@ -88,7 +88,7 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = (); type MaxHolds = (); } diff --git a/substrate/test-utils/runtime/src/lib.rs b/substrate/test-utils/runtime/src/lib.rs index c93d5c4e569..8d77439f164 100644 --- a/substrate/test-utils/runtime/src/lib.rs +++ b/substrate/test-utils/runtime/src/lib.rs @@ -394,7 +394,7 @@ impl pallet_balances::Config for Runtime { type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>; type FreezeIdentifier = (); type MaxFreezes = (); - type HoldIdentifier = (); + type RuntimeHoldReason = RuntimeHoldReason; type MaxHolds = ConstU32<1>; } -- GitLab