From 7bca0f1d252c675ce4c7827fdb2a015f69fc51a6 Mon Sep 17 00:00:00 2001 From: wangjj9219 <183318287@qq.com> Date: Tue, 24 Oct 2023 01:08:08 +0800 Subject: [PATCH 1/4] integrate openGov --- Cargo.lock | 18 ++ runtime/acala/Cargo.toml | 16 ++ runtime/acala/src/governance/councils.rs | 144 +++++++++++++++ runtime/acala/src/governance/democracy.rs | 74 ++++++++ runtime/acala/src/governance/mod.rs | 30 ++++ runtime/acala/src/governance/origins.rs | 79 +++++++++ runtime/acala/src/governance/referenda.rs | 94 ++++++++++ runtime/acala/src/governance/tracks.rs | 178 +++++++++++++++++++ runtime/acala/src/lib.rs | 182 +------------------ runtime/karura/Cargo.toml | 16 ++ runtime/karura/src/governance/councils.rs | 144 +++++++++++++++ runtime/karura/src/governance/democracy.rs | 75 ++++++++ runtime/karura/src/governance/mod.rs | 30 ++++ runtime/karura/src/governance/origins.rs | 79 +++++++++ runtime/karura/src/governance/referenda.rs | 94 ++++++++++ runtime/karura/src/governance/tracks.rs | 178 +++++++++++++++++++ runtime/karura/src/lib.rs | 183 +------------------- runtime/mandala/Cargo.toml | 16 ++ runtime/mandala/src/governance/councils.rs | 144 +++++++++++++++ runtime/mandala/src/governance/democracy.rs | 74 ++++++++ runtime/mandala/src/governance/mod.rs | 30 ++++ runtime/mandala/src/governance/origins.rs | 79 +++++++++ runtime/mandala/src/governance/referenda.rs | 94 ++++++++++ runtime/mandala/src/governance/tracks.rs | 178 +++++++++++++++++++ runtime/mandala/src/lib.rs | 182 +------------------ 25 files changed, 1882 insertions(+), 529 deletions(-) create mode 100644 runtime/acala/src/governance/councils.rs create mode 100644 runtime/acala/src/governance/democracy.rs create mode 100644 runtime/acala/src/governance/mod.rs create mode 100644 runtime/acala/src/governance/origins.rs create mode 100644 runtime/acala/src/governance/referenda.rs create mode 100644 runtime/acala/src/governance/tracks.rs create mode 100644 runtime/karura/src/governance/councils.rs create mode 100644 runtime/karura/src/governance/democracy.rs create mode 100644 runtime/karura/src/governance/mod.rs create mode 100644 runtime/karura/src/governance/origins.rs create mode 100644 runtime/karura/src/governance/referenda.rs create mode 100644 runtime/karura/src/governance/tracks.rs create mode 100644 runtime/mandala/src/governance/councils.rs create mode 100644 runtime/mandala/src/governance/democracy.rs create mode 100644 runtime/mandala/src/governance/mod.rs create mode 100644 runtime/mandala/src/governance/origins.rs create mode 100644 runtime/mandala/src/governance/referenda.rs create mode 100644 runtime/mandala/src/governance/tracks.rs diff --git a/Cargo.lock b/Cargo.lock index e99203bc92..e2e854fa63 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -136,6 +136,7 @@ dependencies = [ "frame-try-runtime", "hex", "hex-literal", + "lazy_static", "libsecp256k1", "log", "module-aggregated-dex", @@ -191,11 +192,13 @@ dependencies = [ "pallet-balances", "pallet-bounties", "pallet-collective", + "pallet-conviction-voting", "pallet-democracy", "pallet-membership", "pallet-multisig", "pallet-preimage", "pallet-proxy", + "pallet-referenda", "pallet-scheduler", "pallet-session", "pallet-staking", @@ -206,6 +209,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", + "pallet-whitelist", "pallet-xcm", "parachain-info", "parity-scale-codec", @@ -232,6 +236,8 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "strum 0.24.1", + "strum_macros 0.24.3", "substrate-wasm-builder", ] @@ -5440,6 +5446,7 @@ dependencies = [ "frame-try-runtime", "hex", "hex-literal", + "lazy_static", "libsecp256k1", "log", "module-aggregated-dex", @@ -5495,11 +5502,13 @@ dependencies = [ "pallet-balances", "pallet-bounties", "pallet-collective", + "pallet-conviction-voting", "pallet-democracy", "pallet-membership", "pallet-multisig", "pallet-preimage", "pallet-proxy", + "pallet-referenda", "pallet-scheduler", "pallet-session", "pallet-staking", @@ -5510,6 +5519,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", + "pallet-whitelist", "pallet-xcm", "parachain-info", "parity-scale-codec", @@ -5536,6 +5546,8 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "strum 0.24.1", + "strum_macros 0.24.3", "substrate-wasm-builder", ] @@ -6334,6 +6346,7 @@ dependencies = [ "frame-try-runtime", "hex", "hex-literal", + "lazy_static", "libsecp256k1", "log", "module-aggregated-dex", @@ -6392,6 +6405,7 @@ dependencies = [ "pallet-balances", "pallet-bounties", "pallet-collective", + "pallet-conviction-voting", "pallet-democracy", "pallet-elections-phragmen", "pallet-indices", @@ -6400,6 +6414,7 @@ dependencies = [ "pallet-preimage", "pallet-proxy", "pallet-recovery", + "pallet-referenda", "pallet-root-testing", "pallet-scheduler", "pallet-session", @@ -6410,6 +6425,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", + "pallet-whitelist", "pallet-xcm", "parachain-info", "parity-scale-codec", @@ -6437,6 +6453,8 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "strum 0.24.1", + "strum_macros 0.24.3", "substrate-wasm-builder", ] diff --git a/runtime/acala/Cargo.toml b/runtime/acala/Cargo.toml index cc87888bc4..909bd10dde 100644 --- a/runtime/acala/Cargo.toml +++ b/runtime/acala/Cargo.toml @@ -13,6 +13,9 @@ scale-info = { version = "2.9.0", default-features = false, features = ["derive" serde_json = { version = "1.0.85", default-features = false, features = ["alloc"] } hex = { version = "0.4", default-features = false } hex-literal = { version = "0.4.1" } +strum = { version = "0.24", default-features = false, features = [ "derive" ] } +strum_macros = "0.24" +lazy_static = "1.4.0" # substrate frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } @@ -53,6 +56,9 @@ sp-staking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "rel sp-std = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } sp-version = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } +pallet-conviction-voting = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } +pallet-referenda = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } +pallet-whitelist = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } # cumulus cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } @@ -149,6 +155,7 @@ std = [ "hex/std", "scale-info/std", "serde_json/std", + "strum/std", "frame-benchmarking/std", "frame-executive/std", @@ -191,6 +198,9 @@ std = [ "sp-transaction-pool/std", "sp-version/std", "substrate-wasm-builder", + "pallet-conviction-voting/std", + "pallet-referenda/std", + "pallet-whitelist/std", "cumulus-pallet-aura-ext/std", "cumulus-pallet-dmp-queue/std", @@ -285,6 +295,9 @@ runtime-benchmarks = [ "pallet-utility/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "sp-staking/runtime-benchmarks", + "pallet-conviction-voting/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-whitelist/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", @@ -348,6 +361,9 @@ try-runtime = [ "pallet-treasury/try-runtime", "pallet-utility/try-runtime", "pallet-bags-list/try-runtime", + "pallet-conviction-voting/try-runtime", + "pallet-referenda/try-runtime", + "pallet-whitelist/try-runtime", "cumulus-pallet-aura-ext/try-runtime", "cumulus-pallet-dmp-queue/try-runtime", diff --git a/runtime/acala/src/governance/councils.rs b/runtime/acala/src/governance/councils.rs new file mode 100644 index 0000000000..31bc170ce2 --- /dev/null +++ b/runtime/acala/src/governance/councils.rs @@ -0,0 +1,144 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Councils for Gov1 and Gov2 + +use super::*; + +parameter_types! { + pub const GeneralCouncilMotionDuration: BlockNumber = 3 * DAYS; + pub const CouncilDefaultMaxProposals: u32 = 20; + pub const CouncilDefaultMaxMembers: u32 = 30; + pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = GeneralCouncilMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type RemoveOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type SwapOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type ResetOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type PrimeOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type MembershipInitialized = GeneralCouncil; + type MembershipChanged = GeneralCouncil; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} + +parameter_types! { + pub const FinancialCouncilMotionDuration: BlockNumber = 3 * DAYS; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = FinancialCouncilMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type MembershipInitialized = FinancialCouncil; + type MembershipChanged = FinancialCouncil; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} + +parameter_types! { + pub const HomaCouncilMotionDuration: BlockNumber = 3 * DAYS; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = HomaCouncilMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type MembershipInitialized = HomaCouncil; + type MembershipChanged = HomaCouncil; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} + +parameter_types! { + pub const TechnicalCommitteeMotionDuration: BlockNumber = 3 * DAYS; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = TechnicalCommitteeMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type MembershipInitialized = TechnicalCommittee; + type MembershipChanged = TechnicalCommittee; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} diff --git a/runtime/acala/src/governance/democracy.rs b/runtime/acala/src/governance/democracy.rs new file mode 100644 index 0000000000..4ec5df6265 --- /dev/null +++ b/runtime/acala/src/governance/democracy.rs @@ -0,0 +1,74 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Democracy config for Gov1 + +use crate::*; + +parameter_types! { + pub const LaunchPeriod: BlockNumber = 5 * DAYS; + pub const VotingPeriod: BlockNumber = 5 * DAYS; + pub const FastTrackVotingPeriod: BlockNumber = 3 * HOURS; + pub MinimumDeposit: Balance = 1000 * dollar(ACA); + pub const EnactmentPeriod: BlockNumber = 2 * DAYS; + pub const VoteLockingPeriod: BlockNumber = 14 * DAYS; + pub const CooloffPeriod: BlockNumber = 7 * DAYS; +} + +impl pallet_democracy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type EnactmentPeriod = EnactmentPeriod; + type LaunchPeriod = LaunchPeriod; + type VotingPeriod = VotingPeriod; + type VoteLockingPeriod = VoteLockingPeriod; + type MinimumDeposit = MinimumDeposit; + /// A straight majority of the council can decide what their next motion is. + type ExternalOrigin = EnsureRootOrHalfGeneralCouncil; + /// A majority can have the next scheduled referendum be a straight majority-carries vote. + type ExternalMajorityOrigin = EnsureRootOrHalfGeneralCouncil; + /// A unanimous council can have the next scheduled referendum be a straight default-carries + /// (NTB) vote. + type ExternalDefaultOrigin = EnsureRootOrAllGeneralCouncil; + /// Two thirds of the technical committee can have an ExternalMajority/ExternalDefault vote + /// be tabled immediately and with a shorter voting/enactment period. + type FastTrackOrigin = EnsureRootOrTwoThirdsTechnicalCommittee; + type InstantOrigin = EnsureRootOrAllTechnicalCommittee; + type InstantAllowed = ConstBool; + type FastTrackVotingPeriod = FastTrackVotingPeriod; + // To cancel a proposal which has been passed, 2/3 of the council must agree to it. + type CancellationOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type BlacklistOrigin = EnsureRoot; + // To cancel a proposal before it has been passed, the technical committee must be unanimous or + // Root must agree. + type CancelProposalOrigin = EnsureRootOrAllTechnicalCommittee; + // Any single technical committee member may veto a coming council proposal, however they can + // only do it once and it lasts only for the cooloff period. + type VetoOrigin = pallet_collective::EnsureMember; + type CooloffPeriod = CooloffPeriod; + type Slash = Treasury; + type Scheduler = Scheduler; + type PalletsOrigin = OriginCaller; + type MaxVotes = ConstU32<100>; + type WeightInfo = pallet_democracy::weights::SubstrateWeight; + type MaxProposals = ConstU32<100>; + type Preimages = Preimage; + type MaxDeposits = ConstU32<100>; + type MaxBlacklisted = ConstU32<100>; + type SubmitOrigin = EnsureSigned; +} diff --git a/runtime/acala/src/governance/mod.rs b/runtime/acala/src/governance/mod.rs new file mode 100644 index 0000000000..9d8000ef01 --- /dev/null +++ b/runtime/acala/src/governance/mod.rs @@ -0,0 +1,30 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Governance configurations + +pub mod councils; +mod democracy; +pub mod referenda; + +use super::*; + +mod origins; +pub use origins::{custom_origins, GeneralAdmin, ReferendumCanceller, ReferendumKiller, WhitelistedCaller}; +mod tracks; +pub use tracks::TracksInfo; diff --git a/runtime/acala/src/governance/origins.rs b/runtime/acala/src/governance/origins.rs new file mode 100644 index 0000000000..7f7d7237a0 --- /dev/null +++ b/runtime/acala/src/governance/origins.rs @@ -0,0 +1,79 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Custom origins for governance interventions. + +pub use custom_origins::*; + +#[frame_support::pallet] +pub mod custom_origins { + use frame_support::pallet_prelude::*; + use strum_macros::EnumString; + + #[pallet::config] + pub trait Config: frame_system::Config {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[derive(PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, TypeInfo, RuntimeDebug, EnumString)] + #[strum(serialize_all = "snake_case")] + #[pallet::origin] + pub enum Origin { + /// Origin able to dispatch a whitelisted call. + WhitelistedCaller, + /// General admin + GeneralAdmin, + /// Origin able to cancel referenda. + ReferendumCanceller, + /// Origin able to kill referenda. + ReferendumKiller, + } + + macro_rules! decl_unit_ensures { + ( $name:ident: $success_type:ty = $success:expr ) => { + pub struct $name; + impl> + From> + EnsureOrigin for $name + { + type Success = $success_type; + fn try_origin(o: O) -> Result { + o.into().and_then(|o| match o { + Origin::$name => Ok($success), + r => Err(O::from(r)), + }) + } + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + Ok(O::from(Origin::$name)) + } + } + }; + ( $name:ident ) => { decl_unit_ensures! { $name : () = () } }; + ( $name:ident: $success_type:ty = $success:expr, $( $rest:tt )* ) => { + decl_unit_ensures! { $name: $success_type = $success } + decl_unit_ensures! { $( $rest )* } + }; + ( $name:ident, $( $rest:tt )* ) => { + decl_unit_ensures! { $name } + decl_unit_ensures! { $( $rest )* } + }; + () => {} + } + decl_unit_ensures!(ReferendumCanceller, ReferendumKiller, WhitelistedCaller, GeneralAdmin); +} diff --git a/runtime/acala/src/governance/referenda.rs b/runtime/acala/src/governance/referenda.rs new file mode 100644 index 0000000000..cd46634046 --- /dev/null +++ b/runtime/acala/src/governance/referenda.rs @@ -0,0 +1,94 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! # Gov2 config +//! Includes runtime configs for these substrate pallets: +//! 1. pallet-conviction-voting +//! 2. pallet-whitelist +//! 3. pallet-referenda + +use super::*; +use frame_support::traits::{EitherOf, MapSuccess}; +use frame_system::EnsureRootWithSuccess; +use sp_runtime::traits::Replace; + +parameter_types! { + pub const VoteLockingPeriod: BlockNumber = 1 * DAYS; +} + +impl pallet_conviction_voting::Config for Runtime { + type WeightInfo = (); + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type Polls = Referenda; + type MaxTurnout = frame_support::traits::TotalIssuanceOf; + // Maximum number of concurrent votes an account may have + type MaxVotes = ConstU32<20>; + // Minimum period of vote locking + type VoteLockingPeriod = VoteLockingPeriod; +} + +// Origin for general admin or root +pub type GeneralAdminOrRoot = EitherOf, origins::GeneralAdmin>; + +impl custom_origins::Config for Runtime {} + +// The purpose of this pallet is to queue calls to be dispatched as by root later => the Dispatch +// origin corresponds to the Gov2 Whitelist track. +impl pallet_whitelist::Config for Runtime { + type WeightInfo = (); + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type WhitelistOrigin = EitherOf< + EnsureRootWithSuccess>, + MapSuccess< + pallet_collective::EnsureProportionAtLeast, + Replace>, + >, + >; + type DispatchWhitelistedOrigin = EitherOf, WhitelistedCaller>; + type Preimages = Preimage; +} + +pallet_referenda::impl_tracksinfo_get!(TracksInfo, Balance, BlockNumber); + +parameter_types! { + pub const AlarmInterval: BlockNumber = 1; + pub SubmissionDeposit: Balance = 10 * dollar(ACA); + pub const UndecidingTimeout: BlockNumber = 14 * DAYS; +} + +impl pallet_referenda::Config for Runtime { + type WeightInfo = (); + type RuntimeCall = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type Scheduler = Scheduler; + type Currency = Balances; + type SubmitOrigin = frame_system::EnsureSigned; + type CancelOrigin = EitherOf, ReferendumCanceller>; + type KillOrigin = EitherOf, ReferendumKiller>; + type Slash = Treasury; + type Votes = pallet_conviction_voting::VotesOf; + type Tally = pallet_conviction_voting::TallyOf; + type SubmissionDeposit = SubmissionDeposit; + type MaxQueued = ConstU32<100>; + type UndecidingTimeout = UndecidingTimeout; + type AlarmInterval = AlarmInterval; + type Tracks = TracksInfo; + type Preimages = Preimage; +} diff --git a/runtime/acala/src/governance/tracks.rs b/runtime/acala/src/governance/tracks.rs new file mode 100644 index 0000000000..ef053401e9 --- /dev/null +++ b/runtime/acala/src/governance/tracks.rs @@ -0,0 +1,178 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Track configurations for governance. + +use super::*; +use pallet_referenda::Curve; +use sp_std::str::FromStr; + +const fn percent(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 100) +} +const fn permill(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 1000) +} + +lazy_static::lazy_static! { +static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 5] = [ + ( + 0, + pallet_referenda::TrackInfo { + // Name of this track. + name: "root", + // A limit for the number of referenda on this track that can be being decided at once. + // For Root origin this should generally be just one. + max_deciding: 5, + // Amount that must be placed on deposit before a decision can be made. + decision_deposit: 20 * 1000 * dollar(ACA), + // Amount of time this must be submitted for before a decision can be made. + prepare_period: 1 * DAYS, + // Amount of time that a decision may take to be approved prior to cancellation. + decision_period: 14 * DAYS, + // Amount of time that the approval criteria must hold before it can be approved. + confirm_period: 1 * DAYS, + // Minimum amount of time that an approved proposal must be in the dispatch queue. + min_enactment_period: 1 * DAYS, + // Minimum aye votes as percentage of overall conviction-weighted votes needed for + // approval as a function of time into decision period. + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + // Minimum pre-conviction aye-votes ("support") as percentage of overall population that + // is needed for approval as a function of time into decision period. + min_support: Curve::make_linear(14, 14, permill(5), percent(25)), + }, + ), + ( + 1, + pallet_referenda::TrackInfo { + name: "whitelisted_caller", + max_deciding: 100, + decision_deposit: 2 * 1000 * dollar(ACA), + prepare_period: 10 * MINUTES, + decision_period: 14 * DAYS, + confirm_period: 10 * MINUTES, + min_enactment_period: 30 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14 * 24, percent(1), percent(0), percent(2)), + }, + ), + ( + 2, + pallet_referenda::TrackInfo { + name: "general_admin", + max_deciding: 10, + decision_deposit: 1000 * dollar(ACA), + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 1 * DAYS, + min_enactment_period: 1 * DAYS, + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + min_support: Curve::make_reciprocal(7, 14, percent(10), percent(0), percent(50)), + }, + ), + ( + 3, + pallet_referenda::TrackInfo { + name: "referendum_canceller", + max_deciding: 20, + decision_deposit: 2 * 1000 * dollar(ACA), + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + }, + ), + ( + 4, + pallet_referenda::TrackInfo { + name: "referendum_killer", + max_deciding: 100, + decision_deposit: 4 * 1000 * dollar(ACA), + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + }, + ), +]; +} + +pub struct TracksInfo; +impl pallet_referenda::TracksInfo for TracksInfo { + type Id = u16; + type RuntimeOrigin = ::PalletsOrigin; + fn tracks() -> &'static [(Self::Id, pallet_referenda::TrackInfo)] { + &TRACKS_DATA[..] + } + fn track_for(id: &Self::RuntimeOrigin) -> Result { + if let Ok(system_origin) = frame_system::RawOrigin::try_from(id.clone()) { + match system_origin { + frame_system::RawOrigin::Root => { + if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| track.name == "root") { + Ok(*track_id) + } else { + Err(()) + } + } + _ => Err(()), + } + } else if let Ok(custom_origin) = custom_origins::Origin::try_from(id.clone()) { + if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| { + if let Ok(track_custom_origin) = custom_origins::Origin::from_str(track.name) { + track_custom_origin == custom_origin + } else { + false + } + }) { + Ok(*track_id) + } else { + Err(()) + } + } else { + Err(()) + } + } +} + +#[test] +/// To ensure voters are always locked into their vote +fn vote_locking_always_longer_than_enactment_period() { + for (_, track) in (&TRACKS_DATA).iter() { + assert!( + ::VoteLockingPeriod::get() >= track.min_enactment_period, + "Track {} has enactment period {} < vote locking period {}", + track.name, + track.min_enactment_period, + ::VoteLockingPeriod::get(), + ); + } +} + +#[test] +fn all_tracks_have_origins() { + for (_, track) in (&TRACKS_DATA).iter() { + // check name.into() is successful either converts into "root" or custom origin + let track_is_root = track.name == "root"; + let track_has_custom_origin = custom_origins::Origin::from_str(track.name).is_ok(); + assert!(track_is_root || track_has_custom_origin); + } +} diff --git a/runtime/acala/src/lib.rs b/runtime/acala/src/lib.rs index 7c4e54c522..8b5ed30ec2 100644 --- a/runtime/acala/src/lib.rs +++ b/runtime/acala/src/lib.rs @@ -118,9 +118,11 @@ pub use xcm::v3::prelude::*; mod authority; mod benchmarking; pub mod constants; +pub mod governance; /// Weights for pallets used in the runtime. mod weights; pub mod xcm_config; +use governance::councils::*; /// This runtime version. #[sp_version::runtime_version] @@ -395,129 +397,6 @@ impl pallet_sudo::Config for Runtime { type WeightInfo = (); } -parameter_types! { - pub const GeneralCouncilMotionDuration: BlockNumber = 3 * DAYS; - pub const CouncilDefaultMaxProposals: u32 = 20; - pub const CouncilDefaultMaxMembers: u32 = 30; - pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = GeneralCouncilMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type RemoveOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type SwapOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type ResetOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type PrimeOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type MembershipInitialized = GeneralCouncil; - type MembershipChanged = GeneralCouncil; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - -parameter_types! { - pub const FinancialCouncilMotionDuration: BlockNumber = 3 * DAYS; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = FinancialCouncilMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type MembershipInitialized = FinancialCouncil; - type MembershipChanged = FinancialCouncil; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - -parameter_types! { - pub const HomaCouncilMotionDuration: BlockNumber = 3 * DAYS; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = HomaCouncilMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type MembershipInitialized = HomaCouncil; - type MembershipChanged = HomaCouncil; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - -parameter_types! { - pub const TechnicalCommitteeMotionDuration: BlockNumber = 3 * DAYS; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = TechnicalCommitteeMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type MembershipInitialized = TechnicalCommittee; - type MembershipChanged = TechnicalCommittee; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - impl pallet_membership::Config for Runtime { type RuntimeEvent = RuntimeEvent; type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; @@ -647,59 +526,6 @@ impl pallet_tips::Config for Runtime { type WeightInfo = (); } -parameter_types! { - pub const LaunchPeriod: BlockNumber = 5 * DAYS; - pub const VotingPeriod: BlockNumber = 5 * DAYS; - pub const FastTrackVotingPeriod: BlockNumber = 3 * HOURS; - pub MinimumDeposit: Balance = 1000 * dollar(ACA); - pub const EnactmentPeriod: BlockNumber = 2 * DAYS; - pub const VoteLockingPeriod: BlockNumber = 14 * DAYS; - pub const CooloffPeriod: BlockNumber = 7 * DAYS; -} - -impl pallet_democracy::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type EnactmentPeriod = EnactmentPeriod; - type LaunchPeriod = LaunchPeriod; - type VotingPeriod = VotingPeriod; - type VoteLockingPeriod = VoteLockingPeriod; - type MinimumDeposit = MinimumDeposit; - /// A straight majority of the council can decide what their next motion is. - type ExternalOrigin = EnsureRootOrHalfGeneralCouncil; - /// A majority can have the next scheduled referendum be a straight majority-carries vote. - type ExternalMajorityOrigin = EnsureRootOrHalfGeneralCouncil; - /// A unanimous council can have the next scheduled referendum be a straight default-carries - /// (NTB) vote. - type ExternalDefaultOrigin = EnsureRootOrAllGeneralCouncil; - /// Two thirds of the technical committee can have an ExternalMajority/ExternalDefault vote - /// be tabled immediately and with a shorter voting/enactment period. - type FastTrackOrigin = EnsureRootOrTwoThirdsTechnicalCommittee; - type InstantOrigin = EnsureRootOrAllTechnicalCommittee; - type InstantAllowed = ConstBool; - type FastTrackVotingPeriod = FastTrackVotingPeriod; - // To cancel a proposal which has been passed, 2/3 of the council must agree to it. - type CancellationOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type BlacklistOrigin = EnsureRoot; - // To cancel a proposal before it has been passed, the technical committee must be unanimous or - // Root must agree. - type CancelProposalOrigin = EnsureRootOrAllTechnicalCommittee; - // Any single technical committee member may veto a coming council proposal, however they can - // only do it once and it lasts only for the cooloff period. - type VetoOrigin = pallet_collective::EnsureMember; - type CooloffPeriod = CooloffPeriod; - type Slash = Treasury; - type Scheduler = Scheduler; - type PalletsOrigin = OriginCaller; - type MaxVotes = ConstU32<100>; - type WeightInfo = pallet_democracy::weights::SubstrateWeight; - type MaxProposals = ConstU32<100>; - type Preimages = Preimage; - type MaxDeposits = ConstU32<100>; - type MaxBlacklisted = ConstU32<100>; - type SubmitOrigin = EnsureSigned; -} - impl orml_auction::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Balance = Balance; @@ -1787,6 +1613,10 @@ construct_runtime!( TechnicalCommittee: pallet_collective:: = 67, TechnicalCommitteeMembership: pallet_membership:: = 68, Democracy: pallet_democracy = 69, + ConvictionVoting: pallet_conviction_voting = 160, + Referenda: pallet_referenda = 161, + Origins: governance::custom_origins::{Origin} = 162, + Whitelist: pallet_whitelist = 163, // Oracle // diff --git a/runtime/karura/Cargo.toml b/runtime/karura/Cargo.toml index df78846da3..d5c692b22e 100644 --- a/runtime/karura/Cargo.toml +++ b/runtime/karura/Cargo.toml @@ -13,6 +13,9 @@ scale-info = { version = "2.9.0", default-features = false, features = ["derive" serde_json = { version = "1.0.85", default-features = false, features = ["alloc"] } hex = { version = "0.4", default-features = false } hex-literal = { version = "0.4.1" } +strum = { version = "0.24", default-features = false, features = [ "derive" ] } +strum_macros = "0.24" +lazy_static = "1.4.0" # substrate frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } @@ -53,6 +56,9 @@ sp-staking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "rel sp-std = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } sp-version = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } +pallet-conviction-voting = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } +pallet-referenda = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } +pallet-whitelist = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } # cumulus cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } @@ -149,6 +155,7 @@ std = [ "hex/std", "scale-info/std", "serde_json/std", + "strum/std", "frame-benchmarking/std", "frame-executive/std", @@ -192,6 +199,9 @@ std = [ "sp-transaction-pool/std", "sp-version/std", "substrate-wasm-builder", + "pallet-conviction-voting/std", + "pallet-referenda/std", + "pallet-whitelist/std", "cumulus-pallet-aura-ext/std", "cumulus-pallet-dmp-queue/std", @@ -286,6 +296,9 @@ runtime-benchmarks = [ "pallet-utility/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "sp-staking/runtime-benchmarks", + "pallet-conviction-voting/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-whitelist/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", @@ -349,6 +362,9 @@ try-runtime = [ "pallet-treasury/try-runtime", "pallet-utility/try-runtime", "pallet-bags-list/try-runtime", + "pallet-conviction-voting/try-runtime", + "pallet-referenda/try-runtime", + "pallet-whitelist/try-runtime", "cumulus-pallet-aura-ext/try-runtime", "cumulus-pallet-dmp-queue/try-runtime", diff --git a/runtime/karura/src/governance/councils.rs b/runtime/karura/src/governance/councils.rs new file mode 100644 index 0000000000..31bc170ce2 --- /dev/null +++ b/runtime/karura/src/governance/councils.rs @@ -0,0 +1,144 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Councils for Gov1 and Gov2 + +use super::*; + +parameter_types! { + pub const GeneralCouncilMotionDuration: BlockNumber = 3 * DAYS; + pub const CouncilDefaultMaxProposals: u32 = 20; + pub const CouncilDefaultMaxMembers: u32 = 30; + pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = GeneralCouncilMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type RemoveOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type SwapOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type ResetOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type PrimeOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type MembershipInitialized = GeneralCouncil; + type MembershipChanged = GeneralCouncil; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} + +parameter_types! { + pub const FinancialCouncilMotionDuration: BlockNumber = 3 * DAYS; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = FinancialCouncilMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type MembershipInitialized = FinancialCouncil; + type MembershipChanged = FinancialCouncil; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} + +parameter_types! { + pub const HomaCouncilMotionDuration: BlockNumber = 3 * DAYS; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = HomaCouncilMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type MembershipInitialized = HomaCouncil; + type MembershipChanged = HomaCouncil; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} + +parameter_types! { + pub const TechnicalCommitteeMotionDuration: BlockNumber = 3 * DAYS; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = TechnicalCommitteeMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type MembershipInitialized = TechnicalCommittee; + type MembershipChanged = TechnicalCommittee; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} diff --git a/runtime/karura/src/governance/democracy.rs b/runtime/karura/src/governance/democracy.rs new file mode 100644 index 0000000000..3a809c556f --- /dev/null +++ b/runtime/karura/src/governance/democracy.rs @@ -0,0 +1,75 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Democracy config for Gov1 + +use crate::*; + +parameter_types! { + pub const LaunchPeriod: BlockNumber = 5 * DAYS; + pub const VotingPeriod: BlockNumber = 5 * DAYS; + pub const FastTrackVotingPeriod: BlockNumber = 3 * HOURS; + pub MinimumDeposit: Balance = 100 * dollar(KAR); + pub const EnactmentPeriod: BlockNumber = 2 * DAYS; + pub const VoteLockingPeriod: BlockNumber = 7 * DAYS; + pub const CooloffPeriod: BlockNumber = 7 * DAYS; +} + +impl pallet_democracy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type EnactmentPeriod = EnactmentPeriod; + type LaunchPeriod = LaunchPeriod; + type VotingPeriod = VotingPeriod; + type VoteLockingPeriod = VoteLockingPeriod; + type MinimumDeposit = MinimumDeposit; + /// A straight majority of the council can decide what their next motion is. + type ExternalOrigin = EnsureRootOrHalfGeneralCouncil; + /// A majority can have the next scheduled referendum be a straight majority-carries vote. + type ExternalMajorityOrigin = EnsureRootOrHalfGeneralCouncil; + /// A unanimous council can have the next scheduled referendum be a straight default-carries + /// (NTB) vote. + type ExternalDefaultOrigin = EnsureRootOrAllGeneralCouncil; + /// Two thirds of the technical committee can have an ExternalMajority/ExternalDefault vote + /// be tabled immediately and with a shorter voting/enactment period. + type FastTrackOrigin = EnsureRootOrTwoThirdsTechnicalCommittee; + type InstantOrigin = EnsureRootOrAllTechnicalCommittee; + type InstantAllowed = ConstBool; + type FastTrackVotingPeriod = FastTrackVotingPeriod; + // To cancel a proposal which has been passed, 2/3 of the council must agree to it. + type CancellationOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type BlacklistOrigin = EnsureRoot; + // To cancel a proposal before it has been passed, the technical committee must be unanimous or + // Root must agree. + type CancelProposalOrigin = EnsureRootOrAllTechnicalCommittee; + // Any single technical committee member may veto a coming council proposal, however they can + // only do it once and it lasts only for the cooloff period. + type VetoOrigin = pallet_collective::EnsureMember; + type CooloffPeriod = CooloffPeriod; + type Slash = Treasury; + type Scheduler = Scheduler; + type PalletsOrigin = OriginCaller; + type MaxVotes = ConstU32<100>; + //TODO: might need to weight for Karura + type WeightInfo = pallet_democracy::weights::SubstrateWeight; + type MaxProposals = ConstU32<100>; + type Preimages = Preimage; + type MaxDeposits = ConstU32<100>; + type MaxBlacklisted = ConstU32<100>; + type SubmitOrigin = EnsureSigned; +} diff --git a/runtime/karura/src/governance/mod.rs b/runtime/karura/src/governance/mod.rs new file mode 100644 index 0000000000..9d8000ef01 --- /dev/null +++ b/runtime/karura/src/governance/mod.rs @@ -0,0 +1,30 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Governance configurations + +pub mod councils; +mod democracy; +pub mod referenda; + +use super::*; + +mod origins; +pub use origins::{custom_origins, GeneralAdmin, ReferendumCanceller, ReferendumKiller, WhitelistedCaller}; +mod tracks; +pub use tracks::TracksInfo; diff --git a/runtime/karura/src/governance/origins.rs b/runtime/karura/src/governance/origins.rs new file mode 100644 index 0000000000..7f7d7237a0 --- /dev/null +++ b/runtime/karura/src/governance/origins.rs @@ -0,0 +1,79 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Custom origins for governance interventions. + +pub use custom_origins::*; + +#[frame_support::pallet] +pub mod custom_origins { + use frame_support::pallet_prelude::*; + use strum_macros::EnumString; + + #[pallet::config] + pub trait Config: frame_system::Config {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[derive(PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, TypeInfo, RuntimeDebug, EnumString)] + #[strum(serialize_all = "snake_case")] + #[pallet::origin] + pub enum Origin { + /// Origin able to dispatch a whitelisted call. + WhitelistedCaller, + /// General admin + GeneralAdmin, + /// Origin able to cancel referenda. + ReferendumCanceller, + /// Origin able to kill referenda. + ReferendumKiller, + } + + macro_rules! decl_unit_ensures { + ( $name:ident: $success_type:ty = $success:expr ) => { + pub struct $name; + impl> + From> + EnsureOrigin for $name + { + type Success = $success_type; + fn try_origin(o: O) -> Result { + o.into().and_then(|o| match o { + Origin::$name => Ok($success), + r => Err(O::from(r)), + }) + } + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + Ok(O::from(Origin::$name)) + } + } + }; + ( $name:ident ) => { decl_unit_ensures! { $name : () = () } }; + ( $name:ident: $success_type:ty = $success:expr, $( $rest:tt )* ) => { + decl_unit_ensures! { $name: $success_type = $success } + decl_unit_ensures! { $( $rest )* } + }; + ( $name:ident, $( $rest:tt )* ) => { + decl_unit_ensures! { $name } + decl_unit_ensures! { $( $rest )* } + }; + () => {} + } + decl_unit_ensures!(ReferendumCanceller, ReferendumKiller, WhitelistedCaller, GeneralAdmin); +} diff --git a/runtime/karura/src/governance/referenda.rs b/runtime/karura/src/governance/referenda.rs new file mode 100644 index 0000000000..c28801b43b --- /dev/null +++ b/runtime/karura/src/governance/referenda.rs @@ -0,0 +1,94 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! # Gov2 config +//! Includes runtime configs for these substrate pallets: +//! 1. pallet-conviction-voting +//! 2. pallet-whitelist +//! 3. pallet-referenda + +use super::*; +use frame_support::traits::{EitherOf, MapSuccess}; +use frame_system::EnsureRootWithSuccess; +use sp_runtime::traits::Replace; + +parameter_types! { + pub const VoteLockingPeriod: BlockNumber = 1 * DAYS; +} + +impl pallet_conviction_voting::Config for Runtime { + type WeightInfo = (); + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type Polls = Referenda; + type MaxTurnout = frame_support::traits::TotalIssuanceOf; + // Maximum number of concurrent votes an account may have + type MaxVotes = ConstU32<20>; + // Minimum period of vote locking + type VoteLockingPeriod = VoteLockingPeriod; +} + +// Origin for general admin or root +pub type GeneralAdminOrRoot = EitherOf, origins::GeneralAdmin>; + +impl custom_origins::Config for Runtime {} + +// The purpose of this pallet is to queue calls to be dispatched as by root later => the Dispatch +// origin corresponds to the Gov2 Whitelist track. +impl pallet_whitelist::Config for Runtime { + type WeightInfo = (); + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type WhitelistOrigin = EitherOf< + EnsureRootWithSuccess>, + MapSuccess< + pallet_collective::EnsureProportionAtLeast, + Replace>, + >, + >; + type DispatchWhitelistedOrigin = EitherOf, WhitelistedCaller>; + type Preimages = Preimage; +} + +pallet_referenda::impl_tracksinfo_get!(TracksInfo, Balance, BlockNumber); + +parameter_types! { + pub const AlarmInterval: BlockNumber = 1; + pub SubmissionDeposit: Balance = 10 * dollar(KAR); + pub const UndecidingTimeout: BlockNumber = 14 * DAYS; +} + +impl pallet_referenda::Config for Runtime { + type WeightInfo = (); + type RuntimeCall = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type Scheduler = Scheduler; + type Currency = Balances; + type SubmitOrigin = frame_system::EnsureSigned; + type CancelOrigin = EitherOf, ReferendumCanceller>; + type KillOrigin = EitherOf, ReferendumKiller>; + type Slash = Treasury; + type Votes = pallet_conviction_voting::VotesOf; + type Tally = pallet_conviction_voting::TallyOf; + type SubmissionDeposit = SubmissionDeposit; + type MaxQueued = ConstU32<100>; + type UndecidingTimeout = UndecidingTimeout; + type AlarmInterval = AlarmInterval; + type Tracks = TracksInfo; + type Preimages = Preimage; +} diff --git a/runtime/karura/src/governance/tracks.rs b/runtime/karura/src/governance/tracks.rs new file mode 100644 index 0000000000..df9807e8eb --- /dev/null +++ b/runtime/karura/src/governance/tracks.rs @@ -0,0 +1,178 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Track configurations for governance. + +use super::*; +use pallet_referenda::Curve; +use sp_std::str::FromStr; + +const fn percent(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 100) +} +const fn permill(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 1000) +} + +lazy_static::lazy_static! { +static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 5] = [ + ( + 0, + pallet_referenda::TrackInfo { + // Name of this track. + name: "root", + // A limit for the number of referenda on this track that can be being decided at once. + // For Root origin this should generally be just one. + max_deciding: 5, + // Amount that must be placed on deposit before a decision can be made. + decision_deposit: 20 * 1000 * dollar(KAR), + // Amount of time this must be submitted for before a decision can be made. + prepare_period: 1 * DAYS, + // Amount of time that a decision may take to be approved prior to cancellation. + decision_period: 14 * DAYS, + // Amount of time that the approval criteria must hold before it can be approved. + confirm_period: 1 * DAYS, + // Minimum amount of time that an approved proposal must be in the dispatch queue. + min_enactment_period: 1 * DAYS, + // Minimum aye votes as percentage of overall conviction-weighted votes needed for + // approval as a function of time into decision period. + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + // Minimum pre-conviction aye-votes ("support") as percentage of overall population that + // is needed for approval as a function of time into decision period. + min_support: Curve::make_linear(14, 14, permill(5), percent(25)), + }, + ), + ( + 1, + pallet_referenda::TrackInfo { + name: "whitelisted_caller", + max_deciding: 100, + decision_deposit: 2 * 1000 * dollar(KAR), + prepare_period: 10 * MINUTES, + decision_period: 14 * DAYS, + confirm_period: 10 * MINUTES, + min_enactment_period: 30 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14 * 24, percent(1), percent(0), percent(2)), + }, + ), + ( + 2, + pallet_referenda::TrackInfo { + name: "general_admin", + max_deciding: 10, + decision_deposit: 1000 * dollar(KAR), + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 1 * DAYS, + min_enactment_period: 1 * DAYS, + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + min_support: Curve::make_reciprocal(7, 14, percent(10), percent(0), percent(50)), + }, + ), + ( + 3, + pallet_referenda::TrackInfo { + name: "referendum_canceller", + max_deciding: 20, + decision_deposit: 2 * 1000 * dollar(KAR), + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + }, + ), + ( + 4, + pallet_referenda::TrackInfo { + name: "referendum_killer", + max_deciding: 100, + decision_deposit: 4 * 1000 * dollar(KAR), + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + }, + ), +]; +} + +pub struct TracksInfo; +impl pallet_referenda::TracksInfo for TracksInfo { + type Id = u16; + type RuntimeOrigin = ::PalletsOrigin; + fn tracks() -> &'static [(Self::Id, pallet_referenda::TrackInfo)] { + &TRACKS_DATA[..] + } + fn track_for(id: &Self::RuntimeOrigin) -> Result { + if let Ok(system_origin) = frame_system::RawOrigin::try_from(id.clone()) { + match system_origin { + frame_system::RawOrigin::Root => { + if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| track.name == "root") { + Ok(*track_id) + } else { + Err(()) + } + } + _ => Err(()), + } + } else if let Ok(custom_origin) = custom_origins::Origin::try_from(id.clone()) { + if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| { + if let Ok(track_custom_origin) = custom_origins::Origin::from_str(track.name) { + track_custom_origin == custom_origin + } else { + false + } + }) { + Ok(*track_id) + } else { + Err(()) + } + } else { + Err(()) + } + } +} + +#[test] +/// To ensure voters are always locked into their vote +fn vote_locking_always_longer_than_enactment_period() { + for (_, track) in (&TRACKS_DATA).iter() { + assert!( + ::VoteLockingPeriod::get() >= track.min_enactment_period, + "Track {} has enactment period {} < vote locking period {}", + track.name, + track.min_enactment_period, + ::VoteLockingPeriod::get(), + ); + } +} + +#[test] +fn all_tracks_have_origins() { + for (_, track) in (&TRACKS_DATA).iter() { + // check name.into() is successful either converts into "root" or custom origin + let track_is_root = track.name == "root"; + let track_has_custom_origin = custom_origins::Origin::from_str(track.name).is_ok(); + assert!(track_is_root || track_has_custom_origin); + } +} diff --git a/runtime/karura/src/lib.rs b/runtime/karura/src/lib.rs index 95c612e700..769001c133 100644 --- a/runtime/karura/src/lib.rs +++ b/runtime/karura/src/lib.rs @@ -121,9 +121,11 @@ pub use nutsfinance_stable_asset; mod authority; mod benchmarking; pub mod constants; +pub mod governance; /// Weights for pallets used in the runtime. mod weights; pub mod xcm_config; +use governance::councils::*; /// This runtime version. #[sp_version::runtime_version] @@ -401,129 +403,6 @@ impl pallet_sudo::Config for Runtime { type WeightInfo = (); } -parameter_types! { - pub const GeneralCouncilMotionDuration: BlockNumber = 3 * DAYS; - pub const CouncilDefaultMaxProposals: u32 = 20; - pub const CouncilDefaultMaxMembers: u32 = 30; - pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = GeneralCouncilMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type RemoveOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type SwapOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type ResetOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type PrimeOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type MembershipInitialized = GeneralCouncil; - type MembershipChanged = GeneralCouncil; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - -parameter_types! { - pub const FinancialCouncilMotionDuration: BlockNumber = 3 * DAYS; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = FinancialCouncilMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type MembershipInitialized = FinancialCouncil; - type MembershipChanged = FinancialCouncil; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - -parameter_types! { - pub const HomaCouncilMotionDuration: BlockNumber = 3 * DAYS; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = HomaCouncilMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type MembershipInitialized = HomaCouncil; - type MembershipChanged = HomaCouncil; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - -parameter_types! { - pub const TechnicalCommitteeMotionDuration: BlockNumber = 3 * DAYS; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = TechnicalCommitteeMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type MembershipInitialized = TechnicalCommittee; - type MembershipChanged = TechnicalCommittee; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - impl pallet_membership::Config for Runtime { type RuntimeEvent = RuntimeEvent; type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; @@ -653,60 +532,6 @@ impl pallet_tips::Config for Runtime { type WeightInfo = (); } -parameter_types! { - pub const LaunchPeriod: BlockNumber = 5 * DAYS; - pub const VotingPeriod: BlockNumber = 5 * DAYS; - pub const FastTrackVotingPeriod: BlockNumber = 3 * HOURS; - pub MinimumDeposit: Balance = 100 * dollar(KAR); - pub const EnactmentPeriod: BlockNumber = 2 * DAYS; - pub const VoteLockingPeriod: BlockNumber = 7 * DAYS; - pub const CooloffPeriod: BlockNumber = 7 * DAYS; -} - -impl pallet_democracy::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type EnactmentPeriod = EnactmentPeriod; - type LaunchPeriod = LaunchPeriod; - type VotingPeriod = VotingPeriod; - type VoteLockingPeriod = VoteLockingPeriod; - type MinimumDeposit = MinimumDeposit; - /// A straight majority of the council can decide what their next motion is. - type ExternalOrigin = EnsureRootOrHalfGeneralCouncil; - /// A majority can have the next scheduled referendum be a straight majority-carries vote. - type ExternalMajorityOrigin = EnsureRootOrHalfGeneralCouncil; - /// A unanimous council can have the next scheduled referendum be a straight default-carries - /// (NTB) vote. - type ExternalDefaultOrigin = EnsureRootOrAllGeneralCouncil; - /// Two thirds of the technical committee can have an ExternalMajority/ExternalDefault vote - /// be tabled immediately and with a shorter voting/enactment period. - type FastTrackOrigin = EnsureRootOrTwoThirdsTechnicalCommittee; - type InstantOrigin = EnsureRootOrAllTechnicalCommittee; - type InstantAllowed = ConstBool; - type FastTrackVotingPeriod = FastTrackVotingPeriod; - // To cancel a proposal which has been passed, 2/3 of the council must agree to it. - type CancellationOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type BlacklistOrigin = EnsureRoot; - // To cancel a proposal before it has been passed, the technical committee must be unanimous or - // Root must agree. - type CancelProposalOrigin = EnsureRootOrAllTechnicalCommittee; - // Any single technical committee member may veto a coming council proposal, however they can - // only do it once and it lasts only for the cooloff period. - type VetoOrigin = pallet_collective::EnsureMember; - type CooloffPeriod = CooloffPeriod; - type Slash = Treasury; - type Scheduler = Scheduler; - type PalletsOrigin = OriginCaller; - type MaxVotes = ConstU32<100>; - //TODO: might need to weight for Karura - type WeightInfo = pallet_democracy::weights::SubstrateWeight; - type MaxProposals = ConstU32<100>; - type Preimages = Preimage; - type MaxDeposits = ConstU32<100>; - type MaxBlacklisted = ConstU32<100>; - type SubmitOrigin = EnsureSigned; -} - impl orml_auction::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Balance = Balance; @@ -1779,6 +1604,10 @@ construct_runtime!( TechnicalCommittee: pallet_collective:: = 67, TechnicalCommitteeMembership: pallet_membership:: = 68, Democracy: pallet_democracy = 69, + ConvictionVoting: pallet_conviction_voting = 160, + Referenda: pallet_referenda = 161, + Origins: governance::custom_origins::{Origin} = 162, + Whitelist: pallet_whitelist = 163, // Oracle // diff --git a/runtime/mandala/Cargo.toml b/runtime/mandala/Cargo.toml index f938a4aa68..19e66d62b2 100644 --- a/runtime/mandala/Cargo.toml +++ b/runtime/mandala/Cargo.toml @@ -13,6 +13,9 @@ scale-info = { version = "2.9.0", default-features = false, features = ["derive" serde_json = { version = "1.0.85", default-features = false, features = ["alloc"] } hex = { version = "0.4", default-features = false } hex-literal = { version = "0.4.1" } +strum = { version = "0.24", default-features = false, features = [ "derive" ] } +strum_macros = "0.24" +lazy_static = "1.4.0" # substrate frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } @@ -57,6 +60,9 @@ sp-staking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "rel sp-std = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } sp-version = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } +pallet-conviction-voting = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } +pallet-referenda = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } +pallet-whitelist = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } # cumulus cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false } @@ -161,6 +167,7 @@ std = [ "hex/std", "scale-info/std", "serde_json/std", + "strum/std", "frame-benchmarking/std", "frame-executive/std", @@ -208,6 +215,9 @@ std = [ "sp-transaction-pool/std", "sp-version/std", "substrate-wasm-builder", + "pallet-conviction-voting/std", + "pallet-referenda/std", + "pallet-whitelist/std", "cumulus-pallet-aura-ext/std", "cumulus-pallet-dmp-queue/std", @@ -306,6 +316,9 @@ runtime-benchmarks = [ "pallet-utility/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "sp-staking/runtime-benchmarks", + "pallet-conviction-voting/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-whitelist/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", @@ -378,6 +391,9 @@ try-runtime = [ "pallet-transaction-payment/try-runtime", "pallet-treasury/try-runtime", "pallet-utility/try-runtime", + "pallet-conviction-voting/try-runtime", + "pallet-referenda/try-runtime", + "pallet-whitelist/try-runtime", "cumulus-pallet-aura-ext/try-runtime", "cumulus-pallet-dmp-queue/try-runtime", diff --git a/runtime/mandala/src/governance/councils.rs b/runtime/mandala/src/governance/councils.rs new file mode 100644 index 0000000000..083513cced --- /dev/null +++ b/runtime/mandala/src/governance/councils.rs @@ -0,0 +1,144 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Councils for Gov1 and Gov2 + +use super::*; + +parameter_types! { + pub const GeneralCouncilMotionDuration: BlockNumber = 7 * DAYS; + pub const CouncilDefaultMaxProposals: u32 = 100; + pub const CouncilDefaultMaxMembers: u32 = 100; + pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = GeneralCouncilMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type RemoveOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type SwapOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type ResetOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type PrimeOrigin = EnsureRootOrThreeFourthsGeneralCouncil; + type MembershipInitialized = GeneralCouncil; + type MembershipChanged = GeneralCouncil; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} + +parameter_types! { + pub const FinancialCouncilMotionDuration: BlockNumber = 7 * DAYS; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = FinancialCouncilMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type MembershipInitialized = FinancialCouncil; + type MembershipChanged = FinancialCouncil; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} + +parameter_types! { + pub const HomaCouncilMotionDuration: BlockNumber = 7 * DAYS; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = HomaCouncilMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type MembershipInitialized = HomaCouncil; + type MembershipChanged = HomaCouncil; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} + +parameter_types! { + pub const TechnicalCommitteeMotionDuration: BlockNumber = 7 * DAYS; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = TechnicalCommitteeMotionDuration; + type MaxProposals = CouncilDefaultMaxProposals; + type MaxMembers = CouncilDefaultMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; + type WeightInfo = (); + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type MembershipInitialized = TechnicalCommittee; + type MembershipChanged = TechnicalCommittee; + type MaxMembers = CouncilDefaultMaxMembers; + type WeightInfo = (); +} diff --git a/runtime/mandala/src/governance/democracy.rs b/runtime/mandala/src/governance/democracy.rs new file mode 100644 index 0000000000..6373a0300e --- /dev/null +++ b/runtime/mandala/src/governance/democracy.rs @@ -0,0 +1,74 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Democracy config for Gov1 + +use crate::*; + +parameter_types! { + pub const LaunchPeriod: BlockNumber = 2 * HOURS; + pub const VotingPeriod: BlockNumber = HOURS; + pub const FastTrackVotingPeriod: BlockNumber = HOURS; + pub MinimumDeposit: Balance = 100 * cent(ACA); + pub const EnactmentPeriod: BlockNumber = MINUTES; + pub const CooloffPeriod: BlockNumber = MINUTES; +} + +impl pallet_democracy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type EnactmentPeriod = EnactmentPeriod; + type LaunchPeriod = LaunchPeriod; + type VotingPeriod = VotingPeriod; + type VoteLockingPeriod = EnactmentPeriod; // Same as EnactmentPeriod + type MinimumDeposit = MinimumDeposit; + /// A straight majority of the council can decide what their next motion is. + type ExternalOrigin = EnsureRootOrHalfGeneralCouncil; + /// A majority can have the next scheduled referendum be a straight majority-carries vote. + type ExternalMajorityOrigin = EnsureRootOrHalfGeneralCouncil; + /// A unanimous council can have the next scheduled referendum be a straight default-carries + /// (NTB) vote. + type ExternalDefaultOrigin = EnsureRootOrAllGeneralCouncil; + /// Two thirds of the technical committee can have an ExternalMajority/ExternalDefault vote + /// be tabled immediately and with a shorter voting/enactment period. + type FastTrackOrigin = EnsureRootOrTwoThirdsTechnicalCommittee; + type InstantOrigin = EnsureRootOrAllTechnicalCommittee; + type InstantAllowed = ConstBool; + type FastTrackVotingPeriod = FastTrackVotingPeriod; + // To cancel a proposal which has been passed, 2/3 of the council must agree to it. + type CancellationOrigin = EnsureRootOrTwoThirdsGeneralCouncil; + type BlacklistOrigin = EnsureRoot; + // To cancel a proposal before it has been passed, the technical committee must be unanimous or + // Root must agree. + type CancelProposalOrigin = EnsureRootOrAllTechnicalCommittee; + // Any single technical committee member may veto a coming council proposal, however they can + // only do it once and it lasts only for the cooloff period. + type VetoOrigin = pallet_collective::EnsureMember; + type CooloffPeriod = CooloffPeriod; + type Slash = Treasury; + type Scheduler = Scheduler; + type PalletsOrigin = OriginCaller; + type MaxVotes = ConstU32<100>; + //TODO: might need to weight for Mandala + type WeightInfo = pallet_democracy::weights::SubstrateWeight; + type MaxProposals = CouncilDefaultMaxProposals; + type Preimages = Preimage; + type MaxDeposits = ConstU32<100>; + type MaxBlacklisted = ConstU32<100>; + type SubmitOrigin = EnsureSigned; +} diff --git a/runtime/mandala/src/governance/mod.rs b/runtime/mandala/src/governance/mod.rs new file mode 100644 index 0000000000..9d8000ef01 --- /dev/null +++ b/runtime/mandala/src/governance/mod.rs @@ -0,0 +1,30 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Governance configurations + +pub mod councils; +mod democracy; +pub mod referenda; + +use super::*; + +mod origins; +pub use origins::{custom_origins, GeneralAdmin, ReferendumCanceller, ReferendumKiller, WhitelistedCaller}; +mod tracks; +pub use tracks::TracksInfo; diff --git a/runtime/mandala/src/governance/origins.rs b/runtime/mandala/src/governance/origins.rs new file mode 100644 index 0000000000..7f7d7237a0 --- /dev/null +++ b/runtime/mandala/src/governance/origins.rs @@ -0,0 +1,79 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Custom origins for governance interventions. + +pub use custom_origins::*; + +#[frame_support::pallet] +pub mod custom_origins { + use frame_support::pallet_prelude::*; + use strum_macros::EnumString; + + #[pallet::config] + pub trait Config: frame_system::Config {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[derive(PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, TypeInfo, RuntimeDebug, EnumString)] + #[strum(serialize_all = "snake_case")] + #[pallet::origin] + pub enum Origin { + /// Origin able to dispatch a whitelisted call. + WhitelistedCaller, + /// General admin + GeneralAdmin, + /// Origin able to cancel referenda. + ReferendumCanceller, + /// Origin able to kill referenda. + ReferendumKiller, + } + + macro_rules! decl_unit_ensures { + ( $name:ident: $success_type:ty = $success:expr ) => { + pub struct $name; + impl> + From> + EnsureOrigin for $name + { + type Success = $success_type; + fn try_origin(o: O) -> Result { + o.into().and_then(|o| match o { + Origin::$name => Ok($success), + r => Err(O::from(r)), + }) + } + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + Ok(O::from(Origin::$name)) + } + } + }; + ( $name:ident ) => { decl_unit_ensures! { $name : () = () } }; + ( $name:ident: $success_type:ty = $success:expr, $( $rest:tt )* ) => { + decl_unit_ensures! { $name: $success_type = $success } + decl_unit_ensures! { $( $rest )* } + }; + ( $name:ident, $( $rest:tt )* ) => { + decl_unit_ensures! { $name } + decl_unit_ensures! { $( $rest )* } + }; + () => {} + } + decl_unit_ensures!(ReferendumCanceller, ReferendumKiller, WhitelistedCaller, GeneralAdmin); +} diff --git a/runtime/mandala/src/governance/referenda.rs b/runtime/mandala/src/governance/referenda.rs new file mode 100644 index 0000000000..cd46634046 --- /dev/null +++ b/runtime/mandala/src/governance/referenda.rs @@ -0,0 +1,94 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! # Gov2 config +//! Includes runtime configs for these substrate pallets: +//! 1. pallet-conviction-voting +//! 2. pallet-whitelist +//! 3. pallet-referenda + +use super::*; +use frame_support::traits::{EitherOf, MapSuccess}; +use frame_system::EnsureRootWithSuccess; +use sp_runtime::traits::Replace; + +parameter_types! { + pub const VoteLockingPeriod: BlockNumber = 1 * DAYS; +} + +impl pallet_conviction_voting::Config for Runtime { + type WeightInfo = (); + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type Polls = Referenda; + type MaxTurnout = frame_support::traits::TotalIssuanceOf; + // Maximum number of concurrent votes an account may have + type MaxVotes = ConstU32<20>; + // Minimum period of vote locking + type VoteLockingPeriod = VoteLockingPeriod; +} + +// Origin for general admin or root +pub type GeneralAdminOrRoot = EitherOf, origins::GeneralAdmin>; + +impl custom_origins::Config for Runtime {} + +// The purpose of this pallet is to queue calls to be dispatched as by root later => the Dispatch +// origin corresponds to the Gov2 Whitelist track. +impl pallet_whitelist::Config for Runtime { + type WeightInfo = (); + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type WhitelistOrigin = EitherOf< + EnsureRootWithSuccess>, + MapSuccess< + pallet_collective::EnsureProportionAtLeast, + Replace>, + >, + >; + type DispatchWhitelistedOrigin = EitherOf, WhitelistedCaller>; + type Preimages = Preimage; +} + +pallet_referenda::impl_tracksinfo_get!(TracksInfo, Balance, BlockNumber); + +parameter_types! { + pub const AlarmInterval: BlockNumber = 1; + pub SubmissionDeposit: Balance = 10 * dollar(ACA); + pub const UndecidingTimeout: BlockNumber = 14 * DAYS; +} + +impl pallet_referenda::Config for Runtime { + type WeightInfo = (); + type RuntimeCall = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type Scheduler = Scheduler; + type Currency = Balances; + type SubmitOrigin = frame_system::EnsureSigned; + type CancelOrigin = EitherOf, ReferendumCanceller>; + type KillOrigin = EitherOf, ReferendumKiller>; + type Slash = Treasury; + type Votes = pallet_conviction_voting::VotesOf; + type Tally = pallet_conviction_voting::TallyOf; + type SubmissionDeposit = SubmissionDeposit; + type MaxQueued = ConstU32<100>; + type UndecidingTimeout = UndecidingTimeout; + type AlarmInterval = AlarmInterval; + type Tracks = TracksInfo; + type Preimages = Preimage; +} diff --git a/runtime/mandala/src/governance/tracks.rs b/runtime/mandala/src/governance/tracks.rs new file mode 100644 index 0000000000..ef053401e9 --- /dev/null +++ b/runtime/mandala/src/governance/tracks.rs @@ -0,0 +1,178 @@ +// This file is part of Acala. + +// Copyright (C) 2020-2023 Acala Foundation. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Track configurations for governance. + +use super::*; +use pallet_referenda::Curve; +use sp_std::str::FromStr; + +const fn percent(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 100) +} +const fn permill(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 1000) +} + +lazy_static::lazy_static! { +static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 5] = [ + ( + 0, + pallet_referenda::TrackInfo { + // Name of this track. + name: "root", + // A limit for the number of referenda on this track that can be being decided at once. + // For Root origin this should generally be just one. + max_deciding: 5, + // Amount that must be placed on deposit before a decision can be made. + decision_deposit: 20 * 1000 * dollar(ACA), + // Amount of time this must be submitted for before a decision can be made. + prepare_period: 1 * DAYS, + // Amount of time that a decision may take to be approved prior to cancellation. + decision_period: 14 * DAYS, + // Amount of time that the approval criteria must hold before it can be approved. + confirm_period: 1 * DAYS, + // Minimum amount of time that an approved proposal must be in the dispatch queue. + min_enactment_period: 1 * DAYS, + // Minimum aye votes as percentage of overall conviction-weighted votes needed for + // approval as a function of time into decision period. + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + // Minimum pre-conviction aye-votes ("support") as percentage of overall population that + // is needed for approval as a function of time into decision period. + min_support: Curve::make_linear(14, 14, permill(5), percent(25)), + }, + ), + ( + 1, + pallet_referenda::TrackInfo { + name: "whitelisted_caller", + max_deciding: 100, + decision_deposit: 2 * 1000 * dollar(ACA), + prepare_period: 10 * MINUTES, + decision_period: 14 * DAYS, + confirm_period: 10 * MINUTES, + min_enactment_period: 30 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14 * 24, percent(1), percent(0), percent(2)), + }, + ), + ( + 2, + pallet_referenda::TrackInfo { + name: "general_admin", + max_deciding: 10, + decision_deposit: 1000 * dollar(ACA), + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 1 * DAYS, + min_enactment_period: 1 * DAYS, + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + min_support: Curve::make_reciprocal(7, 14, percent(10), percent(0), percent(50)), + }, + ), + ( + 3, + pallet_referenda::TrackInfo { + name: "referendum_canceller", + max_deciding: 20, + decision_deposit: 2 * 1000 * dollar(ACA), + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + }, + ), + ( + 4, + pallet_referenda::TrackInfo { + name: "referendum_killer", + max_deciding: 100, + decision_deposit: 4 * 1000 * dollar(ACA), + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + }, + ), +]; +} + +pub struct TracksInfo; +impl pallet_referenda::TracksInfo for TracksInfo { + type Id = u16; + type RuntimeOrigin = ::PalletsOrigin; + fn tracks() -> &'static [(Self::Id, pallet_referenda::TrackInfo)] { + &TRACKS_DATA[..] + } + fn track_for(id: &Self::RuntimeOrigin) -> Result { + if let Ok(system_origin) = frame_system::RawOrigin::try_from(id.clone()) { + match system_origin { + frame_system::RawOrigin::Root => { + if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| track.name == "root") { + Ok(*track_id) + } else { + Err(()) + } + } + _ => Err(()), + } + } else if let Ok(custom_origin) = custom_origins::Origin::try_from(id.clone()) { + if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| { + if let Ok(track_custom_origin) = custom_origins::Origin::from_str(track.name) { + track_custom_origin == custom_origin + } else { + false + } + }) { + Ok(*track_id) + } else { + Err(()) + } + } else { + Err(()) + } + } +} + +#[test] +/// To ensure voters are always locked into their vote +fn vote_locking_always_longer_than_enactment_period() { + for (_, track) in (&TRACKS_DATA).iter() { + assert!( + ::VoteLockingPeriod::get() >= track.min_enactment_period, + "Track {} has enactment period {} < vote locking period {}", + track.name, + track.min_enactment_period, + ::VoteLockingPeriod::get(), + ); + } +} + +#[test] +fn all_tracks_have_origins() { + for (_, track) in (&TRACKS_DATA).iter() { + // check name.into() is successful either converts into "root" or custom origin + let track_is_root = track.name == "root"; + let track_has_custom_origin = custom_origins::Origin::from_str(track.name).is_ok(); + assert!(track_is_root || track_has_custom_origin); + } +} diff --git a/runtime/mandala/src/lib.rs b/runtime/mandala/src/lib.rs index a4d53254fb..d45ae2a340 100644 --- a/runtime/mandala/src/lib.rs +++ b/runtime/mandala/src/lib.rs @@ -125,9 +125,11 @@ pub use nutsfinance_stable_asset; mod authority; mod benchmarking; pub mod constants; +pub mod governance; /// Weights for pallets used in the runtime. mod weights; pub mod xcm_config; +use governance::councils::*; /// This runtime version. #[sp_version::runtime_version] @@ -374,129 +376,6 @@ impl pallet_sudo::Config for Runtime { type WeightInfo = (); } -parameter_types! { - pub const GeneralCouncilMotionDuration: BlockNumber = 7 * DAYS; - pub const CouncilDefaultMaxProposals: u32 = 100; - pub const CouncilDefaultMaxMembers: u32 = 100; - pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = GeneralCouncilMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type RemoveOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type SwapOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type ResetOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type PrimeOrigin = EnsureRootOrThreeFourthsGeneralCouncil; - type MembershipInitialized = GeneralCouncil; - type MembershipChanged = GeneralCouncil; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - -parameter_types! { - pub const FinancialCouncilMotionDuration: BlockNumber = 7 * DAYS; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = FinancialCouncilMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type MembershipInitialized = FinancialCouncil; - type MembershipChanged = FinancialCouncil; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - -parameter_types! { - pub const HomaCouncilMotionDuration: BlockNumber = 7 * DAYS; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = HomaCouncilMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type MembershipInitialized = HomaCouncil; - type MembershipChanged = HomaCouncil; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - -parameter_types! { - pub const TechnicalCommitteeMotionDuration: BlockNumber = 7 * DAYS; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = TechnicalCommitteeMotionDuration; - type MaxProposals = CouncilDefaultMaxProposals; - type MaxMembers = CouncilDefaultMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type WeightInfo = (); - type MaxProposalWeight = MaxProposalWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type MembershipInitialized = TechnicalCommittee; - type MembershipChanged = TechnicalCommittee; - type MaxMembers = CouncilDefaultMaxMembers; - type WeightInfo = (); -} - impl pallet_membership::Config for Runtime { type RuntimeEvent = RuntimeEvent; type AddOrigin = EnsureRootOrTwoThirdsGeneralCouncil; @@ -639,59 +518,6 @@ impl pallet_recovery::Config for Runtime { type WeightInfo = (); } -parameter_types! { - pub const LaunchPeriod: BlockNumber = 2 * HOURS; - pub const VotingPeriod: BlockNumber = HOURS; - pub const FastTrackVotingPeriod: BlockNumber = HOURS; - pub MinimumDeposit: Balance = 100 * cent(ACA); - pub const EnactmentPeriod: BlockNumber = MINUTES; - pub const CooloffPeriod: BlockNumber = MINUTES; -} - -impl pallet_democracy::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type EnactmentPeriod = EnactmentPeriod; - type LaunchPeriod = LaunchPeriod; - type VotingPeriod = VotingPeriod; - type VoteLockingPeriod = EnactmentPeriod; // Same as EnactmentPeriod - type MinimumDeposit = MinimumDeposit; - /// A straight majority of the council can decide what their next motion is. - type ExternalOrigin = EnsureRootOrHalfGeneralCouncil; - /// A majority can have the next scheduled referendum be a straight majority-carries vote. - type ExternalMajorityOrigin = EnsureRootOrHalfGeneralCouncil; - /// A unanimous council can have the next scheduled referendum be a straight default-carries - /// (NTB) vote. - type ExternalDefaultOrigin = EnsureRootOrAllGeneralCouncil; - /// Two thirds of the technical committee can have an ExternalMajority/ExternalDefault vote - /// be tabled immediately and with a shorter voting/enactment period. - type FastTrackOrigin = EnsureRootOrTwoThirdsTechnicalCommittee; - type InstantOrigin = EnsureRootOrAllTechnicalCommittee; - type InstantAllowed = ConstBool; - type FastTrackVotingPeriod = FastTrackVotingPeriod; - // To cancel a proposal which has been passed, 2/3 of the council must agree to it. - type CancellationOrigin = EnsureRootOrTwoThirdsGeneralCouncil; - type BlacklistOrigin = EnsureRoot; - // To cancel a proposal before it has been passed, the technical committee must be unanimous or - // Root must agree. - type CancelProposalOrigin = EnsureRootOrAllTechnicalCommittee; - // Any single technical committee member may veto a coming council proposal, however they can - // only do it once and it lasts only for the cooloff period. - type VetoOrigin = pallet_collective::EnsureMember; - type CooloffPeriod = CooloffPeriod; - type Slash = Treasury; - type Scheduler = Scheduler; - type PalletsOrigin = OriginCaller; - type MaxVotes = ConstU32<100>; - //TODO: might need to weight for Mandala - type WeightInfo = pallet_democracy::weights::SubstrateWeight; - type MaxProposals = CouncilDefaultMaxProposals; - type Preimages = Preimage; - type MaxDeposits = ConstU32<100>; - type MaxBlacklisted = ConstU32<100>; - type SubmitOrigin = EnsureSigned; -} - impl orml_auction::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Balance = Balance; @@ -2004,6 +1830,10 @@ construct_runtime!( HomaCouncilMembership: pallet_membership:: = 55, TechnicalCommittee: pallet_collective:: = 56, TechnicalCommitteeMembership: pallet_membership:: = 57, + ConvictionVoting: pallet_conviction_voting = 150, + Referenda: pallet_referenda = 151, + Origins: governance::custom_origins::{Origin} = 152, + Whitelist: pallet_whitelist = 153, Authority: orml_authority = 70, PhragmenElection: pallet_elections_phragmen = 71, From 8e3cac1c1fac4ddb61fc142605110e2ec59af077 Mon Sep 17 00:00:00 2001 From: wangjj9219 <183318287@qq.com> Date: Sat, 25 Nov 2023 18:59:17 +0800 Subject: [PATCH 2/4] fix deps version --- Cargo.lock | 2869 +++++++++++++++--------------------- Cargo.toml | 2 +- runtime/acala/src/lib.rs | 2 +- runtime/karura/src/lib.rs | 2 +- runtime/mandala/src/lib.rs | 6 +- 5 files changed, 1218 insertions(+), 1663 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9aaaa5f920..5d02a15009 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,9 +44,9 @@ dependencies = [ "sc-service", "sc-telemetry", "sc-tracing", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "substrate-build-script-utils", "try-runtime-cli", ] @@ -63,8 +63,8 @@ dependencies = [ "sc-client-api", "sc-service", "sp-blockchain", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", ] [[package]] @@ -73,7 +73,7 @@ version = "2.22.0" dependencies = [ "bstringify", "enumflags2", - "frame-support 25.0.0", + "frame-support", "hex-literal", "log", "module-evm-utility", @@ -86,10 +86,10 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-api 23.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-api", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -108,10 +108,10 @@ dependencies = [ "sc-rpc", "sc-rpc-api", "sc-transaction-pool-api", - "sp-api 23.0.0", + "sp-api", "sp-block-builder", "sp-blockchain", - "sp-runtime 28.0.0", + "sp-runtime", "substrate-frame-rpc-system", ] @@ -128,10 +128,10 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-timestamp", "cumulus-primitives-utility", - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-executive", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "frame-system-rpc-runtime-api", "frame-try-runtime", "hex", @@ -209,7 +209,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", - "pallet-whitelist 25.0.0", + "pallet-whitelist", "pallet-xcm", "parity-scale-codec", "polkadot-parachain-primitives", @@ -218,20 +218,20 @@ dependencies = [ "scale-info", "serde_json", "smallvec", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", + "sp-api", + "sp-application-crypto", "sp-block-builder", "sp-consensus-aura", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-inherents", + "sp-io", "sp-offchain", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", + "sp-staking", "sp-std", "sp-transaction-pool", - "sp-version 26.0.0", + "sp-version", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -265,7 +265,7 @@ dependencies = [ "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-system-rpc-runtime-api", "futures", "hex", @@ -303,22 +303,22 @@ dependencies = [ "sc-transaction-pool-api", "serde", "serde_json", - "sp-api 23.0.0", + "sp-api", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-keystore 0.31.0", + "sp-core", + "sp-io", + "sp-keystore", "sp-offchain", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", "sp-std", "sp-storage", "sp-timestamp", "sp-transaction-pool", - "sp-trie 26.0.0", + "sp-trie", "substrate-prometheus-endpoint", "tiny-keccak", ] @@ -1213,10 +1213,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ "bitcoin_hashes", - "rand 0.8.5", - "rand_core 0.6.4", - "serde", - "unicode-normalization", ] [[package]] @@ -1425,8 +1421,8 @@ checksum = "be3b4fafc31f17da1b4ea403c4118e4f4f1d9a5a696729b374551d582e48633b" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", ] [[package]] @@ -2266,8 +2262,8 @@ dependencies = [ "sc-cli", "sc-client-api", "sc-service", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "url", ] @@ -2288,10 +2284,10 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "sc-client-api", - "sp-api 23.0.0", + "sp-api", "sp-consensus", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "tracing", ] @@ -2322,17 +2318,17 @@ dependencies = [ "sc-consensus-slots", "sc-telemetry", "schnellru", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", + "sp-api", + "sp-application-crypto", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-state-machine", "sp-timestamp", "substrate-prometheus-endpoint", "tracing", @@ -2360,10 +2356,10 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-slots", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "sp-timestamp", - "sp-trie 26.0.0", + "sp-trie", "substrate-prometheus-endpoint", "tracing", ] @@ -2378,9 +2374,9 @@ dependencies = [ "async-trait", "cumulus-primitives-parachain-inherent", "sp-consensus", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-inherents", + "sp-runtime", + "sp-state-machine", "thiserror", ] @@ -2397,13 +2393,13 @@ dependencies = [ "futures", "parking_lot 0.12.1", "sc-consensus", - "sp-api 23.0.0", + "sp-api", "sp-block-builder", "sp-blockchain", "sp-consensus", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-inherents", + "sp-runtime", "substrate-prometheus-endpoint", "tracing", ] @@ -2426,9 +2422,9 @@ dependencies = [ "sc-client-api", "sp-blockchain", "sp-consensus", - "sp-core 25.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-core", + "sp-runtime", + "sp-state-machine", "tracing", ] @@ -2453,7 +2449,7 @@ dependencies = [ "sc-consensus", "sp-consensus", "sp-maybe-compressed-blob", - "sp-runtime 28.0.0", + "sp-runtime", "tracing", ] @@ -2485,11 +2481,11 @@ dependencies = [ "sc-telemetry", "sc-transaction-pool", "sc-utils", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", "sp-consensus", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "sp-transaction-pool", ] @@ -2500,15 +2496,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071cdddd31e2b0d47a74249675de828857f61eb5f6afa36cfcf63ea6ee2b60f2" dependencies = [ "cumulus-pallet-parachain-system", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "pallet-aura", "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 27.0.0", + "sp-application-crypto", "sp-consensus-aura", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -2519,13 +2515,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d1cb9d43cdfeedea19b4f6b8386e5b6264a97938b29f5c711a84e9dc7105ff7" dependencies = [ "cumulus-primitives-core", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", ] @@ -2541,23 +2537,23 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "environmental", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "impl-trait-for-tuples", "log", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-runtime-parachains", "scale-info", - "sp-core 25.0.0", + "sp-core", "sp-externalities", - "sp-inherents 23.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", "sp-std", - "sp-trie 26.0.0", - "sp-version 26.0.0", + "sp-trie", + "sp-version", "staging-xcm", "trie-db", ] @@ -2581,12 +2577,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ff03e14a0f5847bdee67a673ee945d3acd5c1d7238d46993208dcbfb774e27f" dependencies = [ "cumulus-primitives-core", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", ] @@ -2599,18 +2595,18 @@ checksum = "b6af9816dd6564149729ba133c2c984c88fb15c4a2cb66f57be06b9147744e51" dependencies = [ "bp-xcm-bridge-hub-router", "cumulus-primitives-core", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "polkadot-runtime-common", "polkadot-runtime-parachains", "rand_chacha 0.3.1", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-executor", @@ -2625,9 +2621,9 @@ dependencies = [ "parity-scale-codec", "polkadot-core-primitives", "polkadot-primitives", - "sp-api 23.0.0", + "sp-api", "sp-consensus-aura", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -2642,10 +2638,10 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-primitives", "scale-info", - "sp-api 23.0.0", - "sp-runtime 28.0.0", + "sp-api", + "sp-runtime", "sp-std", - "sp-trie 26.0.0", + "sp-trie", "staging-xcm", ] @@ -2662,14 +2658,14 @@ dependencies = [ "parity-scale-codec", "sc-client-api", "scale-info", - "sp-api 23.0.0", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-api", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", "sp-std", "sp-storage", - "sp-trie 26.0.0", + "sp-trie", "tracing", ] @@ -2682,7 +2678,7 @@ dependencies = [ "cumulus-primitives-core", "futures", "parity-scale-codec", - "sp-inherents 23.0.0", + "sp-inherents", "sp-std", "sp-timestamp", ] @@ -2694,14 +2690,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b4ef704f5a346711d0448f82e57dc5784b186f4bf5e3efbbca0df814b203539" dependencies = [ "cumulus-primitives-core", - "frame-support 25.0.0", + "frame-support", "log", "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-runtime-common", "polkadot-runtime-parachains", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -2726,11 +2722,11 @@ dependencies = [ "sc-sysinfo", "sc-telemetry", "sc-tracing", - "sp-api 23.0.0", + "sp-api", "sp-consensus", - "sp-core 25.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-core", + "sp-runtime", + "sp-state-machine", ] [[package]] @@ -2746,9 +2742,9 @@ dependencies = [ "parity-scale-codec", "polkadot-overseer", "sc-client-api", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", - "sp-state-machine 0.32.0", + "sp-state-machine", "thiserror", ] @@ -2780,10 +2776,10 @@ dependencies = [ "sc-service", "sc-tracing", "sc-utils", - "sp-api 23.0.0", + "sp-api", "sp-consensus", "sp-consensus-babe", - "sp-runtime 28.0.0", + "sp-runtime", "substrate-prometheus-endpoint", "tracing", ] @@ -2813,12 +2809,12 @@ dependencies = [ "serde_json", "smoldot", "smoldot-light", - "sp-api 23.0.0", + "sp-api", "sp-authority-discovery", "sp-consensus-babe", - "sp-core 25.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-core", + "sp-runtime", + "sp-state-machine", "sp-storage", "thiserror", "tokio", @@ -2836,10 +2832,10 @@ dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-runtime", + "sp-state-machine", "sp-std", - "sp-trie 26.0.0", + "sp-trie", ] [[package]] @@ -3661,8 +3657,8 @@ dependencies = [ "env_logger", "ethereum", "ethjson", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "hex", "lazy_static", "libsecp256k1", @@ -3684,9 +3680,9 @@ dependencies = [ "serde", "serde_json", "sha3", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -3934,47 +3930,21 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dd4946d63eab00d899f08a7e74e965cc6785c2298efaea6a2752905f4810407" dependencies = [ - "frame-support 25.0.0", - "frame-support-procedural 20.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-support-procedural", + "frame-system", "linregress", "log", "parity-scale-codec", "paste", "scale-info", "serde", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-runtime-interface 21.0.0", - "sp-std", - "sp-storage", - "static_assertions", -] - -[[package]] -name = "frame-benchmarking" -version = "26.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffc0f167650e08c1c8eb3f564569e9e96d12a7cffebb9e3527041a36ffb7cce" -dependencies = [ - "frame-support 26.0.0", - "frame-support-procedural 21.0.0", - "frame-system 26.0.0", - "linregress", - "log", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "sp-api 24.0.0", - "sp-application-crypto 28.0.0", - "sp-core 26.0.0", - "sp-io 28.0.0", - "sp-runtime 29.0.0", - "sp-runtime-interface 22.0.0", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface", "sp-std", "sp-storage", "static_assertions", @@ -3991,9 +3961,9 @@ dependencies = [ "chrono", "clap", "comfy-table", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "gethostname", "handlebars", "itertools 0.10.5", @@ -4012,18 +3982,18 @@ dependencies = [ "sc-sysinfo", "serde", "serde_json", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", - "sp-core 25.0.0", + "sp-core", "sp-database", "sp-externalities", - "sp-inherents 23.0.0", - "sp-io 27.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-state-machine", "sp-storage", - "sp-trie 26.0.0", + "sp-trie", "sp-wasm-interface", "thiserror", "thousands", @@ -4048,14 +4018,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebad507fb038db2f7ce982d30bd9828a59785c9a4780348d59cd6cceaee80d1a" dependencies = [ "frame-election-provider-solution-type", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", + "sp-arithmetic", + "sp-core", "sp-npos-elections", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -4065,15 +4035,15 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dda2c20ea3267ee20c9a5482f320236510c4ade6aec1dd930cb57dc5651c64f" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "frame-try-runtime", "log", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "sp-tracing", ] @@ -4102,10 +4072,10 @@ dependencies = [ "log", "parity-scale-codec", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", "spinners", "substrate-rpc-client", "tokio", @@ -4123,7 +4093,7 @@ dependencies = [ "docify", "environmental", "frame-metadata", - "frame-support-procedural 20.0.0", + "frame-support-procedural", "impl-trait-for-tuples", "k256 0.13.1", "log", @@ -4134,63 +4104,21 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-api 23.0.0", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", + "sp-api", + "sp-arithmetic", + "sp-core", "sp-core-hashing-proc-macro", "sp-debug-derive", - "sp-genesis-builder 0.4.0", - "sp-inherents 23.0.0", - "sp-io 27.0.0", + "sp-genesis-builder", + "sp-inherents", + "sp-io", "sp-metadata-ir", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", - "sp-state-machine 0.32.0", + "sp-runtime", + "sp-staking", + "sp-state-machine", "sp-std", "sp-tracing", - "sp-weights 24.0.0", - "static_assertions", - "tt-call", -] - -[[package]] -name = "frame-support" -version = "26.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3c63ec85b8907268d6af6182d29d9a9752daa6979c9928566d56471f5ec731" -dependencies = [ - "aquamarine", - "array-bytes 6.2.0", - "bitflags 1.3.2", - "docify", - "environmental", - "frame-metadata", - "frame-support-procedural 21.0.0", - "impl-trait-for-tuples", - "k256 0.13.1", - "log", - "macro_magic", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "serde_json", - "smallvec", - "sp-api 24.0.0", - "sp-arithmetic 21.0.0", - "sp-core 26.0.0", - "sp-core-hashing-proc-macro", - "sp-debug-derive", - "sp-genesis-builder 0.5.0", - "sp-inherents 24.0.0", - "sp-io 28.0.0", - "sp-metadata-ir", - "sp-runtime 29.0.0", - "sp-staking 24.0.0", - "sp-state-machine 0.33.0", - "sp-std", - "sp-tracing", - "sp-weights 25.0.0", + "sp-weights", "static_assertions", "tt-call", ] @@ -4215,26 +4143,6 @@ dependencies = [ "syn 2.0.39", ] -[[package]] -name = "frame-support-procedural" -version = "21.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545ed122b36d06c416a6fbe2e66ab57a455200bfd20ece87cdd604d18f674f23" -dependencies = [ - "Inflector", - "cfg-expr", - "derive-syn-parse", - "expander 2.0.0", - "frame-support-procedural-tools", - "itertools 0.10.5", - "macro_magic", - "proc-macro-warning", - "proc-macro2", - "quote", - "sp-core-hashing", - "syn 2.0.39", -] - [[package]] name = "frame-support-procedural-tools" version = "9.0.0" @@ -4266,37 +4174,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57e316407c45a5093c833966a906301aa0dcbd05048061cd9cde2548d017bfd9" dependencies = [ "cfg-if", - "frame-support 25.0.0", + "frame-support", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", - "sp-version 26.0.0", - "sp-weights 24.0.0", -] - -[[package]] -name = "frame-system" -version = "26.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5d6c8e319cea3160ec8f6c831edc77ceca442c7488d0a6d2e6a6be54fcb142" -dependencies = [ - "cfg-if", - "frame-support 26.0.0", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 26.0.0", - "sp-io 28.0.0", - "sp-runtime 29.0.0", - "sp-std", - "sp-version 27.0.0", - "sp-weights 25.0.0", + "sp-version", + "sp-weights", ] [[package]] @@ -4305,13 +4193,13 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5b1388055d29a7a1c4d41b1623d3fcbc9d7f31d17abe04500b270b26901d926" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "sp-std", ] @@ -4322,7 +4210,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17572a34fd866ad6cab6977a2c30b38645e0a499b3486de00ae9103f7002d6d3" dependencies = [ "parity-scale-codec", - "sp-api 23.0.0", + "sp-api", ] [[package]] @@ -4331,10 +4219,10 @@ version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f082e770275f9b46ddf46b09bc7a993f84db691c39d9e4d038ac07443cb17a18" dependencies = [ - "frame-support 25.0.0", + "frame-support", "parity-scale-codec", - "sp-api 23.0.0", - "sp-runtime 28.0.0", + "sp-api", + "sp-runtime", "sp-std", ] @@ -5448,10 +5336,10 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-timestamp", "cumulus-primitives-utility", - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-executive", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "frame-system-rpc-runtime-api", "frame-try-runtime", "hex", @@ -5529,7 +5417,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", - "pallet-whitelist 25.0.0", + "pallet-whitelist", "pallet-xcm", "parity-scale-codec", "polkadot-parachain-primitives", @@ -5538,20 +5426,20 @@ dependencies = [ "scale-info", "serde_json", "smallvec", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", + "sp-api", + "sp-application-crypto", "sp-block-builder", "sp-consensus-aura", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-inherents", + "sp-io", "sp-offchain", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", + "sp-staking", "sp-std", "sp-transaction-pool", - "sp-version 26.0.0", + "sp-version", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -6363,10 +6251,10 @@ dependencies = [ "cumulus-primitives-timestamp", "cumulus-primitives-utility", "cumulus-test-relay-sproof-builder", - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-executive", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "frame-system-rpc-runtime-api", "frame-try-runtime", "hex", @@ -6450,7 +6338,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", - "pallet-whitelist 25.0.0", + "pallet-whitelist", "pallet-xcm", "parity-scale-codec", "polkadot-parachain-primitives", @@ -6459,22 +6347,22 @@ dependencies = [ "scale-info", "serde_json", "smallvec", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", + "sp-api", + "sp-application-crypto", "sp-block-builder", "sp-consensus-aura", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-inherents", + "sp-io", "sp-keyring", "sp-offchain", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", + "sp-staking", "sp-std", "sp-transaction-pool", - "sp-trie 26.0.0", - "sp-version 26.0.0", + "sp-trie", + "sp-version", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -6688,13 +6576,13 @@ dependencies = [ "parity-scale-codec", "sc-client-api", "sc-offchain", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 25.0.0", + "sp-core", "sp-mmr-primitives", - "sp-runtime 28.0.0", + "sp-runtime", ] [[package]] @@ -6707,11 +6595,11 @@ dependencies = [ "jsonrpsee", "parity-scale-codec", "serde", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", - "sp-core 25.0.0", + "sp-core", "sp-mmr-primitives", - "sp-runtime 28.0.0", + "sp-runtime", ] [[package]] @@ -6746,8 +6634,8 @@ name = "module-aggregated-dex" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "module-dex", "module-support", "nutsfinance-stable-asset", @@ -6756,9 +6644,9 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -6767,8 +6655,8 @@ name = "module-asset-registry" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "hex", "log", "module-evm", @@ -6779,9 +6667,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde_json", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", ] @@ -6791,8 +6679,8 @@ name = "module-auction-manager" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "module-cdp-treasury", "module-dex", @@ -6804,9 +6692,9 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -6815,8 +6703,8 @@ name = "module-cdp-engine" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "module-cdp-treasury", "module-dex", @@ -6833,10 +6721,10 @@ dependencies = [ "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", - "sp-application-crypto 27.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -6845,8 +6733,8 @@ name = "module-cdp-treasury" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "module-dex", "module-support", @@ -6858,9 +6746,9 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -6869,9 +6757,9 @@ name = "module-collator-selection" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "pallet-aura", "pallet-authorship", @@ -6881,10 +6769,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-consensus-aura", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", "sp-std", "sp-tracing", ] @@ -6894,8 +6782,8 @@ name = "module-currencies" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "hex", "hex-literal", "module-evm", @@ -6908,9 +6796,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde_json", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -6919,8 +6807,8 @@ name = "module-dex" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "module-support", "orml-tokens", @@ -6928,9 +6816,9 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -6939,17 +6827,17 @@ name = "module-dex-oracle" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "module-support", "orml-traits", "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -6958,15 +6846,15 @@ name = "module-earning" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "orml-traits", "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -6975,8 +6863,8 @@ name = "module-emergency-shutdown" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "module-cdp-treasury", "module-loans", "module-support", @@ -6986,9 +6874,9 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -6998,9 +6886,9 @@ version = "2.22.0" dependencies = [ "acala-primitives", "env_logger", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "hex", "hex-literal", "log", @@ -7023,9 +6911,9 @@ dependencies = [ "serde", "serde_json", "sha3", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm-builder", "substrate-bn", @@ -7038,8 +6926,8 @@ name = "module-evm-accounts" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "libsecp256k1", "module-evm-utility-macro", "module-support", @@ -7049,9 +6937,9 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7061,8 +6949,8 @@ version = "2.22.0" dependencies = [ "acala-primitives", "ethereum-types", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "hex", "impl-trait-for-tuples", "module-evm", @@ -7074,9 +6962,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde_json", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7085,9 +6973,9 @@ name = "module-evm-rpc-runtime-api" version = "2.22.0" dependencies = [ "acala-primitives", - "sp-api 23.0.0", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-api", + "sp-core", + "sp-runtime", "sp-std", ] @@ -7118,9 +7006,9 @@ name = "module-homa" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "module-currencies", "module-support", @@ -7129,10 +7017,10 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", ] @@ -7142,8 +7030,8 @@ name = "module-homa-validator-list" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "module-support", "orml-currencies", "orml-tokens", @@ -7152,9 +7040,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7163,8 +7051,8 @@ name = "module-honzon" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "module-cdp-engine", "module-cdp-treasury", "module-evm-accounts", @@ -7177,9 +7065,9 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7188,8 +7076,8 @@ name = "module-honzon-bridge" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "hex", "module-currencies", "module-evm", @@ -7203,9 +7091,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde_json", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7214,15 +7102,15 @@ name = "module-idle-scheduler" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "module-support", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7231,8 +7119,8 @@ name = "module-incentives" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "module-support", "orml-rewards", @@ -7241,9 +7129,9 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7252,8 +7140,8 @@ name = "module-liquid-crowdloan" version = "2.16.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "module-currencies", "module-support", "orml-tokens", @@ -7261,9 +7149,9 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7272,8 +7160,8 @@ name = "module-loans" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "module-cdp-treasury", "module-support", @@ -7283,9 +7171,9 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7294,9 +7182,9 @@ name = "module-nft" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "module-currencies", "module-support", "orml-nft", @@ -7308,9 +7196,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7319,8 +7207,8 @@ name = "module-nominees-election" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "module-support", "orml-currencies", @@ -7329,9 +7217,9 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7340,16 +7228,16 @@ name = "module-prices" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "module-support", "orml-tokens", "orml-traits", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7359,13 +7247,13 @@ version = "2.22.0" dependencies = [ "acala-primitives", "cumulus-primitives-core", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "module-support", "parity-scale-codec", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", ] @@ -7374,15 +7262,15 @@ dependencies = [ name = "module-session-manager" version = "2.22.0" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "pallet-session", "parity-scale-codec", "scale-info", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-io", + "sp-runtime", + "sp-staking", "sp-std", ] @@ -7391,8 +7279,8 @@ name = "module-support" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "impl-trait-for-tuples", "nutsfinance-stable-asset", "orml-tokens", @@ -7400,9 +7288,9 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", ] @@ -7412,8 +7300,8 @@ name = "module-transaction-pause" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "hex-literal", "log", "module-support", @@ -7423,9 +7311,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "smallvec", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7434,8 +7322,8 @@ name = "module-transaction-payment" version = "2.22.0" dependencies = [ "acala-primitives", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "module-aggregated-dex", "module-currencies", "module-dex", @@ -7448,9 +7336,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "smallvec", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", ] @@ -7461,9 +7349,9 @@ version = "2.22.0" dependencies = [ "acala-primitives", "cumulus-primitives-core", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "insta", "log", "module-currencies", @@ -7475,9 +7363,9 @@ dependencies = [ "pallet-xcm", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -7847,15 +7735,15 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" name = "nutsfinance-stable-asset" version = "0.1.0" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -7979,8 +7867,8 @@ dependencies = [ "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "orml-tokens", "orml-traits", @@ -7996,9 +7884,9 @@ dependencies = [ "polkadot-runtime-parachains", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-parachain-info", "staging-xcm", @@ -8011,15 +7899,15 @@ dependencies = [ name = "orml-auction" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "orml-traits", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8027,17 +7915,17 @@ dependencies = [ name = "orml-authority" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "pallet-preimage", "pallet-root-testing", "pallet-scheduler", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8045,19 +7933,19 @@ dependencies = [ name = "orml-benchmarking" version = "0.6.1" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "hex-literal", "log", "parity-scale-codec", "paste", "scale-info", "serde", - "sp-api 23.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-runtime-interface 21.0.0", + "sp-api", + "sp-io", + "sp-runtime", + "sp-runtime-interface", "sp-std", "sp-storage", ] @@ -8073,8 +7961,8 @@ dependencies = [ name = "orml-currencies" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "orml-tokens", "orml-traits", "orml-utilities", @@ -8082,9 +7970,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8092,14 +7980,14 @@ dependencies = [ name = "orml-gradually-update" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8107,14 +7995,14 @@ dependencies = [ name = "orml-nft" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8122,17 +8010,17 @@ dependencies = [ name = "orml-oracle" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "orml-traits", "orml-utilities", "parity-scale-codec", "scale-info", "serde", - "sp-application-crypto 27.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8141,7 +8029,7 @@ name = "orml-oracle-runtime-api" version = "0.6.1" dependencies = [ "parity-scale-codec", - "sp-api 23.0.0", + "sp-api", "sp-std", ] @@ -8149,15 +8037,15 @@ dependencies = [ name = "orml-parameters" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "orml-traits", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8165,17 +8053,17 @@ dependencies = [ name = "orml-payments" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "orml-tokens", "orml-traits", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8183,15 +8071,15 @@ dependencies = [ name = "orml-rewards" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "orml-traits", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8199,8 +8087,8 @@ dependencies = [ name = "orml-tokens" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "orml-traits", "pallet-elections-phragmen", @@ -8208,11 +8096,11 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", "sp-std", ] @@ -8220,17 +8108,17 @@ dependencies = [ name = "orml-tokens-runtime-api" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", + "frame-support", "parity-scale-codec", - "sp-api 23.0.0", - "sp-runtime 28.0.0", + "sp-api", + "sp-runtime", ] [[package]] name = "orml-traits" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", + "frame-support", "impl-trait-for-tuples", "num-traits", "orml-utilities", @@ -8238,9 +8126,9 @@ dependencies = [ "paste", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", ] @@ -8249,16 +8137,16 @@ dependencies = [ name = "orml-unknown-tokens" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "hex-literal", "orml-xcm-support", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", ] @@ -8267,15 +8155,15 @@ dependencies = [ name = "orml-utilities" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", "serde_json", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8283,15 +8171,15 @@ dependencies = [ name = "orml-vesting" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8299,8 +8187,8 @@ dependencies = [ name = "orml-xcm" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "pallet-xcm", "parity-scale-codec", "scale-info", @@ -8313,10 +8201,10 @@ dependencies = [ name = "orml-xcm-support" version = "0.6.1" dependencies = [ - "frame-support 25.0.0", + "frame-support", "orml-traits", "parity-scale-codec", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-executor", @@ -8331,8 +8219,8 @@ dependencies = [ "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "orml-tokens", "orml-traits", @@ -8347,9 +8235,9 @@ dependencies = [ "polkadot-runtime-parachains", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-parachain-info", "staging-xcm", @@ -8386,13 +8274,13 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "740aebbcfefe8528f56ff8a339f810520a28df3ec159d016ef719aaa9f131af4" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "sp-std", ] @@ -8402,15 +8290,15 @@ version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04fbef67cf62445b7fd8e68241e6b71d9fb8c77abb3d52259eebf525a4cd5586" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 27.0.0", + "sp-application-crypto", "sp-consensus-aura", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -8420,14 +8308,14 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fda272a66bbf1602579efcede67606ac43cda6d462ad551c527d8cadc871813d" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto 27.0.0", + "sp-application-crypto", "sp-authority-discovery", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -8437,12 +8325,12 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d38eab59f7d15fe43c81fc3cd92f4c1f895ca6d0efb74fc2a6d6d7d3d34d413" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -8452,22 +8340,22 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b12430ca4b79b27231acb1ff3f99d33d6503fbeba40bfc8380e42d59b6d52b0" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "pallet-authorship", "pallet-session", "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 27.0.0", + "sp-application-crypto", "sp-consensus-babe", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", + "sp-staking", "sp-std", ] @@ -8479,17 +8367,17 @@ checksum = "5d49c4448e51a5c64d63a4263aebeb2dfb90dabb48746e178b337fb7f533d45f" dependencies = [ "aquamarine", "docify", - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "sp-tracing", ] @@ -8500,13 +8388,13 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9de2915b425ae77d63ba25c194780599b7be25307454a138cfb316c16d001e68" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -8516,8 +8404,8 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8563fce9fdb0e557015c0b58ed7ea7d5c1a4a1ddb1d27bf56e040d6bbf5c79e9" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "pallet-authorship", "pallet-session", @@ -8525,9 +8413,9 @@ dependencies = [ "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", + "sp-staking", "sp-std", ] @@ -8539,8 +8427,8 @@ checksum = "ee3ed75c348ba23064cea40dab623719ef348bfe67ea39f195f82e2e7a7d0115" dependencies = [ "array-bytes 6.2.0", "binary-merkle-tree", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "pallet-beefy", "pallet-mmr", @@ -8548,12 +8436,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 23.0.0", + "sp-api", "sp-consensus-beefy", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", "sp-std", ] @@ -8563,16 +8451,16 @@ version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74c0fb83c88f217e5bfe07a69a6d8a6c32d01241159ab81705ba5d4c3e24aaab" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8582,17 +8470,17 @@ version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2246ce705aee37f9b6ad818e3646910d31ef4191e1c234bff054a710ef8d8a38" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "pallet-bounties", "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8602,15 +8490,15 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dddb120b5ee520146617a8c49b4d4c980ba9188918d43085539bf78815e7ec1d" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8621,14 +8509,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c8ff7512a377b708f71772e5169550cebc8f74bc8c26553015698eaa0975356" dependencies = [ "assert_matches", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8638,16 +8526,16 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed9f24ad18db2eeae0f03ba1743a82aaf300e0bbd6cdcb1119b0da93eef3d77f" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8657,20 +8545,20 @@ version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "481178ef558a9409d9c12fc01279b517e3a0a7797664e89761447dba3a182ce6" dependencies = [ - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", + "sp-arithmetic", + "sp-core", + "sp-io", "sp-npos-elections", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", "strum 0.24.1", ] @@ -8681,12 +8569,12 @@ version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5ab6413ec88b64acf849a202795c67940dc3bcc846ce03bd0893b90e2119ecf" dependencies = [ - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-election-provider-support", - "frame-system 25.0.0", + "frame-system", "parity-scale-codec", "sp-npos-elections", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -8696,17 +8584,17 @@ version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "021da1d28b604b3654f895987dcb1ccb47d73102b31bc84c8f784bed261f01d8" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-io", "sp-npos-elections", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-runtime", + "sp-staking", "sp-std", ] @@ -8717,16 +8605,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05634a197738c999a3032393916182fedccce13cb063fc330ee9bf810cd53b49" dependencies = [ "docify", - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-io", + "sp-runtime", + "sp-staking", "sp-std", ] @@ -8736,21 +8624,21 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b87c7f4cd94a526054dfebf7a84fbcaf6385033defa246ad83e321e71f8c5a92" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "pallet-authorship", "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto 27.0.0", + "sp-application-crypto", "sp-consensus-grandpa", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", + "sp-staking", "sp-std", ] @@ -8761,13 +8649,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "735bf6c19d30299e2d448797170a67d41c6a8ba593fb3a71ce4e11d3b85c60e9" dependencies = [ "enumflags2", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8777,18 +8665,18 @@ version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59eb1c68cc6b4700ad1d2a81ba847ff7b37406aa0326b7716825155d3f985762" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "pallet-authorship", "parity-scale-codec", "scale-info", - "sp-application-crypto 27.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", "sp-std", ] @@ -8798,15 +8686,15 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0893ae7f2211010e92bf57fe31f18e2223a2f97f6d6393aa7192e283ec520beb" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-io", "sp-keyring", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -8816,15 +8704,15 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e1504034588eb733f8ce98b77757e9a7390662313aa133ef1e3b9fbb94359c7" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8834,18 +8722,18 @@ version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0776bf51d03bd746159063fa1357234feb85114273d40ef3aa3efba65d091eb4" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", - "sp-weights 24.0.0", + "sp-weights", ] [[package]] @@ -8854,16 +8742,16 @@ version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2b9789cac80b48e9427724d0b400f984fb844fc711fc2dd2d0cdccdedda7169" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-io", "sp-mmr-primitives", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -8873,14 +8761,14 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea2785a0bfb1884a8283bf65010bb7189c8fce958ced9947a8c71c148ef199f" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-io", + "sp-runtime", "sp-std", ] @@ -8890,14 +8778,14 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7aa7ec891b7f1801a405095a2ad2c70eef94d2abe86792eee54794de23cbd035" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-arithmetic", + "sp-core", + "sp-runtime", "sp-std", ] @@ -8907,16 +8795,16 @@ version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1896f33fff0c41934532fb492078d78b784f301ddd81e5041dd8e8279e652c49" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", "sp-std", "sp-tracing", ] @@ -8927,18 +8815,18 @@ version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b27cbf4a47cc79862d254f16b38c68fd2dda087ce58e7c0021859d89718e865a" dependencies = [ - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "pallet-bags-list", "pallet-nomination-pools", "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime 28.0.0", - "sp-runtime-interface 21.0.0", - "sp-staking 23.0.0", + "sp-runtime", + "sp-runtime-interface", + "sp-staking", "sp-std", ] @@ -8950,7 +8838,7 @@ checksum = "65c256cc530a19ff614f2af9b5c95ae9aa777a2bf1542aa455ae65e842f8c924" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", - "sp-api 23.0.0", + "sp-api", "sp-std", ] @@ -8960,15 +8848,15 @@ version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3fd14c02ed4b689652826aa93284aada5a2cf859df3cc34ad88b2fd410a8c50" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-runtime", + "sp-staking", "sp-std", ] @@ -8978,10 +8866,10 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1b3ae77cfb16f0495372853d42a44e34ab7b183bd8996a8cee91715f783ff49" dependencies = [ - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "pallet-babe", "pallet-balances", @@ -8992,8 +8880,8 @@ dependencies = [ "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-runtime", + "sp-staking", "sp-std", ] @@ -9003,15 +8891,15 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1ed40405c758b52375cfc75aac74f10ff9bb9480569e5cfca42682e2db6c387" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9021,13 +8909,13 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fbc0b550f5cbbad51f9daf795cc7046d40bbff256dae8d6072fd710ab40fd3a" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9037,16 +8925,16 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8181da7fd6b9adf4f8641c5bcb156cd209e3226eea87ee9f9b1ac41f8e37c714" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9056,13 +8944,13 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "889fddd16cfdea09c2ae4dc8e9f67a1ec4b8ac680412cffb772fa572489ec687" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9073,16 +8961,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "592ff9873af379bf55e835072afd787cd6435204213ac484e86345b026f4ae4e" dependencies = [ "assert_matches", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 20.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-arithmetic", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9092,13 +8980,13 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dc1162291d0749c2826e045cfb765009725a422ed58f602149a816c637725dc" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9109,16 +8997,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3508a51d359c6640577feead9dc00667f38cec385baad77b636c61ff746ffe24" dependencies = [ "docify", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-io", + "sp-runtime", "sp-std", - "sp-weights 24.0.0", + "sp-weights", ] [[package]] @@ -9127,21 +9015,21 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "768a6fb5333efc2bd2a3538c1d6ffa4178398660d4e3be89f2eb82d4e9088ae6" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "impl-trait-for-tuples", "log", "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", - "sp-state-machine 0.32.0", + "sp-staking", + "sp-state-machine", "sp-std", - "sp-trie 26.0.0", + "sp-trie", ] [[package]] @@ -9150,14 +9038,14 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5401cee669394e86a15851ace4ad60ef1b4d656f11ff22c83d8004051279ea59" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "pallet-session", "pallet-staking", "parity-scale-codec", "rand 0.8.5", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", "sp-std", ] @@ -9168,16 +9056,16 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36959be2c7f810ba6b8ece8cfe2ee515774c1c776f1ed0bebf3b9e8068f6a435" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", - "sp-arithmetic 20.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-arithmetic", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9187,10 +9075,10 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bed335abd32d357dd9750dae7fb87b01dfd8fe69faadcb94a6e0e0a43057d923" dependencies = [ - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "log", "pallet-authorship", "pallet-session", @@ -9198,10 +9086,10 @@ dependencies = [ "rand_chacha 0.2.2", "scale-info", "serde", - "sp-application-crypto 27.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-application-crypto", + "sp-io", + "sp-runtime", + "sp-staking", "sp-std", ] @@ -9224,7 +9112,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45b6f832653badb5f70bdfecc1ded64b02b8159b27f18515af03f8b80f1b023b" dependencies = [ "log", - "sp-arithmetic 20.0.0", + "sp-arithmetic", ] [[package]] @@ -9234,7 +9122,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773c0d24ad4da4b505e47b43e91c8c0af4e835f16104bc770732a4796c174748" dependencies = [ "parity-scale-codec", - "sp-api 23.0.0", + "sp-api", ] [[package]] @@ -9243,15 +9131,15 @@ version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "550292d79f281fd1bfbbf2643f10cef3d67068075d46374295f2efe7f7113da0" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9262,13 +9150,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcec9f73ecb8d0439a13043a253a9fd90aa6bf5aece6470194bbfc7f79256d88" dependencies = [ "docify", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9279,15 +9167,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b25ec8749cf3f481b5e5199be701bac0dea835851b83fc7c455192762711858d" dependencies = [ "docify", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-inherents 23.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-inherents", + "sp-io", + "sp-runtime", "sp-std", "sp-storage", "sp-timestamp", @@ -9299,17 +9187,17 @@ version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81b17cf8b964e5533f1f5ac1f087f3f69adfead754cb5dd25abe395ec1e7abc9" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "pallet-treasury", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9319,14 +9207,14 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87ef7ceaac786e41613731e3bc48284f1aa3ec260934abda2daed949de6e5ada" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9339,12 +9227,12 @@ dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", - "sp-core 25.0.0", + "sp-core", "sp-rpc", - "sp-runtime 28.0.0", - "sp-weights 24.0.0", + "sp-runtime", + "sp-weights", ] [[package]] @@ -9355,9 +9243,9 @@ checksum = "07d87fdc4028155367c6ea98143054a6c00b38bfd77ec08681e289e429e35505" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", - "sp-api 23.0.0", - "sp-runtime 28.0.0", - "sp-weights 24.0.0", + "sp-api", + "sp-runtime", + "sp-weights", ] [[package]] @@ -9367,16 +9255,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8dd462af11574485864023849e0622916b611dbc88111192fb39b1e6d7e666ba" dependencies = [ "docify", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "impl-trait-for-tuples", "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "sp-std", ] @@ -9386,14 +9274,14 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85a8a6941da32837e4297e0d8abe0a5c94f348a119cccbf27b0f99ee01246c0e" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] @@ -9403,13 +9291,13 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd29411ef24eb6a856adf1bc33b37ead4835a25dafb1c4c8c95b13fa5247748f" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -9419,29 +9307,13 @@ version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d37304829099cfec7d17df70cfe11ccf6cb7bd624eab80e8e79e895859454540" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-api 23.0.0", - "sp-runtime 28.0.0", - "sp-std", -] - -[[package]] -name = "pallet-whitelist" -version = "25.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f52f38e39d7f20500baf28afe84904c2f70af0aea88755e2adfbd0770966ad" -dependencies = [ - "frame-benchmarking 26.0.0", - "frame-support 26.0.0", - "frame-system 26.0.0", - "parity-scale-codec", - "scale-info", - "sp-api 24.0.0", - "sp-runtime 29.0.0", + "sp-api", + "sp-runtime", "sp-std", ] @@ -9452,16 +9324,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04d5e5404d9dadb39390949aadc2c641c16ce4cb0f47ed7a7ff584ab914c2984" dependencies = [ "bounded-collections", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-executor", @@ -9473,14 +9345,14 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6bfdc94e39541b111db7d2c2a95a18a3c3bb42dd37c20b8705727e617ce00c9" dependencies = [ - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -9888,8 +9760,8 @@ dependencies = [ "polkadot-primitives", "rand 0.8.5", "schnellru", - "sp-core 25.0.0", - "sp-keystore 0.31.0", + "sp-core", + "sp-keystore", "thiserror", "tracing-gum", ] @@ -9936,8 +9808,8 @@ dependencies = [ "sc-storage-monitor", "sc-sysinfo", "sc-tracing", - "sp-core 25.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-io", "sp-keyring", "sp-maybe-compressed-blob", "substrate-build-script-utils", @@ -9960,9 +9832,9 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-core 25.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-keystore", + "sp-runtime", "thiserror", "tokio-util", "tracing-gum", @@ -9976,8 +9848,8 @@ checksum = "b08d1d6ca24e1b13f8069e015cfab794344212dd7436aadd61de8086a82664ef" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "sp-std", ] @@ -10001,8 +9873,8 @@ dependencies = [ "polkadot-primitives", "sc-network", "schnellru", - "sp-application-crypto 27.0.0", - "sp-keystore 0.31.0", + "sp-application-crypto", + "sp-keystore", "thiserror", "tracing-gum", ] @@ -10017,8 +9889,8 @@ dependencies = [ "polkadot-node-primitives", "polkadot-primitives", "reed-solomon-novelpoly", - "sp-core 25.0.0", - "sp-trie 26.0.0", + "sp-core", + "sp-trie", "thiserror", ] @@ -10038,9 +9910,9 @@ dependencies = [ "rand_chacha 0.3.1", "sc-network", "sc-network-common", - "sp-application-crypto 27.0.0", - "sp-core 25.0.0", - "sp-keystore 0.31.0", + "sp-application-crypto", + "sp-core", + "sp-keystore", "tracing-gum", ] @@ -10081,7 +9953,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-core 25.0.0", + "sp-core", "sp-maybe-compressed-blob", "thiserror", "tracing-gum", @@ -10109,10 +9981,10 @@ dependencies = [ "sc-keystore", "schnellru", "schnorrkel 0.9.1", - "sp-application-crypto 27.0.0", + "sp-application-crypto", "sp-consensus", "sp-consensus-slots", - "sp-runtime 28.0.0", + "sp-runtime", "thiserror", "tracing-gum", ] @@ -10155,7 +10027,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "polkadot-statement-table", - "sp-keystore 0.31.0", + "sp-keystore", "thiserror", "tracing-gum", ] @@ -10170,7 +10042,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-keystore 0.31.0", + "sp-keystore", "thiserror", "tracing-gum", "wasm-timer", @@ -10265,7 +10137,7 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "sp-blockchain", - "sp-inherents 23.0.0", + "sp-inherents", "thiserror", "tracing-gum", ] @@ -10328,7 +10200,7 @@ dependencies = [ "polkadot-primitives", "rand 0.8.5", "slotmap", - "sp-core 25.0.0", + "sp-core", "sp-maybe-compressed-blob", "sp-wasm-interface", "tempfile", @@ -10348,7 +10220,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "sp-keystore 0.31.0", + "sp-keystore", "thiserror", "tracing-gum", ] @@ -10370,9 +10242,9 @@ dependencies = [ "sc-executor", "sc-executor-common", "sc-executor-wasmtime", - "sp-core 25.0.0", + "sp-core", "sp-externalities", - "sp-io 27.0.0", + "sp-io", "sp-tracing", "tokio", "tracing-gum", @@ -10408,7 +10280,7 @@ dependencies = [ "polkadot-node-primitives", "polkadot-primitives", "sc-network", - "sp-core 25.0.0", + "sp-core", "thiserror", "tokio", ] @@ -10471,12 +10343,12 @@ dependencies = [ "polkadot-primitives", "schnorrkel 0.9.1", "serde", - "sp-application-crypto 27.0.0", + "sp-application-crypto", "sp-consensus-babe", - "sp-core 25.0.0", - "sp-keystore 0.31.0", + "sp-core", + "sp-keystore", "sp-maybe-compressed-blob", - "sp-runtime 28.0.0", + "sp-runtime", "thiserror", "zstd 0.12.4", ] @@ -10511,7 +10383,7 @@ dependencies = [ "sc-network", "sc-transaction-pool-api", "smallvec", - "sp-api 23.0.0", + "sp-api", "sp-authority-discovery", "sp-consensus-babe", "substrate-prometheus-endpoint", @@ -10547,9 +10419,9 @@ dependencies = [ "rand 0.8.5", "sc-client-api", "schnellru", - "sp-application-crypto 27.0.0", - "sp-core 25.0.0", - "sp-keystore 0.31.0", + "sp-application-crypto", + "sp-core", + "sp-keystore", "thiserror", "tracing-gum", ] @@ -10571,8 +10443,8 @@ dependencies = [ "polkadot-node-subsystem-types", "polkadot-primitives", "sc-client-api", - "sp-api 23.0.0", - "sp-core 25.0.0", + "sp-api", + "sp-core", "tikv-jemalloc-ctl", "tracing-gum", ] @@ -10585,13 +10457,13 @@ checksum = "42265630c0c48e25d7ee5a9f4bdcafd003be65c0a44deeb6541620ca169fa519" dependencies = [ "bounded-collections", "derive_more", - "frame-support 25.0.0", + "frame-support", "parity-scale-codec", "polkadot-core-primitives", "scale-info", "serde", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "sp-std", ] @@ -10608,17 +10480,17 @@ dependencies = [ "polkadot-parachain-primitives", "scale-info", "serde", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", - "sp-arithmetic 20.0.0", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", "sp-authority-discovery", "sp-consensus-slots", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-io 27.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-staking", "sp-std", ] @@ -10644,13 +10516,13 @@ dependencies = [ "sc-rpc", "sc-sync-state-rpc", "sc-transaction-pool-api", - "sp-api 23.0.0", + "sp-api", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", + "sp-keystore", + "sp-runtime", "substrate-frame-rpc-system", "substrate-state-trie-migration-rpc", ] @@ -10662,10 +10534,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a788f8ed8b33262c33f72d78e3416c5991e40d333178ae43000a92181ee44bca" dependencies = [ "bitvec 1.0.1", - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "impl-trait-for-tuples", "libsecp256k1", "log", @@ -10691,14 +10563,14 @@ dependencies = [ "serde", "serde_derive", "slot-range-helper", - "sp-api 23.0.0", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-io 27.0.0", + "sp-api", + "sp-core", + "sp-inherents", + "sp-io", "sp-npos-elections", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", + "sp-staking", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -10713,7 +10585,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfe45b01d9d621174c9c0eef0871aeead5986393838206fe58df3ae414bcb8d2" dependencies = [ "bs58 0.5.0", - "frame-benchmarking 25.0.0", + "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", "sp-std", @@ -10729,9 +10601,9 @@ dependencies = [ "bitflags 1.3.2", "bitvec 1.0.1", "derive_more", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-benchmarking", + "frame-support", + "frame-system", "impl-trait-for-tuples", "log", "pallet-authority-discovery", @@ -10753,15 +10625,15 @@ dependencies = [ "rustc-hex", "scale-info", "serde", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-io 27.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", + "sp-staking", "sp-std", "staging-xcm", "staging-xcm-executor", @@ -10775,10 +10647,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afc65d44c4dd6a8be74194dcac66552dd4e79ee0bcc287349721925e8238177a" dependencies = [ "async-trait", - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-benchmarking-cli", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "frame-system-rpc-runtime-api", "futures", "hex-literal", @@ -10857,7 +10729,7 @@ dependencies = [ "schnellru", "serde", "serde_json", - "sp-api 23.0.0", + "sp-api", "sp-authority-discovery", "sp-block-builder", "sp-blockchain", @@ -10865,21 +10737,21 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-inherents", + "sp-io", "sp-keyring", - "sp-keystore 0.31.0", + "sp-keystore", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", - "sp-state-machine 0.32.0", + "sp-state-machine", "sp-storage", "sp-timestamp", "sp-transaction-pool", - "sp-version 26.0.0", - "sp-weights 24.0.0", + "sp-version", + "sp-weights", "substrate-prometheus-endpoint", "thiserror", "tracing-gum", @@ -10905,8 +10777,8 @@ dependencies = [ "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-keystore 0.31.0", - "sp-staking 23.0.0", + "sp-keystore", + "sp-staking", "thiserror", "tracing-gum", ] @@ -10919,7 +10791,7 @@ checksum = "22b2a11cb8871f7e30a8f5e455c92d19a186065644ee00f9acda550ff89dacce" dependencies = [ "parity-scale-codec", "polkadot-primitives", - "sp-core 25.0.0", + "sp-core", ] [[package]] @@ -11693,10 +11565,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4198843a4ec01f56b58ee26e15df123593da562a07b838c66c4e519dbfc1922d" dependencies = [ "binary-merkle-tree", - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-executive", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", @@ -11743,7 +11615,7 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", - "pallet-whitelist 24.0.0", + "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", @@ -11756,25 +11628,25 @@ dependencies = [ "serde", "serde_derive", "smallvec", - "sp-api 23.0.0", - "sp-arithmetic 20.0.0", + "sp-api", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 25.0.0", - "sp-genesis-builder 0.4.0", - "sp-inherents 23.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", + "sp-staking", "sp-std", "sp-storage", "sp-transaction-pool", - "sp-version 26.0.0", + "sp-version", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -11788,13 +11660,13 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "272eaa4f1b4b5357d89d1f8f504cb5ee81a105bf7e5c295f053c6e521f2a199b" dependencies = [ - "frame-support 25.0.0", + "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core 25.0.0", - "sp-runtime 28.0.0", - "sp-weights 24.0.0", + "sp-core", + "sp-runtime", + "sp-weights", "staging-xcm", ] @@ -11867,8 +11739,8 @@ dependencies = [ "cumulus-pallet-parachain-system", "cumulus-pallet-xcm", "ethabi", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "hex-literal", "log", "module-asset-registry", @@ -11914,9 +11786,9 @@ dependencies = [ "polkadot-primitives", "scale-info", "serde_json", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -11943,8 +11815,8 @@ dependencies = [ "cumulus-primitives-utility", "cumulus-test-relay-sproof-builder", "env_logger", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "hex", "hex-literal", "karura-runtime", @@ -12016,23 +11888,23 @@ dependencies = [ "runtime-common", "serde_json", "smallvec", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", + "sp-api", + "sp-application-crypto", "sp-block-builder", "sp-consensus-aura", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-inherents", + "sp-io", "sp-keyring", "sp-offchain", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", + "sp-staking", "sp-std", "sp-tracing", "sp-transaction-pool", - "sp-trie 26.0.0", - "sp-version 26.0.0", + "sp-trie", + "sp-version", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -12243,7 +12115,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66b4c5976a9cff7fcf24c946276a62ea7837862b6f3bf9f8011f08faf4f08474" dependencies = [ "log", - "sp-core 25.0.0", + "sp-core", "sp-wasm-interface", "thiserror", ] @@ -12267,12 +12139,12 @@ dependencies = [ "rand 0.8.5", "sc-client-api", "sc-network", - "sp-api 23.0.0", + "sp-api", "sp-authority-discovery", "sp-blockchain", - "sp-core 25.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-keystore", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", ] @@ -12292,12 +12164,12 @@ dependencies = [ "sc-proposer-metrics", "sc-telemetry", "sc-transaction-pool-api", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", "sp-consensus", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-inherents", + "sp-runtime", "substrate-prometheus-endpoint", ] @@ -12309,12 +12181,12 @@ checksum = "9d3999b9b758c09a6c1155e481b683ee87712f071cc5a0679f9ee4906a14a404" dependencies = [ "parity-scale-codec", "sc-client-api", - "sp-api 23.0.0", + "sp-api", "sp-block-builder", "sp-blockchain", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-inherents", + "sp-runtime", ] [[package]] @@ -12332,9 +12204,9 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 25.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-core", + "sp-runtime", + "sp-state-machine", ] [[package]] @@ -12379,12 +12251,12 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 25.0.0", + "sp-core", "sp-keyring", - "sp-keystore 0.31.0", + "sp-keystore", "sp-panic-handler", - "sp-runtime 28.0.0", - "sp-version 26.0.0", + "sp-runtime", + "sp-version", "thiserror", "tiny-bip39", "tokio", @@ -12404,17 +12276,17 @@ dependencies = [ "sc-executor", "sc-transaction-pool-api", "sc-utils", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", "sp-consensus", - "sp-core 25.0.0", + "sp-core", "sp-database", "sp-externalities", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-runtime", + "sp-state-machine", "sp-statement-store", "sp-storage", - "sp-trie 26.0.0", + "sp-trie", "substrate-prometheus-endpoint", ] @@ -12436,13 +12308,13 @@ dependencies = [ "sc-client-api", "sc-state-db", "schnellru", - "sp-arithmetic 20.0.0", + "sp-arithmetic", "sp-blockchain", - "sp-core 25.0.0", + "sp-core", "sp-database", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", - "sp-trie 26.0.0", + "sp-runtime", + "sp-state-machine", + "sp-trie", ] [[package]] @@ -12461,12 +12333,12 @@ dependencies = [ "sc-client-api", "sc-utils", "serde", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", "sp-consensus", - "sp-core 25.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-core", + "sp-runtime", + "sp-state-machine", "substrate-prometheus-endpoint", "thiserror", ] @@ -12486,17 +12358,17 @@ dependencies = [ "sc-consensus", "sc-consensus-slots", "sc-telemetry", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", + "sp-api", + "sp-application-crypto", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", "sp-consensus-slots", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", ] @@ -12522,17 +12394,17 @@ dependencies = [ "sc-consensus-slots", "sc-telemetry", "sc-transaction-pool-api", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", + "sp-api", + "sp-application-crypto", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe", "sp-consensus-slots", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", ] @@ -12549,14 +12421,14 @@ dependencies = [ "sc-consensus-epochs", "sc-rpc-api", "serde", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", + "sp-api", + "sp-application-crypto", "sp-blockchain", "sp-consensus", "sp-consensus-babe", - "sp-core 25.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-keystore", + "sp-runtime", "thiserror", ] @@ -12580,16 +12452,16 @@ dependencies = [ "sc-network-gossip", "sc-network-sync", "sc-utils", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", - "sp-arithmetic 20.0.0", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 25.0.0", - "sp-keystore 0.31.0", + "sp-core", + "sp-keystore", "sp-mmr-primitives", - "sp-runtime 28.0.0", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", "wasm-timer", @@ -12610,8 +12482,8 @@ dependencies = [ "sc-rpc", "serde", "sp-consensus-beefy", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "thiserror", ] @@ -12626,7 +12498,7 @@ dependencies = [ "sc-client-api", "sc-consensus", "sp-blockchain", - "sp-runtime 28.0.0", + "sp-runtime", ] [[package]] @@ -12658,15 +12530,15 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "serde_json", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", - "sp-arithmetic 20.0.0", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 25.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-keystore", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", ] @@ -12687,8 +12559,8 @@ dependencies = [ "sc-rpc", "serde", "sp-blockchain", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "thiserror", ] @@ -12713,16 +12585,16 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "serde", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", "sp-consensus", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-slots", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", "sp-timestamp", "substrate-prometheus-endpoint", "thiserror", @@ -12742,14 +12614,14 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-telemetry", - "sp-arithmetic 20.0.0", + "sp-arithmetic", "sp-blockchain", "sp-consensus", "sp-consensus-slots", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", ] [[package]] @@ -12763,14 +12635,14 @@ dependencies = [ "sc-executor-common", "sc-executor-wasmtime", "schnellru", - "sp-api 23.0.0", - "sp-core 25.0.0", + "sp-api", + "sp-core", "sp-externalities", - "sp-io 27.0.0", + "sp-io", "sp-panic-handler", - "sp-runtime-interface 21.0.0", - "sp-trie 26.0.0", - "sp-version 26.0.0", + "sp-runtime-interface", + "sp-trie", + "sp-version", "sp-wasm-interface", "tracing", ] @@ -12802,7 +12674,7 @@ dependencies = [ "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 21.0.0", + "sp-runtime-interface", "sp-wasm-interface", "wasmtime", ] @@ -12821,7 +12693,7 @@ dependencies = [ "sc-network", "sc-network-common", "sp-blockchain", - "sp-runtime 28.0.0", + "sp-runtime", ] [[package]] @@ -12833,9 +12705,9 @@ dependencies = [ "array-bytes 6.2.0", "parking_lot 0.12.1", "serde_json", - "sp-application-crypto 27.0.0", - "sp-core 25.0.0", - "sp-keystore 0.31.0", + "sp-application-crypto", + "sp-core", + "sp-keystore", "thiserror", ] @@ -12859,12 +12731,12 @@ dependencies = [ "sc-client-api", "sc-network", "sc-transaction-pool-api", - "sp-api 23.0.0", + "sp-api", "sp-consensus", - "sp-core 25.0.0", - "sp-keystore 0.31.0", + "sp-core", + "sp-keystore", "sp-mixnet", - "sp-runtime 28.0.0", + "sp-runtime", "thiserror", ] @@ -12899,10 +12771,10 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-arithmetic 20.0.0", + "sp-arithmetic", "sp-blockchain", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", "unsigned-varint", @@ -12926,7 +12798,7 @@ dependencies = [ "sc-client-api", "sc-network", "sp-blockchain", - "sp-runtime 28.0.0", + "sp-runtime", "thiserror", "unsigned-varint", ] @@ -12946,7 +12818,7 @@ dependencies = [ "sc-consensus", "sp-consensus", "sp-consensus-grandpa", - "sp-runtime 28.0.0", + "sp-runtime", ] [[package]] @@ -12963,7 +12835,7 @@ dependencies = [ "sc-network", "sc-network-common", "schnellru", - "sp-runtime 28.0.0", + "sp-runtime", "substrate-prometheus-endpoint", "tracing", ] @@ -12985,8 +12857,8 @@ dependencies = [ "sc-client-api", "sc-network", "sp-blockchain", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "thiserror", ] @@ -13015,12 +12887,12 @@ dependencies = [ "sc-utils", "schnellru", "smallvec", - "sp-arithmetic 20.0.0", + "sp-arithmetic", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", "tokio-stream", @@ -13041,7 +12913,7 @@ dependencies = [ "sc-network-common", "sc-utils", "sp-consensus", - "sp-runtime 28.0.0", + "sp-runtime", "substrate-prometheus-endpoint", ] @@ -13070,12 +12942,12 @@ dependencies = [ "sc-network-common", "sc-transaction-pool-api", "sc-utils", - "sp-api 23.0.0", - "sp-core 25.0.0", + "sp-api", + "sp-core", "sp-externalities", - "sp-keystore 0.31.0", + "sp-keystore", "sp-offchain", - "sp-runtime 28.0.0", + "sp-runtime", "threadpool", "tracing", ] @@ -13110,16 +12982,16 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "serde_json", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", - "sp-core 25.0.0", - "sp-keystore 0.31.0", + "sp-core", + "sp-keystore", "sp-offchain", "sp-rpc", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", "sp-statement-store", - "sp-version 26.0.0", + "sp-version", "tokio", ] @@ -13137,10 +13009,10 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core 25.0.0", + "sp-core", "sp-rpc", - "sp-runtime 28.0.0", - "sp-version 26.0.0", + "sp-runtime", + "sp-version", "thiserror", ] @@ -13179,11 +13051,11 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "serde", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", - "sp-core 25.0.0", - "sp-runtime 28.0.0", - "sp-version 26.0.0", + "sp-core", + "sp-runtime", + "sp-version", "thiserror", "tokio", "tokio-stream", @@ -13231,20 +13103,20 @@ dependencies = [ "sc-utils", "serde", "serde_json", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", "sp-consensus", - "sp-core 25.0.0", + "sp-core", "sp-externalities", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", + "sp-keystore", + "sp-runtime", "sp-session", - "sp-state-machine 0.32.0", + "sp-state-machine", "sp-storage", "sp-transaction-pool", "sp-transaction-storage-proof", - "sp-trie 26.0.0", - "sp-version 26.0.0", + "sp-trie", + "sp-version", "static_init", "substrate-prometheus-endpoint", "tempfile", @@ -13263,7 +13135,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.1", - "sp-core 25.0.0", + "sp-core", ] [[package]] @@ -13276,7 +13148,7 @@ dependencies = [ "fs4", "log", "sc-client-db", - "sp-core 25.0.0", + "sp-core", "thiserror", "tokio", ] @@ -13297,7 +13169,7 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-runtime 28.0.0", + "sp-runtime", "thiserror", ] @@ -13316,8 +13188,8 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-core 25.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-io", "sp-std", ] @@ -13359,11 +13231,11 @@ dependencies = [ "sc-client-api", "sc-tracing-proc-macro", "serde", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", - "sp-core 25.0.0", + "sp-core", "sp-rpc", - "sp-runtime 28.0.0", + "sp-runtime", "sp-tracing", "thiserror", "tracing", @@ -13400,10 +13272,10 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "serde", - "sp-api 23.0.0", + "sp-api", "sp-blockchain", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "sp-tracing", "sp-transaction-pool", "substrate-prometheus-endpoint", @@ -13422,8 +13294,8 @@ dependencies = [ "parity-scale-codec", "serde", "sp-blockchain", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "thiserror", ] @@ -13440,7 +13312,7 @@ dependencies = [ "log", "parking_lot 0.12.1", "prometheus", - "sp-arithmetic 20.0.0", + "sp-arithmetic", ] [[package]] @@ -13872,7 +13744,7 @@ dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -14068,37 +13940,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-api-proc-macro 12.0.0", - "sp-core 25.0.0", + "sp-api-proc-macro", + "sp-core", "sp-externalities", "sp-metadata-ir", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-runtime", + "sp-state-machine", "sp-std", - "sp-trie 26.0.0", - "sp-version 26.0.0", - "thiserror", -] - -[[package]] -name = "sp-api" -version = "24.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d3518f5454764fb2835b2a0f3b2ed23a432f5c0b7a81ff122ec68361c91de3" -dependencies = [ - "hash-db 0.16.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-api-proc-macro 13.0.0", - "sp-core 26.0.0", - "sp-externalities", - "sp-metadata-ir", - "sp-runtime 29.0.0", - "sp-state-machine 0.33.0", - "sp-std", - "sp-trie 27.0.0", - "sp-version 27.0.0", + "sp-trie", + "sp-version", "thiserror", ] @@ -14117,21 +13967,6 @@ dependencies = [ "syn 2.0.39", ] -[[package]] -name = "sp-api-proc-macro" -version = "13.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66f4030c3fe4a7dfb720d9007c32be4c18a4431b934ded41138056d627937894" -dependencies = [ - "Inflector", - "blake2 0.10.6", - "expander 2.0.0", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.39", -] - [[package]] name = "sp-application-crypto" version = "27.0.0" @@ -14141,22 +13976,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-std", -] - -[[package]] -name = "sp-application-crypto" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23030de8eae0272c705cf3e2ce0523a64708a6b53aa23f3cf9053ca63abd08d7" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 26.0.0", - "sp-io 28.0.0", + "sp-core", + "sp-io", "sp-std", ] @@ -14175,21 +13996,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "sp-arithmetic" -version = "21.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9cf6e5c0c7c2e7be3a4a10af5316d2d40182915509a70f632a66c238a05c37b" -dependencies = [ - "integer-sqrt", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-std", - "static_assertions", -] - [[package]] name = "sp-authority-discovery" version = "23.0.0" @@ -14198,9 +14004,9 @@ checksum = "e204d85bad6f02a5ae8fbba83c365e20459e979fd69db5575ba4b3ea1025ab3c" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", - "sp-runtime 28.0.0", + "sp-api", + "sp-application-crypto", + "sp-runtime", "sp-std", ] @@ -14210,9 +14016,9 @@ version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6cd16df3d1cdad862d3e764f10f7675876b011e032907423fdfa377ae2ec8575" dependencies = [ - "sp-api 23.0.0", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", + "sp-api", + "sp-inherents", + "sp-runtime", "sp-std", ] @@ -14227,11 +14033,11 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "schnellru", - "sp-api 23.0.0", + "sp-api", "sp-consensus", "sp-database", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-runtime", + "sp-state-machine", "thiserror", ] @@ -14244,10 +14050,10 @@ dependencies = [ "async-trait", "futures", "log", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", "thiserror", ] @@ -14260,11 +14066,11 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", + "sp-api", + "sp-application-crypto", "sp-consensus-slots", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", + "sp-inherents", + "sp-runtime", "sp-std", "sp-timestamp", ] @@ -14279,12 +14085,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", + "sp-api", + "sp-application-crypto", "sp-consensus-slots", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-inherents", + "sp-runtime", "sp-std", "sp-timestamp", ] @@ -14299,12 +14105,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-io", "sp-mmr-primitives", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", "strum 0.24.1", ] @@ -14320,11 +14126,11 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", - "sp-core 25.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "sp-runtime", "sp-std", ] @@ -14376,7 +14182,7 @@ dependencies = [ "sp-core-hashing", "sp-debug-derive", "sp-externalities", - "sp-runtime-interface 21.0.0", + "sp-runtime-interface", "sp-std", "sp-storage", "ss58-registry", @@ -14388,54 +14194,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "sp-core" -version = "26.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0db34a19be2efa0398a9506a365392d93a85220856d55e0eb78165ad2e1bedc" -dependencies = [ - "array-bytes 6.2.0", - "bip39", - "bitflags 1.3.2", - "blake2 0.10.6", - "bounded-collections", - "bs58 0.5.0", - "dyn-clonable", - "ed25519-zebra 3.1.0", - "futures", - "hash-db 0.16.0", - "hash256-std-hasher", - "impl-serde", - "itertools 0.10.5", - "lazy_static", - "libsecp256k1", - "log", - "merlin 2.0.1", - "parity-scale-codec", - "parking_lot 0.12.1", - "paste", - "primitive-types", - "rand 0.8.5", - "regex", - "scale-info", - "schnorrkel 0.9.1", - "secp256k1", - "secrecy", - "serde", - "sp-core-hashing", - "sp-debug-derive", - "sp-externalities", - "sp-runtime-interface 22.0.0", - "sp-std", - "sp-storage", - "ss58-registry", - "substrate-bip39", - "thiserror", - "tracing", - "w3f-bls", - "zeroize", -] - [[package]] name = "sp-core-hashing" version = "13.0.0" @@ -14501,20 +14259,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0cb71d40ad47e40bdcce5ae5531c7d7ba579cd495a0e0413642fb063fa66f84" dependencies = [ "serde_json", - "sp-api 23.0.0", - "sp-runtime 28.0.0", - "sp-std", -] - -[[package]] -name = "sp-genesis-builder" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65de7e1d4de8ac2645913ed7202c71ba5783e39286f2be40f0c45a8e472ad9fd" -dependencies = [ - "serde_json", - "sp-api 24.0.0", - "sp-runtime 29.0.0", + "sp-api", + "sp-runtime", "sp-std", ] @@ -14528,22 +14274,7 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 28.0.0", - "sp-std", - "thiserror", -] - -[[package]] -name = "sp-inherents" -version = "24.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c681a65a707014d505bf675e452c28b02eb55d9499f2407b85feef651fce0c2e" -dependencies = [ - "async-trait", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "sp-runtime 29.0.0", + "sp-runtime", "sp-std", "thiserror", ] @@ -14561,39 +14292,14 @@ dependencies = [ "parity-scale-codec", "rustversion", "secp256k1", - "sp-core 25.0.0", + "sp-core", "sp-externalities", - "sp-keystore 0.31.0", - "sp-runtime-interface 21.0.0", - "sp-state-machine 0.32.0", + "sp-keystore", + "sp-runtime-interface", + "sp-state-machine", "sp-std", "sp-tracing", - "sp-trie 26.0.0", - "tracing", - "tracing-core", -] - -[[package]] -name = "sp-io" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301c0ce94f80b324465a6f6173183aa07b26bd71d67f94a44de1fd11dea4a7cb" -dependencies = [ - "bytes", - "ed25519-dalek", - "libsecp256k1", - "log", - "parity-scale-codec", - "rustversion", - "secp256k1", - "sp-core 26.0.0", - "sp-externalities", - "sp-keystore 0.32.0", - "sp-runtime-interface 22.0.0", - "sp-state-machine 0.33.0", - "sp-std", - "sp-tracing", - "sp-trie 27.0.0", + "sp-trie", "tracing", "tracing-core", ] @@ -14605,8 +14311,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "655ec0b35cb9cb9029fb323aa676b07d58deb872cecc7566e50278409a00ee95" dependencies = [ "lazy_static", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", "strum 0.24.1", ] @@ -14618,20 +14324,7 @@ checksum = "8b8ec5ebbba70bee83d79c3fe5e49f12df0a4bb6029858ddf9a15eea7539a592" dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", - "sp-core 25.0.0", - "sp-externalities", - "thiserror", -] - -[[package]] -name = "sp-keystore" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db18ab01b2684856904c973d2be7dbf9ab3607cf706a7bd6648812662e5e7c5" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.1", - "sp-core 26.0.0", + "sp-core", "sp-externalities", "thiserror", ] @@ -14666,8 +14359,8 @@ checksum = "bdf61f28ca97aab6c21a3c6e0ed496e60d505e5de1f43fd4ba748c9afaa4fc85" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", + "sp-api", + "sp-application-crypto", "sp-std", ] @@ -14682,10 +14375,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 23.0.0", - "sp-core 25.0.0", + "sp-api", + "sp-core", "sp-debug-derive", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", "thiserror", ] @@ -14699,9 +14392,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-arithmetic", + "sp-core", + "sp-runtime", "sp-std", ] @@ -14711,9 +14404,9 @@ version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9310227f043ed99877b0449a683025a7461431a00995dcd6ef423a273d0fd85d" dependencies = [ - "sp-api 23.0.0", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-api", + "sp-core", + "sp-runtime", ] [[package]] @@ -14735,7 +14428,7 @@ checksum = "51867fea921f54bbaa2bf505f373559b5f3b80e8d7f38ecb9677f0d3795a3e6a" dependencies = [ "rustc-hash", "serde", - "sp-core 25.0.0", + "sp-core", ] [[package]] @@ -14753,35 +14446,12 @@ dependencies = [ "rand 0.8.5", "scale-info", "serde", - "sp-application-crypto 27.0.0", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-io", "sp-std", - "sp-weights 24.0.0", -] - -[[package]] -name = "sp-runtime" -version = "29.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "082bae4a164b8b629ce9cee79ff3c6b20e66d11d8ef37398796567d616325da4" -dependencies = [ - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "paste", - "rand 0.8.5", - "scale-info", - "serde", - "sp-application-crypto 28.0.0", - "sp-arithmetic 21.0.0", - "sp-core 26.0.0", - "sp-io 28.0.0", - "sp-std", - "sp-weights 25.0.0", + "sp-weights", ] [[package]] @@ -14803,25 +14473,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "sp-runtime-interface" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "695bba5d981a6fd3131b098d65f620601bd822501612bfb65897d4bb660762b1" -dependencies = [ - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec", - "primitive-types", - "sp-externalities", - "sp-runtime-interface-proc-macro", - "sp-std", - "sp-storage", - "sp-tracing", - "sp-wasm-interface", - "static_assertions", -] - [[package]] name = "sp-runtime-interface-proc-macro" version = "15.0.0" @@ -14843,11 +14494,11 @@ checksum = "248dd8f49aa96b56bf0a7d513691ddb4194f9359fdb93e94397eabdef1036085" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 23.0.0", - "sp-core 25.0.0", - "sp-keystore 0.31.0", - "sp-runtime 28.0.0", - "sp-staking 23.0.0", + "sp-api", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-staking", "sp-std", ] @@ -14861,23 +14512,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 25.0.0", - "sp-runtime 28.0.0", - "sp-std", -] - -[[package]] -name = "sp-staking" -version = "24.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae2d1164378d66b4b9f672d0c920104c59aeba02655522c0fd511c71c2daf614" -dependencies = [ - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 26.0.0", - "sp-runtime 29.0.0", + "sp-core", + "sp-runtime", "sp-std", ] @@ -14893,33 +14529,11 @@ dependencies = [ "parking_lot 0.12.1", "rand 0.8.5", "smallvec", - "sp-core 25.0.0", + "sp-core", "sp-externalities", "sp-panic-handler", "sp-std", - "sp-trie 26.0.0", - "thiserror", - "tracing", - "trie-db", -] - -[[package]] -name = "sp-state-machine" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df7c6680d9342c22c10d8272ebf9f0339b0e439b3e67b68f5627f9dfc6926a07" -dependencies = [ - "hash-db 0.16.0", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", - "smallvec", - "sp-core 26.0.0", - "sp-externalities", - "sp-panic-handler", - "sp-std", - "sp-trie 27.0.0", + "sp-trie", "thiserror", "tracing", "trie-db", @@ -14939,12 +14553,12 @@ dependencies = [ "rand 0.8.5", "scale-info", "sha2 0.10.8", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", - "sp-core 25.0.0", + "sp-api", + "sp-application-crypto", + "sp-core", "sp-externalities", - "sp-runtime 28.0.0", - "sp-runtime-interface 21.0.0", + "sp-runtime", + "sp-runtime-interface", "sp-std", "thiserror", "x25519-dalek 2.0.0", @@ -14978,8 +14592,8 @@ checksum = "004a7f453240db80b2967c0e1c6411836efc7daa7afae98fd16202caa51460e0" dependencies = [ "async-trait", "parity-scale-codec", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", + "sp-inherents", + "sp-runtime", "sp-std", "thiserror", ] @@ -15003,8 +14617,8 @@ version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7cd2afe89c474339d15d06e73639171ebe4d280be6904d9349072103da21427" dependencies = [ - "sp-api 23.0.0", - "sp-runtime 28.0.0", + "sp-api", + "sp-runtime", ] [[package]] @@ -15016,11 +14630,11 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 25.0.0", - "sp-inherents 23.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-inherents", + "sp-runtime", "sp-std", - "sp-trie 26.0.0", + "sp-trie", ] [[package]] @@ -15040,32 +14654,7 @@ dependencies = [ "rand 0.8.5", "scale-info", "schnellru", - "sp-core 25.0.0", - "sp-std", - "thiserror", - "tracing", - "trie-db", - "trie-root", -] - -[[package]] -name = "sp-trie" -version = "27.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c4bf89a5bd74f696cd1f23d83bb6abe6bd0abad1f3c70d4b0d7ebec4098cfe" -dependencies = [ - "ahash 0.8.6", - "hash-db 0.16.0", - "hashbrown 0.13.2", - "lazy_static", - "memory-db", - "nohash-hasher", - "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", - "scale-info", - "schnellru", - "sp-core 26.0.0", + "sp-core", "sp-std", "thiserror", "tracing", @@ -15085,25 +14674,7 @@ dependencies = [ "scale-info", "serde", "sp-core-hashing-proc-macro", - "sp-runtime 28.0.0", - "sp-std", - "sp-version-proc-macro", - "thiserror", -] - -[[package]] -name = "sp-version" -version = "27.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "603c3c40bf19dd3004b350e4fcc2a460f833e73dd514406c2361bfdd9795d019" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "parity-wasm 0.45.0", - "scale-info", - "serde", - "sp-core-hashing-proc-macro", - "sp-runtime 29.0.0", + "sp-runtime", "sp-std", "sp-version-proc-macro", "thiserror", @@ -15145,24 +14716,8 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", - "sp-debug-derive", - "sp-std", -] - -[[package]] -name = "sp-weights" -version = "25.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1689f9594c2c4d09ede3d8a991a9eb900654e424fb00b62f2b370170af347acd" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 21.0.0", - "sp-core 26.0.0", + "sp-arithmetic", + "sp-core", "sp-debug-derive", "sp-std", ] @@ -15238,11 +14793,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a1bcf863664ca5708d92894fc30d2c6606c7dbb7d7cfcf43b9ae69d5b83f4fb" dependencies = [ "cumulus-primitives-core", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-runtime 28.0.0", + "sp-runtime", "sp-std", ] @@ -15260,7 +14815,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-weights 24.0.0", + "sp-weights", "xcm-procedural", ] @@ -15270,19 +14825,19 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa3b14246daaf0301dd35d698bac570d82ba0c6c6c1d3e149b93bcf377b2fc6b" dependencies = [ - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "impl-trait-for-tuples", "log", "pallet-transaction-payment", "parity-scale-codec", "polkadot-parachain-primitives", "scale-info", - "sp-arithmetic 20.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-arithmetic", + "sp-io", + "sp-runtime", "sp-std", - "sp-weights 24.0.0", + "sp-weights", "staging-xcm", "staging-xcm-executor", ] @@ -15294,17 +14849,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a85a421053f810f3ed988ba3cc39d926c95f70f1ae73282aa8cd5c50072173b" dependencies = [ "environmental", - "frame-benchmarking 25.0.0", - "frame-support 25.0.0", + "frame-benchmarking", + "frame-support", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-arithmetic 20.0.0", - "sp-core 25.0.0", - "sp-io 27.0.0", - "sp-runtime 28.0.0", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", - "sp-weights 24.0.0", + "sp-weights", "staging-xcm", ] @@ -15456,11 +15011,11 @@ dependencies = [ "parity-scale-codec", "sc-rpc-api", "sc-transaction-pool-api", - "sp-api 23.0.0", + "sp-api", "sp-block-builder", "sp-blockchain", - "sp-core 25.0.0", - "sp-runtime 28.0.0", + "sp-core", + "sp-runtime", ] [[package]] @@ -15487,7 +15042,7 @@ dependencies = [ "log", "sc-rpc-api", "serde", - "sp-runtime 28.0.0", + "sp-runtime", ] [[package]] @@ -15501,10 +15056,10 @@ dependencies = [ "sc-client-api", "sc-rpc-api", "serde", - "sp-core 25.0.0", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", - "sp-trie 26.0.0", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-trie", "trie-db", ] @@ -16206,22 +15761,22 @@ dependencies = [ "sc-executor", "serde", "serde_json", - "sp-api 23.0.0", + "sp-api", "sp-consensus-aura", "sp-consensus-babe", - "sp-core 25.0.0", + "sp-core", "sp-debug-derive", "sp-externalities", - "sp-inherents 23.0.0", - "sp-io 27.0.0", - "sp-keystore 0.31.0", + "sp-inherents", + "sp-io", + "sp-keystore", "sp-rpc", - "sp-runtime 28.0.0", - "sp-state-machine 0.32.0", + "sp-runtime", + "sp-state-machine", "sp-timestamp", "sp-transaction-storage-proof", - "sp-version 26.0.0", - "sp-weights 24.0.0", + "sp-version", + "sp-weights", "substrate-rpc-client", "zstd 0.12.4", ] @@ -16493,7 +16048,7 @@ dependencies = [ "build-helper", "cargo_metadata 0.17.0", "filetime", - "frame-support 25.0.0", + "frame-support", "linregress", "parity-scale-codec", "parity-wasm 0.45.0", @@ -16505,12 +16060,12 @@ dependencies = [ "sc-executor-common", "serde", "serde_json", - "sp-core 25.0.0", + "sp-core", "sp-externalities", - "sp-io 27.0.0", + "sp-io", "sp-maybe-compressed-blob", - "sp-runtime-interface 21.0.0", - "sp-state-machine 0.32.0", + "sp-runtime-interface", + "sp-state-machine", "sp-std", "sp-storage", "strum 0.25.0", @@ -17180,11 +16735,11 @@ checksum = "e833bb935995cb8da9848b974f37801c66163502929ecf22ca15878b8e8edbb7" dependencies = [ "binary-merkle-tree", "bitvec 1.0.1", - "frame-benchmarking 25.0.0", + "frame-benchmarking", "frame-election-provider-support", "frame-executive", - "frame-support 25.0.0", - "frame-system 25.0.0", + "frame-support", + "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", @@ -17237,7 +16792,7 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", - "pallet-whitelist 24.0.0", + "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", @@ -17250,27 +16805,27 @@ dependencies = [ "serde", "serde_derive", "smallvec", - "sp-api 23.0.0", - "sp-application-crypto 27.0.0", - "sp-arithmetic 20.0.0", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 25.0.0", - "sp-genesis-builder 0.4.0", - "sp-inherents 23.0.0", - "sp-io 27.0.0", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", - "sp-runtime 28.0.0", + "sp-runtime", "sp-session", - "sp-staking 23.0.0", + "sp-staking", "sp-std", "sp-storage", "sp-transaction-pool", - "sp-version 26.0.0", + "sp-version", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -17284,13 +16839,13 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "682c32c5f5e6d51c431bf66c33fc502c66e7b25488c0bd92f5ee020c329f2beb" dependencies = [ - "frame-support 25.0.0", + "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core 25.0.0", - "sp-runtime 28.0.0", - "sp-weights 24.0.0", + "sp-core", + "sp-runtime", + "sp-weights", "staging-xcm", ] @@ -17610,13 +17165,13 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7720e785aa713117631634ca784101631f37dc551860f0b95f4a82979ae49ec" dependencies = [ - "frame-support 25.0.0", + "frame-support", "parity-scale-codec", "paste", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-runtime-parachains", - "sp-io 27.0.0", + "sp-io", "sp-std", "staging-xcm", "staging-xcm-builder", diff --git a/Cargo.toml b/Cargo.toml index 479a18d037..e52d8dde5c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -280,7 +280,7 @@ pallet-vesting = { version = "25.0.0", default-features = false } pallet-xcm = { version = "4.0.0", default-features = false } pallet-conviction-voting = { version = "25.0.0", default-features = false } pallet-referenda = { version = "25.0.0", default-features = false } -pallet-whitelist = { version = "25.0.0", default-features = false } +pallet-whitelist = { version = "24.0.0", default-features = false } parachain-info = { package = "staging-parachain-info", version = "0.4.0", default-features = false } polkadot-core-primitives = { version = "4.0.0", default-features = false } polkadot-parachain-primitives = { version = "3.0.0", default-features = false } diff --git a/runtime/acala/src/lib.rs b/runtime/acala/src/lib.rs index bb97e1666c..2dd46e345b 100644 --- a/runtime/acala/src/lib.rs +++ b/runtime/acala/src/lib.rs @@ -68,7 +68,7 @@ use frame_support::{ traits::{ fungible::HoldConsideration, tokens::{PayFromAccount, UnityAssetBalanceConversion}, - ConstBool, ConstU128, ConstU32, Contains, ContainsLengthBound, Currency as PalletCurrency, Currency, + ConstBool, ConstU128, ConstU16, ConstU32, Contains, ContainsLengthBound, Currency as PalletCurrency, Currency, EnsureOrigin, EqualPrivilegeOnly, Get, Imbalance, InstanceFilter, LinearStoragePrice, LockIdentifier, OnUnbalanced, SortedMembers, }, diff --git a/runtime/karura/src/lib.rs b/runtime/karura/src/lib.rs index 001edd85bf..3ea4d79591 100644 --- a/runtime/karura/src/lib.rs +++ b/runtime/karura/src/lib.rs @@ -75,7 +75,7 @@ use frame_support::{ traits::{ fungible::HoldConsideration, tokens::{PayFromAccount, UnityAssetBalanceConversion}, - ConstBool, ConstU128, ConstU32, Contains, ContainsLengthBound, Currency as PalletCurrency, Currency, + ConstBool, ConstU128, ConstU16, ConstU32, Contains, ContainsLengthBound, Currency as PalletCurrency, Currency, EnsureOrigin, EqualPrivilegeOnly, Get, Imbalance, InstanceFilter, LinearStoragePrice, LockIdentifier, OnRuntimeUpgrade, OnUnbalanced, SortedMembers, }, diff --git a/runtime/mandala/src/lib.rs b/runtime/mandala/src/lib.rs index 7f5efc4cf3..737a3ff95d 100644 --- a/runtime/mandala/src/lib.rs +++ b/runtime/mandala/src/lib.rs @@ -38,9 +38,9 @@ use frame_support::{ traits::{ fungible::HoldConsideration, tokens::{PayFromAccount, UnityAssetBalanceConversion}, - ConstBool, ConstU128, ConstU32, Contains, ContainsLengthBound, Currency as PalletCurrency, EnsureOrigin, - EqualPrivilegeOnly, Get, Imbalance, InstanceFilter, LinearStoragePrice, LockIdentifier, OnUnbalanced, - SortedMembers, + ConstBool, ConstU128, ConstU16, ConstU32, Contains, ContainsLengthBound, Currency as PalletCurrency, + EnsureOrigin, EqualPrivilegeOnly, Get, Imbalance, InstanceFilter, LinearStoragePrice, LockIdentifier, + OnUnbalanced, SortedMembers, }, weights::{constants::RocksDbWeight, ConstantMultiplier, Weight}, PalletId, From 3a1b05f93579a51a3ad78f75b1ced158f9ccd511 Mon Sep 17 00:00:00 2001 From: wangjj9219 <183318287@qq.com> Date: Sun, 26 Nov 2023 00:52:50 +0800 Subject: [PATCH 3/4] fix clippy --- runtime/acala/src/governance/referenda.rs | 2 +- runtime/acala/src/governance/tracks.rs | 20 ++++++++++---------- runtime/karura/src/governance/referenda.rs | 2 +- runtime/karura/src/governance/tracks.rs | 20 ++++++++++---------- runtime/mandala/src/governance/referenda.rs | 2 +- runtime/mandala/src/governance/tracks.rs | 20 ++++++++++---------- 6 files changed, 33 insertions(+), 33 deletions(-) diff --git a/runtime/acala/src/governance/referenda.rs b/runtime/acala/src/governance/referenda.rs index cd46634046..b223a17e78 100644 --- a/runtime/acala/src/governance/referenda.rs +++ b/runtime/acala/src/governance/referenda.rs @@ -28,7 +28,7 @@ use frame_system::EnsureRootWithSuccess; use sp_runtime::traits::Replace; parameter_types! { - pub const VoteLockingPeriod: BlockNumber = 1 * DAYS; + pub const VoteLockingPeriod: BlockNumber = DAYS; } impl pallet_conviction_voting::Config for Runtime { diff --git a/runtime/acala/src/governance/tracks.rs b/runtime/acala/src/governance/tracks.rs index ef053401e9..40d0afa5c6 100644 --- a/runtime/acala/src/governance/tracks.rs +++ b/runtime/acala/src/governance/tracks.rs @@ -42,13 +42,13 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo // Amount that must be placed on deposit before a decision can be made. decision_deposit: 20 * 1000 * dollar(ACA), // Amount of time this must be submitted for before a decision can be made. - prepare_period: 1 * DAYS, + prepare_period: DAYS, // Amount of time that a decision may take to be approved prior to cancellation. decision_period: 14 * DAYS, // Amount of time that the approval criteria must hold before it can be approved. - confirm_period: 1 * DAYS, + confirm_period: DAYS, // Minimum amount of time that an approved proposal must be in the dispatch queue. - min_enactment_period: 1 * DAYS, + min_enactment_period: DAYS, // Minimum aye votes as percentage of overall conviction-weighted votes needed for // approval as a function of time into decision period. min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), @@ -77,10 +77,10 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo name: "general_admin", max_deciding: 10, decision_deposit: 1000 * dollar(ACA), - prepare_period: 1 * HOURS, + prepare_period: HOURS, decision_period: 14 * DAYS, - confirm_period: 1 * DAYS, - min_enactment_period: 1 * DAYS, + confirm_period: DAYS, + min_enactment_period: DAYS, min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), min_support: Curve::make_reciprocal(7, 14, percent(10), percent(0), percent(50)), }, @@ -91,7 +91,7 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo name: "referendum_canceller", max_deciding: 20, decision_deposit: 2 * 1000 * dollar(ACA), - prepare_period: 1 * HOURS, + prepare_period: HOURS, decision_period: 14 * DAYS, confirm_period: 3 * HOURS, min_enactment_period: 10 * MINUTES, @@ -105,7 +105,7 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo name: "referendum_killer", max_deciding: 100, decision_deposit: 4 * 1000 * dollar(ACA), - prepare_period: 1 * HOURS, + prepare_period: HOURS, decision_period: 14 * DAYS, confirm_period: 3 * HOURS, min_enactment_period: 10 * MINUTES, @@ -127,7 +127,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { if let Ok(system_origin) = frame_system::RawOrigin::try_from(id.clone()) { match system_origin { frame_system::RawOrigin::Root => { - if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| track.name == "root") { + if let Some((track_id, _)) = Self::tracks().iter().find(|(_, track)| track.name == "root") { Ok(*track_id) } else { Err(()) @@ -136,7 +136,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { _ => Err(()), } } else if let Ok(custom_origin) = custom_origins::Origin::try_from(id.clone()) { - if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| { + if let Some((track_id, _)) = Self::tracks().iter().find(|(_, track)| { if let Ok(track_custom_origin) = custom_origins::Origin::from_str(track.name) { track_custom_origin == custom_origin } else { diff --git a/runtime/karura/src/governance/referenda.rs b/runtime/karura/src/governance/referenda.rs index c28801b43b..db7cca2398 100644 --- a/runtime/karura/src/governance/referenda.rs +++ b/runtime/karura/src/governance/referenda.rs @@ -28,7 +28,7 @@ use frame_system::EnsureRootWithSuccess; use sp_runtime::traits::Replace; parameter_types! { - pub const VoteLockingPeriod: BlockNumber = 1 * DAYS; + pub const VoteLockingPeriod: BlockNumber = DAYS; } impl pallet_conviction_voting::Config for Runtime { diff --git a/runtime/karura/src/governance/tracks.rs b/runtime/karura/src/governance/tracks.rs index df9807e8eb..afb3f12999 100644 --- a/runtime/karura/src/governance/tracks.rs +++ b/runtime/karura/src/governance/tracks.rs @@ -42,13 +42,13 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo // Amount that must be placed on deposit before a decision can be made. decision_deposit: 20 * 1000 * dollar(KAR), // Amount of time this must be submitted for before a decision can be made. - prepare_period: 1 * DAYS, + prepare_period: DAYS, // Amount of time that a decision may take to be approved prior to cancellation. decision_period: 14 * DAYS, // Amount of time that the approval criteria must hold before it can be approved. - confirm_period: 1 * DAYS, + confirm_period: DAYS, // Minimum amount of time that an approved proposal must be in the dispatch queue. - min_enactment_period: 1 * DAYS, + min_enactment_period: DAYS, // Minimum aye votes as percentage of overall conviction-weighted votes needed for // approval as a function of time into decision period. min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), @@ -77,10 +77,10 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo name: "general_admin", max_deciding: 10, decision_deposit: 1000 * dollar(KAR), - prepare_period: 1 * HOURS, + prepare_period: HOURS, decision_period: 14 * DAYS, - confirm_period: 1 * DAYS, - min_enactment_period: 1 * DAYS, + confirm_period: DAYS, + min_enactment_period: DAYS, min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), min_support: Curve::make_reciprocal(7, 14, percent(10), percent(0), percent(50)), }, @@ -91,7 +91,7 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo name: "referendum_canceller", max_deciding: 20, decision_deposit: 2 * 1000 * dollar(KAR), - prepare_period: 1 * HOURS, + prepare_period: HOURS, decision_period: 14 * DAYS, confirm_period: 3 * HOURS, min_enactment_period: 10 * MINUTES, @@ -105,7 +105,7 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo name: "referendum_killer", max_deciding: 100, decision_deposit: 4 * 1000 * dollar(KAR), - prepare_period: 1 * HOURS, + prepare_period: HOURS, decision_period: 14 * DAYS, confirm_period: 3 * HOURS, min_enactment_period: 10 * MINUTES, @@ -127,7 +127,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { if let Ok(system_origin) = frame_system::RawOrigin::try_from(id.clone()) { match system_origin { frame_system::RawOrigin::Root => { - if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| track.name == "root") { + if let Some((track_id, _)) = Self::tracks().iter().find(|(_, track)| track.name == "root") { Ok(*track_id) } else { Err(()) @@ -136,7 +136,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { _ => Err(()), } } else if let Ok(custom_origin) = custom_origins::Origin::try_from(id.clone()) { - if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| { + if let Some((track_id, _)) = Self::tracks().iter().find(|(_, track)| { if let Ok(track_custom_origin) = custom_origins::Origin::from_str(track.name) { track_custom_origin == custom_origin } else { diff --git a/runtime/mandala/src/governance/referenda.rs b/runtime/mandala/src/governance/referenda.rs index cd46634046..b223a17e78 100644 --- a/runtime/mandala/src/governance/referenda.rs +++ b/runtime/mandala/src/governance/referenda.rs @@ -28,7 +28,7 @@ use frame_system::EnsureRootWithSuccess; use sp_runtime::traits::Replace; parameter_types! { - pub const VoteLockingPeriod: BlockNumber = 1 * DAYS; + pub const VoteLockingPeriod: BlockNumber = DAYS; } impl pallet_conviction_voting::Config for Runtime { diff --git a/runtime/mandala/src/governance/tracks.rs b/runtime/mandala/src/governance/tracks.rs index ef053401e9..40d0afa5c6 100644 --- a/runtime/mandala/src/governance/tracks.rs +++ b/runtime/mandala/src/governance/tracks.rs @@ -42,13 +42,13 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo // Amount that must be placed on deposit before a decision can be made. decision_deposit: 20 * 1000 * dollar(ACA), // Amount of time this must be submitted for before a decision can be made. - prepare_period: 1 * DAYS, + prepare_period: DAYS, // Amount of time that a decision may take to be approved prior to cancellation. decision_period: 14 * DAYS, // Amount of time that the approval criteria must hold before it can be approved. - confirm_period: 1 * DAYS, + confirm_period: DAYS, // Minimum amount of time that an approved proposal must be in the dispatch queue. - min_enactment_period: 1 * DAYS, + min_enactment_period: DAYS, // Minimum aye votes as percentage of overall conviction-weighted votes needed for // approval as a function of time into decision period. min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), @@ -77,10 +77,10 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo name: "general_admin", max_deciding: 10, decision_deposit: 1000 * dollar(ACA), - prepare_period: 1 * HOURS, + prepare_period: HOURS, decision_period: 14 * DAYS, - confirm_period: 1 * DAYS, - min_enactment_period: 1 * DAYS, + confirm_period: DAYS, + min_enactment_period: DAYS, min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), min_support: Curve::make_reciprocal(7, 14, percent(10), percent(0), percent(50)), }, @@ -91,7 +91,7 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo name: "referendum_canceller", max_deciding: 20, decision_deposit: 2 * 1000 * dollar(ACA), - prepare_period: 1 * HOURS, + prepare_period: HOURS, decision_period: 14 * DAYS, confirm_period: 3 * HOURS, min_enactment_period: 10 * MINUTES, @@ -105,7 +105,7 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo name: "referendum_killer", max_deciding: 100, decision_deposit: 4 * 1000 * dollar(ACA), - prepare_period: 1 * HOURS, + prepare_period: HOURS, decision_period: 14 * DAYS, confirm_period: 3 * HOURS, min_enactment_period: 10 * MINUTES, @@ -127,7 +127,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { if let Ok(system_origin) = frame_system::RawOrigin::try_from(id.clone()) { match system_origin { frame_system::RawOrigin::Root => { - if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| track.name == "root") { + if let Some((track_id, _)) = Self::tracks().iter().find(|(_, track)| track.name == "root") { Ok(*track_id) } else { Err(()) @@ -136,7 +136,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { _ => Err(()), } } else if let Ok(custom_origin) = custom_origins::Origin::try_from(id.clone()) { - if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| { + if let Some((track_id, _)) = Self::tracks().iter().find(|(_, track)| { if let Ok(track_custom_origin) = custom_origins::Origin::from_str(track.name) { track_custom_origin == custom_origin } else { From 3679d07842675bd15736853d1569a3b60e212b8d Mon Sep 17 00:00:00 2001 From: Bryan Chen Date: Fri, 15 Dec 2023 13:07:30 +1300 Subject: [PATCH 4/4] adjust track config --- runtime/acala/src/governance/tracks.rs | 34 ++++++++++----------- runtime/karura/src/governance/tracks.rs | 40 ++++++++++++------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/runtime/acala/src/governance/tracks.rs b/runtime/acala/src/governance/tracks.rs index 40d0afa5c6..48803ee8f9 100644 --- a/runtime/acala/src/governance/tracks.rs +++ b/runtime/acala/src/governance/tracks.rs @@ -38,11 +38,11 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo name: "root", // A limit for the number of referenda on this track that can be being decided at once. // For Root origin this should generally be just one. - max_deciding: 5, + max_deciding: 1, // Amount that must be placed on deposit before a decision can be made. - decision_deposit: 20 * 1000 * dollar(ACA), + decision_deposit: 20_000 * dollar(ACA), // Amount of time this must be submitted for before a decision can be made. - prepare_period: DAYS, + prepare_period: 2 * HOURS, // Amount of time that a decision may take to be approved prior to cancellation. decision_period: 14 * DAYS, // Amount of time that the approval criteria must hold before it can be approved. @@ -54,21 +54,21 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), // Minimum pre-conviction aye-votes ("support") as percentage of overall population that // is needed for approval as a function of time into decision period. - min_support: Curve::make_linear(14, 14, permill(5), percent(25)), + min_support: Curve::make_linear(14, 14, permill(1), percent(40)), }, ), ( 1, pallet_referenda::TrackInfo { name: "whitelisted_caller", - max_deciding: 100, - decision_deposit: 2 * 1000 * dollar(ACA), + max_deciding: 5, + decision_deposit: 5_000 * dollar(ACA), prepare_period: 10 * MINUTES, - decision_period: 14 * DAYS, + decision_period: 10 * DAYS, confirm_period: 10 * MINUTES, min_enactment_period: 30 * MINUTES, - min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), - min_support: Curve::make_reciprocal(1, 14 * 24, percent(1), percent(0), percent(2)), + min_approval: Curve::make_reciprocal(1, 10, percent(90), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 10, percent(1), percent(0), percent(5)), }, ), ( @@ -78,7 +78,7 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo max_deciding: 10, decision_deposit: 1000 * dollar(ACA), prepare_period: HOURS, - decision_period: 14 * DAYS, + decision_period: 10 * DAYS, confirm_period: DAYS, min_enactment_period: DAYS, min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), @@ -92,25 +92,25 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo max_deciding: 20, decision_deposit: 2 * 1000 * dollar(ACA), prepare_period: HOURS, - decision_period: 14 * DAYS, + decision_period: 10 * DAYS, confirm_period: 3 * HOURS, min_enactment_period: 10 * MINUTES, - min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), - min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + min_approval: Curve::make_reciprocal(1, 10, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 10, percent(1), percent(0), percent(10)), }, ), ( 4, pallet_referenda::TrackInfo { name: "referendum_killer", - max_deciding: 100, + max_deciding: 20, decision_deposit: 4 * 1000 * dollar(ACA), prepare_period: HOURS, - decision_period: 14 * DAYS, + decision_period: 10 * DAYS, confirm_period: 3 * HOURS, min_enactment_period: 10 * MINUTES, - min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), - min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + min_approval: Curve::make_reciprocal(1, 10, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 10, percent(1), percent(0), percent(10)), }, ), ]; diff --git a/runtime/karura/src/governance/tracks.rs b/runtime/karura/src/governance/tracks.rs index afb3f12999..47d55f9de5 100644 --- a/runtime/karura/src/governance/tracks.rs +++ b/runtime/karura/src/governance/tracks.rs @@ -38,37 +38,37 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo name: "root", // A limit for the number of referenda on this track that can be being decided at once. // For Root origin this should generally be just one. - max_deciding: 5, + max_deciding: 1, // Amount that must be placed on deposit before a decision can be made. - decision_deposit: 20 * 1000 * dollar(KAR), + decision_deposit: 20_000 * dollar(KAR), // Amount of time this must be submitted for before a decision can be made. - prepare_period: DAYS, + prepare_period: 2 * HOURS, // Amount of time that a decision may take to be approved prior to cancellation. - decision_period: 14 * DAYS, + decision_period: 7 * DAYS, // Amount of time that the approval criteria must hold before it can be approved. confirm_period: DAYS, // Minimum amount of time that an approved proposal must be in the dispatch queue. min_enactment_period: DAYS, // Minimum aye votes as percentage of overall conviction-weighted votes needed for // approval as a function of time into decision period. - min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + min_approval: Curve::make_reciprocal(2, 7, percent(80), percent(50), percent(100)), // Minimum pre-conviction aye-votes ("support") as percentage of overall population that // is needed for approval as a function of time into decision period. - min_support: Curve::make_linear(14, 14, permill(5), percent(25)), + min_support: Curve::make_linear(7, 7, permill(1), percent(40)), }, ), ( 1, pallet_referenda::TrackInfo { name: "whitelisted_caller", - max_deciding: 100, - decision_deposit: 2 * 1000 * dollar(KAR), + max_deciding: 5, + decision_deposit: 5_000 * dollar(KAR), prepare_period: 10 * MINUTES, - decision_period: 14 * DAYS, + decision_period: 5 * DAYS, confirm_period: 10 * MINUTES, min_enactment_period: 30 * MINUTES, - min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), - min_support: Curve::make_reciprocal(1, 14 * 24, percent(1), percent(0), percent(2)), + min_approval: Curve::make_reciprocal(1, 5 * 2, percent(90), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 5 * 2, percent(1), percent(0), percent(5)), }, ), ( @@ -78,8 +78,8 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo max_deciding: 10, decision_deposit: 1000 * dollar(KAR), prepare_period: HOURS, - decision_period: 14 * DAYS, - confirm_period: DAYS, + decision_period: 5 * DAYS, + confirm_period: 6 * HOURS, min_enactment_period: DAYS, min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), min_support: Curve::make_reciprocal(7, 14, percent(10), percent(0), percent(50)), @@ -92,25 +92,25 @@ static ref TRACKS_DATA: [(u16, pallet_referenda::TrackInfo max_deciding: 20, decision_deposit: 2 * 1000 * dollar(KAR), prepare_period: HOURS, - decision_period: 14 * DAYS, + decision_period: 5 * DAYS, confirm_period: 3 * HOURS, min_enactment_period: 10 * MINUTES, - min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), - min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + min_approval: Curve::make_reciprocal(1, 5 * 2, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 5 * 2, percent(1), percent(0), percent(10)), }, ), ( 4, pallet_referenda::TrackInfo { name: "referendum_killer", - max_deciding: 100, + max_deciding: 20, decision_deposit: 4 * 1000 * dollar(KAR), prepare_period: HOURS, - decision_period: 14 * DAYS, + decision_period: 5 * DAYS, confirm_period: 3 * HOURS, min_enactment_period: 10 * MINUTES, - min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), - min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + min_approval: Curve::make_reciprocal(1, 5 * 2, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 5 * 2, percent(1), percent(0), percent(10)), }, ), ];