From 573b40dbbea96c00b2bbdb7df4e3acce9fb40354 Mon Sep 17 00:00:00 2001 From: kianenigma Date: Thu, 23 Jun 2022 15:11:10 +0200 Subject: [PATCH 1/9] bunch of changes for now --- bridges/bin/millau/runtime/src/lib.rs | 6 +++--- .../bin/rialto-parachain/runtime/src/lib.rs | 2 +- bridges/bin/rialto/runtime/src/lib.rs | 4 ++-- runtime/kusama/src/lib.rs | 19 ++++++++++++++----- runtime/polkadot/src/lib.rs | 18 +++++++++++++----- runtime/rococo/src/lib.rs | 2 +- runtime/test-runtime/src/lib.rs | 4 ++-- runtime/westend/src/lib.rs | 2 +- 8 files changed, 37 insertions(+), 20 deletions(-) diff --git a/bridges/bin/millau/runtime/src/lib.rs b/bridges/bin/millau/runtime/src/lib.rs index fd4cfd307622..f3d80a75338b 100644 --- a/bridges/bin/millau/runtime/src/lib.rs +++ b/bridges/bin/millau/runtime/src/lib.rs @@ -564,7 +564,7 @@ pub type Executive = frame_executive::Executive< Block, frame_system::ChainContext, Runtime, - AllPalletsWithSystem, + AllPalletsWithSystemFlat, >; #[cfg(feature = "runtime-benchmarks")] @@ -689,10 +689,10 @@ impl_runtime_apis! { { Mmr::generate_batch_proof(vec![leaf_index]) .and_then(|(leaves, proof)| Ok(( - EncodableOpaqueLeaf::from_leaf(&leaves[0]), + EncodableOpaqueLeaf::from_leaf(&leaves[0]), MmrBatchProof::into_single_leaf_proof(proof)? ))) - + } fn verify_proof(leaf: EncodableOpaqueLeaf, proof: MmrProof) diff --git a/bridges/bin/rialto-parachain/runtime/src/lib.rs b/bridges/bin/rialto-parachain/runtime/src/lib.rs index 4f81927f0f6f..9fa3dfd99e72 100644 --- a/bridges/bin/rialto-parachain/runtime/src/lib.rs +++ b/bridges/bin/rialto-parachain/runtime/src/lib.rs @@ -104,7 +104,7 @@ pub type Executive = frame_executive::Executive< Block, frame_system::ChainContext, Runtime, - AllPalletsWithSystem, + AllPalletsWithSystemFlat, >; impl_opaque_keys! { diff --git a/bridges/bin/rialto/runtime/src/lib.rs b/bridges/bin/rialto/runtime/src/lib.rs index 6be1e44afa8b..0e9ec2bda5f2 100644 --- a/bridges/bin/rialto/runtime/src/lib.rs +++ b/bridges/bin/rialto/runtime/src/lib.rs @@ -558,7 +558,7 @@ pub type Executive = frame_executive::Executive< Block, frame_system::ChainContext, Runtime, - AllPalletsWithSystem, + AllPalletsWithSystemFlat, >; #[cfg(feature = "runtime-benchmarks")] @@ -635,7 +635,7 @@ impl_runtime_apis! { { Mmr::generate_batch_proof(vec![leaf_index]) .and_then(|(leaves, proof)| Ok(( - EncodableOpaqueLeaf::from_leaf(&leaves[0]), + EncodableOpaqueLeaf::from_leaf(&leaves[0]), MmrBatchProof::into_single_leaf_proof(proof)? ))) } diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index 9059cd90a871..8b83fec6f8a6 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -1624,7 +1624,7 @@ pub type Executive = frame_executive::Executive< Block, frame_system::ChainContext, Runtime, - AllPalletsWithSystem, + AllPalletsWithSystemFlat, ( RenameBagsListToVoterList, pallet_bags_list::migrations::AddScore, @@ -2053,12 +2053,21 @@ sp_api::impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { fn on_runtime_upgrade() -> (Weight, Weight) { - log::info!("try-runtime::on_runtime_upgrade kusama."); + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. If any of the pre/post migration checks fail, we shall stop + // right here and right now. let weight = Executive::try_runtime_upgrade().unwrap(); - (weight, BlockWeights::get().max_block) + (weight, RuntimeBlockWeights::get().max_block) } - fn execute_block_no_check(block: Block) -> Weight { - Executive::execute_block_no_check(block) + + fn execute_block(block: Block, state_root_check: bool, sanity_checks: frame_try_runtime::SanityCheckTargets) -> Weight { + log::info!( + target: "node-runtime", "try-runtime: executing block {:?} / root checks: {:?} / sanity-checks: {:?}", + block.header.hash(), + state_root_check, + sanity_checks, + ); + Executive::try_execute_block(block, state_root_check, sanity_checks) } } diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index 17296d36fa92..19d0c8ad4d24 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -1513,7 +1513,7 @@ pub type Executive = frame_executive::Executive< Block, frame_system::ChainContext, Runtime, - AllPalletsWithSystem, + AllPalletsWithSystemFlat, (RenameBagsListToVoterList, pallet_bags_list::migrations::AddScore), >; /// The payload being signed in transactions. @@ -1930,13 +1930,21 @@ sp_api::impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { fn on_runtime_upgrade() -> (Weight, Weight) { - log::info!("try-runtime::on_runtime_upgrade polkadot."); + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. If any of the pre/post migration checks fail, we shall stop + // right here and right now. let weight = Executive::try_runtime_upgrade().unwrap(); - (weight, BlockWeights::get().max_block) + (weight, RuntimeBlockWeights::get().max_block) } - fn execute_block_no_check(block: Block) -> Weight { - Executive::execute_block_no_check(block) + fn execute_block(block: Block, state_root_check: bool, sanity_checks: frame_try_runtime::SanityCheckTargets) -> Weight { + log::info!( + target: "node-runtime", "try-runtime: executing block {:?} / root checks: {:?} / sanity-checks: {:?}", + block.header.hash(), + state_root_check, + sanity_checks, + ); + Executive::try_execute_block(block, state_root_check, sanity_checks) } } diff --git a/runtime/rococo/src/lib.rs b/runtime/rococo/src/lib.rs index e79c32d1d40b..d49fa082fc1a 100644 --- a/runtime/rococo/src/lib.rs +++ b/runtime/rococo/src/lib.rs @@ -153,7 +153,7 @@ pub type Executive = frame_executive::Executive< Block, frame_system::ChainContext, Runtime, - AllPalletsWithSystem, + AllPalletsWithSystemFlat, >; /// The payload being signed in transactions. pub type SignedPayload = generic::SignedPayload; diff --git a/runtime/test-runtime/src/lib.rs b/runtime/test-runtime/src/lib.rs index 783c1801a8e9..d9d41561f03d 100644 --- a/runtime/test-runtime/src/lib.rs +++ b/runtime/test-runtime/src/lib.rs @@ -738,8 +738,8 @@ pub type Executive = frame_executive::Executive< Block, frame_system::ChainContext, Runtime, - AllPalletsWithSystem, ->; + AllPalletsWithSystemFlat, + >; /// The payload being signed in transactions. pub type SignedPayload = generic::SignedPayload; diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index dcbee5ef7040..6eca28ff0704 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -1169,7 +1169,7 @@ pub type Executive = frame_executive::Executive< Block, frame_system::ChainContext, Runtime, - AllPalletsWithSystem, + AllPalletsWithSystemFlat, ( RenameBagsListToVoterList, pallet_bags_list::migrations::AddScore, From f8a33e45cab740103abd35e7e9ae11dbe99b2af7 Mon Sep 17 00:00:00 2001 From: kianenigma Date: Thu, 23 Jun 2022 15:58:09 +0200 Subject: [PATCH 2/9] companion for sanity-checks --- runtime/kusama/Cargo.toml | 5 ++++- runtime/kusama/src/lib.rs | 2 +- runtime/polkadot/Cargo.toml | 3 ++- runtime/polkadot/src/lib.rs | 4 ++-- runtime/westend/Cargo.toml | 8 +++++--- runtime/westend/src/lib.rs | 2 +- xcm/pallet-xcm/Cargo.toml | 1 + 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/runtime/kusama/Cargo.toml b/runtime/kusama/Cargo.toml index c7732645e23d..3185dfbfba76 100644 --- a/runtime/kusama/Cargo.toml +++ b/runtime/kusama/Cargo.toml @@ -238,8 +238,8 @@ try-runtime = [ "frame-system/try-runtime", "pallet-authority-discovery/try-runtime", "pallet-authorship/try-runtime", - "pallet-balances/try-runtime", "pallet-bags-list/try-runtime", + "pallet-balances/try-runtime", "pallet-bounties/try-runtime", "pallet-child-bounties/try-runtime", "pallet-transaction-payment/try-runtime", @@ -247,12 +247,14 @@ try-runtime = [ "pallet-elections-phragmen/try-runtime", "pallet-election-provider-multi-phase/try-runtime", "pallet-democracy/try-runtime", + "pallet-gilt/try-runtime", "pallet-grandpa/try-runtime", "pallet-identity/try-runtime", "pallet-im-online/try-runtime", "pallet-indices/try-runtime", "pallet-membership/try-runtime", "pallet-multisig/try-runtime", + "pallet-nomination-pools/try-runtime", "pallet-offences/try-runtime", "pallet-preimage/try-runtime", "pallet-proxy/try-runtime", @@ -267,6 +269,7 @@ try-runtime = [ "pallet-utility/try-runtime", "pallet-vesting/try-runtime", "pallet-babe/try-runtime", + "pallet-xcm/try-runtime", "runtime-common/try-runtime", ] # When enabled, the runtime API will not be build. diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index ec3a4f274e9b..83bf909ad3e4 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -2010,7 +2010,7 @@ sp_api::impl_runtime_apis! { fn on_runtime_upgrade() -> (Weight, Weight) { log::info!("try-runtime::on_runtime_upgrade kusama."); let weight = Executive::try_runtime_upgrade().unwrap(); - (weight, RuntimeBlockWeights::get().max_block) + (weight, BlockWeights::get().max_block) } fn execute_block(block: Block, state_root_check: bool, sanity_checks: frame_try_runtime::SanityCheckTargets) -> Weight { diff --git a/runtime/polkadot/Cargo.toml b/runtime/polkadot/Cargo.toml index 9fa4383d5456..aa532c613807 100644 --- a/runtime/polkadot/Cargo.toml +++ b/runtime/polkadot/Cargo.toml @@ -217,6 +217,7 @@ try-runtime = [ "frame-executive/try-runtime", "frame-try-runtime", "frame-system/try-runtime", + "runtime-common/try-runtime", "pallet-authority-discovery/try-runtime", "pallet-authorship/try-runtime", "pallet-balances/try-runtime", @@ -246,7 +247,7 @@ try-runtime = [ "pallet-babe/try-runtime", "pallet-vesting/try-runtime", "pallet-utility/try-runtime", - "runtime-common/try-runtime", + "pallet-xcm/try-runtime", ] # When enabled, the runtime API will not be build. # diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index 9551178803c8..9b5eb62fe337 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -112,7 +112,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("polkadot"), impl_name: create_runtime_str!("parity-polkadot"), authoring_version: 0, - spec_version: 9250, + spec_version: 9220, impl_version: 0, #[cfg(not(feature = "disable-runtime-api"))] apis: RUNTIME_API_VERSIONS, @@ -1918,7 +1918,7 @@ sp_api::impl_runtime_apis! { fn on_runtime_upgrade() -> (Weight, Weight) { log::info!("try-runtime::on_runtime_upgrade polkadot."); let weight = Executive::try_runtime_upgrade().unwrap(); - (weight, RuntimeBlockWeights::get().max_block) + (weight, BlockWeights::get().max_block) } fn execute_block(block: Block, state_root_check: bool, sanity_checks: frame_try_runtime::SanityCheckTargets) -> Weight { diff --git a/runtime/westend/Cargo.toml b/runtime/westend/Cargo.toml index 74b55a835b39..97e4a550cd5c 100644 --- a/runtime/westend/Cargo.toml +++ b/runtime/westend/Cargo.toml @@ -222,10 +222,10 @@ try-runtime = [ "frame-executive/try-runtime", "frame-system/try-runtime", "frame-try-runtime", - "pallet-authorship/try-runtime", + "runtime-common/try-runtime", "pallet-authority-discovery/try-runtime", + "pallet-authorship/try-runtime", "pallet-balances/try-runtime", - "pallet-bags-list/try-runtime", "pallet-transaction-payment/try-runtime", "pallet-collective/try-runtime", "pallet-elections-phragmen/try-runtime", @@ -237,6 +237,7 @@ try-runtime = [ "pallet-indices/try-runtime", "pallet-membership/try-runtime", "pallet-multisig/try-runtime", + "pallet-nomination-pools/try-runtime", "pallet-offences/try-runtime", "pallet-preimage/try-runtime", "pallet-proxy/try-runtime", @@ -250,8 +251,9 @@ try-runtime = [ "pallet-treasury/try-runtime", "pallet-utility/try-runtime", "pallet-vesting/try-runtime", + "pallet-xcm/try-runtime", "pallet-babe/try-runtime", - "runtime-common/try-runtime", + "pallet-bags-list/try-runtime", ] # When enabled, the runtime API will not be build. # diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index 8cc011e5818a..0ff1f8150421 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -1577,7 +1577,7 @@ sp_api::impl_runtime_apis! { fn on_runtime_upgrade() -> (Weight, Weight) { log::info!("try-runtime::on_runtime_upgrade westend."); let weight = Executive::try_runtime_upgrade().unwrap(); - (weight, RuntimeBlockWeights::get().max_block) + (weight, BlockWeights::get().max_block) } fn execute_block(block: Block, state_root_check: bool, sanity_checks: frame_try_runtime::SanityCheckTargets) -> Weight { diff --git a/xcm/pallet-xcm/Cargo.toml b/xcm/pallet-xcm/Cargo.toml index e03de94df2bf..7fabd652343a 100644 --- a/xcm/pallet-xcm/Cargo.toml +++ b/xcm/pallet-xcm/Cargo.toml @@ -43,3 +43,4 @@ std = [ runtime-benchmarks = [ "frame-system/runtime-benchmarks" ] +try-runtime = ["frame-support/try-runtime"] From d33ad28382334b69254d83bc4cdf89ad09e4035a Mon Sep 17 00:00:00 2001 From: kianenigma Date: Sat, 20 Aug 2022 14:38:45 +0430 Subject: [PATCH 3/9] Fix --- runtime/kusama/src/lib.rs | 8 ++++---- runtime/polkadot/Cargo.toml | 1 + runtime/polkadot/src/lib.rs | 8 ++++---- runtime/westend/src/lib.rs | 8 ++++---- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index d2389317455e..496512888065 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -1880,14 +1880,14 @@ sp_api::impl_runtime_apis! { (weight, BlockWeights::get().max_block) } - fn execute_block(block: Block, state_root_check: bool, sanity_checks: frame_try_runtime::SanityCheckTargets) -> Weight { + fn execute_block(block: Block, state_root_check: bool, select: frame_try_runtime::TryStateSelect) -> Weight { log::info!( - target: "node-runtime", "try-runtime: executing block {:?} / root checks: {:?} / sanity-checks: {:?}", + target: "runtime::kusama", "try-runtime: executing block {:?} / root checks: {:?} / sanity-checks: {:?}", block.header.hash(), state_root_check, - sanity_checks, + select, ); - Executive::try_execute_block(block, state_root_check, sanity_checks) + Executive::try_execute_block(block, state_root_check, select).expect("try_execute_block failed") } } diff --git a/runtime/polkadot/Cargo.toml b/runtime/polkadot/Cargo.toml index 8a63c4c61717..e33c75bdb3f1 100644 --- a/runtime/polkadot/Cargo.toml +++ b/runtime/polkadot/Cargo.toml @@ -242,6 +242,7 @@ try-runtime = [ "pallet-indices/try-runtime", "pallet-membership/try-runtime", "pallet-multisig/try-runtime", + "pallet-nomination-pools/try-runtime", "pallet-offences/try-runtime", "pallet-preimage/try-runtime", "pallet-proxy/try-runtime", diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index e326ae1ef5fe..5f3019968822 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -1989,14 +1989,14 @@ sp_api::impl_runtime_apis! { (weight, BlockWeights::get().max_block) } - fn execute_block(block: Block, state_root_check: bool, sanity_checks: frame_try_runtime::SanityCheckTargets) -> Weight { + fn execute_block(block: Block, state_root_check: bool, select: frame_try_runtime::TryStateSelect) -> Weight { log::info!( - target: "node-runtime", "try-runtime: executing block {:?} / root checks: {:?} / sanity-checks: {:?}", + target: "runtime::polkadot", "try-runtime: executing block {:?} / root checks: {:?} / sanity-checks: {:?}", block.header.hash(), state_root_check, - sanity_checks, + select, ); - Executive::try_execute_block(block, state_root_check, sanity_checks) + Executive::try_execute_block(block, state_root_check, select).expect("try_execute_block failed") } } diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index 7e76bc64f0e3..d5661c21b218 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -1590,14 +1590,14 @@ sp_api::impl_runtime_apis! { (weight, BlockWeights::get().max_block) } - fn execute_block(block: Block, state_root_check: bool, sanity_checks: frame_try_runtime::SanityCheckTargets) -> Weight { + fn execute_block(block: Block, state_root_check: bool, select: frame_try_runtime::TryStateSelect) -> Weight { log::info!( - target: "node-runtime", "try-runtime: executing block {:?} / root checks: {:?} / sanity-checks: {:?}", + target: "runtime::westend", "try-runtime: executing block {:?} / root checks: {:?} / sanity-checks: {:?}", block.header.hash(), state_root_check, - sanity_checks, + select, ); - Executive::try_execute_block(block, state_root_check, sanity_checks) + Executive::try_execute_block(block, state_root_check, select).expect("try_execute_block failed") } } From aa099c29ee54eb454aa33c99a48d3fe6d1471247 Mon Sep 17 00:00:00 2001 From: kianenigma Date: Sun, 21 Aug 2022 10:22:51 +0430 Subject: [PATCH 4/9] remove bridges --- bridges/bin/millau/runtime/src/lib.rs | 1004 ----------------- .../bin/rialto-parachain/runtime/src/lib.rs | 663 ----------- bridges/bin/rialto/runtime/src/lib.rs | 998 ---------------- 3 files changed, 2665 deletions(-) delete mode 100644 bridges/bin/millau/runtime/src/lib.rs delete mode 100644 bridges/bin/rialto-parachain/runtime/src/lib.rs delete mode 100644 bridges/bin/rialto/runtime/src/lib.rs diff --git a/bridges/bin/millau/runtime/src/lib.rs b/bridges/bin/millau/runtime/src/lib.rs deleted file mode 100644 index 28279066d51b..000000000000 --- a/bridges/bin/millau/runtime/src/lib.rs +++ /dev/null @@ -1,1004 +0,0 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Parity Bridges Common. - -// Parity Bridges Common 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. - -// Parity Bridges Common 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 Parity Bridges Common. If not, see . - -//! The Millau runtime. This can be compiled with `#[no_std]`, ready for Wasm. - -#![cfg_attr(not(feature = "std"), no_std)] -// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit = "256"] -// Runtime-generated enums -#![allow(clippy::large_enum_variant)] -// From construct_runtime macro -#![allow(clippy::from_over_into)] - -// Make the WASM binary available. -#[cfg(feature = "std")] -include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); - -pub mod rialto_messages; - -use crate::rialto_messages::{ToRialtoMessagePayload, WithRialtoMessageBridge}; - -use beefy_primitives::{crypto::AuthorityId as BeefyId, mmr::{MmrLeafVersion}, ValidatorSet}; -use bridge_runtime_common::messages::{ - source::estimate_message_dispatch_and_delivery_fee, MessageBridge, -}; -use pallet_grandpa::{ - fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList, -}; -use sp_mmr_primitives::{ - DataOrHash, EncodableOpaqueLeaf, Error as MmrError, LeafDataProvider, - BatchProof as MmrBatchProof, Proof as MmrProof, LeafIndex as MmrLeafIndex -}; -use pallet_transaction_payment::{FeeDetails, Multiplier, RuntimeDispatchInfo}; -use sp_api::impl_runtime_apis; -use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; -use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, - traits::{Block as BlockT, IdentityLookup, Keccak256, NumberFor, OpaqueKeys}, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, FixedPointNumber, FixedU128, MultiSignature, MultiSigner, Perquintill, -}; -use sp_std::prelude::*; -#[cfg(feature = "std")] -use sp_version::NativeVersion; -use sp_version::RuntimeVersion; - -// A few exports that help ease life for downstream crates. -pub use frame_support::{ - construct_runtime, parameter_types, - traits::{Currency, ExistenceRequirement, Imbalance, KeyOwnerProofSystem}, - weights::{constants::WEIGHT_PER_SECOND, DispatchClass, IdentityFee, RuntimeDbWeight, Weight}, - StorageValue, -}; - -pub use frame_system::Call as SystemCall; -pub use pallet_balances::Call as BalancesCall; -pub use pallet_bridge_grandpa::Call as BridgeGrandpaCall; -pub use pallet_bridge_messages::Call as MessagesCall; -pub use pallet_sudo::Call as SudoCall; -pub use pallet_timestamp::Call as TimestampCall; - -#[cfg(any(feature = "std", test))] -pub use sp_runtime::BuildStorage; -pub use sp_runtime::{Perbill, Permill}; - -/// An index to a block. -pub type BlockNumber = bp_millau::BlockNumber; - -/// Alias to 512-bit hash when used in the context of a transaction signature on the chain. -pub type Signature = bp_millau::Signature; - -/// Some way of identifying an account on the chain. We intentionally make it equivalent -/// to the public key of our transaction signing scheme. -pub type AccountId = bp_millau::AccountId; - -/// The type for looking up accounts. We don't expect more than 4 billion of them, but you -/// never know... -pub type AccountIndex = u32; - -/// Balance of an account. -pub type Balance = bp_millau::Balance; - -/// Index of a transaction in the chain. -pub type Index = bp_millau::Index; - -/// A hash of some data used by the chain. -pub type Hash = bp_millau::Hash; - -/// Hashing algorithm used by the chain. -pub type Hashing = bp_millau::Hasher; - -/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know -/// the specifics of the runtime. They can then be made to be agnostic over specific formats -/// of data like extrinsics, allowing for them to continue syncing the network through upgrades -/// to even the core data structures. -pub mod opaque { - use super::*; - - pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; - - /// Opaque block header type. - pub type Header = generic::Header; - /// Opaque block type. - pub type Block = generic::Block; - /// Opaque block identifier type. - pub type BlockId = generic::BlockId; -} - -impl_opaque_keys! { - pub struct SessionKeys { - pub aura: Aura, - pub beefy: Beefy, - pub grandpa: Grandpa, - } -} - -/// This runtime version. -pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("millau-runtime"), - impl_name: create_runtime_str!("millau-runtime"), - authoring_version: 1, - spec_version: 1, - impl_version: 1, - apis: RUNTIME_API_VERSIONS, - transaction_version: 1, - state_version: 0, -}; - -/// The version information used to identify this runtime when compiled natively. -#[cfg(feature = "std")] -pub fn native_version() -> NativeVersion { - NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } -} - -parameter_types! { - pub const BlockHashCount: BlockNumber = 250; - pub const Version: RuntimeVersion = VERSION; - pub const DbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 60_000_000, // ~0.06 ms = ~60 µs - write: 200_000_000, // ~0.2 ms = 200 µs - }; - pub const SS58Prefix: u8 = 60; -} - -impl frame_system::Config for Runtime { - /// The basic call filter to use in dispatchable. - type BaseCallFilter = frame_support::traits::Everything; - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type Call = Call; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = IdentityLookup; - /// The index type for storing how many extrinsics an account has signed. - type Index = Index; - /// The index type for blocks. - type BlockNumber = BlockNumber; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = Hashing; - /// The header type. - type Header = generic::Header; - /// The ubiquitous event type. - type Event = Event; - /// The ubiquitous origin type. - type Origin = Origin; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// Version of the runtime. - type Version = Version; - /// Provides information about the pallet setup in the runtime. - type PalletInfo = PalletInfo; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// The data to be stored in an account. - type AccountData = pallet_balances::AccountData; - // TODO: update me (https://github.com/paritytech/parity-bridges-common/issues/78) - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); - /// Block and extrinsics weights: base values and limits. - type BlockWeights = bp_millau::BlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = bp_millau::BlockLength; - /// The weight of database operations that the runtime can invoke. - type DbWeight = DbWeight; - /// The designated `SS58` prefix of this chain. - type SS58Prefix = SS58Prefix; - /// The set code logic, just the default since we're not a parachain. - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -impl pallet_randomness_collective_flip::Config for Runtime {} - -parameter_types! { - pub const MaxAuthorities: u32 = 10; -} - -impl pallet_aura::Config for Runtime { - type AuthorityId = AuraId; - type MaxAuthorities = MaxAuthorities; - type DisabledValidators = (); -} - -impl pallet_beefy::Config for Runtime { - type BeefyId = BeefyId; - type MaxAuthorities = MaxAuthorities; -} - -impl pallet_bridge_dispatch::Config for Runtime { - type Event = Event; - type BridgeMessageId = (bp_messages::LaneId, bp_messages::MessageNonce); - type Call = Call; - type CallFilter = frame_support::traits::Everything; - type EncodedCall = crate::rialto_messages::FromRialtoEncodedCall; - type SourceChainAccountId = bp_rialto::AccountId; - type TargetChainAccountPublic = MultiSigner; - type TargetChainSignature = MultiSignature; - type AccountIdConverter = bp_millau::AccountIdConverter; -} - -impl pallet_grandpa::Config for Runtime { - type Event = Event; - type Call = Call; - type KeyOwnerProofSystem = (); - type KeyOwnerProof = - >::Proof; - type KeyOwnerIdentification = >::IdentificationTuple; - type HandleEquivocation = (); - // TODO: update me (https://github.com/paritytech/parity-bridges-common/issues/78) - type WeightInfo = (); - type MaxAuthorities = MaxAuthorities; -} - -type MmrHash = ::Output; - -impl pallet_mmr::Config for Runtime { - const INDEXING_PREFIX: &'static [u8] = b"mmr"; - type Hashing = Keccak256; - type Hash = MmrHash; - type OnNewRoot = pallet_beefy_mmr::DepositBeefyDigest; - type WeightInfo = (); - type LeafData = pallet_beefy_mmr::Pallet; -} - -parameter_types! { - /// Version of the produced MMR leaf. - /// - /// The version consists of two parts; - /// - `major` (3 bits) - /// - `minor` (5 bits) - /// - /// `major` should be updated only if decoding the previous MMR Leaf format from the payload - /// is not possible (i.e. backward incompatible change). - /// `minor` should be updated if fields are added to the previous MMR Leaf, which given SCALE - /// encoding does not prevent old leafs from being decoded. - /// - /// Hence we expect `major` to be changed really rarely (think never). - /// See [`MmrLeafVersion`] type documentation for more details. - pub LeafVersion: MmrLeafVersion = MmrLeafVersion::new(0, 0); -} - -impl pallet_beefy_mmr::Config for Runtime { - type LeafVersion = LeafVersion; - type BeefyAuthorityToMerkleLeaf = pallet_beefy_mmr::BeefyEcdsaToEthereum; - type BeefyDataProvider = (); -} - -parameter_types! { - pub const MinimumPeriod: u64 = bp_millau::SLOT_DURATION / 2; -} - -impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the UNIX epoch. - type Moment = u64; - type OnTimestampSet = Aura; - type MinimumPeriod = MinimumPeriod; - // TODO: update me (https://github.com/paritytech/parity-bridges-common/issues/78) - type WeightInfo = (); -} - -parameter_types! { - pub const ExistentialDeposit: bp_millau::Balance = 500; - // For weight estimation, we assume that the most locks on an individual account will be 50. - // This number may need to be adjusted in the future if this assumption no longer holds true. - pub const MaxLocks: u32 = 50; - pub const MaxReserves: u32 = 50; -} - -impl pallet_balances::Config for Runtime { - /// The type for recording an account's balance. - type Balance = Balance; - /// The ubiquitous event type. - type Event = Event; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - // TODO: update me (https://github.com/paritytech/parity-bridges-common/issues/78) - type WeightInfo = (); - type MaxLocks = MaxLocks; - type MaxReserves = MaxReserves; - type ReserveIdentifier = [u8; 8]; -} - -parameter_types! { - pub const TransactionBaseFee: Balance = 0; - pub const TransactionByteFee: Balance = 1; - pub const OperationalFeeMultiplier: u8 = 5; - // values for following parameters are copied from polkadot repo, but it is fine - // not to sync them - we're not going to make Rialto a full copy of one of Polkadot-like chains - pub const TargetBlockFullness: Perquintill = Perquintill::from_percent(25); - pub AdjustmentVariable: Multiplier = Multiplier::saturating_from_rational(3, 100_000); - pub MinimumMultiplier: Multiplier = Multiplier::saturating_from_rational(1, 1_000_000u128); -} - -impl pallet_transaction_payment::Config for Runtime { - type Event = Event; - type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; - type TransactionByteFee = TransactionByteFee; - type OperationalFeeMultiplier = OperationalFeeMultiplier; - type WeightToFee = bp_millau::WeightToFee; - type FeeMultiplierUpdate = pallet_transaction_payment::TargetedFeeAdjustment< - Runtime, - TargetBlockFullness, - AdjustmentVariable, - MinimumMultiplier, - >; -} - -impl pallet_sudo::Config for Runtime { - type Event = Event; - type Call = Call; -} - -parameter_types! { - /// Authorities are changing every 5 minutes. - pub const Period: BlockNumber = bp_millau::SESSION_LENGTH; - pub const Offset: BlockNumber = 0; -} - -impl pallet_session::Config for Runtime { - type Event = Event; - type ValidatorId = ::AccountId; - type ValidatorIdOf = (); - type ShouldEndSession = pallet_session::PeriodicSessions; - type NextSessionRotation = pallet_session::PeriodicSessions; - type SessionManager = pallet_shift_session_manager::Pallet; - type SessionHandler = ::KeyTypeIdProviders; - type Keys = SessionKeys; - // TODO: update me (https://github.com/paritytech/parity-bridges-common/issues/78) - type WeightInfo = (); -} - -parameter_types! { - // This is a pretty unscientific cap. - // - // Note that once this is hit the pallet will essentially throttle incoming requests down to one - // call per block. - pub const MaxRequests: u32 = 50; -} - -#[cfg(feature = "runtime-benchmarks")] -parameter_types! { - /// Number of headers to keep in benchmarks. - /// - /// In benchmarks we always populate with full number of `HeadersToKeep` to make sure that - /// pruning is taken into account. - /// - /// Note: This is lower than regular value, to speed up benchmarking setup. - pub const HeadersToKeep: u32 = 1024; -} - -#[cfg(not(feature = "runtime-benchmarks"))] -parameter_types! { - /// Number of headers to keep. - /// - /// Assuming the worst case of every header being finalized, we will keep headers at least for a - /// week. - pub const HeadersToKeep: u32 = 7 * bp_rialto::DAYS as u32; -} - -pub type RialtoGrandpaInstance = (); -impl pallet_bridge_grandpa::Config for Runtime { - type BridgedChain = bp_rialto::Rialto; - type MaxRequests = MaxRequests; - type HeadersToKeep = HeadersToKeep; - - type WeightInfo = pallet_bridge_grandpa::weights::MillauWeight; -} - -pub type WestendGrandpaInstance = pallet_bridge_grandpa::Instance1; -impl pallet_bridge_grandpa::Config for Runtime { - type BridgedChain = bp_westend::Westend; - type MaxRequests = MaxRequests; - type HeadersToKeep = HeadersToKeep; - - type WeightInfo = pallet_bridge_grandpa::weights::MillauWeight; -} - -impl pallet_shift_session_manager::Config for Runtime {} - -parameter_types! { - pub const MaxMessagesToPruneAtOnce: bp_messages::MessageNonce = 8; - pub const MaxUnrewardedRelayerEntriesAtInboundLane: bp_messages::MessageNonce = - bp_rialto::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX; - pub const MaxUnconfirmedMessagesAtInboundLane: bp_messages::MessageNonce = - bp_rialto::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX; - // `IdentityFee` is used by Millau => we may use weight directly - pub const GetDeliveryConfirmationTransactionFee: Balance = - bp_millau::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT as _; - pub const RootAccountForPayments: Option = None; - pub const RialtoChainId: bp_runtime::ChainId = bp_runtime::RIALTO_CHAIN_ID; -} - -/// Instance of the messages pallet used to relay messages to/from Rialto chain. -pub type WithRialtoMessagesInstance = (); - -impl pallet_bridge_messages::Config for Runtime { - type Event = Event; - type WeightInfo = pallet_bridge_messages::weights::MillauWeight; - type Parameter = rialto_messages::MillauToRialtoMessagesParameter; - type MaxMessagesToPruneAtOnce = MaxMessagesToPruneAtOnce; - type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane; - type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane; - - type OutboundPayload = crate::rialto_messages::ToRialtoMessagePayload; - type OutboundMessageFee = Balance; - - type InboundPayload = crate::rialto_messages::FromRialtoMessagePayload; - type InboundMessageFee = bp_rialto::Balance; - type InboundRelayer = bp_rialto::AccountId; - - type AccountIdConverter = bp_millau::AccountIdConverter; - - type TargetHeaderChain = crate::rialto_messages::Rialto; - type LaneMessageVerifier = crate::rialto_messages::ToRialtoMessageVerifier; - type MessageDeliveryAndDispatchPayment = - pallet_bridge_messages::instant_payments::InstantCurrencyPayments< - Runtime, - WithRialtoMessagesInstance, - pallet_balances::Pallet, - GetDeliveryConfirmationTransactionFee, - >; - type OnMessageAccepted = (); - type OnDeliveryConfirmed = - pallet_bridge_token_swap::Pallet; - - type SourceHeaderChain = crate::rialto_messages::Rialto; - type MessageDispatch = crate::rialto_messages::FromRialtoMessageDispatch; - type BridgedChainId = RialtoChainId; -} - -parameter_types! { - pub const TokenSwapMessagesLane: bp_messages::LaneId = *b"swap"; -} - -/// Instance of the with-Rialto token swap pallet. -pub type WithRialtoTokenSwapInstance = (); - -impl pallet_bridge_token_swap::Config for Runtime { - type Event = Event; - type WeightInfo = (); - - type BridgedChainId = RialtoChainId; - type OutboundMessageLaneId = TokenSwapMessagesLane; - #[cfg(not(feature = "runtime-benchmarks"))] - type MessagesBridge = pallet_bridge_messages::Pallet; - #[cfg(feature = "runtime-benchmarks")] - type MessagesBridge = bp_messages::source_chain::NoopMessagesBridge; - type ThisCurrency = pallet_balances::Pallet; - type FromSwapToThisAccountIdConverter = bp_rialto::AccountIdConverter; - - type BridgedChain = bp_rialto::Rialto; - type FromBridgedToThisAccountIdConverter = bp_millau::AccountIdConverter; -} - -construct_runtime!( - pub enum Runtime where - Block = Block, - NodeBlock = opaque::Block, - UncheckedExtrinsic = UncheckedExtrinsic - { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event}, - - // Must be before session. - Aura: pallet_aura::{Pallet, Config}, - - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event}, - - // Consensus support. - Session: pallet_session::{Pallet, Call, Storage, Event, Config}, - Grandpa: pallet_grandpa::{Pallet, Call, Storage, Config, Event}, - ShiftSessionManager: pallet_shift_session_manager::{Pallet}, - RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage}, - - // BEEFY Bridges support. - Beefy: pallet_beefy::{Pallet, Storage, Config}, - Mmr: pallet_mmr::{Pallet, Storage}, - MmrLeaf: pallet_beefy_mmr::{Pallet, Storage}, - - // Rialto bridge modules. - BridgeRialtoGrandpa: pallet_bridge_grandpa::{Pallet, Call, Storage}, - BridgeDispatch: pallet_bridge_dispatch::{Pallet, Event}, - BridgeRialtoMessages: pallet_bridge_messages::{Pallet, Call, Storage, Event, Config}, - BridgeRialtoTokenSwap: pallet_bridge_token_swap::{Pallet, Call, Storage, Event, Origin}, - - // Westend bridge modules. - BridgeWestendGrandpa: pallet_bridge_grandpa::::{Pallet, Call, Config, Storage}, - } -); - -/// The address format for describing accounts. -pub type Address = AccountId; -/// Block header type as expected by this runtime. -pub type Header = generic::Header; -/// Block type as expected by this runtime. -pub type Block = generic::Block; -/// A Block signed with a Justification -pub type SignedBlock = generic::SignedBlock; -/// `BlockId` type as expected by this runtime. -pub type BlockId = generic::BlockId; -/// The `SignedExtension` to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckNonZeroSender, - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, -); -/// The payload being signed in transactions. -pub type SignedPayload = generic::SignedPayload; -/// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; -/// Extrinsic type that has already been checked. -pub type CheckedExtrinsic = generic::CheckedExtrinsic; -/// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive< - Runtime, - Block, - frame_system::ChainContext, - Runtime, - AllPalletsWithSystem, ->; - -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - -#[cfg(feature = "runtime-benchmarks")] -mod benches { - define_benchmarks!( - [pallet_bridge_token_swap, BridgeRialtoTokenSwap] - ); -} -type MmrHashing = ::Hashing; - -impl_runtime_apis! { - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block); - } - - fn initialize_block(header: &::Header) { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - OpaqueMetadata::new(Runtime::metadata().into()) - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Index { - System::account_nonce(account) - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - block_hash: ::Hash, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx, block_hash) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) - } - - fn authorities() -> Vec { - Aura::authorities().to_vec() - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi< - Block, - Balance, - > for Runtime { - fn query_info(uxt: ::Extrinsic, len: u32) -> RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details(uxt: ::Extrinsic, len: u32) -> FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - } - - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) - } - - fn decode_session_keys( - encoded: Vec, - ) -> Option, sp_core::crypto::KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - } - - impl beefy_primitives::BeefyApi for Runtime { - fn validator_set() -> Option> { - Beefy::validator_set() - } - } - - impl sp_mmr_primitives::MmrApi for Runtime { - fn generate_proof(leaf_index: MmrLeafIndex) - -> Result<(EncodableOpaqueLeaf, MmrProof), MmrError> - { - Mmr::generate_batch_proof(vec![leaf_index]) - .and_then(|(leaves, proof)| Ok(( - EncodableOpaqueLeaf::from_leaf(&leaves[0]), - MmrBatchProof::into_single_leaf_proof(proof)? - ))) - - } - - fn verify_proof(leaf: EncodableOpaqueLeaf, proof: MmrProof) - -> Result<(), MmrError> - { - - type MmrLeaf = <::LeafData as LeafDataProvider>::LeafData; - let leaf: MmrLeaf = leaf - .into_opaque_leaf() - .try_decode() - .ok_or(MmrError::Verify)?; - Mmr::verify_leaves(vec![leaf], MmrProof::into_batch_proof(proof)) - } - - fn verify_proof_stateless( - root: MmrHash, - leaf: EncodableOpaqueLeaf, - proof: MmrProof - ) -> Result<(), MmrError> { - let node = DataOrHash::Data(leaf.into_opaque_leaf()); - pallet_mmr::verify_leaves_proof::(root, vec![node], MmrProof::into_batch_proof(proof)) - } - - fn generate_batch_proof(leaf_indices: Vec) - -> Result<(Vec, MmrBatchProof), MmrError> - { - Mmr::generate_batch_proof(leaf_indices) - .map(|(leaves, proof)| (leaves.into_iter().map(|leaf| EncodableOpaqueLeaf::from_leaf(&leaf)).collect(), proof)) - } - - fn verify_batch_proof(leaves: Vec, proof: MmrBatchProof) - -> Result<(), MmrError> - { - type MmrLeaf = <::LeafData as LeafDataProvider>::LeafData; - let leaves = leaves.into_iter().map(|leaf| - leaf.into_opaque_leaf() - .try_decode() - .ok_or(MmrError::Verify)).collect::, MmrError>>()?; - Mmr::verify_leaves(leaves, proof) - } - - fn verify_batch_proof_stateless( - root: MmrHash, - leaves: Vec, - proof: MmrBatchProof - ) -> Result<(), MmrError> { - let nodes = leaves.into_iter().map(|leaf|DataOrHash::Data(leaf.into_opaque_leaf())).collect(); - pallet_mmr::verify_leaves_proof::(root, nodes, proof) - } - } - - impl fg_primitives::GrandpaApi for Runtime { - fn current_set_id() -> fg_primitives::SetId { - Grandpa::current_set_id() - } - - fn grandpa_authorities() -> GrandpaAuthorityList { - Grandpa::grandpa_authorities() - } - - fn submit_report_equivocation_unsigned_extrinsic( - equivocation_proof: fg_primitives::EquivocationProof< - ::Hash, - NumberFor, - >, - key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof, - ) -> Option<()> { - let key_owner_proof = key_owner_proof.decode()?; - - Grandpa::submit_unsigned_equivocation_report( - equivocation_proof, - key_owner_proof, - ) - } - - fn generate_key_ownership_proof( - _set_id: fg_primitives::SetId, - _authority_id: GrandpaId, - ) -> Option { - // NOTE: this is the only implementation possible since we've - // defined our key owner proof type as a bottom type (i.e. a type - // with no values). - None - } - } - - impl bp_rialto::RialtoFinalityApi for Runtime { - fn best_finalized() -> (bp_rialto::BlockNumber, bp_rialto::Hash) { - let header = BridgeRialtoGrandpa::best_finalized(); - (header.number, header.hash()) - } - } - - impl bp_westend::WestendFinalityApi for Runtime { - fn best_finalized() -> (bp_westend::BlockNumber, bp_westend::Hash) { - let header = BridgeWestendGrandpa::best_finalized(); - (header.number, header.hash()) - } - } - - impl bp_rialto::ToRialtoOutboundLaneApi for Runtime { - fn estimate_message_delivery_and_dispatch_fee( - _lane_id: bp_messages::LaneId, - payload: ToRialtoMessagePayload, - rialto_to_this_conversion_rate: Option, - ) -> Option { - estimate_message_dispatch_and_delivery_fee::( - &payload, - WithRialtoMessageBridge::RELAYER_FEE_PERCENT, - rialto_to_this_conversion_rate, - ).ok() - } - - fn message_details( - lane: bp_messages::LaneId, - begin: bp_messages::MessageNonce, - end: bp_messages::MessageNonce, - ) -> Vec> { - bridge_runtime_common::messages_api::outbound_message_details::< - Runtime, - WithRialtoMessagesInstance, - WithRialtoMessageBridge, - >(lane, begin, end) - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn benchmark_metadata(extra: bool) -> ( - Vec, - Vec, - ) { - use frame_benchmarking::{Benchmarking, BenchmarkList}; - use frame_support::traits::StorageInfoTrait; - - use pallet_bridge_messages::benchmarking::Pallet as MessagesBench; - - let mut list = Vec::::new(); - - list_benchmark!(list, extra, pallet_bridge_token_swap, BridgeRialtoTokenSwap); - list_benchmark!(list, extra, pallet_bridge_messages, MessagesBench::); - list_benchmark!(list, extra, pallet_bridge_grandpa, BridgeRialtoGrandpa); - - let storage_info = AllPalletsWithSystem::storage_info(); - return (list, storage_info) - } - - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig, - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, TrackedStorageKey}; - - let whitelist: Vec = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), - // Caller 0 Account - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da946c154ffd9992e395af90b5b13cc6f295c77033fce8a9045824a6690bbf99c6db269502f0a8d1d2a008542d5690a0749").to_vec().into(), - ]; - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - - use bridge_runtime_common::messages_benchmarking::{prepare_message_delivery_proof, prepare_message_proof, prepare_outbound_message}; - use bridge_runtime_common::messages; - use pallet_bridge_messages::benchmarking::{ - Pallet as MessagesBench, - Config as MessagesConfig, - MessageDeliveryProofParams, - MessageParams, - MessageProofParams, - }; - use rialto_messages::WithRialtoMessageBridge; - - impl MessagesConfig for Runtime { - fn maximal_message_size() -> u32 { - messages::source::maximal_message_size::() - } - - fn bridged_relayer_id() -> Self::InboundRelayer { - [0u8; 32].into() - } - - fn account_balance(account: &Self::AccountId) -> Self::OutboundMessageFee { - pallet_balances::Pallet::::free_balance(account) - } - - fn endow_account(account: &Self::AccountId) { - pallet_balances::Pallet::::make_free_balance_be( - account, - Balance::MAX / 100, - ); - } - - fn prepare_outbound_message( - params: MessageParams, - ) -> (rialto_messages::ToRialtoMessagePayload, Balance) { - (prepare_outbound_message::(params), Self::message_fee()) - } - - fn prepare_message_proof( - params: MessageProofParams, - ) -> (rialto_messages::FromRialtoMessagesProof, Weight) { - prepare_message_proof::( - params, - &VERSION, - Balance::MAX / 100, - ) - } - - fn prepare_message_delivery_proof( - params: MessageDeliveryProofParams, - ) -> rialto_messages::ToRialtoMessagesDeliveryProof { - prepare_message_delivery_proof::( - params, - ) - } - - fn is_message_dispatched(nonce: bp_messages::MessageNonce) -> bool { - frame_system::Pallet::::events() - .into_iter() - .map(|event_record| event_record.event) - .any(|event| matches!( - event, - Event::BridgeDispatch(pallet_bridge_dispatch::Event::::MessageDispatched( - _, ([0, 0, 0, 0], nonce_from_event), _, - )) if nonce_from_event == nonce - )) - } - } - - use pallet_bridge_token_swap::benchmarking::Config as TokenSwapConfig; - - impl TokenSwapConfig for Runtime { - fn initialize_environment() { - let relayers_fund_account = pallet_bridge_messages::relayer_fund_account_id::< - bp_millau::AccountId, - bp_millau::AccountIdConverter, - >(); - pallet_balances::Pallet::::make_free_balance_be( - &relayers_fund_account, - Balance::MAX / 100, - ); - } - } - - add_benchmark!( - params, - batches, - pallet_bridge_messages, - MessagesBench:: - ); - add_benchmark!(params, batches, pallet_bridge_grandpa, BridgeRialtoGrandpa); - add_benchmark!(params, batches, pallet_bridge_token_swap, BridgeRialtoTokenSwap); - - Ok(batches) - } - } -} - -/// Rialto account ownership digest from Millau. -/// -/// The byte vector returned by this function should be signed with a Rialto account private key. -/// This way, the owner of `millau_account_id` on Millau proves that the Rialto account private key -/// is also under his control. -pub fn millau_to_rialto_account_ownership_digest( - rialto_call: &Call, - millau_account_id: AccountId, - rialto_spec_version: SpecVersion, -) -> sp_std::vec::Vec -where - Call: codec::Encode, - AccountId: codec::Encode, - SpecVersion: codec::Encode, -{ - pallet_bridge_dispatch::account_ownership_digest( - rialto_call, - millau_account_id, - rialto_spec_version, - bp_runtime::MILLAU_CHAIN_ID, - bp_runtime::RIALTO_CHAIN_ID, - ) -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn call_size() { - const BRIDGES_PALLETS_MAX_CALL_SIZE: usize = 200; - assert!( - core::mem::size_of::>() <= - BRIDGES_PALLETS_MAX_CALL_SIZE - ); - assert!( - core::mem::size_of::>() <= - BRIDGES_PALLETS_MAX_CALL_SIZE - ); - const MAX_CALL_SIZE: usize = 230; // value from polkadot-runtime tests - assert!(core::mem::size_of::() <= MAX_CALL_SIZE); - } -} diff --git a/bridges/bin/rialto-parachain/runtime/src/lib.rs b/bridges/bin/rialto-parachain/runtime/src/lib.rs deleted file mode 100644 index 555db03a9c48..000000000000 --- a/bridges/bin/rialto-parachain/runtime/src/lib.rs +++ /dev/null @@ -1,663 +0,0 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Parity Bridges Common. - -// Parity Bridges Common 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. - -// Parity Bridges Common 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 Parity Bridges Common. If not, see . - -//! The Rialto parachain runtime. This can be compiled with `#[no_std]`, ready for Wasm. -//! -//! Originally a copy of runtime from https://github.com/substrate-developer-hub/substrate-parachain-template. - -#![cfg_attr(not(feature = "std"), no_std)] -// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit = "256"] - -// Make the WASM binary available. -#[cfg(feature = "std")] -include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); - -use sp_api::impl_runtime_apis; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; -use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, Block as BlockT}, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, -}; - -use sp_std::prelude::*; -#[cfg(feature = "std")] -use sp_version::NativeVersion; -use sp_version::RuntimeVersion; - -// A few exports that help ease life for downstream crates. -pub use frame_support::{ - construct_runtime, match_types, parameter_types, - traits::{Everything, IsInVec, Randomness}, - weights::{ - constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, - DispatchClass, IdentityFee, Weight, - }, - StorageValue, -}; -pub use frame_system::{Call as SystemCall, EnsureRoot}; -pub use pallet_balances::Call as BalancesCall; -pub use pallet_timestamp::Call as TimestampCall; -pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; -#[cfg(any(feature = "std", test))] -pub use sp_runtime::BuildStorage; -pub use sp_runtime::{MultiAddress, Perbill, Permill}; - -pub use bp_rialto_parachain::{ - AccountId, Balance, BlockLength, BlockNumber, BlockWeights, Hash, Hasher as Hashing, Header, - Index, Signature, MAXIMUM_BLOCK_WEIGHT, -}; - -// Polkadot & XCM imports -use pallet_xcm::XcmPassthrough; -use polkadot_parachain::primitives::Sibling; -use xcm::latest::prelude::*; -use xcm_builder::{ - AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, - EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, - ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, -}; -use xcm_executor::{Config, XcmExecutor}; - -/// The address format for describing accounts. -pub type Address = MultiAddress; -/// Block type as expected by this runtime. -pub type Block = generic::Block; -/// A Block signed with a Justification -pub type SignedBlock = generic::SignedBlock; -/// BlockId type as expected by this runtime. -pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckNonZeroSender, - frame_system::CheckSpecVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, -); -/// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; -/// Extrinsic type that has already been checked. -pub type CheckedExtrinsic = generic::CheckedExtrinsic; -/// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive< - Runtime, - Block, - frame_system::ChainContext, - Runtime, - AllPalletsWithSystem, ->; - -impl_opaque_keys! { - pub struct SessionKeys { - pub aura: Aura, - } -} - -/// This runtime version. -#[sp_version::runtime_version] -pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("template-parachain"), - impl_name: create_runtime_str!("template-parachain"), - authoring_version: 1, - spec_version: 1, - impl_version: 0, - apis: RUNTIME_API_VERSIONS, - transaction_version: 1, - state_version: 0, -}; - -/// This determines the average expected block time that we are targeting. -/// Blocks will be produced at a minimum duration defined by `SLOT_DURATION`. -/// `SLOT_DURATION` is picked up by `pallet_timestamp` which is in turn picked -/// up by `pallet_aura` to implement `fn slot_duration()`. -/// -/// Change this to adjust the block time. -pub const MILLISECS_PER_BLOCK: u64 = 12000; - -pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; - -pub const EPOCH_DURATION_IN_BLOCKS: u32 = 10 * MINUTES; - -// Time is measured by number of blocks. -pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); -pub const HOURS: BlockNumber = MINUTES * 60; -pub const DAYS: BlockNumber = HOURS * 24; - -// Unit = the base number of indivisible units for balances -pub const UNIT: Balance = 1_000_000_000_000; -pub const MILLIUNIT: Balance = 1_000_000_000; -pub const MICROUNIT: Balance = 1_000_000; - -// 1 in 4 blocks (on average, not counting collisions) will be primary babe blocks. -pub const PRIMARY_PROBABILITY: (u64, u64) = (1, 4); - -/// The version information used to identify this runtime when compiled natively. -#[cfg(feature = "std")] -pub fn native_version() -> NativeVersion { - NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } -} - -parameter_types! { - pub const BlockHashCount: BlockNumber = 250; - pub const Version: RuntimeVersion = VERSION; - pub const SS58Prefix: u8 = 48; -} - -// Configure FRAME pallets to include in runtime. - -impl frame_system::Config for Runtime { - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type Call = Call; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = AccountIdLookup; - /// The index type for storing how many extrinsics an account has signed. - type Index = Index; - /// The index type for blocks. - type BlockNumber = BlockNumber; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = Hashing; - /// The header type. - type Header = generic::Header; - /// The ubiquitous event type. - type Event = Event; - /// The ubiquitous origin type. - type Origin = Origin; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// Runtime version. - type Version = Version; - /// Converts a module to an index of this module in the runtime. - type PalletInfo = PalletInfo; - type AccountData = pallet_balances::AccountData; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// The weight of database operations that the runtime can invoke. - type DbWeight = (); - /// The basic call filter to use in dispatchable. - type BaseCallFilter = Everything; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); - /// Block & extrinsics weights: base values and limits. - type BlockWeights = BlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = BlockLength; - /// This is used as an identifier of the chain. 42 is the generic substrate prefix. - type SS58Prefix = SS58Prefix; - /// The action to take on a Runtime Upgrade - type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -parameter_types! { - pub const MinimumPeriod: u64 = SLOT_DURATION / 2; -} - -impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the Unix epoch. - type Moment = u64; - type OnTimestampSet = (); - type MinimumPeriod = MinimumPeriod; - type WeightInfo = (); -} - -parameter_types! { - pub const ExistentialDeposit: u128 = MILLIUNIT; - pub const TransferFee: u128 = MILLIUNIT; - pub const CreationFee: u128 = MILLIUNIT; - pub const TransactionByteFee: u128 = MICROUNIT; - pub const OperationalFeeMultiplier: u8 = 5; - pub const MaxLocks: u32 = 50; - pub const MaxReserves: u32 = 50; -} - -impl pallet_balances::Config for Runtime { - /// The type for recording an account's balance. - type Balance = Balance; - /// The ubiquitous event type. - type Event = Event; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = pallet_balances::weights::SubstrateWeight; - type MaxLocks = MaxLocks; - type MaxReserves = MaxReserves; - type ReserveIdentifier = [u8; 8]; -} - -impl pallet_transaction_payment::Config for Runtime { - type Event = Event; - type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; - type TransactionByteFee = TransactionByteFee; - type OperationalFeeMultiplier = OperationalFeeMultiplier; - type WeightToFee = IdentityFee; - type FeeMultiplierUpdate = (); -} - -impl pallet_sudo::Config for Runtime { - type Call = Call; - type Event = Event; -} - -parameter_types! { - pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4; - pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4; -} - -impl cumulus_pallet_parachain_system::Config for Runtime { - type Event = Event; - type OnSystemEvent = (); - type SelfParaId = parachain_info::Pallet; - type OutboundXcmpMessageSource = XcmpQueue; - type DmpMessageHandler = DmpQueue; - type ReservedDmpWeight = ReservedDmpWeight; - type XcmpMessageHandler = XcmpQueue; - type ReservedXcmpWeight = ReservedXcmpWeight; -} - -impl parachain_info::Config for Runtime {} - -impl cumulus_pallet_aura_ext::Config for Runtime {} - -impl pallet_randomness_collective_flip::Config for Runtime {} - -parameter_types! { - pub const RelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Polkadot; - pub RelayOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); -} - -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used -/// when determining ownership of accounts for asset transacting and when attempting to use XCM -/// `Transact` in order to determine the dispatch Origin. -pub type LocationToAccountId = ( - // The parent (Relay-chain) origin converts to the default `AccountId`. - ParentIsPreset, - // Sibling parachain origins convert to AccountId via the `ParaId::into`. - SiblingParachainConvertsVia, - // Straight up local `AccountId32` origins just alias directly to `AccountId`. - AccountId32Aliases, -); - -/// Means for transacting assets on this chain. -pub type LocalAssetTransactor = CurrencyAdapter< - // Use this currency: - Balances, - // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, - // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We don't track any teleports. - (), ->; - -/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, -/// ready for dispatching a transaction with XCM `Transact`. There is an `OriginKind` which can -/// biases the kind of local `Origin` it will become. -pub type XcmOriginToTransactDispatchOrigin = ( - // Sovereign account converter; this attempts to derive an `AccountId` from the origin location - // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for - // foreign chains who want to have a local sovereign account on this chain which they control. - SovereignSignedViaLocation, - // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when - // recognised. - RelayChainAsNative, - // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when - // recognised. - SiblingParachainAsNative, - // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a - // transaction from the Root origin. - ParentAsSuperuser, - // Native signed account converter; this just converts an `AccountId32` origin into a normal - // `Origin::Signed` origin of the same 32-byte value. - SignedAccountId32AsNative, - // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. - XcmPassthrough, -); - -parameter_types! { - // One XCM operation is 1_000_000 weight - almost certainly a conservative estimate. - pub UnitWeightCost: Weight = 1_000_000; - // One UNIT buys 1 second of weight. - pub const WeightPrice: (MultiLocation, u128) = (MultiLocation::parent(), UNIT); - pub const MaxInstructions: u32 = 100; - pub const MaxAuthorities: u32 = 100_000; -} - -match_types! { - pub type ParentOrParentsUnitPlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Unit, .. }) } - }; -} - -pub type Barrier = ( - TakeWeightCredit, - AllowTopLevelPaidExecutionFrom, - AllowUnpaidExecutionFrom, - // ^^^ Parent & its unit plurality gets free execution -); - -pub struct XcmConfig; -impl Config for XcmConfig { - type Call = Call; - type XcmSender = XcmRouter; - // How to withdraw and deposit an asset. - type AssetTransactor = LocalAssetTransactor; - type OriginConverter = XcmOriginToTransactDispatchOrigin; - type IsReserve = NativeAsset; - type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of UNIT - type LocationInverter = LocationInverter; - type Barrier = Barrier; - type Weigher = FixedWeightBounds; - type Trader = UsingComponents, RelayLocation, AccountId, Balances, ()>; - type ResponseHandler = PolkadotXcm; - type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; - type SubscriptionService = PolkadotXcm; -} - -/// No local origins on this chain are allowed to dispatch XCM sends/executions. -pub type LocalOriginToLocation = SignedToAccountId32; - -/// The means for routing XCM messages which are not for local execution into the right message -/// queues. -pub type XcmRouter = ( - // Two routers - use UMP to communicate with the relay chain: - cumulus_primitives_utility::ParentAsUmp, - // ..and XCMP to communicate with the sibling chains. - XcmpQueue, -); - -impl pallet_xcm::Config for Runtime { - type Event = Event; - type SendXcmOrigin = EnsureXcmOrigin; - type XcmRouter = XcmRouter; - type ExecuteXcmOrigin = EnsureXcmOrigin; - type XcmExecuteFilter = Everything; - type XcmExecutor = XcmExecutor; - type XcmTeleportFilter = Everything; - type XcmReserveTransferFilter = Everything; - type Weigher = FixedWeightBounds; - type LocationInverter = LocationInverter; - type Origin = Origin; - type Call = Call; - const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; - type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; -} - -impl cumulus_pallet_xcm::Config for Runtime { - type Event = Event; - type XcmExecutor = XcmExecutor; -} - -impl cumulus_pallet_xcmp_queue::Config for Runtime { - type Event = Event; - type XcmExecutor = XcmExecutor; - type ChannelInfo = ParachainSystem; - type VersionWrapper = (); - type ExecuteOverweightOrigin = EnsureRoot; - type ControllerOrigin = EnsureRoot; - type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; - type WeightInfo = (); -} - -impl cumulus_pallet_dmp_queue::Config for Runtime { - type Event = Event; - type XcmExecutor = XcmExecutor; - type ExecuteOverweightOrigin = frame_system::EnsureRoot; -} - -impl pallet_aura::Config for Runtime { - type AuthorityId = AuraId; - type DisabledValidators = (); - type MaxAuthorities = MaxAuthorities; -} - -// /// Configure the pallet template in pallets/template. -// impl template::Config for Runtime { -// type Event = Event; -// } - -// Create the runtime by composing the FRAME pallets that were previously configured. -construct_runtime!( - pub enum Runtime where - Block = Block, - NodeBlock = generic::Block, - UncheckedExtrinsic = UncheckedExtrinsic, - { - System: frame_system::{Pallet, Call, Storage, Config, Event}, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, - Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event}, - RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage}, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event}, - - ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event} = 20, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21, - - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 30, - - Aura: pallet_aura::{Pallet, Config}, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Config}, - - // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 50, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin} = 51, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event, Origin} = 52, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 53, - - // //Template - // TemplatePallet: template::{Pallet, Call, Storage, Event}, - } -); - -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - -#[cfg(feature = "runtime-benchmarks")] -mod benches { - define_benchmarks!( - [frame_system, SystemBench::] - [pallet_balances, Balances] - [pallet_timestamp, Timestamp] - ); -} - -impl_runtime_apis! { - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - OpaqueMetadata::new(Runtime::metadata().into()) - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic( - extrinsic: ::Extrinsic, - ) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - block_hash: ::Hash, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx, block_hash) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_session::SessionKeys for Runtime { - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) - } - } - - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) - } - - fn authorities() -> Vec { - Aura::authorities().to_vec() - } - } - - impl cumulus_primitives_core::CollectCollationInfo for Runtime { - fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { - ParachainSystem::collect_collation_info(header) - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Index { - System::account_nonce(account) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { - fn query_info( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, TrackedStorageKey}; - - use frame_system_benchmarking::Pallet as SystemBench; - impl frame_system_benchmarking::Config for Runtime {} - - let whitelist: Vec = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), - // Total Issuance - hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), - ]; - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - add_benchmarks!(params, batches); - - Ok(batches) - } - } -} - -struct CheckInherents; - -impl cumulus_pallet_parachain_system::CheckInherents for CheckInherents { - fn check_inherents( - block: &Block, - relay_state_proof: &cumulus_pallet_parachain_system::RelayChainStateProof, - ) -> sp_inherents::CheckInherentsResult { - let relay_chain_slot = relay_state_proof - .read_slot() - .expect("Could not read the relay chain slot from the proof"); - - let inherent_data = - cumulus_primitives_timestamp::InherentDataProvider::from_relay_chain_slot_and_duration( - relay_chain_slot, - sp_std::time::Duration::from_secs(6), - ) - .create_inherent_data() - .expect("Could not create the timestamp inherent data"); - - inherent_data.check_extrinsics(block) - } -} - -cumulus_pallet_parachain_system::register_validate_block!( - Runtime = Runtime, - BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, - CheckInherents = CheckInherents, -); diff --git a/bridges/bin/rialto/runtime/src/lib.rs b/bridges/bin/rialto/runtime/src/lib.rs deleted file mode 100644 index 14d8c857f7bb..000000000000 --- a/bridges/bin/rialto/runtime/src/lib.rs +++ /dev/null @@ -1,998 +0,0 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Parity Bridges Common. - -// Parity Bridges Common 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. - -// Parity Bridges Common 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 Parity Bridges Common. If not, see . - -//! The Rialto runtime. This can be compiled with `#[no_std]`, ready for Wasm. - -#![cfg_attr(not(feature = "std"), no_std)] -// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit = "256"] -// Runtime-generated enums -#![allow(clippy::large_enum_variant)] -// From construct_runtime macro -#![allow(clippy::from_over_into)] - -// Make the WASM binary available. -#[cfg(feature = "std")] -include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); - -pub mod millau_messages; -pub mod parachains; - -use crate::millau_messages::{ToMillauMessagePayload, WithMillauMessageBridge}; - -use beefy_primitives::{crypto::AuthorityId as BeefyId, mmr::{MmrLeafVersion}, ValidatorSet}; -use bridge_runtime_common::messages::{ - source::estimate_message_dispatch_and_delivery_fee, MessageBridge, -}; -use pallet_grandpa::{ - fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList, -}; -use sp_mmr_primitives::{ - DataOrHash, EncodableOpaqueLeaf, Error as MmrError, LeafDataProvider, - BatchProof as MmrBatchProof, Proof as MmrProof, LeafIndex as MmrLeafIndex -}; -use pallet_transaction_payment::{FeeDetails, Multiplier, RuntimeDispatchInfo}; -use sp_api::impl_runtime_apis; -use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; -use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, Block as BlockT, Keccak256, NumberFor, OpaqueKeys}, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, FixedPointNumber, FixedU128, MultiSignature, MultiSigner, Perquintill, -}; -use sp_std::{collections::btree_map::BTreeMap, prelude::*}; -#[cfg(feature = "std")] -use sp_version::NativeVersion; -use sp_version::RuntimeVersion; - -// A few exports that help ease life for downstream crates. -pub use frame_support::{ - construct_runtime, parameter_types, - traits::{Currency, ExistenceRequirement, Imbalance, KeyOwnerProofSystem}, - weights::{constants::WEIGHT_PER_SECOND, DispatchClass, IdentityFee, RuntimeDbWeight, Weight}, - StorageValue, -}; - -pub use frame_system::Call as SystemCall; -pub use pallet_balances::Call as BalancesCall; -pub use pallet_bridge_grandpa::Call as BridgeGrandpaMillauCall; -pub use pallet_bridge_messages::Call as MessagesCall; -pub use pallet_sudo::Call as SudoCall; -pub use pallet_timestamp::Call as TimestampCall; - -#[cfg(any(feature = "std", test))] -pub use sp_runtime::BuildStorage; -pub use sp_runtime::{Perbill, Permill}; - -/// An index to a block. -pub type BlockNumber = bp_rialto::BlockNumber; - -/// Alias to 512-bit hash when used in the context of a transaction signature on the chain. -pub type Signature = bp_rialto::Signature; - -/// Some way of identifying an account on the chain. We intentionally make it equivalent -/// to the public key of our transaction signing scheme. -pub type AccountId = bp_rialto::AccountId; - -/// The type for looking up accounts. We don't expect more than 4 billion of them, but you -/// never know... -pub type AccountIndex = u32; - -/// Balance of an account. -pub type Balance = bp_rialto::Balance; - -/// Index of a transaction in the chain. -pub type Index = bp_rialto::Index; - -/// A hash of some data used by the chain. -pub type Hash = bp_rialto::Hash; - -/// Hashing algorithm used by the chain. -pub type Hashing = bp_rialto::Hasher; - -/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know -/// the specifics of the runtime. They can then be made to be agnostic over specific formats -/// of data like extrinsics, allowing for them to continue syncing the network through upgrades -/// to even the core data structures. -pub mod opaque { - use super::*; - - pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; - - /// Opaque block header type. - pub type Header = generic::Header; - /// Opaque block type. - pub type Block = generic::Block; - /// Opaque block identifier type. - pub type BlockId = generic::BlockId; -} - -impl_opaque_keys! { - pub struct SessionKeys { - pub babe: Babe, - pub grandpa: Grandpa, - pub beefy: Beefy, - pub para_validator: Initializer, - pub para_assignment: SessionInfo, - pub authority_discovery: AuthorityDiscovery, - } -} - -/// This runtime version. -pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("rialto-runtime"), - impl_name: create_runtime_str!("rialto-runtime"), - authoring_version: 1, - spec_version: 1, - impl_version: 1, - apis: RUNTIME_API_VERSIONS, - transaction_version: 1, - state_version: 1, -}; - -/// The version information used to identify this runtime when compiled natively. -#[cfg(feature = "std")] -pub fn native_version() -> NativeVersion { - NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } -} - -parameter_types! { - pub const BlockHashCount: BlockNumber = 250; - pub const Version: RuntimeVersion = VERSION; - pub const DbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 60_000_000, // ~0.06 ms = ~60 µs - write: 200_000_000, // ~0.2 ms = 200 µs - }; - pub const SS58Prefix: u8 = 48; -} - -impl frame_system::Config for Runtime { - /// The basic call filter to use in dispatchable. - type BaseCallFilter = frame_support::traits::Everything; - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type Call = Call; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = AccountIdLookup; - /// The index type for storing how many extrinsics an account has signed. - type Index = Index; - /// The index type for blocks. - type BlockNumber = BlockNumber; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = Hashing; - /// The header type. - type Header = generic::Header; - /// The ubiquitous event type. - type Event = Event; - /// The ubiquitous origin type. - type Origin = Origin; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// Version of the runtime. - type Version = Version; - /// Provides information about the pallet setup in the runtime. - type PalletInfo = PalletInfo; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// The data to be stored in an account. - type AccountData = pallet_balances::AccountData; - // TODO: update me (https://github.com/paritytech/parity-bridges-common/issues/78) - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); - /// Block and extrinsics weights: base values and limits. - type BlockWeights = bp_rialto::BlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = bp_rialto::BlockLength; - /// The weight of database operations that the runtime can invoke. - type DbWeight = DbWeight; - /// The designated `SS58` prefix of this chain. - type SS58Prefix = SS58Prefix; - /// The set code logic, just the default since we're not a parachain. - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -/// The BABE epoch configuration at genesis. -pub const BABE_GENESIS_EPOCH_CONFIG: sp_consensus_babe::BabeEpochConfiguration = - sp_consensus_babe::BabeEpochConfiguration { - c: bp_rialto::time_units::PRIMARY_PROBABILITY, - allowed_slots: sp_consensus_babe::AllowedSlots::PrimaryAndSecondaryVRFSlots, - }; - -parameter_types! { - pub const EpochDuration: u64 = bp_rialto::EPOCH_DURATION_IN_SLOTS as u64; - pub const ExpectedBlockTime: bp_rialto::Moment = bp_rialto::time_units::MILLISECS_PER_BLOCK; - pub const MaxAuthorities: u32 = 10; -} - -impl pallet_babe::Config for Runtime { - type EpochDuration = EpochDuration; - type ExpectedBlockTime = ExpectedBlockTime; - type MaxAuthorities = MaxAuthorities; - - // session module is the trigger - type EpochChangeTrigger = pallet_babe::ExternalTrigger; - - // equivocation related configuration - we don't expect any equivocations in our testnets - type KeyOwnerProofSystem = (); - type KeyOwnerProof = >::Proof; - type KeyOwnerIdentification = >::IdentificationTuple; - type HandleEquivocation = (); - - type DisabledValidators = (); - type WeightInfo = (); -} - -impl pallet_beefy::Config for Runtime { - type BeefyId = BeefyId; - type MaxAuthorities = MaxAuthorities; -} - -impl pallet_bridge_dispatch::Config for Runtime { - type Event = Event; - type BridgeMessageId = (bp_messages::LaneId, bp_messages::MessageNonce); - type Call = Call; - type CallFilter = frame_support::traits::Everything; - type EncodedCall = crate::millau_messages::FromMillauEncodedCall; - type SourceChainAccountId = bp_millau::AccountId; - type TargetChainAccountPublic = MultiSigner; - type TargetChainSignature = MultiSignature; - type AccountIdConverter = bp_rialto::AccountIdConverter; -} - -impl pallet_grandpa::Config for Runtime { - type Event = Event; - type Call = Call; - type MaxAuthorities = MaxAuthorities; - type KeyOwnerProofSystem = (); - type KeyOwnerProof = - >::Proof; - type KeyOwnerIdentification = >::IdentificationTuple; - type HandleEquivocation = (); - // TODO: update me (https://github.com/paritytech/parity-bridges-common/issues/78) - type WeightInfo = (); - type MaxAuthorities = MaxAuthorities; -} - -type MmrHash = ::Output; - -impl pallet_mmr::Config for Runtime { - const INDEXING_PREFIX: &'static [u8] = b"mmr"; - type Hashing = Keccak256; - type Hash = MmrHash; - type OnNewRoot = pallet_beefy_mmr::DepositBeefyDigest; - type WeightInfo = (); - type LeafData = pallet_beefy_mmr::Pallet; -} - -parameter_types! { - /// Version of the produced MMR leaf. - /// - /// The version consists of two parts; - /// - `major` (3 bits) - /// - `minor` (5 bits) - /// - /// `major` should be updated only if decoding the previous MMR Leaf format from the payload - /// is not possible (i.e. backward incompatible change). - /// `minor` should be updated if fields are added to the previous MMR Leaf, which given SCALE - /// encoding does not prevent old leafs from being decoded. - /// - /// Hence we expect `major` to be changed really rarely (think never). - /// See [`MmrLeafVersion`] type documentation for more details. - pub LeafVersion: MmrLeafVersion = MmrLeafVersion::new(0, 0); -} - -impl pallet_beefy_mmr::Config for Runtime { - type LeafVersion = LeafVersion; - type BeefyAuthorityToMerkleLeaf = pallet_beefy_mmr::BeefyEcdsaToEthereum; - type BeefyDataProvider = (); -} - -parameter_types! { - pub const MinimumPeriod: u64 = bp_rialto::SLOT_DURATION / 2; -} - -impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the UNIX epoch. - type Moment = bp_rialto::Moment; - type OnTimestampSet = Babe; - type MinimumPeriod = MinimumPeriod; - // TODO: update me (https://github.com/paritytech/parity-bridges-common/issues/78) - type WeightInfo = (); -} - -parameter_types! { - pub const ExistentialDeposit: bp_rialto::Balance = 500; - // For weight estimation, we assume that the most locks on an individual account will be 50. - // This number may need to be adjusted in the future if this assumption no longer holds true. - pub const MaxLocks: u32 = 50; - pub const MaxReserves: u32 = 50; -} - -impl pallet_balances::Config for Runtime { - /// The type for recording an account's balance. - type Balance = Balance; - /// The ubiquitous event type. - type Event = Event; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - // TODO: update me (https://github.com/paritytech/parity-bridges-common/issues/78) - type WeightInfo = (); - type MaxLocks = MaxLocks; - type MaxReserves = MaxReserves; - type ReserveIdentifier = [u8; 8]; -} - -parameter_types! { - pub const TransactionBaseFee: Balance = 0; - pub const TransactionByteFee: Balance = 1; - pub const OperationalFeeMultiplier: u8 = 5; - // values for following parameters are copied from polkadot repo, but it is fine - // not to sync them - we're not going to make Rialto a full copy of one of Polkadot-like chains - pub const TargetBlockFullness: Perquintill = Perquintill::from_percent(25); - pub AdjustmentVariable: Multiplier = Multiplier::saturating_from_rational(3, 100_000); - pub MinimumMultiplier: Multiplier = Multiplier::saturating_from_rational(1, 1_000_000u128); -} - -impl pallet_transaction_payment::Config for Runtime { - type Event = Event; - type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; - type TransactionByteFee = TransactionByteFee; - type OperationalFeeMultiplier = OperationalFeeMultiplier; - type WeightToFee = bp_rialto::WeightToFee; - type FeeMultiplierUpdate = pallet_transaction_payment::TargetedFeeAdjustment< - Runtime, - TargetBlockFullness, - AdjustmentVariable, - MinimumMultiplier, - >; -} - -impl pallet_sudo::Config for Runtime { - type Event = Event; - type Call = Call; -} - -impl pallet_session::Config for Runtime { - type Event = Event; - type ValidatorId = ::AccountId; - type ValidatorIdOf = (); - type ShouldEndSession = Babe; - type NextSessionRotation = Babe; - type SessionManager = pallet_shift_session_manager::Pallet; - type SessionHandler = ::KeyTypeIdProviders; - type Keys = SessionKeys; - // TODO: update me (https://github.com/paritytech/parity-bridges-common/issues/78) - type WeightInfo = (); -} - -impl pallet_authority_discovery::Config for Runtime { - type MaxAuthorities = MaxAuthorities; -} - -parameter_types! { - /// This is a pretty unscientific cap. - /// - /// Note that once this is hit the pallet will essentially throttle incoming requests down to one - /// call per block. - pub const MaxRequests: u32 = 50; - - /// Number of headers to keep. - /// - /// Assuming the worst case of every header being finalized, we will keep headers at least for a - /// week. - pub const HeadersToKeep: u32 = 7 * bp_rialto::DAYS as u32; -} - -pub type MillauGrandpaInstance = (); -impl pallet_bridge_grandpa::Config for Runtime { - type BridgedChain = bp_millau::Millau; - type MaxRequests = MaxRequests; - type HeadersToKeep = HeadersToKeep; - type WeightInfo = pallet_bridge_grandpa::weights::MillauWeight; -} - -impl pallet_shift_session_manager::Config for Runtime {} - -parameter_types! { - pub const MaxMessagesToPruneAtOnce: bp_messages::MessageNonce = 8; - pub const MaxUnrewardedRelayerEntriesAtInboundLane: bp_messages::MessageNonce = - bp_millau::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX; - pub const MaxUnconfirmedMessagesAtInboundLane: bp_messages::MessageNonce = - bp_millau::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX; - // `IdentityFee` is used by Rialto => we may use weight directly - pub const GetDeliveryConfirmationTransactionFee: Balance = - bp_rialto::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT as _; - pub const RootAccountForPayments: Option = None; - pub const BridgedChainId: bp_runtime::ChainId = bp_runtime::MILLAU_CHAIN_ID; -} - -/// Instance of the messages pallet used to relay messages to/from Millau chain. -pub type WithMillauMessagesInstance = (); - -impl pallet_bridge_messages::Config for Runtime { - type Event = Event; - type WeightInfo = pallet_bridge_messages::weights::MillauWeight; - type Parameter = millau_messages::RialtoToMillauMessagesParameter; - type MaxMessagesToPruneAtOnce = MaxMessagesToPruneAtOnce; - type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane; - type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane; - - type OutboundPayload = crate::millau_messages::ToMillauMessagePayload; - type OutboundMessageFee = Balance; - - type InboundPayload = crate::millau_messages::FromMillauMessagePayload; - type InboundMessageFee = bp_millau::Balance; - type InboundRelayer = bp_millau::AccountId; - - type AccountIdConverter = bp_rialto::AccountIdConverter; - - type TargetHeaderChain = crate::millau_messages::Millau; - type LaneMessageVerifier = crate::millau_messages::ToMillauMessageVerifier; - type MessageDeliveryAndDispatchPayment = - pallet_bridge_messages::instant_payments::InstantCurrencyPayments< - Runtime, - WithMillauMessagesInstance, - pallet_balances::Pallet, - GetDeliveryConfirmationTransactionFee, - >; - type OnMessageAccepted = (); - type OnDeliveryConfirmed = (); - - type SourceHeaderChain = crate::millau_messages::Millau; - type MessageDispatch = crate::millau_messages::FromMillauMessageDispatch; - type BridgedChainId = BridgedChainId; -} - -construct_runtime!( - pub enum Runtime where - Block = Block, - NodeBlock = opaque::Block, - UncheckedExtrinsic = UncheckedExtrinsic - { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event}, - - // Must be before session. - Babe: pallet_babe::{Pallet, Call, Storage, Config, ValidateUnsigned}, - - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event}, - - // Consensus support. - AuthorityDiscovery: pallet_authority_discovery::{Pallet, Config}, - Session: pallet_session::{Pallet, Call, Storage, Event, Config}, - Grandpa: pallet_grandpa::{Pallet, Call, Storage, Config, Event}, - ShiftSessionManager: pallet_shift_session_manager::{Pallet}, - - // BEEFY Bridges support. - Beefy: pallet_beefy::{Pallet, Storage, Config}, - Mmr: pallet_mmr::{Pallet, Storage}, - MmrLeaf: pallet_beefy_mmr::{Pallet, Storage}, - - // Millau bridge modules. - BridgeMillauGrandpa: pallet_bridge_grandpa::{Pallet, Call, Storage}, - BridgeDispatch: pallet_bridge_dispatch::{Pallet, Event}, - BridgeMillauMessages: pallet_bridge_messages::{Pallet, Call, Storage, Event, Config}, - - // Parachain modules. - ParachainsOrigin: polkadot_runtime_parachains::origin::{Pallet, Origin}, - Configuration: polkadot_runtime_parachains::configuration::{Pallet, Call, Storage, Config}, - Shared: polkadot_runtime_parachains::shared::{Pallet, Call, Storage}, - Inclusion: polkadot_runtime_parachains::inclusion::{Pallet, Call, Storage, Event}, - ParasInherent: polkadot_runtime_parachains::paras_inherent::{Pallet, Call, Storage, Inherent}, - Scheduler: polkadot_runtime_parachains::scheduler::{Pallet, Storage}, - Paras: polkadot_runtime_parachains::paras::{Pallet, Call, Storage, Event, Config}, - Initializer: polkadot_runtime_parachains::initializer::{Pallet, Call, Storage}, - Dmp: polkadot_runtime_parachains::dmp::{Pallet, Call, Storage}, - Ump: polkadot_runtime_parachains::ump::{Pallet, Call, Storage, Event}, - Hrmp: polkadot_runtime_parachains::hrmp::{Pallet, Call, Storage, Event, Config}, - SessionInfo: polkadot_runtime_parachains::session_info::{Pallet, Storage}, - - // Parachain Onboarding Pallets - Registrar: polkadot_runtime_common::paras_registrar::{Pallet, Call, Storage, Event}, - Slots: polkadot_runtime_common::slots::{Pallet, Call, Storage, Event}, - ParasSudoWrapper: polkadot_runtime_common::paras_sudo_wrapper::{Pallet, Call}, - } -); - -/// The address format for describing accounts. -pub type Address = sp_runtime::MultiAddress; -/// Block header type as expected by this runtime. -pub type Header = generic::Header; -/// Block type as expected by this runtime. -pub type Block = generic::Block; -/// A Block signed with a Justification -pub type SignedBlock = generic::SignedBlock; -/// `BlockId` type as expected by this runtime. -pub type BlockId = generic::BlockId; -/// The `SignedExtension` to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckNonZeroSender, - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, -); -/// The payload being signed in transactions. -pub type SignedPayload = generic::SignedPayload; -/// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; -/// Extrinsic type that has already been checked. -pub type CheckedExtrinsic = generic::CheckedExtrinsic; -/// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive< - Runtime, - Block, - frame_system::ChainContext, - Runtime, - AllPalletsWithSystem, ->; - -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - -#[cfg(feature = "runtime-benchmarks")] -mod benches { - define_benchmarks!( - [pallet_bridge_messages, - MessagesBench::] - [pallet_bridge_grandpa, BridgeMillauGrandpa] - ); -} -pub type MmrHashing = ::Hashing; - -impl_runtime_apis! { - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block); - } - - fn initialize_block(header: &::Header) { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - OpaqueMetadata::new(Runtime::metadata().into()) - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Index { - System::account_nonce(account) - } - } - - impl beefy_primitives::BeefyApi for Runtime { - fn validator_set() -> Option> { - Beefy::validator_set() - } - } - - impl sp_mmr_primitives::MmrApi for Runtime { - fn generate_proof(leaf_index: u64) - -> Result<(EncodableOpaqueLeaf, MmrProof), MmrError> - { - Mmr::generate_batch_proof(vec![leaf_index]) - .and_then(|(leaves, proof)| Ok(( - EncodableOpaqueLeaf::from_leaf(&leaves[0]), - MmrBatchProof::into_single_leaf_proof(proof)? - ))) - } - - fn verify_proof(leaf: EncodableOpaqueLeaf, proof: MmrProof) - -> Result<(), MmrError> - { - - pub type MmrLeaf = <::LeafData as LeafDataProvider>::LeafData; - let leaf: MmrLeaf = leaf - .into_opaque_leaf() - .try_decode() - .ok_or(MmrError::Verify)?; - Mmr::verify_leaves(vec![leaf], MmrProof::into_batch_proof(proof)) - } - - fn verify_proof_stateless( - root: Hash, - leaf: EncodableOpaqueLeaf, - proof: MmrProof - ) -> Result<(), MmrError> { - let node = DataOrHash::Data(leaf.into_opaque_leaf()); - pallet_mmr::verify_leaves_proof::(root, vec![node], MmrProof::into_batch_proof(proof)) - } - - fn generate_batch_proof(leaf_indices: Vec) - -> Result<(Vec, MmrBatchProof), MmrError> - { - Mmr::generate_batch_proof(leaf_indices) - .map(|(leaves, proof)| (leaves.into_iter().map(|leaf| EncodableOpaqueLeaf::from_leaf(&leaf)).collect(), proof)) - } - - fn verify_batch_proof(leaves: Vec, proof: MmrBatchProof) - -> Result<(), MmrError> - { - pub type MmrLeaf = <::LeafData as LeafDataProvider>::LeafData; - let leaves = leaves.into_iter().map(|leaf| - leaf.into_opaque_leaf() - .try_decode() - .ok_or(MmrError::Verify)).collect::, MmrError>>()?; - Mmr::verify_leaves(leaves, proof) - } - - fn verify_batch_proof_stateless( - root: Hash, - leaves: Vec, - proof: MmrBatchProof - ) -> Result<(), MmrError> { - let nodes = leaves.into_iter().map(|leaf|DataOrHash::Data(leaf.into_opaque_leaf())).collect(); - pallet_mmr::verify_leaves_proof::(root, nodes, proof) - } - } - - impl bp_millau::MillauFinalityApi for Runtime { - fn best_finalized() -> (bp_millau::BlockNumber, bp_millau::Hash) { - let header = BridgeMillauGrandpa::best_finalized(); - (header.number, header.hash()) - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - block_hash: ::Hash, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx, block_hash) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_consensus_babe::BabeApi for Runtime { - fn configuration() -> sp_consensus_babe::BabeGenesisConfiguration { - // The choice of `c` parameter (where `1 - c` represents the - // probability of a slot being empty), is done in accordance to the - // slot duration and expected target block time, for safely - // resisting network delays of maximum two seconds. - // - sp_consensus_babe::BabeGenesisConfiguration { - slot_duration: Babe::slot_duration(), - epoch_length: EpochDuration::get(), - c: BABE_GENESIS_EPOCH_CONFIG.c, - genesis_authorities: Babe::authorities().to_vec(), - randomness: Babe::randomness(), - allowed_slots: BABE_GENESIS_EPOCH_CONFIG.allowed_slots, - } - } - - fn current_epoch_start() -> sp_consensus_babe::Slot { - Babe::current_epoch_start() - } - - fn current_epoch() -> sp_consensus_babe::Epoch { - Babe::current_epoch() - } - - fn next_epoch() -> sp_consensus_babe::Epoch { - Babe::next_epoch() - } - - fn generate_key_ownership_proof( - _slot: sp_consensus_babe::Slot, - _authority_id: sp_consensus_babe::AuthorityId, - ) -> Option { - None - } - - fn submit_report_equivocation_unsigned_extrinsic( - equivocation_proof: sp_consensus_babe::EquivocationProof<::Header>, - key_owner_proof: sp_consensus_babe::OpaqueKeyOwnershipProof, - ) -> Option<()> { - let key_owner_proof = key_owner_proof.decode()?; - - Babe::submit_unsigned_equivocation_report( - equivocation_proof, - key_owner_proof, - ) - } - } - - impl polkadot_primitives::runtime_api::ParachainHost for Runtime { - fn validators() -> Vec { - polkadot_runtime_parachains::runtime_api_impl::v2::validators::() - } - - fn validator_groups() -> (Vec>, polkadot_primitives::v2::GroupRotationInfo) { - polkadot_runtime_parachains::runtime_api_impl::v2::validator_groups::() - } - - fn availability_cores() -> Vec> { - polkadot_runtime_parachains::runtime_api_impl::v2::availability_cores::() - } - - fn persisted_validation_data(para_id: polkadot_primitives::v2::Id, assumption: polkadot_primitives::v2::OccupiedCoreAssumption) - -> Option> { - polkadot_runtime_parachains::runtime_api_impl::v2::persisted_validation_data::(para_id, assumption) - } - - fn assumed_validation_data( - para_id: polkadot_primitives::v2::Id, - expected_persisted_validation_data_hash: Hash, - ) -> Option<(polkadot_primitives::v2::PersistedValidationData, polkadot_primitives::v2::ValidationCodeHash)> { - polkadot_runtime_parachains::runtime_api_impl::v2::assumed_validation_data::( - para_id, - expected_persisted_validation_data_hash, - ) - } - - fn check_validation_outputs( - para_id: polkadot_primitives::v2::Id, - outputs: polkadot_primitives::v2::CandidateCommitments, - ) -> bool { - polkadot_runtime_parachains::runtime_api_impl::v2::check_validation_outputs::(para_id, outputs) - } - - fn session_index_for_child() -> polkadot_primitives::v2::SessionIndex { - polkadot_runtime_parachains::runtime_api_impl::v2::session_index_for_child::() - } - - fn validation_code(para_id: polkadot_primitives::v2::Id, assumption: polkadot_primitives::v2::OccupiedCoreAssumption) - -> Option { - polkadot_runtime_parachains::runtime_api_impl::v2::validation_code::(para_id, assumption) - } - - fn candidate_pending_availability(para_id: polkadot_primitives::v2::Id) -> Option> { - polkadot_runtime_parachains::runtime_api_impl::v2::candidate_pending_availability::(para_id) - } - - fn candidate_events() -> Vec> { - polkadot_runtime_parachains::runtime_api_impl::v2::candidate_events::(|ev| { - match ev { - Event::Inclusion(ev) => { - Some(ev) - } - _ => None, - } - }) - } - - fn session_info(index: polkadot_primitives::v2::SessionIndex) -> Option { - polkadot_runtime_parachains::runtime_api_impl::v2::session_info::(index) - } - - fn dmq_contents(recipient: polkadot_primitives::v2::Id) -> Vec> { - polkadot_runtime_parachains::runtime_api_impl::v2::dmq_contents::(recipient) - } - - fn inbound_hrmp_channels_contents( - recipient: polkadot_primitives::v2::Id - ) -> BTreeMap>> { - polkadot_runtime_parachains::runtime_api_impl::v2::inbound_hrmp_channels_contents::(recipient) - } - - fn validation_code_by_hash(hash: polkadot_primitives::v2::ValidationCodeHash) -> Option { - polkadot_runtime_parachains::runtime_api_impl::v2::validation_code_by_hash::(hash) - } - - fn on_chain_votes() -> Option> { - polkadot_runtime_parachains::runtime_api_impl::v2::on_chain_votes::() - } - - fn submit_pvf_check_statement(stmt: polkadot_primitives::v2::PvfCheckStatement, signature: polkadot_primitives::v2::ValidatorSignature) { - polkadot_runtime_parachains::runtime_api_impl::v2::submit_pvf_check_statement::(stmt, signature) - } - - fn pvfs_require_precheck() -> Vec { - polkadot_runtime_parachains::runtime_api_impl::v2::pvfs_require_precheck::() - } - - fn validation_code_hash(para_id: polkadot_primitives::v2::Id, assumption: polkadot_primitives::v2::OccupiedCoreAssumption) - -> Option - { - polkadot_runtime_parachains::runtime_api_impl::v2::validation_code_hash::(para_id, assumption) - } - } - - impl sp_authority_discovery::AuthorityDiscoveryApi for Runtime { - fn authorities() -> Vec { - polkadot_runtime_parachains::runtime_api_impl::v2::relevant_authority_ids::() - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi< - Block, - Balance, - > for Runtime { - fn query_info(uxt: ::Extrinsic, len: u32) -> RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details(uxt: ::Extrinsic, len: u32) -> FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - } - - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) - } - - fn decode_session_keys( - encoded: Vec, - ) -> Option, sp_core::crypto::KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - } - - impl fg_primitives::GrandpaApi for Runtime { - fn current_set_id() -> fg_primitives::SetId { - Grandpa::current_set_id() - } - - fn grandpa_authorities() -> GrandpaAuthorityList { - Grandpa::grandpa_authorities() - } - - fn submit_report_equivocation_unsigned_extrinsic( - equivocation_proof: fg_primitives::EquivocationProof< - ::Hash, - NumberFor, - >, - key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof, - ) -> Option<()> { - let key_owner_proof = key_owner_proof.decode()?; - - Grandpa::submit_unsigned_equivocation_report( - equivocation_proof, - key_owner_proof, - ) - } - - fn generate_key_ownership_proof( - _set_id: fg_primitives::SetId, - _authority_id: GrandpaId, - ) -> Option { - // NOTE: this is the only implementation possible since we've - // defined our key owner proof type as a bottom type (i.e. a type - // with no values). - None - } - } - - impl bp_millau::ToMillauOutboundLaneApi for Runtime { - fn estimate_message_delivery_and_dispatch_fee( - _lane_id: bp_messages::LaneId, - payload: ToMillauMessagePayload, - millau_to_this_conversion_rate: Option, - ) -> Option { - estimate_message_dispatch_and_delivery_fee::( - &payload, - WithMillauMessageBridge::RELAYER_FEE_PERCENT, - millau_to_this_conversion_rate, - ).ok() - } - - fn message_details( - lane: bp_messages::LaneId, - begin: bp_messages::MessageNonce, - end: bp_messages::MessageNonce, - ) -> Vec> { - bridge_runtime_common::messages_api::outbound_message_details::< - Runtime, - WithMillauMessagesInstance, - WithMillauMessageBridge, - >(lane, begin, end) - } - } -} - -/// Millau account ownership digest from Rialto. -/// -/// The byte vector returned by this function should be signed with a Millau account private key. -/// This way, the owner of `rialto_account_id` on Rialto proves that the 'millau' account private -/// key is also under his control. -pub fn rialto_to_millau_account_ownership_digest( - millau_call: &Call, - rialto_account_id: AccountId, - millau_spec_version: SpecVersion, -) -> sp_std::vec::Vec -where - Call: codec::Encode, - AccountId: codec::Encode, - SpecVersion: codec::Encode, -{ - pallet_bridge_dispatch::account_ownership_digest( - millau_call, - rialto_account_id, - millau_spec_version, - bp_runtime::RIALTO_CHAIN_ID, - bp_runtime::MILLAU_CHAIN_ID, - ) -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn call_size() { - const BRIDGES_PALLETS_MAX_CALL_SIZE: usize = 200; - assert!( - core::mem::size_of::>() <= - BRIDGES_PALLETS_MAX_CALL_SIZE - ); - assert!( - core::mem::size_of::>() <= - BRIDGES_PALLETS_MAX_CALL_SIZE - ); - // Largest inner Call is `pallet_session::Call` with a size of 224 bytes. This size is a - // result of large `SessionKeys` struct. - // Total size of Rialto runtime Call is 232. - const MAX_CALL_SIZE: usize = 232; - assert!(core::mem::size_of::() <= MAX_CALL_SIZE); - } -} From f9bbdb495cf1f703be2fd08e47640869c8205bf0 Mon Sep 17 00:00:00 2001 From: kianenigma Date: Mon, 29 Aug 2022 14:20:21 +0430 Subject: [PATCH 5/9] better logging --- runtime/kusama/src/lib.rs | 5 +++-- runtime/polkadot/src/lib.rs | 3 ++- runtime/westend/src/lib.rs | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index 232c64286c36..828708eb8fae 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -121,7 +121,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("kusama"), impl_name: create_runtime_str!("parity-kusama"), authoring_version: 2, - spec_version: 9270, + spec_version: 9260, impl_version: 0, #[cfg(not(feature = "disable-runtime-api"))] apis: RUNTIME_API_VERSIONS, @@ -1885,7 +1885,8 @@ sp_api::impl_runtime_apis! { fn execute_block(block: Block, state_root_check: bool, select: frame_try_runtime::TryStateSelect) -> Weight { log::info!( - target: "runtime::kusama", "try-runtime: executing block {:?} / root checks: {:?} / sanity-checks: {:?}", + target: "runtime::kusama", "try-runtime: executing block #{} ({:?}) / root checks: {:?} / sanity-checks: {:?}", + block.header.number, block.header.hash(), state_root_check, select, diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index 9e43eee2d10e..67960e387940 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -2004,7 +2004,8 @@ sp_api::impl_runtime_apis! { fn execute_block(block: Block, state_root_check: bool, select: frame_try_runtime::TryStateSelect) -> Weight { log::info!( - target: "runtime::polkadot", "try-runtime: executing block {:?} / root checks: {:?} / sanity-checks: {:?}", + target: "runtime::polkadot", "try-runtime: executing block #{} ({:?}) / root checks: {:?} / sanity-checks: {:?}", + block.header.number, block.header.hash(), state_root_check, select, diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index 64ee309c0262..1a7b93ef2ec1 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -1595,7 +1595,8 @@ sp_api::impl_runtime_apis! { fn execute_block(block: Block, state_root_check: bool, select: frame_try_runtime::TryStateSelect) -> Weight { log::info!( - target: "runtime::westend", "try-runtime: executing block {:?} / root checks: {:?} / sanity-checks: {:?}", + target: "runtime::westend", "try-runtime: executing block #{} ({:?}) / root checks: {:?} / sanity-checks: {:?}", + block.header.number, block.header.hash(), state_root_check, select, From 41c1366dbc14272e58de02548125293be37af643 Mon Sep 17 00:00:00 2001 From: kianenigma Date: Mon, 29 Aug 2022 14:20:54 +0430 Subject: [PATCH 6/9] revert spec change --- runtime/kusama/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index 828708eb8fae..9d60c950aff5 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -121,7 +121,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("kusama"), impl_name: create_runtime_str!("parity-kusama"), authoring_version: 2, - spec_version: 9260, + spec_version: 9270, impl_version: 0, #[cfg(not(feature = "disable-runtime-api"))] apis: RUNTIME_API_VERSIONS, From 168985c5dac5c13ce204247a6ac284e195c83888 Mon Sep 17 00:00:00 2001 From: kianenigma Date: Tue, 30 Aug 2022 14:48:31 +0430 Subject: [PATCH 7/9] fmt --- runtime/test-runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/test-runtime/src/lib.rs b/runtime/test-runtime/src/lib.rs index 744eb8aea65b..d18a2c9bb95c 100644 --- a/runtime/test-runtime/src/lib.rs +++ b/runtime/test-runtime/src/lib.rs @@ -740,7 +740,7 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, - >; +>; /// The payload being signed in transactions. pub type SignedPayload = generic::SignedPayload; From 2e96797b1094ee8da3adba468226ea05449db5aa Mon Sep 17 00:00:00 2001 From: kianenigma Date: Thu, 1 Sep 2022 14:45:38 +0430 Subject: [PATCH 8/9] fix --- utils/remote-ext-tests/bags-list/src/main.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utils/remote-ext-tests/bags-list/src/main.rs b/utils/remote-ext-tests/bags-list/src/main.rs index 2c0bc6aeacd0..0fafa5e96f7a 100644 --- a/utils/remote-ext-tests/bags-list/src/main.rs +++ b/utils/remote-ext-tests/bags-list/src/main.rs @@ -86,7 +86,7 @@ async fn main() { (Runtime::Kusama, Command::SanityCheck) => { use kusama_runtime::{Block, Runtime}; use kusama_runtime_constants::currency::UNITS; - sanity_check::execute::(UNITS as u64, "KSM", options.uri.clone()).await; + try_state::execute::(UNITS as u64, "KSM", options.uri.clone()).await; }, (Runtime::Kusama, Command::Snapshot) => { use kusama_runtime::{Block, Runtime}; @@ -107,7 +107,7 @@ async fn main() { (Runtime::Westend, Command::SanityCheck) => { use westend_runtime::{Block, Runtime}; use westend_runtime_constants::currency::UNITS; - sanity_check::execute::(UNITS as u64, "WND", options.uri.clone()).await; + try_state::execute::(UNITS as u64, "WND", options.uri.clone()).await; }, (Runtime::Westend, Command::Snapshot) => { use westend_runtime::{Block, Runtime}; @@ -128,7 +128,7 @@ async fn main() { (Runtime::Polkadot, Command::SanityCheck) => { use polkadot_runtime::{Block, Runtime}; use polkadot_runtime_constants::currency::UNITS; - sanity_check::execute::(UNITS as u64, "DOT", options.uri.clone()).await; + try_state::execute::(UNITS as u64, "DOT", options.uri.clone()).await; }, (Runtime::Polkadot, Command::Snapshot) => { use polkadot_runtime::{Block, Runtime}; From 6cc28592d7a9bfee15d384253ae5302ff58fa890 Mon Sep 17 00:00:00 2001 From: parity-processbot <> Date: Thu, 1 Sep 2022 10:33:35 +0000 Subject: [PATCH 9/9] update lockfile for {"substrate"} --- Cargo.lock | 345 +++++++++++++++++++++++++++-------------------------- 1 file changed, 175 insertions(+), 170 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7275f54b3b8b..f3e9154a9920 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -423,7 +423,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "beefy-primitives", @@ -459,7 +459,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -479,7 +479,7 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "beefy-primitives", "sp-api", @@ -488,7 +488,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "scale-info", @@ -1983,7 +1983,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", ] @@ -2001,7 +2001,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-system", @@ -2024,7 +2024,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "Inflector", "chrono", @@ -2075,7 +2075,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2086,7 +2086,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2102,10 +2102,11 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-system", + "frame-try-runtime", "parity-scale-codec", "scale-info", "sp-core", @@ -2130,7 +2131,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "bitflags", "frame-metadata", @@ -2161,7 +2162,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "Inflector", "cfg-expr", @@ -2175,7 +2176,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2187,7 +2188,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "proc-macro2", "quote", @@ -2197,7 +2198,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-support-test-pallet", @@ -2220,7 +2221,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-system", @@ -2231,7 +2232,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "log", @@ -2248,7 +2249,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -2263,7 +2264,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "sp-api", @@ -2272,9 +2273,10 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", + "parity-scale-codec", "sp-api", "sp-runtime", "sp-std", @@ -2454,7 +2456,7 @@ dependencies = [ [[package]] name = "generate-bags" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "chrono", "frame-election-provider-support", @@ -4827,7 +4829,7 @@ checksum = "20448fd678ec04e6ea15bbe0476874af65e98a01515d667aa49f1434dc44ebf4" [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -4841,7 +4843,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-system", @@ -4857,7 +4859,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-system", @@ -4872,7 +4874,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -4896,7 +4898,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4916,7 +4918,7 @@ dependencies = [ [[package]] name = "pallet-bags-list-remote-tests" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4935,7 +4937,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -4950,7 +4952,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "beefy-primitives", "frame-support", @@ -4966,7 +4968,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -4989,7 +4991,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5007,7 +5009,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5026,7 +5028,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5043,7 +5045,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5059,7 +5061,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5082,7 +5084,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5095,7 +5097,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5113,7 +5115,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5128,7 +5130,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5151,7 +5153,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5167,7 +5169,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5187,7 +5189,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5204,7 +5206,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5221,7 +5223,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5239,7 +5241,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5254,7 +5256,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5269,7 +5271,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-system", @@ -5286,7 +5288,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5305,7 +5307,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "sp-api", @@ -5315,7 +5317,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-system", @@ -5332,7 +5334,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5355,7 +5357,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5371,7 +5373,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5386,7 +5388,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5401,7 +5403,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5417,7 +5419,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-system", @@ -5438,7 +5440,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5454,7 +5456,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-system", @@ -5468,7 +5470,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5491,7 +5493,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5502,7 +5504,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "log", "sp-arithmetic", @@ -5511,7 +5513,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-system", @@ -5525,7 +5527,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5543,7 +5545,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5562,7 +5564,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-support", "frame-system", @@ -5578,7 +5580,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5593,7 +5595,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5604,7 +5606,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5621,7 +5623,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5637,7 +5639,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-benchmarking", "frame-support", @@ -8113,7 +8115,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "env_logger 0.9.0", "jsonrpsee", @@ -8455,7 +8457,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "log", "sp-core", @@ -8466,8 +8468,9 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ + "async-trait", "futures", "futures-timer", "ip_network", @@ -8492,7 +8495,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "futures-timer", @@ -8515,7 +8518,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8531,7 +8534,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.0", @@ -8548,7 +8551,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8559,7 +8562,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "chrono", "clap", @@ -8598,7 +8601,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "fnv", "futures", @@ -8626,7 +8629,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "hash-db", "kvdb", @@ -8651,7 +8654,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "futures", @@ -8675,7 +8678,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "fork-tree", @@ -8717,7 +8720,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "jsonrpsee", @@ -8739,7 +8742,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8752,7 +8755,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "futures", @@ -8777,7 +8780,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "lazy_static", "lru 0.7.8", @@ -8804,7 +8807,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "environmental", "parity-scale-codec", @@ -8820,7 +8823,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "log", "parity-scale-codec", @@ -8835,7 +8838,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8856,7 +8859,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "ahash", "async-trait", @@ -8897,7 +8900,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "finality-grandpa", "futures", @@ -8918,7 +8921,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "ansi_term", "futures", @@ -8935,7 +8938,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "hex", @@ -8950,7 +8953,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "asynchronous-codec", @@ -8999,7 +9002,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "bitflags", @@ -9012,6 +9015,7 @@ dependencies = [ "sc-peerset", "serde", "smallvec", + "sp-blockchain", "sp-consensus", "sp-finality-grandpa", "sp-runtime", @@ -9021,7 +9025,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "ahash", "futures", @@ -9039,7 +9043,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "hex", @@ -9060,7 +9064,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "fork-tree", "futures", @@ -9088,7 +9092,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "bytes", "fnv", @@ -9118,7 +9122,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "libp2p", @@ -9131,7 +9135,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9140,7 +9144,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "hash-db", @@ -9170,7 +9174,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "jsonrpsee", @@ -9193,7 +9197,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "jsonrpsee", @@ -9206,7 +9210,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "directories", @@ -9273,7 +9277,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "log", "parity-scale-codec", @@ -9287,7 +9291,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9306,7 +9310,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "libc", @@ -9325,7 +9329,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "chrono", "futures", @@ -9343,7 +9347,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "ansi_term", "atty", @@ -9374,7 +9378,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9385,7 +9389,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "futures-timer", @@ -9411,7 +9415,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "log", @@ -9424,7 +9428,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "futures-timer", @@ -9909,7 +9913,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "hash-db", "log", @@ -9927,7 +9931,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "blake2", "proc-macro-crate", @@ -9939,7 +9943,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "scale-info", @@ -9952,7 +9956,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "integer-sqrt", "num-traits", @@ -9967,7 +9971,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "scale-info", @@ -9980,7 +9984,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "parity-scale-codec", @@ -9992,7 +9996,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "sp-api", @@ -10004,7 +10008,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "log", @@ -10022,7 +10026,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "futures", @@ -10041,7 +10045,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "merlin", @@ -10064,7 +10068,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "scale-info", @@ -10078,7 +10082,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "scale-info", @@ -10091,7 +10095,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "base58", "bitflags", @@ -10137,7 +10141,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "blake2", "byteorder", @@ -10151,7 +10155,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "proc-macro2", "quote", @@ -10162,7 +10166,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -10171,7 +10175,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "proc-macro2", "quote", @@ -10181,7 +10185,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "environmental", "parity-scale-codec", @@ -10192,7 +10196,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "finality-grandpa", "log", @@ -10210,7 +10214,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10224,7 +10228,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "bytes", "futures", @@ -10250,7 +10254,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "lazy_static", "sp-core", @@ -10261,7 +10265,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "futures", @@ -10278,7 +10282,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "thiserror", "zstd", @@ -10287,7 +10291,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "log", "parity-scale-codec", @@ -10302,7 +10306,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "scale-info", @@ -10316,7 +10320,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "sp-api", "sp-core", @@ -10326,7 +10330,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "backtrace", "lazy_static", @@ -10336,7 +10340,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "rustc-hash", "serde", @@ -10346,7 +10350,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "either", "hash256-std-hasher", @@ -10368,7 +10372,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -10386,7 +10390,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "Inflector", "proc-macro-crate", @@ -10398,7 +10402,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "log", "parity-scale-codec", @@ -10412,7 +10416,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "scale-info", @@ -10426,7 +10430,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "scale-info", @@ -10437,7 +10441,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "hash-db", "log", @@ -10459,12 +10463,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10477,7 +10481,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "log", "sp-core", @@ -10490,7 +10494,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "futures-timer", @@ -10506,7 +10510,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "sp-std", @@ -10518,7 +10522,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "sp-api", "sp-runtime", @@ -10527,7 +10531,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "log", @@ -10543,7 +10547,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "ahash", "hash-db", @@ -10566,7 +10570,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10583,7 +10587,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10594,7 +10598,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "impl-trait-for-tuples", "log", @@ -10768,7 +10772,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "platforms", ] @@ -10776,7 +10780,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -10797,7 +10801,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures-util", "hyper", @@ -10810,7 +10814,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "jsonrpsee", "log", @@ -10831,7 +10835,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "async-trait", "futures", @@ -10857,7 +10861,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "futures", "substrate-test-utils-derive", @@ -10867,7 +10871,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10878,7 +10882,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "ansi_term", "build-helper", @@ -11592,9 +11596,10 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#0246883c404d498090f33e795feb8075fa8d3b6b" +source = "git+https://github.com/paritytech/substrate?branch=master#324a18e3c5cbf333672c54f9367f530ea976928d" dependencies = [ "clap", + "frame-try-runtime", "jsonrpsee", "log", "parity-scale-codec",