From 26c5ce891eeee195411afb2e23128a0551facbf0 Mon Sep 17 00:00:00 2001 From: librelois <c@elo.tf> Date: Sun, 25 Jul 2021 22:21:10 +0200 Subject: [PATCH] ref(runtime): move common pallets config in a macro --- runtime/common/src/apis.rs | 2 +- runtime/common/src/lib.rs | 1 + runtime/common/src/pallets_config.rs | 159 +++++++++++++++++++++++ runtime/g1/src/lib.rs | 186 +++------------------------ runtime/gdev/src/lib.rs | 164 ++--------------------- runtime/gtest/src/lib.rs | 186 +++------------------------ 6 files changed, 208 insertions(+), 490 deletions(-) create mode 100644 runtime/common/src/pallets_config.rs diff --git a/runtime/common/src/apis.rs b/runtime/common/src/apis.rs index 85cd92746..6e2c93a7c 100644 --- a/runtime/common/src/apis.rs +++ b/runtime/common/src/apis.rs @@ -15,7 +15,7 @@ // along with Substrate-Libre-Currency. If not, see <https://www.gnu.org/licenses/>. #[macro_export] -macro_rules! impl_runtime_apis_plus_common { +macro_rules! runtime_apis { {$($custom:tt)*} => { impl_runtime_apis! { $($custom)* diff --git a/runtime/common/src/lib.rs b/runtime/common/src/lib.rs index a4fd4f3f0..c48bc4458 100644 --- a/runtime/common/src/lib.rs +++ b/runtime/common/src/lib.rs @@ -22,6 +22,7 @@ pub mod constants; pub mod entities; pub mod fees; pub mod handlers; +mod pallets_config; pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; diff --git a/runtime/common/src/pallets_config.rs b/runtime/common/src/pallets_config.rs new file mode 100644 index 000000000..3600fdbc7 --- /dev/null +++ b/runtime/common/src/pallets_config.rs @@ -0,0 +1,159 @@ +// Copyright 2021 Axiom-Team +// +// This file is part of Substrate-Libre-Currency. +// +// Substrate-Libre-Currency is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, version 3 of the License. +// +// Substrate-Libre-Currency is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with Substrate-Libre-Currency. If not, see <https://www.gnu.org/licenses/>. + +#[macro_export] +macro_rules! pallets_config { + {$($custom:tt)*} => { + $($custom)* + + impl frame_system::Config for Runtime { + /// The basic call filter to use in dispatchable. + type BaseCallFilter = (); + /// Block & extrinsics weights: base values and limits. + type BlockWeights = BlockWeights; + /// The maximum length of a block (in bytes). + type BlockLength = BlockLength; + /// The identifier used to distinguish between accounts. + type AccountId = AccountId; + /// The aggregated dispatch type that is available for extrinsics. + type Call = Call; + /// The lookup mechanism to get account ID from whatever is passed in dispatchers. + type Lookup = AccountIdLookup<AccountId, ()>; + /// The index type for storing how many extrinsics an account has signed. + type Index = Index; + /// The index type for blocks. + type BlockNumber = BlockNumber; + /// The type for hashing blocks and tries. + type Hash = Hash; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; + /// The header type. + type Header = generic::Header<BlockNumber, BlakeTwo256>; + /// The ubiquitous event type. + type Event = Event; + /// The ubiquitous origin type. + type Origin = Origin; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = BlockHashCount; + /// The weight of database operations that the runtime can invoke. + type DbWeight = RocksDbWeight; + /// Version of the runtime. + type Version = Version; + /// Converts a module to the index of the module in `construct_runtime!`. + /// + /// This type is being generated by `construct_runtime!`. + type PalletInfo = PalletInfo; + /// What to do if a new account is created. + type OnNewAccount = (); + /// What to do if an account is fully reaped from the system. + type OnKilledAccount = (); + /// The data to be stored in an account. + type AccountData = pallet_balances::AccountData<Balance>; + /// Weight information for the extrinsics of this pallet. + type SystemWeightInfo = (); + /// This is used as an identifier of the chain. 42 is the generic substrate prefix. + type SS58Prefix = SS58Prefix; + /// The set code logic, just the default since we're not a parachain. + type OnSetCode = (); + } + + impl pallet_grandpa::Config for Runtime { + type Event = Event; + type Call = Call; + + type KeyOwnerProofSystem = (); + + type KeyOwnerProof = + <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<(KeyTypeId, GrandpaId)>>::Proof; + + type KeyOwnerIdentification = <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<( + KeyTypeId, + GrandpaId, + )>>::IdentificationTuple; + + type HandleEquivocation = (); + + type WeightInfo = (); + } + + impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type MaxReserves = (); + type ReserveIdentifier = [u8; 8]; + /// The type for recording an account's balance. + type Balance = Balance; + /// The ubiquitous event type. + type Event = Event; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>; + } + + impl pallet_transaction_payment::Config for Runtime { + type OnChargeTransaction = CurrencyAdapter<Balances, ()>; + type TransactionByteFee = TransactionByteFee; + type WeightToFee = common_runtime::fees::WeightToFeeImpl<Balance>; + type FeeMultiplierUpdate = (); + } + + impl pallet_identity::Config for Runtime { + type ConfirmPeriod = ConfirmPeriod; + type Event = Event; + type AddRightOrigin = EnsureRoot<Self::AccountId>; + type DelRightOrigin = EnsureRoot<Self::AccountId>; + type EnsureIdtyCallAllowed = EnsureIdtyCallAllowedImpl<Runtime, IDTY_CREATE_PERIOD>; + type IdtyData = IdtyData; + type IdtyDid = IdtyDid; + type IdtyIndex = IdtyIndex; + type IdtyValidationOrigin = EnsureRoot<Self::AccountId>; + type IdtyRight = IdtyRight; + type OnIdtyChange = OnIdtyChangeHandler<Runtime>; + type OnRightKeyChange = OnRightKeyChangeHandler<Runtime>; + type MaxInactivityPeriod = MaxInactivityPeriod; + type MaxNoRightPeriod = MaxNoRightPeriod; + type RenewablePeriod = IdtyRenewablePeriod; + type ValidationPeriod = ValidationPeriod; + } + + impl pallet_certification::Config for Runtime { + type AddCertOrigin = AddStrongCertOrigin<Runtime>; + type CertPeriod = CertPeriod; + type DelCertOrigin = DelStrongCertOrigin<Runtime>; + type Event = Event; + type IdtyIndex = IdtyIndex; + type MaxByIssuer = MaxByIssuer; + type OnNewcert = + OnNewStrongCertHandler<Runtime, MIN_STRONG_CERT_FOR_UD, MIN_STRONG_CERT_FOR_STRONG_CERT>; + type OnRemovedCert = OnRemovedStrongCertHandler<Runtime, MIN_STRONG_CERT_FOR_UD>; + type RenewablePeriod = StrongCertRenewablePeriod; + type ValidityPeriod = ValidityPeriod; + } + + impl pallet_universal_dividend::Config for Runtime { + type Currency = pallet_balances::Pallet<Runtime>; + type Event = Event; + type MembersCount = UdAccountsProvider; + type MembersIds = UdAccountsProvider; + type SquareMoneyGrowthRate = SquareMoneyGrowthRate; + type UdCreationPeriod = UdCreationPeriod; + type UdReevalPeriod = UdReevalPeriod; + type UdReevalPeriodInBlocks = UdReevalPeriodInBlocks; + } + + impl pallet_ud_accounts_storage::Config for Runtime {} + }; +} diff --git a/runtime/g1/src/lib.rs b/runtime/g1/src/lib.rs index f250effcb..a4699e1a1 100644 --- a/runtime/g1/src/lib.rs +++ b/runtime/g1/src/lib.rs @@ -124,161 +124,28 @@ parameter_types! { ::with_sensible_defaults(2 * WEIGHT_PER_SECOND, NORMAL_DISPATCH_RATIO); pub BlockLength: frame_system::limits::BlockLength = frame_system::limits::BlockLength ::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); - pub const SS58Prefix: u8 = 42; + pub const SS58Prefix: u16 = 42; } // Configure FRAME pallets to include in runtime. - -impl frame_system::Config for Runtime { - /// The basic call filter to use in dispatchable. - type BaseCallFilter = (); - /// Block & extrinsics weights: base values and limits. - type BlockWeights = BlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = BlockLength; - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type Call = Call; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = AccountIdLookup<AccountId, ()>; - /// The index type for storing how many extrinsics an account has signed. - type Index = Index; - /// The index type for blocks. - type BlockNumber = BlockNumber; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = BlakeTwo256; - /// The header type. - type Header = generic::Header<BlockNumber, BlakeTwo256>; - /// The ubiquitous event type. - type Event = Event; - /// The ubiquitous origin type. - type Origin = Origin; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// The weight of database operations that the runtime can invoke. - type DbWeight = RocksDbWeight; - /// Version of the runtime. - type Version = Version; - /// Converts a module to the index of the module in `construct_runtime!`. - /// - /// This type is being generated by `construct_runtime!`. - type PalletInfo = PalletInfo; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// The data to be stored in an account. - type AccountData = pallet_balances::AccountData<Balance>; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); - /// This is used as an identifier of the chain. 42 is the generic substrate prefix. - type SS58Prefix = SS58Prefix; - /// The set code logic, just the default since we're not a parachain. - type OnSetCode = (); -} - -impl pallet_randomness_collective_flip::Config for Runtime {} - -impl pallet_aura::Config for Runtime { - type AuthorityId = sp_consensus_aura::sr25519::AuthorityId; -} - -impl pallet_grandpa::Config for Runtime { - type Event = Event; - type Call = Call; - - type KeyOwnerProofSystem = (); - - type KeyOwnerProof = - <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<(KeyTypeId, GrandpaId)>>::Proof; - - type KeyOwnerIdentification = <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<( - KeyTypeId, - GrandpaId, - )>>::IdentificationTuple; - - type HandleEquivocation = (); - - type WeightInfo = (); -} - -impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the unix epoch. - type Moment = u64; - type OnTimestampSet = Aura; - type MinimumPeriod = MinimumPeriod; - type WeightInfo = (); -} - -impl pallet_balances::Config for Runtime { - type MaxLocks = MaxLocks; - type MaxReserves = (); - type ReserveIdentifier = [u8; 8]; - /// The type for recording an account's balance. - type Balance = Balance; - type Event = Event; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>; -} - -impl pallet_transaction_payment::Config for Runtime { - type OnChargeTransaction = CurrencyAdapter<Balances, ()>; - type TransactionByteFee = TransactionByteFee; - type WeightToFee = common_runtime::fees::WeightToFeeImpl<Balance>; - type FeeMultiplierUpdate = (); -} - -impl pallet_sudo::Config for Runtime { - type Event = Event; - type Call = Call; -} - -// PALLET IDENTITY - -/// Configure the pallet identity -impl pallet_identity::Config for Runtime { - type ConfirmPeriod = ConfirmPeriod; - type Event = Event; - type AddRightOrigin = EnsureRoot<Self::AccountId>; - type DelRightOrigin = EnsureRoot<Self::AccountId>; - type EnsureIdtyCallAllowed = EnsureIdtyCallAllowedImpl<Runtime, IDTY_CREATE_PERIOD>; - type IdtyData = IdtyData; - type IdtyDid = IdtyDid; - type IdtyIndex = IdtyIndex; - type IdtyValidationOrigin = EnsureRoot<Self::AccountId>; - type IdtyRight = IdtyRight; - type OnIdtyChange = OnIdtyChangeHandler<Runtime>; - type OnRightKeyChange = OnRightKeyChangeHandler<Runtime>; - type MaxInactivityPeriod = MaxInactivityPeriod; - type MaxNoRightPeriod = MaxNoRightPeriod; - type RenewablePeriod = IdtyRenewablePeriod; - type ValidationPeriod = ValidationPeriod; -} - -// PALLET CERTIFICATION - -/// Configure the pallet certification -impl pallet_certification::Config for Runtime { - type AddCertOrigin = AddStrongCertOrigin<Runtime>; - type CertPeriod = CertPeriod; - type DelCertOrigin = DelStrongCertOrigin<Runtime>; - type Event = Event; - type IdtyIndex = IdtyIndex; - type MaxByIssuer = MaxByIssuer; - type OnNewcert = - OnNewStrongCertHandler<Runtime, MIN_STRONG_CERT_FOR_UD, MIN_STRONG_CERT_FOR_STRONG_CERT>; - type OnRemovedCert = OnRemovedStrongCertHandler<Runtime, MIN_STRONG_CERT_FOR_UD>; - type RenewablePeriod = StrongCertRenewablePeriod; - type ValidityPeriod = ValidityPeriod; +common_runtime::pallets_config! { + impl pallet_randomness_collective_flip::Config for Runtime {} + impl pallet_aura::Config for Runtime { + type AuthorityId = sp_consensus_aura::sr25519::AuthorityId; + } + impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = Aura; + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); + } + impl pallet_sudo::Config for Runtime { + type Event = Event; + type Call = Call; + } } -// PALLET UNIVERSAL DIVIDEND - pub struct UdAccountsProvider; impl Get<u64> for UdAccountsProvider { fn get() -> u64 { @@ -291,21 +158,6 @@ impl Get<Vec<AccountId>> for UdAccountsProvider { } } -/// Configure the pallet universal-dividend in pallets/universal-dividend. -impl pallet_universal_dividend::Config for Runtime { - type Currency = pallet_balances::Pallet<Runtime>; - type Event = Event; - type MembersCount = UdAccountsProvider; - type MembersIds = UdAccountsProvider; - type SquareMoneyGrowthRate = SquareMoneyGrowthRate; - type UdCreationPeriod = UdCreationPeriod; - type UdReevalPeriod = UdReevalPeriod; - type UdReevalPeriodInBlocks = UdReevalPeriodInBlocks; -} - -/// Configure the pallet ud-accounts-storage -impl pallet_ud_accounts_storage::Config for Runtime {} - // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub enum Runtime where @@ -358,10 +210,10 @@ pub type Executive = frame_executive::Executive< // impl_runtime_apis! { // // All impl blocks shared between all runtimes. // -// // Specific impls provided to the `impl_runtime_apis_plus_common!` macro. +// // Specific impls provided to the `runtime_apis!` macro. // } // ``` -common_runtime::impl_runtime_apis_plus_common! { +common_runtime::runtime_apis! { impl sp_consensus_aura::AuraApi<Block, sp_consensus_aura::sr25519::AuthorityId> for Runtime { fn slot_duration() -> sp_consensus_aura::SlotDuration { sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) diff --git a/runtime/gdev/src/lib.rs b/runtime/gdev/src/lib.rs index 48cc6c06e..0e9c3c9d6 100644 --- a/runtime/gdev/src/lib.rs +++ b/runtime/gdev/src/lib.rs @@ -122,150 +122,19 @@ parameter_types! { ::with_sensible_defaults(2 * WEIGHT_PER_SECOND, NORMAL_DISPATCH_RATIO); pub BlockLength: frame_system::limits::BlockLength = frame_system::limits::BlockLength ::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); - pub const SS58Prefix: u8 = 42; + pub const SS58Prefix: u16 = 42; } // Configure FRAME pallets to include in runtime. +common_runtime::pallets_config! { + impl pallet_randomness_collective_flip::Config for Runtime {} -impl frame_system::Config for Runtime { - /// The basic call filter to use in dispatchable. - type BaseCallFilter = (); - /// Block & extrinsics weights: base values and limits. - type BlockWeights = BlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = BlockLength; - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type Call = Call; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = AccountIdLookup<AccountId, ()>; - /// The index type for storing how many extrinsics an account has signed. - type Index = Index; - /// The index type for blocks. - type BlockNumber = BlockNumber; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = BlakeTwo256; - /// The header type. - type Header = generic::Header<BlockNumber, BlakeTwo256>; - /// The ubiquitous event type. - type Event = Event; - /// The ubiquitous origin type. - type Origin = Origin; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// The weight of database operations that the runtime can invoke. - type DbWeight = RocksDbWeight; - /// Version of the runtime. - type Version = Version; - /// Converts a module to the index of the module in `construct_runtime!`. - /// - /// This type is being generated by `construct_runtime!`. - type PalletInfo = PalletInfo; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// The data to be stored in an account. - type AccountData = pallet_balances::AccountData<Balance>; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); - /// This is used as an identifier of the chain. 42 is the generic substrate prefix. - type SS58Prefix = SS58Prefix; - /// The set code logic, just the default since we're not a parachain. - type OnSetCode = (); -} - -impl pallet_randomness_collective_flip::Config for Runtime {} - -impl pallet_grandpa::Config for Runtime { - type Event = Event; - type Call = Call; - - type KeyOwnerProofSystem = (); - - type KeyOwnerProof = - <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<(KeyTypeId, GrandpaId)>>::Proof; - - type KeyOwnerIdentification = <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<( - KeyTypeId, - GrandpaId, - )>>::IdentificationTuple; - - type HandleEquivocation = (); - - type WeightInfo = (); -} - -impl pallet_balances::Config for Runtime { - type MaxLocks = MaxLocks; - type MaxReserves = (); - type ReserveIdentifier = [u8; 8]; - /// The type for recording an account's balance. - type Balance = Balance; - /// The ubiquitous event type. - type Event = Event; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>; -} - -impl pallet_transaction_payment::Config for Runtime { - type OnChargeTransaction = CurrencyAdapter<Balances, ()>; - type TransactionByteFee = TransactionByteFee; - type WeightToFee = common_runtime::fees::WeightToFeeImpl<Balance>; - type FeeMultiplierUpdate = (); -} - -impl pallet_sudo::Config for Runtime { - type Event = Event; - type Call = Call; -} - -// PALLET IDENTITY - -/// Configure the pallet identity -impl pallet_identity::Config for Runtime { - type ConfirmPeriod = ConfirmPeriod; - type Event = Event; - type AddRightOrigin = EnsureRoot<Self::AccountId>; - type DelRightOrigin = EnsureRoot<Self::AccountId>; - type EnsureIdtyCallAllowed = EnsureIdtyCallAllowedImpl<Runtime, IDTY_CREATE_PERIOD>; - type IdtyData = IdtyData; - type IdtyDid = IdtyDid; - type IdtyIndex = IdtyIndex; - type IdtyValidationOrigin = EnsureRoot<Self::AccountId>; - type IdtyRight = IdtyRight; - type OnIdtyChange = OnIdtyChangeHandler<Runtime>; - type OnRightKeyChange = OnRightKeyChangeHandler<Runtime>; - type MaxInactivityPeriod = MaxInactivityPeriod; - type MaxNoRightPeriod = MaxNoRightPeriod; - type RenewablePeriod = IdtyRenewablePeriod; - type ValidationPeriod = ValidationPeriod; -} - -// PALLET CERTIFICATION - -/// Configure the pallet certification -impl pallet_certification::Config for Runtime { - type AddCertOrigin = AddStrongCertOrigin<Runtime>; - type CertPeriod = CertPeriod; - type DelCertOrigin = DelStrongCertOrigin<Runtime>; - type Event = Event; - type IdtyIndex = IdtyIndex; - type MaxByIssuer = MaxByIssuer; - type OnNewcert = - OnNewStrongCertHandler<Runtime, MIN_STRONG_CERT_FOR_UD, MIN_STRONG_CERT_FOR_STRONG_CERT>; - type OnRemovedCert = OnRemovedStrongCertHandler<Runtime, MIN_STRONG_CERT_FOR_UD>; - type RenewablePeriod = StrongCertRenewablePeriod; - type ValidityPeriod = ValidityPeriod; + impl pallet_sudo::Config for Runtime { + type Event = Event; + type Call = Call; + } } -// PALLET UNIVERSAL DIVIDEND - pub struct UdAccountsProvider; impl Get<u64> for UdAccountsProvider { fn get() -> u64 { @@ -278,21 +147,6 @@ impl Get<Vec<AccountId>> for UdAccountsProvider { } } -/// Configure the pallet universal-dividend in pallets/universal-dividend. -impl pallet_universal_dividend::Config for Runtime { - type Currency = pallet_balances::Pallet<Runtime>; - type Event = Event; - type MembersCount = UdAccountsProvider; - type MembersIds = UdAccountsProvider; - type SquareMoneyGrowthRate = SquareMoneyGrowthRate; - type UdCreationPeriod = UdCreationPeriod; - type UdReevalPeriod = UdReevalPeriod; - type UdReevalPeriodInBlocks = UdReevalPeriodInBlocks; -} - -/// Configure the pallet ud-accounts-storage -impl pallet_ud_accounts_storage::Config for Runtime {} - // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub enum Runtime where @@ -343,10 +197,10 @@ pub type Executive = frame_executive::Executive< // impl_runtime_apis! { // // All impl blocks shared between all runtimes. // -// // Specific impls provided to the `impl_runtime_apis_plus_common!` macro. +// // Specific impls provided to the `runtime_apis!` macro. // } // ``` -common_runtime::impl_runtime_apis_plus_common! { +common_runtime::runtime_apis! { impl sp_consensus_aura::AuraApi<Block, sp_consensus_aura::sr25519::AuthorityId> for Runtime { fn slot_duration() -> sp_consensus_aura::SlotDuration { sp_consensus_aura::SlotDuration::from_millis(0) diff --git a/runtime/gtest/src/lib.rs b/runtime/gtest/src/lib.rs index c1c42611b..2c3296940 100644 --- a/runtime/gtest/src/lib.rs +++ b/runtime/gtest/src/lib.rs @@ -124,161 +124,28 @@ parameter_types! { ::with_sensible_defaults(2 * WEIGHT_PER_SECOND, NORMAL_DISPATCH_RATIO); pub BlockLength: frame_system::limits::BlockLength = frame_system::limits::BlockLength ::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); - pub const SS58Prefix: u8 = 42; + pub const SS58Prefix: u16 = 42; } // Configure FRAME pallets to include in runtime. - -impl frame_system::Config for Runtime { - /// The basic call filter to use in dispatchable. - type BaseCallFilter = (); - /// Block & extrinsics weights: base values and limits. - type BlockWeights = BlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = BlockLength; - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type Call = Call; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = AccountIdLookup<AccountId, ()>; - /// The index type for storing how many extrinsics an account has signed. - type Index = Index; - /// The index type for blocks. - type BlockNumber = BlockNumber; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = BlakeTwo256; - /// The header type. - type Header = generic::Header<BlockNumber, BlakeTwo256>; - /// The ubiquitous event type. - type Event = Event; - /// The ubiquitous origin type. - type Origin = Origin; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// The weight of database operations that the runtime can invoke. - type DbWeight = RocksDbWeight; - /// Version of the runtime. - type Version = Version; - /// Converts a module to the index of the module in `construct_runtime!`. - /// - /// This type is being generated by `construct_runtime!`. - type PalletInfo = PalletInfo; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// The data to be stored in an account. - type AccountData = pallet_balances::AccountData<Balance>; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); - /// This is used as an identifier of the chain. 42 is the generic substrate prefix. - type SS58Prefix = SS58Prefix; - /// The set code logic, just the default since we're not a parachain. - type OnSetCode = (); -} - -impl pallet_randomness_collective_flip::Config for Runtime {} - -impl pallet_aura::Config for Runtime { - type AuthorityId = sp_consensus_aura::sr25519::AuthorityId; -} - -impl pallet_grandpa::Config for Runtime { - type Event = Event; - type Call = Call; - - type KeyOwnerProofSystem = (); - - type KeyOwnerProof = - <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<(KeyTypeId, GrandpaId)>>::Proof; - - type KeyOwnerIdentification = <Self::KeyOwnerProofSystem as KeyOwnerProofSystem<( - KeyTypeId, - GrandpaId, - )>>::IdentificationTuple; - - type HandleEquivocation = (); - - type WeightInfo = (); -} - -impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the unix epoch. - type Moment = u64; - type OnTimestampSet = Aura; - type MinimumPeriod = MinimumPeriod; - type WeightInfo = (); -} - -impl pallet_balances::Config for Runtime { - type MaxLocks = MaxLocks; - type MaxReserves = (); - type ReserveIdentifier = [u8; 8]; - /// The type for recording an account's balance. - type Balance = Balance; - type Event = Event; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>; -} - -impl pallet_transaction_payment::Config for Runtime { - type OnChargeTransaction = CurrencyAdapter<Balances, ()>; - type TransactionByteFee = TransactionByteFee; - type WeightToFee = common_runtime::fees::WeightToFeeImpl<Balance>; - type FeeMultiplierUpdate = (); -} - -impl pallet_sudo::Config for Runtime { - type Event = Event; - type Call = Call; -} - -// PALLET IDENTITY - -/// Configure the pallet identity -impl pallet_identity::Config for Runtime { - type ConfirmPeriod = ConfirmPeriod; - type Event = Event; - type AddRightOrigin = EnsureRoot<Self::AccountId>; - type DelRightOrigin = EnsureRoot<Self::AccountId>; - type EnsureIdtyCallAllowed = EnsureIdtyCallAllowedImpl<Runtime, IDTY_CREATE_PERIOD>; - type IdtyData = IdtyData; - type IdtyDid = IdtyDid; - type IdtyIndex = IdtyIndex; - type IdtyValidationOrigin = EnsureRoot<Self::AccountId>; - type IdtyRight = IdtyRight; - type OnIdtyChange = OnIdtyChangeHandler<Runtime>; - type OnRightKeyChange = OnRightKeyChangeHandler<Runtime>; - type MaxInactivityPeriod = MaxInactivityPeriod; - type MaxNoRightPeriod = MaxNoRightPeriod; - type RenewablePeriod = IdtyRenewablePeriod; - type ValidationPeriod = ValidationPeriod; -} - -// PALLET CERTIFICATION - -/// Configure the pallet certification -impl pallet_certification::Config for Runtime { - type AddCertOrigin = AddStrongCertOrigin<Runtime>; - type CertPeriod = CertPeriod; - type DelCertOrigin = DelStrongCertOrigin<Runtime>; - type Event = Event; - type IdtyIndex = IdtyIndex; - type MaxByIssuer = MaxByIssuer; - type OnNewcert = - OnNewStrongCertHandler<Runtime, MIN_STRONG_CERT_FOR_UD, MIN_STRONG_CERT_FOR_STRONG_CERT>; - type OnRemovedCert = OnRemovedStrongCertHandler<Runtime, MIN_STRONG_CERT_FOR_UD>; - type RenewablePeriod = StrongCertRenewablePeriod; - type ValidityPeriod = ValidityPeriod; +common_runtime::pallets_config! { + impl pallet_randomness_collective_flip::Config for Runtime {} + impl pallet_aura::Config for Runtime { + type AuthorityId = sp_consensus_aura::sr25519::AuthorityId; + } + impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = Aura; + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); + } + impl pallet_sudo::Config for Runtime { + type Event = Event; + type Call = Call; + } } -// PALLET UNIVERSAL DIVIDEND - pub struct UdAccountsProvider; impl Get<u64> for UdAccountsProvider { fn get() -> u64 { @@ -291,21 +158,6 @@ impl Get<Vec<AccountId>> for UdAccountsProvider { } } -/// Configure the pallet universal-dividend in pallets/universal-dividend. -impl pallet_universal_dividend::Config for Runtime { - type Currency = pallet_balances::Pallet<Runtime>; - type Event = Event; - type MembersCount = UdAccountsProvider; - type MembersIds = UdAccountsProvider; - type SquareMoneyGrowthRate = SquareMoneyGrowthRate; - type UdCreationPeriod = UdCreationPeriod; - type UdReevalPeriod = UdReevalPeriod; - type UdReevalPeriodInBlocks = UdReevalPeriodInBlocks; -} - -/// Configure the pallet ud-accounts-storage -impl pallet_ud_accounts_storage::Config for Runtime {} - // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub enum Runtime where @@ -358,10 +210,10 @@ pub type Executive = frame_executive::Executive< // impl_runtime_apis! { // // All impl blocks shared between all runtimes. // -// // Specific impls provided to the `impl_runtime_apis_plus_common!` macro. +// // Specific impls provided to the `runtime_apis!` macro. // } // ``` -common_runtime::impl_runtime_apis_plus_common! { +common_runtime::runtime_apis! { impl sp_consensus_aura::AuraApi<Block, sp_consensus_aura::sr25519::AuthorityId> for Runtime { fn slot_duration() -> sp_consensus_aura::SlotDuration { sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) -- GitLab