From 8b8bd9c0ed605f90872500e58e3e6732925d7ef8 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Wed, 12 Jan 2022 10:25:06 +0100 Subject: [PATCH 1/8] fix(dali): use `Assets` instead of `Tokens `Tokens` should never be used, except for `Assets` dependency The `Assets` pallet is acting as a router forwarding PICA operations to `Balance` and any other token operation to `Tokens`. By using `Tokens` instead of `Assets`, the pallet will not be able to operate on PICA. --- runtime/dali/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/dali/src/lib.rs b/runtime/dali/src/lib.rs index ccb6e3f7f97..53539ae12eb 100644 --- a/runtime/dali/src/lib.rs +++ b/runtime/dali/src/lib.rs @@ -815,7 +815,7 @@ parameter_types! { } impl vesting::Config for Runtime { - type Currency = Tokens; + type Currency = Assets; type Event = Event; type MaxVestingSchedules = MaxVestingSchedule; type MinVestedTransfer = MinVestedTransfer; @@ -833,7 +833,7 @@ impl pallet_bonded_finance::Config for Runtime { type AdminOrigin = EnsureRoot; type BondOfferId = u64; type Convert = sp_runtime::traits::ConvertInto; - type Currency = Tokens; + type Currency = Assets; type Event = Event; type MinReward = MinReward; type NativeCurrency = Balances; From 869946da95f9be5a4b0699e991d31b89540d3eef Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Wed, 12 Jan 2022 11:13:54 +0100 Subject: [PATCH 2/8] feat(picasso-v0): add currency-factory to runtime --- runtime/picasso/Cargo.toml | 1 + runtime/picasso/src/lib.rs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/runtime/picasso/Cargo.toml b/runtime/picasso/Cargo.toml index a1e8fbf79e3..6226b6dc7b2 100644 --- a/runtime/picasso/Cargo.toml +++ b/runtime/picasso/Cargo.toml @@ -72,6 +72,7 @@ common = { path = "../common", default-features = false } primitives = { path = "../primitives", default-features = false } composable-traits = { path = "../../frame/composable-traits", default-features = false } call-filter = { package = "pallet-call-filter", path = "../../frame/call-filter", default-features = false } +currency-factory = { package = "pallet-currency-factory", path = "../../frame/currency-factory", default-features = false } # Used for the node template's RPCs system-rpc-runtime-api = { package = "frame-system-rpc-runtime-api", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } diff --git a/runtime/picasso/src/lib.rs b/runtime/picasso/src/lib.rs index e15934e20f8..860cfcc8613 100644 --- a/runtime/picasso/src/lib.rs +++ b/runtime/picasso/src/lib.rs @@ -673,6 +673,15 @@ impl democracy::Config for Runtime { type WeightInfo = weights::democracy::WeightInfo; } +parameter_types! { + pub const DynamicCurrencyIdInitial: CurrencyId = CurrencyId::LOCAL_LP_TOKEN_START; +} + +impl currency_factory::Config for Runtime { + type Event = Event; + type DynamicCurrencyId = CurrencyId; + type DynamicCurrencyIdInitial = DynamicCurrencyIdInitial; +} /// The calls we permit to be executed by extrinsics pub struct BaseCallFilter; @@ -728,6 +737,7 @@ construct_runtime!( DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 43, Tokens: orml_tokens::{Pallet, Call, Storage, Event} = 52, + Factory: currency_factory::{Pallet, Storage, Event} = 53, } ); From a5cb4e53195b8993555ddf09c0d4b34ee8adc8b1 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Wed, 12 Jan 2022 11:14:51 +0100 Subject: [PATCH 3/8] feat(picasso-v0): add governance-registry to runtime --- runtime/picasso/Cargo.toml | 1 + runtime/picasso/src/lib.rs | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/runtime/picasso/Cargo.toml b/runtime/picasso/Cargo.toml index 6226b6dc7b2..786fa155ec9 100644 --- a/runtime/picasso/Cargo.toml +++ b/runtime/picasso/Cargo.toml @@ -73,6 +73,7 @@ primitives = { path = "../primitives", default-features = false } composable-traits = { path = "../../frame/composable-traits", default-features = false } call-filter = { package = "pallet-call-filter", path = "../../frame/call-filter", default-features = false } currency-factory = { package = "pallet-currency-factory", path = "../../frame/currency-factory", default-features = false } +governance-registry = { package = "pallet-governance-registry", path = "../../frame/governance-registry", default-features = false } # Used for the node template's RPCs system-rpc-runtime-api = { package = "frame-system-rpc-runtime-api", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } diff --git a/runtime/picasso/src/lib.rs b/runtime/picasso/src/lib.rs index 860cfcc8613..9f6f611299d 100644 --- a/runtime/picasso/src/lib.rs +++ b/runtime/picasso/src/lib.rs @@ -682,6 +682,12 @@ impl currency_factory::Config for Runtime { type DynamicCurrencyId = CurrencyId; type DynamicCurrencyIdInitial = DynamicCurrencyIdInitial; } + +impl governance_registry::Config for Runtime { + type Event = Event; + type AssetId = CurrencyId; + type WeightInfo = (); +} /// The calls we permit to be executed by extrinsics pub struct BaseCallFilter; @@ -738,6 +744,7 @@ construct_runtime!( Tokens: orml_tokens::{Pallet, Call, Storage, Event} = 52, Factory: currency_factory::{Pallet, Storage, Event} = 53, + GovernanceRegistry: governance_registry::{Pallet, Call, Storage, Event} = 54, } ); From bcacb6feacb59b2d78f35737869502fe0bf13309 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Wed, 12 Jan 2022 11:15:41 +0100 Subject: [PATCH 4/8] feat(picasso-v0): add assets to runtime --- runtime/picasso/Cargo.toml | 1 + runtime/picasso/src/lib.rs | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/runtime/picasso/Cargo.toml b/runtime/picasso/Cargo.toml index 786fa155ec9..e53b8caf388 100644 --- a/runtime/picasso/Cargo.toml +++ b/runtime/picasso/Cargo.toml @@ -74,6 +74,7 @@ composable-traits = { path = "../../frame/composable-traits", default-features = call-filter = { package = "pallet-call-filter", path = "../../frame/call-filter", default-features = false } currency-factory = { package = "pallet-currency-factory", path = "../../frame/currency-factory", default-features = false } governance-registry = { package = "pallet-governance-registry", path = "../../frame/governance-registry", default-features = false } +assets = { package = "pallet-assets", path = '../../frame/assets', default-features = false } # Used for the node template's RPCs system-rpc-runtime-api = { package = "frame-system-rpc-runtime-api", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } diff --git a/runtime/picasso/src/lib.rs b/runtime/picasso/src/lib.rs index 9f6f611299d..5f0ca660cd8 100644 --- a/runtime/picasso/src/lib.rs +++ b/runtime/picasso/src/lib.rs @@ -688,6 +688,22 @@ impl governance_registry::Config for Runtime { type AssetId = CurrencyId; type WeightInfo = (); } + +parameter_types! { + pub NativeAssetId: CurrencyId = CurrencyId::PICA; +} + +impl assets::Config for Runtime { + type NativeAssetId = NativeAssetId; + type GenerateCurrencyId = Factory; + type AssetId = CurrencyId; + type Balance = Balance; + type NativeCurrency = Balances; + type MultiCurrency = Tokens; + type WeightInfo = (); + type AdminOrigin = EnsureRootOrHalfCouncil; + type GovernanceRegistry = GovernanceRegistry; +} /// The calls we permit to be executed by extrinsics pub struct BaseCallFilter; @@ -745,6 +761,7 @@ construct_runtime!( Tokens: orml_tokens::{Pallet, Call, Storage, Event} = 52, Factory: currency_factory::{Pallet, Storage, Event} = 53, GovernanceRegistry: governance_registry::{Pallet, Call, Storage, Event} = 54, + Assets: assets::{Pallet, Call, Storage} = 55, } ); From 5b08c2600eed25d0661175be1ac761e0ff841d2f Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Wed, 12 Jan 2022 11:17:22 +0100 Subject: [PATCH 5/8] feat(picasso-v0): add crowdloan-rewards to runtime --- .../simnode/src/chain/picasso.rs | 1 + runtime/picasso/Cargo.toml | 1 + runtime/picasso/src/lib.rs | 26 ++++++- .../picasso/src/weights/crowdloan_rewards.rs | 76 +++++++++++++++++++ runtime/picasso/src/weights/mod.rs | 1 + 5 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 runtime/picasso/src/weights/crowdloan_rewards.rs diff --git a/integration-tests/simnode/src/chain/picasso.rs b/integration-tests/simnode/src/chain/picasso.rs index 19d051b6904..7d626c3dfc8 100644 --- a/integration-tests/simnode/src/chain/picasso.rs +++ b/integration-tests/simnode/src/chain/picasso.rs @@ -54,6 +54,7 @@ impl substrate_simnode::ChainInfo for ChainInfo { ), system::CheckWeight::::new(), transaction_payment::ChargeTransactionPayment::::from(0), + crowdloan_rewards::PrevalidateAssociation::::new(), ) } } diff --git a/runtime/picasso/Cargo.toml b/runtime/picasso/Cargo.toml index e53b8caf388..fe9a2c84c89 100644 --- a/runtime/picasso/Cargo.toml +++ b/runtime/picasso/Cargo.toml @@ -75,6 +75,7 @@ call-filter = { package = "pallet-call-filter", path = "../../frame/call-filter" currency-factory = { package = "pallet-currency-factory", path = "../../frame/currency-factory", default-features = false } governance-registry = { package = "pallet-governance-registry", path = "../../frame/governance-registry", default-features = false } assets = { package = "pallet-assets", path = '../../frame/assets', default-features = false } +crowdloan-rewards = { package = "pallet-crowdloan-rewards", path = '../../frame/crowdloan-rewards', default-features = false } # Used for the node template's RPCs system-rpc-runtime-api = { package = "frame-system-rpc-runtime-api", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } diff --git a/runtime/picasso/src/lib.rs b/runtime/picasso/src/lib.rs index 5f0ca660cd8..eddf213fcd5 100644 --- a/runtime/picasso/src/lib.rs +++ b/runtime/picasso/src/lib.rs @@ -103,7 +103,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_version: 2000, impl_version: 1, apis: RUNTIME_API_VERSIONS, - transaction_version: 1, + transaction_version: 2, }; /// The version information used to identify this runtime when compiled natively. @@ -385,6 +385,7 @@ where system::CheckNonce::::from(nonce), system::CheckWeight::::new(), transaction_payment::ChargeTransactionPayment::::from(tip), + crowdloan_rewards::PrevalidateAssociation::::new(), ); let raw_payload = SignedPayload::new(call, extra) .map_err(|_e| { @@ -704,6 +705,25 @@ impl assets::Config for Runtime { type AdminOrigin = EnsureRootOrHalfCouncil; type GovernanceRegistry = GovernanceRegistry; } + +parameter_types! { + pub const InitialPayment: Perbill = Perbill::from_percent(25); + pub const VestingStep: BlockNumber = 7 * DAYS; + pub const Prefix: &'static [u8] = b"picasso-"; +} + +impl crowdloan_rewards::Config for Runtime { + type Event = Event; + type Balance = Balance; + type Currency = Assets; + type AdminOrigin = EnsureRootOrHalfCouncil; + type Convert = sp_runtime::traits::ConvertInto; + type RelayChainAccountId = [u8; 32]; + type InitialPayment = InitialPayment; + type VestingStep = VestingStep; + type Prefix = Prefix; + type WeightInfo = weights::crowdloan_rewards::WeightInfo; +} /// The calls we permit to be executed by extrinsics pub struct BaseCallFilter; @@ -762,6 +782,7 @@ construct_runtime!( Factory: currency_factory::{Pallet, Storage, Event} = 53, GovernanceRegistry: governance_registry::{Pallet, Call, Storage, Event} = 54, Assets: assets::{Pallet, Call, Storage} = 55, + CrowdloanRewards: crowdloan_rewards::{Pallet, Call, Storage, Event} = 56, } ); @@ -779,6 +800,7 @@ pub type SignedExtra = ( system::CheckNonce, system::CheckWeight, transaction_payment::ChargeTransactionPayment, + crowdloan_rewards::PrevalidateAssociation, ); /// Unchecked extrinsic type as expected by this runtime. @@ -919,6 +941,7 @@ impl_runtime_apis! { list_benchmark!(list, extra, utility, Utility); list_benchmark!(list, extra, identity, Identity); list_benchmark!(list, extra, multisig, Multisig); + list_benchmark!(list, extra, crowdloan_rewards, CrowdloanRewards); let storage_info = AllPalletsWithSystem::storage_info(); @@ -966,6 +989,7 @@ impl_runtime_apis! { add_benchmark!(params, batches, utility, Utility); add_benchmark!(params, batches, identity, Identity); add_benchmark!(params, batches, multisig, Multisig); + add_benchmark!(params, batches, crowdloan_rewards, CrowdloanRewards); if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } Ok(batches) diff --git a/runtime/picasso/src/weights/crowdloan_rewards.rs b/runtime/picasso/src/weights/crowdloan_rewards.rs new file mode 100644 index 00000000000..d755d08a755 --- /dev/null +++ b/runtime/picasso/src/weights/crowdloan_rewards.rs @@ -0,0 +1,76 @@ + +//! Autogenerated weights for `crowdloan_rewards` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2021-12-17, STEPS: `10`, REPEAT: 5, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("picasso-dev"), DB CACHE: 128 + +// Executed Command: +// ./target/release/composable +// benchmark +// --chain=picasso-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=crowdloan-rewards +// --extrinsic=* +// --steps=10 +// --repeat=5 +// --raw +// --output=runtime/picasso/src/weights/crowdloan_rewards.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `crowdloan_rewards`. +pub struct WeightInfo(PhantomData); +impl crowdloan_rewards::weights::WeightInfo for WeightInfo { + // Storage: CrowdloanRewards VestingBlockStart (r:1 w:0) + // Storage: CrowdloanRewards Rewards (r:1001 w:1000) + // Storage: CrowdloanRewards TotalContributors (r:0 w:1) + // Storage: CrowdloanRewards TotalRewards (r:0 w:1) + fn populate(x: u32, ) -> Weight { + (0 as Weight) + // Standard Error: 109_000 + .saturating_add((6_792_000 as Weight).saturating_mul(x as Weight)) + .saturating_add(T::DbWeight::get().reads(2 as Weight)) + .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(x as Weight))) + .saturating_add(T::DbWeight::get().writes(2 as Weight)) + .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(x as Weight))) + } + // Storage: CrowdloanRewards VestingBlockStart (r:1 w:1) + fn initialize(x: u32, ) -> Weight { + (33_355_000 as Weight) + // Standard Error: 0 + .saturating_add((1_000 as Weight).saturating_mul(x as Weight)) + .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(T::DbWeight::get().writes(1 as Weight)) + } + // Storage: CrowdloanRewards VestingBlockStart (r:1 w:0) + // Storage: CrowdloanRewards Rewards (r:1 w:1) + // Storage: System Account (r:1 w:1) + // Storage: CrowdloanRewards ClaimedRewards (r:1 w:1) + // Storage: CrowdloanRewards Associations (r:0 w:1) + fn associate(x: u32, ) -> Weight { + (169_323_000 as Weight) + // Standard Error: 1_000 + .saturating_add((8_000 as Weight).saturating_mul(x as Weight)) + .saturating_add(T::DbWeight::get().reads(4 as Weight)) + .saturating_add(T::DbWeight::get().writes(4 as Weight)) + } + // Storage: CrowdloanRewards Associations (r:1 w:0) + // Storage: CrowdloanRewards VestingBlockStart (r:1 w:0) + // Storage: CrowdloanRewards Rewards (r:1 w:1) + // Storage: System Account (r:1 w:1) + // Storage: CrowdloanRewards ClaimedRewards (r:1 w:1) + fn claim(x: u32, ) -> Weight { + (94_034_000 as Weight) + // Standard Error: 1_000 + .saturating_add((31_000 as Weight).saturating_mul(x as Weight)) + .saturating_add(T::DbWeight::get().reads(5 as Weight)) + .saturating_add(T::DbWeight::get().writes(3 as Weight)) + } +} diff --git a/runtime/picasso/src/weights/mod.rs b/runtime/picasso/src/weights/mod.rs index 8a0dd0789c2..cf251ac0b9e 100644 --- a/runtime/picasso/src/weights/mod.rs +++ b/runtime/picasso/src/weights/mod.rs @@ -2,6 +2,7 @@ pub mod balances; pub mod collator_selection; pub mod collective; +pub mod crowdloan_rewards; pub mod democracy; pub mod frame_system; pub mod identity; From f4c93d42b1f37e9f2cbc125d036336b145d04390 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Wed, 12 Jan 2022 11:17:41 +0100 Subject: [PATCH 6/8] feat(picasso-v0): add vesting to runtime --- runtime/picasso/Cargo.toml | 1 + runtime/picasso/src/lib.rs | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/runtime/picasso/Cargo.toml b/runtime/picasso/Cargo.toml index fe9a2c84c89..6cf2e072048 100644 --- a/runtime/picasso/Cargo.toml +++ b/runtime/picasso/Cargo.toml @@ -76,6 +76,7 @@ currency-factory = { package = "pallet-currency-factory", path = "../../frame/cu governance-registry = { package = "pallet-governance-registry", path = "../../frame/governance-registry", default-features = false } assets = { package = "pallet-assets", path = '../../frame/assets', default-features = false } crowdloan-rewards = { package = "pallet-crowdloan-rewards", path = '../../frame/crowdloan-rewards', default-features = false } +vesting = { package = "pallet-vesting", path = "../../frame/vesting", default-features = false } # Used for the node template's RPCs system-rpc-runtime-api = { package = "frame-system-rpc-runtime-api", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } diff --git a/runtime/picasso/src/lib.rs b/runtime/picasso/src/lib.rs index eddf213fcd5..449512f60fa 100644 --- a/runtime/picasso/src/lib.rs +++ b/runtime/picasso/src/lib.rs @@ -724,6 +724,40 @@ impl crowdloan_rewards::Config for Runtime { type Prefix = Prefix; type WeightInfo = weights::crowdloan_rewards::WeightInfo; } + +parameter_types! { + pub const MaxVestingSchedule: u32 = 128; + pub MinVestedTransfer: u64 = CurrencyId::PICA.milli::(); +} + +impl vesting::Config for Runtime { + type Currency = Assets; + type Event = Event; + type MaxVestingSchedules = MaxVestingSchedule; + type MinVestedTransfer = MinVestedTransfer; + type VestedTransferOrigin = system::EnsureSigned; + type WeightInfo = (); +} + +parameter_types! { + pub const BondedFinanceId: PalletId = PalletId(*b"bondedfi"); + pub MinReward: Balance = 10 * CurrencyId::PICA.unit::(); + pub Stake: Balance = 10 * CurrencyId::PICA.unit::(); +} + +impl bonded_finance::Config for Runtime { + type AdminOrigin = EnsureRoot; + type BondOfferId = u64; + type Convert = sp_runtime::traits::ConvertInto; + type Currency = Assets; + type Event = Event; + type MinReward = MinReward; + type NativeCurrency = Balances; + type PalletId = BondedFinanceId; + type Stake = Stake; + type Vesting = Vesting; +} + /// The calls we permit to be executed by extrinsics pub struct BaseCallFilter; @@ -783,6 +817,7 @@ construct_runtime!( GovernanceRegistry: governance_registry::{Pallet, Call, Storage, Event} = 54, Assets: assets::{Pallet, Call, Storage} = 55, CrowdloanRewards: crowdloan_rewards::{Pallet, Call, Storage, Event} = 56, + Vesting: vesting::{Call, Event, Pallet, Storage} = 57, } ); From c07c0da1b835b10964c1030c9fc2d7993daa04f4 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Wed, 12 Jan 2022 11:18:44 +0100 Subject: [PATCH 7/8] feat(picasso-v0): add bonded-finance to runtime --- runtime/picasso/Cargo.toml | 1 + runtime/picasso/src/lib.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/runtime/picasso/Cargo.toml b/runtime/picasso/Cargo.toml index 6cf2e072048..02d7ee46f61 100644 --- a/runtime/picasso/Cargo.toml +++ b/runtime/picasso/Cargo.toml @@ -77,6 +77,7 @@ governance-registry = { package = "pallet-governance-registry", path = "../../fr assets = { package = "pallet-assets", path = '../../frame/assets', default-features = false } crowdloan-rewards = { package = "pallet-crowdloan-rewards", path = '../../frame/crowdloan-rewards', default-features = false } vesting = { package = "pallet-vesting", path = "../../frame/vesting", default-features = false } +bonded-finance = { package = "pallet-bonded-finance", path = "../../frame/bonded-finance", default-features = false } # Used for the node template's RPCs system-rpc-runtime-api = { package = "frame-system-rpc-runtime-api", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } diff --git a/runtime/picasso/src/lib.rs b/runtime/picasso/src/lib.rs index 449512f60fa..63c6db1f682 100644 --- a/runtime/picasso/src/lib.rs +++ b/runtime/picasso/src/lib.rs @@ -818,6 +818,7 @@ construct_runtime!( Assets: assets::{Pallet, Call, Storage} = 55, CrowdloanRewards: crowdloan_rewards::{Pallet, Call, Storage, Event} = 56, Vesting: vesting::{Call, Event, Pallet, Storage} = 57, + BondedFinance: bonded_finance::{Call, Event, Pallet, Storage} = 58, } ); From f3366122fdb61ef880115799acca175ab1b03f0b Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Wed, 12 Jan 2022 11:21:28 +0100 Subject: [PATCH 8/8] chore(Cargo.lock) --- Cargo.lock | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 838c66f2f1d..674bc9f7e0f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7987,13 +7987,18 @@ dependencies = [ "orml-unknown-tokens", "orml-xcm-support", "orml-xtokens", + "pallet-assets", "pallet-aura", "pallet-authorship", "pallet-balances", + "pallet-bonded-finance", "pallet-call-filter", "pallet-collator-selection", "pallet-collective", + "pallet-crowdloan-rewards", + "pallet-currency-factory", "pallet-democracy 4.0.0-dev", + "pallet-governance-registry", "pallet-identity", "pallet-indices", "pallet-membership", @@ -8007,6 +8012,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", + "pallet-vesting 0.0.1", "pallet-xcm", "parachain-info", "parity-scale-codec",