From 530c95d2df83b289d2331f2dc73336da58702ac8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bastian=20K=C3=B6cher?= <bkchr@users.noreply.github.com>
Date: Tue, 4 May 2021 09:48:41 +0200
Subject: [PATCH] Update Substrate & Polkadot (#427)

* Update Substrate & Polkadot

* Fixes
---
 cumulus/Cargo.lock                            | 473 +++++++++---------
 .../consensus/relay-chain/src/import_queue.rs |  39 +-
 .../client/consensus/relay-chain/src/lib.rs   |  78 +--
 cumulus/pallets/parachain-system/src/lib.rs   | 139 +++--
 cumulus/rococo-parachains/runtime/Cargo.toml  |   2 +-
 .../shell-runtime/Cargo.toml                  |   2 +-
 cumulus/rococo-parachains/src/service.rs      |  74 ++-
 cumulus/test/runtime-upgrade/Cargo.toml       |   2 +-
 cumulus/test/runtime/Cargo.toml               |   2 +-
 cumulus/test/service/Cargo.toml               |   1 -
 cumulus/test/service/src/lib.rs               |  11 +-
 11 files changed, 424 insertions(+), 399 deletions(-)

diff --git a/cumulus/Cargo.lock b/cumulus/Cargo.lock
index 195c1ff58ee..1f165d4b45a 100644
--- a/cumulus/Cargo.lock
+++ b/cumulus/Cargo.lock
@@ -333,9 +333,9 @@ checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"
 
 [[package]]
 name = "async-trait"
-version = "0.1.42"
+version = "0.1.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d"
+checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722"
 dependencies = [
  "proc-macro2 1.0.26",
  "quote 1.0.9",
@@ -453,7 +453,7 @@ checksum = "6736e2428df2ca2848d846c43e88745121a6654696e349ce0054a420815a7409"
 [[package]]
 name = "beefy-gadget"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=master#5726a43094cad395d6e253bbc8b93ff7e54f2453"
+source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=master#b4901fe94835e8179bb9b97db18e612f24a5ac94"
 dependencies = [
  "beefy-primitives",
  "futures 0.3.14",
@@ -481,7 +481,7 @@ dependencies = [
 [[package]]
 name = "beefy-gadget-rpc"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=master#5726a43094cad395d6e253bbc8b93ff7e54f2453"
+source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=master#b4901fe94835e8179bb9b97db18e612f24a5ac94"
 dependencies = [
  "beefy-gadget",
  "beefy-primitives",
@@ -502,7 +502,7 @@ dependencies = [
 [[package]]
 name = "beefy-primitives"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=master#5726a43094cad395d6e253bbc8b93ff7e54f2453"
+source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=master#b4901fe94835e8179bb9b97db18e612f24a5ac94"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -1590,7 +1590,7 @@ dependencies = [
  "sp-std",
  "sp-transaction-pool",
  "sp-version",
- "substrate-wasm-builder 3.0.0",
+ "substrate-wasm-builder 4.0.0",
  "xcm",
  "xcm-builder",
  "xcm-executor",
@@ -1665,7 +1665,7 @@ dependencies = [
  "sp-std",
  "sp-transaction-pool",
  "sp-version",
- "substrate-wasm-builder 3.0.0",
+ "substrate-wasm-builder 4.0.0",
  "xcm",
  "xcm-builder",
  "xcm-executor",
@@ -1718,7 +1718,7 @@ dependencies = [
  "sp-std",
  "sp-transaction-pool",
  "sp-version",
- "substrate-wasm-builder 3.0.0",
+ "substrate-wasm-builder 4.0.0",
 ]
 
 [[package]]
@@ -1749,7 +1749,7 @@ dependencies = [
  "sp-std",
  "sp-transaction-pool",
  "sp-version",
- "substrate-wasm-builder 3.0.0",
+ "substrate-wasm-builder 4.0.0",
 ]
 
 [[package]]
@@ -1792,7 +1792,6 @@ dependencies = [
  "sp-blockchain",
  "sp-consensus",
  "sp-core",
- "sp-inherents",
  "sp-keyring",
  "sp-offchain",
  "sp-runtime",
@@ -2317,7 +2316,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 [[package]]
 name = "fork-tree"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
 ]
@@ -2335,7 +2334,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking"
 version = "3.1.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -2354,7 +2353,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking-cli"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "Inflector",
  "chrono",
@@ -2377,7 +2376,7 @@ dependencies = [
 [[package]]
 name = "frame-election-provider-support"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -2390,7 +2389,7 @@ dependencies = [
 [[package]]
 name = "frame-executive"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -2405,7 +2404,7 @@ dependencies = [
 [[package]]
 name = "frame-metadata"
 version = "13.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -2416,7 +2415,7 @@ dependencies = [
 [[package]]
 name = "frame-support"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "bitflags",
  "frame-metadata",
@@ -2442,7 +2441,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "Inflector",
  "frame-support-procedural-tools",
@@ -2454,7 +2453,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support-procedural-tools-derive",
  "proc-macro-crate 1.0.0",
@@ -2466,7 +2465,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools-derive"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "proc-macro2 1.0.26",
  "quote 1.0.9",
@@ -2476,7 +2475,7 @@ dependencies = [
 [[package]]
 name = "frame-system"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "impl-trait-for-tuples",
@@ -2493,7 +2492,7 @@ dependencies = [
 [[package]]
 name = "frame-system-rpc-runtime-api"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -2502,7 +2501,7 @@ dependencies = [
 [[package]]
 name = "frame-try-runtime"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -3586,7 +3585,7 @@ dependencies = [
 [[package]]
 name = "kusama-runtime"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "beefy-primitives",
  "bitvec",
@@ -3632,6 +3631,7 @@ dependencies = [
  "parity-scale-codec",
  "polkadot-primitives",
  "polkadot-runtime-common",
+ "polkadot-runtime-parachains",
  "rustc-hex",
  "serde",
  "serde_derive",
@@ -3653,6 +3653,9 @@ dependencies = [
  "sp-version",
  "static_assertions",
  "substrate-wasm-builder 3.0.0",
+ "xcm",
+ "xcm-builder",
+ "xcm-executor",
 ]
 
 [[package]]
@@ -4435,7 +4438,7 @@ dependencies = [
 [[package]]
 name = "metered-channel"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.14",
@@ -4837,7 +4840,7 @@ dependencies = [
 [[package]]
 name = "pallet-assets"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#febdc30aca650c36080c513ef16cf66853a95481"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4850,7 +4853,7 @@ dependencies = [
 [[package]]
 name = "pallet-authority-discovery"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4865,14 +4868,13 @@ dependencies = [
 [[package]]
 name = "pallet-authorship"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
  "impl-trait-for-tuples",
  "parity-scale-codec",
  "sp-authorship",
- "sp-inherents",
  "sp-runtime",
  "sp-std",
 ]
@@ -4880,7 +4882,7 @@ dependencies = [
 [[package]]
 name = "pallet-babe"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4903,7 +4905,7 @@ dependencies = [
 [[package]]
 name = "pallet-balances"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4917,7 +4919,7 @@ dependencies = [
 [[package]]
 name = "pallet-beefy"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=master#5726a43094cad395d6e253bbc8b93ff7e54f2453"
+source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=master#b4901fe94835e8179bb9b97db18e612f24a5ac94"
 dependencies = [
  "beefy-primitives",
  "frame-support",
@@ -4932,7 +4934,7 @@ dependencies = [
 [[package]]
 name = "pallet-bounties"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4945,7 +4947,7 @@ dependencies = [
 [[package]]
 name = "pallet-collective"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4960,7 +4962,7 @@ dependencies = [
 [[package]]
 name = "pallet-democracy"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4975,7 +4977,7 @@ dependencies = [
 [[package]]
 name = "pallet-election-provider-multi-phase"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-election-provider-support",
  "frame-support",
@@ -4993,7 +4995,7 @@ dependencies = [
 [[package]]
 name = "pallet-elections-phragmen"
 version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5009,7 +5011,7 @@ dependencies = [
 [[package]]
 name = "pallet-grandpa"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5030,7 +5032,7 @@ dependencies = [
 [[package]]
 name = "pallet-identity"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -5045,7 +5047,7 @@ dependencies = [
 [[package]]
 name = "pallet-im-online"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5063,7 +5065,7 @@ dependencies = [
 [[package]]
 name = "pallet-indices"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5078,7 +5080,7 @@ dependencies = [
 [[package]]
 name = "pallet-membership"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5093,7 +5095,7 @@ dependencies = [
 [[package]]
 name = "pallet-mmr"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "ckb-merkle-mountain-range",
  "frame-benchmarking",
@@ -5110,7 +5112,7 @@ dependencies = [
 [[package]]
 name = "pallet-mmr-primitives"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5126,7 +5128,7 @@ dependencies = [
 [[package]]
 name = "pallet-mmr-rpc"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -5144,7 +5146,7 @@ dependencies = [
 [[package]]
 name = "pallet-multisig"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5158,7 +5160,7 @@ dependencies = [
 [[package]]
 name = "pallet-nicks"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5171,7 +5173,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5187,7 +5189,7 @@ dependencies = [
 [[package]]
 name = "pallet-proxy"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5201,7 +5203,7 @@ dependencies = [
 [[package]]
 name = "pallet-randomness-collective-flip"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5214,7 +5216,7 @@ dependencies = [
 [[package]]
 name = "pallet-recovery"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "enumflags2",
  "frame-support",
@@ -5228,7 +5230,7 @@ dependencies = [
 [[package]]
 name = "pallet-scheduler"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5243,7 +5245,7 @@ dependencies = [
 [[package]]
 name = "pallet-session"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5262,7 +5264,7 @@ dependencies = [
 [[package]]
 name = "pallet-society"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5275,7 +5277,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-election-provider-support",
  "frame-support",
@@ -5297,7 +5299,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-reward-curve"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "proc-macro-crate 1.0.0",
  "proc-macro2 1.0.26",
@@ -5308,7 +5310,7 @@ dependencies = [
 [[package]]
 name = "pallet-sudo"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5321,7 +5323,7 @@ dependencies = [
 [[package]]
 name = "pallet-timestamp"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5338,7 +5340,7 @@ dependencies = [
 [[package]]
 name = "pallet-tips"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5352,7 +5354,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5368,7 +5370,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -5385,7 +5387,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc-runtime-api"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "pallet-transaction-payment",
  "parity-scale-codec",
@@ -5396,7 +5398,7 @@ dependencies = [
 [[package]]
 name = "pallet-treasury"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5411,7 +5413,7 @@ dependencies = [
 [[package]]
 name = "pallet-utility"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5425,7 +5427,7 @@ dependencies = [
 [[package]]
 name = "pallet-vesting"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "enumflags2",
  "frame-support",
@@ -5438,7 +5440,7 @@ dependencies = [
 [[package]]
 name = "pallet-xcm"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5906,7 +5908,7 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325"
 [[package]]
 name = "polkadot-approval-distribution"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "polkadot-node-network-protocol",
@@ -5920,7 +5922,7 @@ dependencies = [
 [[package]]
 name = "polkadot-availability-bitfield-distribution"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "parity-scale-codec",
@@ -5934,7 +5936,7 @@ dependencies = [
 [[package]]
 name = "polkadot-availability-distribution"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "lru",
@@ -5957,7 +5959,7 @@ dependencies = [
 [[package]]
 name = "polkadot-availability-recovery"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "lru",
@@ -5976,7 +5978,7 @@ dependencies = [
 [[package]]
 name = "polkadot-cli"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "frame-benchmarking-cli",
  "futures 0.3.14",
@@ -5996,7 +5998,7 @@ dependencies = [
 [[package]]
 name = "polkadot-collator-protocol"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "always-assert",
  "futures 0.3.14",
@@ -6016,7 +6018,7 @@ dependencies = [
 [[package]]
 name = "polkadot-core-primitives"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "parity-scale-codec",
  "parity-util-mem",
@@ -6028,7 +6030,7 @@ dependencies = [
 [[package]]
 name = "polkadot-erasure-coding"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "parity-scale-codec",
  "polkadot-node-primitives",
@@ -6042,7 +6044,7 @@ dependencies = [
 [[package]]
 name = "polkadot-gossip-support"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "polkadot-node-network-protocol",
@@ -6057,7 +6059,7 @@ dependencies = [
 [[package]]
 name = "polkadot-network-bridge"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "async-trait",
  "futures 0.3.14",
@@ -6077,7 +6079,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-collation-generation"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "parity-scale-codec",
@@ -6095,7 +6097,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-core-approval-voting"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "bitvec",
  "derive_more 0.99.11",
@@ -6124,7 +6126,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-core-av-store"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "bitvec",
  "futures 0.3.14",
@@ -6144,7 +6146,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-core-backing"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "bitvec",
  "futures 0.3.14",
@@ -6162,7 +6164,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-core-bitfield-signing"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "polkadot-node-subsystem",
@@ -6177,7 +6179,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-core-candidate-selection"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "polkadot-node-primitives",
@@ -6192,7 +6194,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-core-candidate-validation"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "async-trait",
  "futures 0.3.14",
@@ -6210,7 +6212,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-core-chain-api"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "polkadot-node-subsystem",
@@ -6221,34 +6223,27 @@ dependencies = [
 ]
 
 [[package]]
-name = "polkadot-node-core-proposer"
+name = "polkadot-node-core-parachains-inherent"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
+ "async-trait",
  "futures 0.3.14",
  "futures-timer 3.0.2",
  "polkadot-node-subsystem",
  "polkadot-overseer",
  "polkadot-primitives",
- "sc-basic-authorship",
- "sc-block-builder",
- "sc-client-api",
- "sc-telemetry",
- "sp-api",
  "sp-blockchain",
- "sp-consensus",
- "sp-core",
  "sp-inherents",
  "sp-runtime",
- "sp-transaction-pool",
- "substrate-prometheus-endpoint",
+ "thiserror",
  "tracing",
 ]
 
 [[package]]
 name = "polkadot-node-core-provisioner"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "bitvec",
  "futures 0.3.14",
@@ -6263,7 +6258,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-core-pvf"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "always-assert",
  "assert_matches",
@@ -6291,7 +6286,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-core-runtime-api"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "memory-lru",
@@ -6309,7 +6304,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-jaeger"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "async-std",
  "lazy_static",
@@ -6327,7 +6322,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-network-protocol"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "parity-scale-codec",
@@ -6342,7 +6337,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-primitives"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "futures 0.3.14",
  "parity-scale-codec",
@@ -6364,7 +6359,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-subsystem"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "async-std",
  "async-trait",
@@ -6394,7 +6389,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-subsystem-test-helpers"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "async-trait",
  "futures 0.3.14",
@@ -6416,7 +6411,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-subsystem-util"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "async-trait",
  "futures 0.3.14",
@@ -6444,7 +6439,7 @@ dependencies = [
 [[package]]
 name = "polkadot-overseer"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "async-trait",
  "futures 0.3.14",
@@ -6462,7 +6457,7 @@ dependencies = [
 [[package]]
 name = "polkadot-parachain"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "derive_more 0.99.11",
  "parity-scale-codec",
@@ -6477,7 +6472,7 @@ dependencies = [
 [[package]]
 name = "polkadot-primitives"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "bitvec",
  "frame-system",
@@ -6506,7 +6501,7 @@ dependencies = [
 [[package]]
 name = "polkadot-procmacro-overseer-subsystems-gen"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "assert_matches",
  "proc-macro2 1.0.26",
@@ -6517,7 +6512,7 @@ dependencies = [
 [[package]]
 name = "polkadot-procmacro-subsystem-dispatch-gen"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "assert_matches",
  "proc-macro2 1.0.26",
@@ -6528,7 +6523,7 @@ dependencies = [
 [[package]]
 name = "polkadot-rpc"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "beefy-gadget",
  "beefy-gadget-rpc",
@@ -6561,7 +6556,7 @@ dependencies = [
 [[package]]
 name = "polkadot-runtime"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "beefy-primitives",
  "bitvec",
@@ -6631,7 +6626,7 @@ dependencies = [
 [[package]]
 name = "polkadot-runtime-common"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "beefy-primitives",
  "bitvec",
@@ -6673,7 +6668,7 @@ dependencies = [
 [[package]]
 name = "polkadot-runtime-parachains"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "bitvec",
  "derive_more 0.99.11",
@@ -6710,7 +6705,7 @@ dependencies = [
 [[package]]
 name = "polkadot-service"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "beefy-gadget",
  "beefy-primitives",
@@ -6741,7 +6736,7 @@ dependencies = [
  "polkadot-node-core-candidate-selection",
  "polkadot-node-core-candidate-validation",
  "polkadot-node-core-chain-api",
- "polkadot-node-core-proposer",
+ "polkadot-node-core-parachains-inherent",
  "polkadot-node-core-provisioner",
  "polkadot-node-core-runtime-api",
  "polkadot-node-primitives",
@@ -6756,6 +6751,7 @@ dependencies = [
  "polkadot-statement-distribution",
  "rococo-runtime",
  "sc-authority-discovery",
+ "sc-basic-authorship",
  "sc-block-builder",
  "sc-chain-spec",
  "sc-client-api",
@@ -6763,6 +6759,7 @@ dependencies = [
  "sc-consensus",
  "sc-consensus-babe",
  "sc-consensus-slots",
+ "sc-consensus-uncles",
  "sc-executor",
  "sc-finality-grandpa",
  "sc-finality-grandpa-warp-sync",
@@ -6788,6 +6785,7 @@ dependencies = [
  "sp-session",
  "sp-state-machine",
  "sp-storage",
+ "sp-timestamp",
  "sp-transaction-pool",
  "sp-trie",
  "substrate-prometheus-endpoint",
@@ -6799,7 +6797,7 @@ dependencies = [
 [[package]]
 name = "polkadot-statement-distribution"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "arrayvec 0.5.2",
  "futures 0.3.14",
@@ -6820,7 +6818,7 @@ dependencies = [
 [[package]]
 name = "polkadot-statement-table"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "parity-scale-codec",
  "polkadot-primitives",
@@ -6830,7 +6828,7 @@ dependencies = [
 [[package]]
 name = "polkadot-test-client"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "parity-scale-codec",
  "polkadot-node-subsystem",
@@ -6855,7 +6853,7 @@ dependencies = [
 [[package]]
 name = "polkadot-test-runtime"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "beefy-primitives",
  "bitvec",
@@ -6912,7 +6910,7 @@ dependencies = [
 [[package]]
 name = "polkadot-test-service"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "frame-benchmarking",
  "frame-system",
@@ -7638,7 +7636,7 @@ dependencies = [
 [[package]]
 name = "remote-externalities"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "env_logger 0.8.3",
  "hex-literal 0.3.1",
@@ -7791,7 +7789,7 @@ dependencies = [
 [[package]]
 name = "rococo-runtime"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "beefy-primitives",
  "frame-executive",
@@ -7995,7 +7993,7 @@ dependencies = [
 [[package]]
 name = "sc-authority-discovery"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "async-trait",
  "derive_more 0.99.11",
@@ -8024,7 +8022,7 @@ dependencies = [
 [[package]]
 name = "sc-basic-authorship"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "futures 0.3.14",
  "futures-timer 3.0.2",
@@ -8047,7 +8045,7 @@ dependencies = [
 [[package]]
 name = "sc-block-builder"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "sc-client-api",
@@ -8063,7 +8061,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -8084,7 +8082,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec-derive"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "proc-macro-crate 1.0.0",
  "proc-macro2 1.0.26",
@@ -8095,7 +8093,7 @@ dependencies = [
 [[package]]
 name = "sc-cli"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "chrono",
  "fdlimit",
@@ -8133,7 +8131,7 @@ dependencies = [
 [[package]]
 name = "sc-client-api"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "derive_more 0.99.11",
  "fnv",
@@ -8167,7 +8165,7 @@ dependencies = [
 [[package]]
 name = "sc-client-db"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "blake2-rfc",
  "hash-db",
@@ -8197,7 +8195,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parking_lot 0.11.1",
  "sc-client-api",
@@ -8209,7 +8207,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "async-trait",
  "derive_more 0.99.11",
@@ -8247,7 +8245,6 @@ dependencies = [
  "sp-io",
  "sp-keystore",
  "sp-runtime",
- "sp-timestamp",
  "sp-utils",
  "sp-version",
  "substrate-prometheus-endpoint",
@@ -8256,7 +8253,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe-rpc"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.14",
@@ -8280,7 +8277,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-epochs"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "fork-tree",
  "parity-scale-codec",
@@ -8293,11 +8290,12 @@ dependencies = [
 [[package]]
 name = "sc-consensus-slots"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "async-trait",
  "futures 0.3.14",
  "futures-timer 3.0.2",
+ "impl-trait-for-tuples",
  "log",
  "parity-scale-codec",
  "sc-client-api",
@@ -8320,21 +8318,18 @@ dependencies = [
 [[package]]
 name = "sc-consensus-uncles"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
- "log",
  "sc-client-api",
  "sp-authorship",
- "sp-consensus",
- "sp-core",
- "sp-inherents",
  "sp-runtime",
+ "thiserror",
 ]
 
 [[package]]
 name = "sc-executor"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "derive_more 0.99.11",
  "lazy_static",
@@ -8364,7 +8359,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-common"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "derive_more 0.99.11",
  "parity-scale-codec",
@@ -8381,7 +8376,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmi"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -8396,7 +8391,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmtime"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -8414,7 +8409,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "async-trait",
  "derive_more 0.99.11",
@@ -8454,7 +8449,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa-rpc"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "derive_more 0.99.11",
  "finality-grandpa",
@@ -8478,7 +8473,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa-warp-sync"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.14",
@@ -8499,7 +8494,7 @@ dependencies = [
 [[package]]
 name = "sc-informant"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "ansi_term 0.12.1",
  "futures 0.3.14",
@@ -8517,7 +8512,7 @@ dependencies = [
 [[package]]
 name = "sc-keystore"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "async-trait",
  "derive_more 0.99.11",
@@ -8537,7 +8532,7 @@ dependencies = [
 [[package]]
 name = "sc-light"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "hash-db",
  "lazy_static",
@@ -8556,7 +8551,7 @@ dependencies = [
 [[package]]
 name = "sc-network"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "async-std",
  "async-trait",
@@ -8609,7 +8604,7 @@ dependencies = [
 [[package]]
 name = "sc-network-gossip"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "futures 0.3.14",
  "futures-timer 3.0.2",
@@ -8626,7 +8621,7 @@ dependencies = [
 [[package]]
 name = "sc-offchain"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "bytes 0.5.6",
  "fnv",
@@ -8654,7 +8649,7 @@ dependencies = [
 [[package]]
 name = "sc-peerset"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "futures 0.3.14",
  "libp2p",
@@ -8667,7 +8662,7 @@ dependencies = [
 [[package]]
 name = "sc-proposer-metrics"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "log",
  "substrate-prometheus-endpoint",
@@ -8676,7 +8671,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "futures 0.3.14",
  "hash-db",
@@ -8710,7 +8705,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-api"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.14",
@@ -8734,7 +8729,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-server"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "futures 0.1.30",
  "jsonrpc-core",
@@ -8752,7 +8747,7 @@ dependencies = [
 [[package]]
 name = "sc-service"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "async-trait",
  "directories",
@@ -8816,7 +8811,7 @@ dependencies = [
 [[package]]
 name = "sc-state-db"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -8831,7 +8826,7 @@ dependencies = [
 [[package]]
 name = "sc-sync-state-rpc"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -8851,7 +8846,7 @@ dependencies = [
 [[package]]
 name = "sc-telemetry"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "chrono",
  "futures 0.3.14",
@@ -8871,7 +8866,7 @@ dependencies = [
 [[package]]
 name = "sc-tracing"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "ansi_term 0.12.1",
  "atty",
@@ -8898,7 +8893,7 @@ dependencies = [
 [[package]]
 name = "sc-tracing-proc-macro"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "proc-macro-crate 1.0.0",
  "proc-macro2 1.0.26",
@@ -8909,7 +8904,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-graph"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.14",
@@ -8931,7 +8926,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-pool"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "futures 0.3.14",
  "futures-diagnose",
@@ -9261,7 +9256,7 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
 [[package]]
 name = "slot-range-helper"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "enumn",
  "parity-scale-codec",
@@ -9352,7 +9347,7 @@ dependencies = [
 [[package]]
 name = "sp-allocator"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "log",
  "sp-core",
@@ -9364,7 +9359,7 @@ dependencies = [
 [[package]]
 name = "sp-api"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "hash-db",
  "log",
@@ -9381,7 +9376,7 @@ dependencies = [
 [[package]]
 name = "sp-api-proc-macro"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "blake2-rfc",
  "proc-macro-crate 1.0.0",
@@ -9393,7 +9388,7 @@ dependencies = [
 [[package]]
 name = "sp-application-crypto"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -9405,7 +9400,7 @@ dependencies = [
 [[package]]
 name = "sp-arithmetic"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "integer-sqrt",
  "num-traits",
@@ -9419,7 +9414,7 @@ dependencies = [
 [[package]]
 name = "sp-authority-discovery"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -9431,8 +9426,9 @@ dependencies = [
 [[package]]
 name = "sp-authorship"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
+ "async-trait",
  "parity-scale-codec",
  "sp-inherents",
  "sp-runtime",
@@ -9442,7 +9438,7 @@ dependencies = [
 [[package]]
 name = "sp-block-builder"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -9454,7 +9450,7 @@ dependencies = [
 [[package]]
 name = "sp-blockchain"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "futures 0.3.14",
  "log",
@@ -9472,7 +9468,7 @@ dependencies = [
 [[package]]
 name = "sp-chain-spec"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "serde",
  "serde_json",
@@ -9481,7 +9477,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "async-trait",
  "futures 0.3.14",
@@ -9508,8 +9504,9 @@ dependencies = [
 [[package]]
 name = "sp-consensus-aura"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#febdc30aca650c36080c513ef16cf66853a95481"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
+ "async-trait",
  "parity-scale-codec",
  "sp-api",
  "sp-application-crypto",
@@ -9524,8 +9521,9 @@ dependencies = [
 [[package]]
 name = "sp-consensus-babe"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
+ "async-trait",
  "merlin",
  "parity-scale-codec",
  "serde",
@@ -9545,7 +9543,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-slots"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "sp-arithmetic",
@@ -9555,7 +9553,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-vrf"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "schnorrkel",
@@ -9567,7 +9565,7 @@ dependencies = [
 [[package]]
 name = "sp-core"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "base58",
  "blake2-rfc",
@@ -9611,7 +9609,7 @@ dependencies = [
 [[package]]
 name = "sp-database"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "kvdb",
  "parking_lot 0.11.1",
@@ -9620,7 +9618,7 @@ dependencies = [
 [[package]]
 name = "sp-debug-derive"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "proc-macro2 1.0.26",
  "quote 1.0.9",
@@ -9630,7 +9628,7 @@ dependencies = [
 [[package]]
 name = "sp-externalities"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -9641,7 +9639,7 @@ dependencies = [
 [[package]]
 name = "sp-finality-grandpa"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "finality-grandpa",
  "log",
@@ -9658,11 +9656,13 @@ dependencies = [
 [[package]]
 name = "sp-inherents"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
+ "async-trait",
+ "impl-trait-for-tuples",
  "parity-scale-codec",
- "parking_lot 0.11.1",
  "sp-core",
+ "sp-runtime",
  "sp-std",
  "thiserror",
 ]
@@ -9670,7 +9670,7 @@ dependencies = [
 [[package]]
 name = "sp-io"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "futures 0.3.14",
  "hash-db",
@@ -9694,7 +9694,7 @@ dependencies = [
 [[package]]
 name = "sp-keyring"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "lazy_static",
  "sp-core",
@@ -9705,7 +9705,7 @@ dependencies = [
 [[package]]
 name = "sp-keystore"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "async-trait",
  "derive_more 0.99.11",
@@ -9722,7 +9722,7 @@ dependencies = [
 [[package]]
 name = "sp-maybe-compressed-blob"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "ruzstd",
  "zstd",
@@ -9731,7 +9731,7 @@ dependencies = [
 [[package]]
 name = "sp-npos-elections"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -9744,7 +9744,7 @@ dependencies = [
 [[package]]
 name = "sp-npos-elections-compact"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "proc-macro-crate 1.0.0",
  "proc-macro2 1.0.26",
@@ -9755,7 +9755,7 @@ dependencies = [
 [[package]]
 name = "sp-offchain"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "sp-api",
  "sp-core",
@@ -9765,7 +9765,7 @@ dependencies = [
 [[package]]
 name = "sp-panic-handler"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "backtrace",
 ]
@@ -9773,7 +9773,7 @@ dependencies = [
 [[package]]
 name = "sp-rpc"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "serde",
  "sp-core",
@@ -9782,7 +9782,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "either",
  "hash256-std-hasher",
@@ -9803,7 +9803,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -9820,7 +9820,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "Inflector",
  "proc-macro-crate 1.0.0",
@@ -9832,7 +9832,7 @@ dependencies = [
 [[package]]
 name = "sp-serializer"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "serde",
  "serde_json",
@@ -9841,7 +9841,7 @@ dependencies = [
 [[package]]
 name = "sp-session"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -9854,7 +9854,7 @@ dependencies = [
 [[package]]
 name = "sp-staking"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "sp-runtime",
@@ -9864,7 +9864,7 @@ dependencies = [
 [[package]]
 name = "sp-state-machine"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "hash-db",
  "log",
@@ -9886,12 +9886,12 @@ dependencies = [
 [[package]]
 name = "sp-std"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 
 [[package]]
 name = "sp-storage"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -9904,7 +9904,7 @@ dependencies = [
 [[package]]
 name = "sp-tasks"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "log",
  "sp-core",
@@ -9917,7 +9917,7 @@ dependencies = [
 [[package]]
 name = "sp-test-primitives"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#febdc30aca650c36080c513ef16cf66853a95481"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "parity-scale-codec",
  "parity-util-mem",
@@ -9930,20 +9930,24 @@ dependencies = [
 [[package]]
 name = "sp-timestamp"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
+ "async-trait",
+ "futures-timer 3.0.2",
+ "log",
  "parity-scale-codec",
  "sp-api",
  "sp-inherents",
  "sp-runtime",
  "sp-std",
+ "thiserror",
  "wasm-timer",
 ]
 
 [[package]]
 name = "sp-tracing"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -9956,7 +9960,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-pool"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.14",
@@ -9972,7 +9976,7 @@ dependencies = [
 [[package]]
 name = "sp-trie"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "hash-db",
  "memory-db",
@@ -9986,7 +9990,7 @@ dependencies = [
 [[package]]
 name = "sp-utils"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "futures 0.3.14",
  "futures-core",
@@ -9998,7 +10002,7 @@ dependencies = [
 [[package]]
 name = "sp-version"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -10010,7 +10014,7 @@ dependencies = [
 [[package]]
 name = "sp-wasm-interface"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -10168,7 +10172,7 @@ dependencies = [
 [[package]]
 name = "substrate-build-script-utils"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "platforms",
 ]
@@ -10176,7 +10180,7 @@ dependencies = [
 [[package]]
 name = "substrate-frame-rpc-system"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-system-rpc-runtime-api",
  "futures 0.3.14",
@@ -10199,7 +10203,7 @@ dependencies = [
 [[package]]
 name = "substrate-prometheus-endpoint"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "async-std",
  "derive_more 0.99.11",
@@ -10213,7 +10217,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-client"
 version = "2.0.1"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "async-trait",
  "futures 0.1.30",
@@ -10242,7 +10246,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-runtime"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#febdc30aca650c36080c513ef16cf66853a95481"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "cfg-if 1.0.0",
  "frame-support",
@@ -10283,7 +10287,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-runtime-client"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#febdc30aca650c36080c513ef16cf66853a95481"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "futures 0.3.14",
  "parity-scale-codec",
@@ -10304,7 +10308,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-utils"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#febdc30aca650c36080c513ef16cf66853a95481"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "futures 0.3.14",
  "substrate-test-utils-derive",
@@ -10314,7 +10318,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-utils-derive"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#febdc30aca650c36080c513ef16cf66853a95481"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "proc-macro-crate 1.0.0",
  "quote 1.0.9",
@@ -10340,7 +10344,7 @@ dependencies = [
 [[package]]
 name = "substrate-wasm-builder"
 version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#febdc30aca650c36080c513ef16cf66853a95481"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "ansi_term 0.12.1",
  "atty",
@@ -11018,7 +11022,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
 [[package]]
 name = "try-runtime-cli"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#70ef0afc86cdef0cba09336acffb08bff08540aa"
+source = "git+https://github.com/paritytech/substrate?branch=master#ec180313e410915ed5e319358628260f9d1f3b53"
 dependencies = [
  "frame-try-runtime",
  "log",
@@ -11044,7 +11048,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "04f8ab788026715fa63b31960869617cba39117e520eb415b0139543e325ab59"
 dependencies = [
  "cfg-if 0.1.10",
- "rand 0.7.3",
+ "rand 0.6.5",
  "static_assertions",
 ]
 
@@ -11671,7 +11675,7 @@ dependencies = [
 [[package]]
 name = "westend-runtime"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "beefy-primitives",
  "bitvec",
@@ -11685,6 +11689,7 @@ dependencies = [
  "pallet-authorship",
  "pallet-babe",
  "pallet-balances",
+ "pallet-beefy",
  "pallet-collective",
  "pallet-democracy",
  "pallet-election-provider-multi-phase",
@@ -11694,6 +11699,7 @@ dependencies = [
  "pallet-im-online",
  "pallet-indices",
  "pallet-membership",
+ "pallet-mmr",
  "pallet-mmr-primitives",
  "pallet-multisig",
  "pallet-nicks",
@@ -11739,6 +11745,9 @@ dependencies = [
  "sp-version",
  "static_assertions",
  "substrate-wasm-builder 3.0.0",
+ "xcm",
+ "xcm-builder",
+ "xcm-executor",
 ]
 
 [[package]]
@@ -11848,7 +11857,7 @@ dependencies = [
 [[package]]
 name = "xcm"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "derivative",
  "impl-trait-for-tuples",
@@ -11858,7 +11867,7 @@ dependencies = [
 [[package]]
 name = "xcm-builder"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -11877,7 +11886,7 @@ dependencies = [
 [[package]]
 name = "xcm-executor"
 version = "0.9.0"
-source = "git+https://github.com/paritytech/polkadot?branch=master#4758b9f6a3625b0a8cc6457373bba47f4003739e"
+source = "git+https://github.com/paritytech/polkadot?branch=master#75cebe9b38140a94c7d2a1baa0946c1e4c4a39f1"
 dependencies = [
  "frame-support",
  "impl-trait-for-tuples",
diff --git a/cumulus/client/consensus/relay-chain/src/import_queue.rs b/cumulus/client/consensus/relay-chain/src/import_queue.rs
index fcd27779dcb..e4361c1d727 100644
--- a/cumulus/client/consensus/relay-chain/src/import_queue.rs
+++ b/cumulus/client/consensus/relay-chain/src/import_queue.rs
@@ -24,7 +24,7 @@ use sp_consensus::{
 	import_queue::{BasicQueue, CacheKeyId, Verifier as VerifierT},
 	BlockImport, BlockImportParams, BlockOrigin, ForkChoiceStrategy,
 };
-use sp_inherents::InherentDataProviders;
+use sp_inherents::{CreateInherentDataProviders, InherentDataProvider};
 use sp_runtime::{
 	generic::BlockId,
 	traits::{Block as BlockT, Header as HeaderT},
@@ -32,18 +32,19 @@ use sp_runtime::{
 };
 
 /// A verifier that just checks the inherents.
-struct Verifier<Client, Block> {
+struct Verifier<Client, Block, CIDP> {
 	client: Arc<Client>,
-	inherent_data_providers: InherentDataProviders,
+	create_inherent_data_providers: CIDP,
 	_marker: PhantomData<Block>,
 }
 
 #[async_trait::async_trait]
-impl<Client, Block> VerifierT<Block> for Verifier<Client, Block>
+impl<Client, Block, CIDP> VerifierT<Block> for Verifier<Client, Block, CIDP>
 where
 	Block: BlockT,
 	Client: ProvideRuntimeApi<Block> + Send + Sync,
 	<Client as ProvideRuntimeApi<Block>>::Api: BlockBuilderApi<Block>,
+	CIDP: CreateInherentDataProviders<Block, ()>,
 {
 	async fn verify(
 		&mut self,
@@ -59,10 +60,15 @@ where
 		String,
 	> {
 		if let Some(inner_body) = body.take() {
-			let inherent_data = self
-				.inherent_data_providers
+			let inherent_data_providers = self
+				.create_inherent_data_providers
+				.create_inherent_data_providers(*header.parent_hash(), ())
+				.await
+				.map_err(|e| format!("{:?}", e))?;
+
+			let inherent_data = inherent_data_providers
 				.create_inherent_data()
-				.map_err(|e| e.into_string())?;
+				.map_err(|e| format!("{:?}", e))?;
 
 			let block = Block::new(header.clone(), inner_body);
 
@@ -77,9 +83,15 @@ where
 				.map_err(|e| format!("{:?}", e))?;
 
 			if !inherent_res.ok() {
-				inherent_res.into_errors().try_for_each(|(i, e)| {
-					Err(self.inherent_data_providers.error_to_string(&i, &e))
-				})?;
+				for (i, e) in inherent_res.into_errors() {
+					match inherent_data_providers.try_handle_error(&i, &e).await {
+						Some(r) => r.map_err(|e| format!("{:?}", e))?,
+						None => Err(format!(
+							"Unhandled inherent error from `{}`.",
+							String::from_utf8_lossy(&i)
+						))?,
+					}
+				}
 			}
 
 			let (_, inner_body) = block.deconstruct();
@@ -103,10 +115,10 @@ where
 }
 
 /// Start an import queue for a Cumulus collator that does not uses any special authoring logic.
-pub fn import_queue<Client, Block: BlockT, I>(
+pub fn import_queue<Client, Block: BlockT, I, CIDP>(
 	client: Arc<Client>,
 	block_import: I,
-	inherent_data_providers: InherentDataProviders,
+	create_inherent_data_providers: CIDP,
 	spawner: &impl sp_core::traits::SpawnEssentialNamed,
 	registry: Option<&substrate_prometheus_endpoint::Registry>,
 ) -> ClientResult<BasicQueue<Block, I::Transaction>>
@@ -115,10 +127,11 @@ where
 	I::Transaction: Send,
 	Client: ProvideRuntimeApi<Block> + Send + Sync + 'static,
 	<Client as ProvideRuntimeApi<Block>>::Api: BlockBuilderApi<Block>,
+	CIDP: CreateInherentDataProviders<Block, ()> + 'static,
 {
 	let verifier = Verifier {
 		client,
-		inherent_data_providers,
+		create_inherent_data_providers,
 		_marker: PhantomData,
 	};
 
diff --git a/cumulus/client/consensus/relay-chain/src/lib.rs b/cumulus/client/consensus/relay-chain/src/lib.rs
index 95b62ec4fc6..520a44077ea 100644
--- a/cumulus/client/consensus/relay-chain/src/lib.rs
+++ b/cumulus/client/consensus/relay-chain/src/lib.rs
@@ -39,7 +39,6 @@ use cumulus_primitives_core::{
 	ParaId, PersistedValidationData,
 };
 use cumulus_primitives_parachain_inherent::ParachainInherentData;
-pub use import_queue::import_queue;
 use parking_lot::Mutex;
 use polkadot_service::ClientHandle;
 use sc_client_api::Backend;
@@ -48,32 +47,35 @@ use sp_consensus::{
 	BlockImport, BlockImportParams, BlockOrigin, EnableProofRecording, Environment,
 	ForkChoiceStrategy, ProofRecording, Proposal, Proposer,
 };
-use sp_inherents::{InherentData, InherentDataProviders};
+use sp_inherents::{CreateInherentDataProviders, InherentData, InherentDataProvider};
 use sp_runtime::traits::{Block as BlockT, HashFor, Header as HeaderT};
 use std::{marker::PhantomData, sync::Arc, time::Duration};
 
 mod import_queue;
+pub use import_queue::import_queue;
 
 const LOG_TARGET: &str = "cumulus-consensus-relay-chain";
 
 /// The implementation of the relay-chain provided consensus for parachains.
-pub struct RelayChainConsensus<B, PF, BI, RClient, RBackend> {
+pub struct RelayChainConsensus<B, PF, BI, RClient, RBackend, CIDP> {
 	para_id: ParaId,
 	_phantom: PhantomData<B>,
 	proposer_factory: Arc<Mutex<PF>>,
-	inherent_data_providers: InherentDataProviders,
+	create_inherent_data_providers: Arc<CIDP>,
 	block_import: Arc<futures::lock::Mutex<BI>>,
 	relay_chain_client: Arc<RClient>,
 	relay_chain_backend: Arc<RBackend>,
 }
 
-impl<B, PF, BI, RClient, RBackend> Clone for RelayChainConsensus<B, PF, BI, RClient, RBackend> {
+impl<B, PF, BI, RClient, RBackend, CIDP> Clone
+	for RelayChainConsensus<B, PF, BI, RClient, RBackend, CIDP>
+{
 	fn clone(&self) -> Self {
 		Self {
 			para_id: self.para_id,
 			_phantom: PhantomData,
 			proposer_factory: self.proposer_factory.clone(),
-			inherent_data_providers: self.inherent_data_providers.clone(),
+			create_inherent_data_providers: self.create_inherent_data_providers.clone(),
 			block_import: self.block_import.clone(),
 			relay_chain_backend: self.relay_chain_backend.clone(),
 			relay_chain_client: self.relay_chain_client.clone(),
@@ -81,18 +83,19 @@ impl<B, PF, BI, RClient, RBackend> Clone for RelayChainConsensus<B, PF, BI, RCli
 	}
 }
 
-impl<B, PF, BI, RClient, RBackend> RelayChainConsensus<B, PF, BI, RClient, RBackend>
+impl<B, PF, BI, RClient, RBackend, CIDP> RelayChainConsensus<B, PF, BI, RClient, RBackend, CIDP>
 where
 	B: BlockT,
 	RClient: ProvideRuntimeApi<PBlock>,
 	RClient::Api: ParachainHost<PBlock>,
 	RBackend: Backend<PBlock>,
+	CIDP: CreateInherentDataProviders<B, ()>,
 {
 	/// Create a new instance of relay-chain provided consensus.
 	pub fn new(
 		para_id: ParaId,
 		proposer_factory: PF,
-		inherent_data_providers: InherentDataProviders,
+		create_inherent_data_providers: CIDP,
 		block_import: BI,
 		polkadot_client: Arc<RClient>,
 		polkadot_backend: Arc<RBackend>,
@@ -100,7 +103,7 @@ where
 		Self {
 			para_id,
 			proposer_factory: Arc::new(Mutex::new(proposer_factory)),
-			inherent_data_providers,
+			create_inherent_data_providers: Arc::new(create_inherent_data_providers),
 			block_import: Arc::new(futures::lock::Mutex::new(block_import)),
 			relay_chain_backend: polkadot_backend,
 			relay_chain_client: polkadot_client,
@@ -109,13 +112,26 @@ where
 	}
 
 	/// Get the inherent data with validation function parameters injected
-	fn inherent_data(
+	async fn inherent_data(
 		&self,
+		parent: B::Hash,
 		validation_data: &PersistedValidationData,
 		relay_parent: PHash,
 	) -> Option<InherentData> {
-		let mut inherent_data = self
-			.inherent_data_providers
+		let inherent_data_providers = self
+			.create_inherent_data_providers
+			.create_inherent_data_providers(parent, ())
+			.await
+			.map_err(|e| {
+				tracing::error!(
+					target: LOG_TARGET,
+					error = ?e,
+					"Failed to create inherent data providers",
+				)
+			})
+			.ok()?;
+
+		let mut inherent_data = inherent_data_providers
 			.create_inherent_data()
 			.map_err(|e| {
 				tracing::error!(
@@ -153,8 +169,8 @@ where
 }
 
 #[async_trait::async_trait]
-impl<B, PF, BI, RClient, RBackend> ParachainConsensus<B>
-	for RelayChainConsensus<B, PF, BI, RClient, RBackend>
+impl<B, PF, BI, RClient, RBackend, CIDP> ParachainConsensus<B>
+	for RelayChainConsensus<B, PF, BI, RClient, RBackend, CIDP>
 where
 	B: BlockT,
 	RClient: ProvideRuntimeApi<PBlock> + Send + Sync,
@@ -168,6 +184,7 @@ where
 		ProofRecording = EnableProofRecording,
 		Proof = <EnableProofRecording as ProofRecording>::Proof,
 	>,
+	CIDP: CreateInherentDataProviders<B, ()>,
 {
 	async fn produce_candidate(
 		&mut self,
@@ -184,7 +201,7 @@ where
 			)
 			.ok()?;
 
-		let inherent_data = self.inherent_data(&validation_data, relay_parent)?;
+		let inherent_data = self.inherent_data(parent.hash(), &validation_data, relay_parent).await?;
 
 		let Proposal {
 			block,
@@ -236,10 +253,10 @@ where
 }
 
 /// Paramaters of [`build_relay_chain_consensus`].
-pub struct BuildRelayChainConsensusParams<PF, BI, RBackend> {
+pub struct BuildRelayChainConsensusParams<PF, BI, RBackend, CIDP> {
 	pub para_id: ParaId,
 	pub proposer_factory: PF,
-	pub inherent_data_providers: InherentDataProviders,
+	pub create_inherent_data_providers: CIDP,
 	pub block_import: BI,
 	pub relay_chain_client: polkadot_service::Client,
 	pub relay_chain_backend: Arc<RBackend>,
@@ -248,15 +265,15 @@ pub struct BuildRelayChainConsensusParams<PF, BI, RBackend> {
 /// Build the [`RelayChainConsensus`].
 ///
 /// Returns a boxed [`ParachainConsensus`].
-pub fn build_relay_chain_consensus<Block, PF, BI, RBackend>(
+pub fn build_relay_chain_consensus<Block, PF, BI, RBackend, CIDP>(
 	BuildRelayChainConsensusParams {
 		para_id,
 		proposer_factory,
-		inherent_data_providers,
+		create_inherent_data_providers,
 		block_import,
 		relay_chain_client,
 		relay_chain_backend,
-	}: BuildRelayChainConsensusParams<PF, BI, RBackend>,
+	}: BuildRelayChainConsensusParams<PF, BI, RBackend, CIDP>,
 ) -> Box<dyn ParachainConsensus<Block>>
 where
 	Block: BlockT,
@@ -271,12 +288,13 @@ where
 	RBackend: Backend<PBlock> + 'static,
 	// Rust bug: https://github.com/rust-lang/rust/issues/24159
 	sc_client_api::StateBackendFor<RBackend, PBlock>: sc_client_api::StateBackend<HashFor<PBlock>>,
+	CIDP: CreateInherentDataProviders<Block, ()> + 'static,
 {
 	RelayChainConsensusBuilder::new(
 		para_id,
 		proposer_factory,
 		block_import,
-		inherent_data_providers,
+		create_inherent_data_providers,
 		relay_chain_client,
 		relay_chain_backend,
 	)
@@ -289,17 +307,17 @@ where
 /// a concrete relay chain client instance, the builder takes a [`polkadot_service::Client`]
 /// that wraps this concrete instanace. By using [`polkadot_service::ExecuteWithClient`]
 /// the builder gets access to this concrete instance.
-struct RelayChainConsensusBuilder<Block, PF, BI, RBackend> {
+struct RelayChainConsensusBuilder<Block, PF, BI, RBackend, CIDP> {
 	para_id: ParaId,
 	_phantom: PhantomData<Block>,
 	proposer_factory: PF,
-	inherent_data_providers: InherentDataProviders,
+	create_inherent_data_providers: CIDP,
 	block_import: BI,
 	relay_chain_backend: Arc<RBackend>,
 	relay_chain_client: polkadot_service::Client,
 }
 
-impl<Block, PF, BI, RBackend> RelayChainConsensusBuilder<Block, PF, BI, RBackend>
+impl<Block, PF, BI, RBackend, CIDP> RelayChainConsensusBuilder<Block, PF, BI, RBackend, CIDP>
 where
 	Block: BlockT,
 	// Rust bug: https://github.com/rust-lang/rust/issues/24159
@@ -313,13 +331,14 @@ where
 	>,
 	BI: BlockImport<Block> + Send + Sync + 'static,
 	RBackend: Backend<PBlock> + 'static,
+	CIDP: CreateInherentDataProviders<Block, ()> + 'static,
 {
 	/// Create a new instance of the builder.
 	fn new(
 		para_id: ParaId,
 		proposer_factory: PF,
 		block_import: BI,
-		inherent_data_providers: InherentDataProviders,
+		create_inherent_data_providers: CIDP,
 		relay_chain_client: polkadot_service::Client,
 		relay_chain_backend: Arc<RBackend>,
 	) -> Self {
@@ -328,7 +347,7 @@ where
 			_phantom: PhantomData,
 			proposer_factory,
 			block_import,
-			inherent_data_providers,
+			create_inherent_data_providers,
 			relay_chain_backend,
 			relay_chain_client,
 		}
@@ -340,8 +359,8 @@ where
 	}
 }
 
-impl<Block, PF, BI, RBackend> polkadot_service::ExecuteWithClient
-	for RelayChainConsensusBuilder<Block, PF, BI, RBackend>
+impl<Block, PF, BI, RBackend, CIDP> polkadot_service::ExecuteWithClient
+	for RelayChainConsensusBuilder<Block, PF, BI, RBackend, CIDP>
 where
 	Block: BlockT,
 	// Rust bug: https://github.com/rust-lang/rust/issues/24159
@@ -355,6 +374,7 @@ where
 	>,
 	BI: BlockImport<Block> + Send + Sync + 'static,
 	RBackend: Backend<PBlock> + 'static,
+	CIDP: CreateInherentDataProviders<Block, ()> + 'static,
 {
 	type Output = Box<dyn ParachainConsensus<Block>>;
 
@@ -369,7 +389,7 @@ where
 		Box::new(RelayChainConsensus::new(
 			self.para_id,
 			self.proposer_factory,
-			self.inherent_data_providers,
+			self.create_inherent_data_providers,
 			self.block_import,
 			client.clone(),
 			self.relay_chain_backend,
diff --git a/cumulus/pallets/parachain-system/src/lib.rs b/cumulus/pallets/parachain-system/src/lib.rs
index 990160dcbb5..a2c97250fdf 100644
--- a/cumulus/pallets/parachain-system/src/lib.rs
+++ b/cumulus/pallets/parachain-system/src/lib.rs
@@ -27,33 +27,36 @@
 //!
 //! Users must ensure that they register this pallet as an inherent provider.
 
-use sp_std::{prelude::*, cmp, collections::btree_map::BTreeMap};
-use sp_runtime::traits::{BlakeTwo256, Hash};
-use sp_inherents::{InherentData, InherentIdentifier, ProvideInherent};
+use cumulus_primitives_core::{
+	relay_chain,
+	well_known_keys::{self, NEW_VALIDATION_CODE},
+	AbridgedHostConfiguration, ChannelStatus, DmpMessageHandler, GetChannelInfo,
+	InboundDownwardMessage, InboundHrmpMessage, MessageSendError, OnValidationData,
+	OutboundHrmpMessage, ParaId, PersistedValidationData, UpwardMessage, UpwardMessageSender,
+	XcmpMessageHandler, XcmpMessageSource,
+};
+use cumulus_primitives_parachain_inherent::ParachainInherentData;
 use frame_support::{
 	decl_error, decl_event, decl_module, decl_storage,
 	dispatch::{DispatchResult, DispatchResultWithPostInfo},
-	ensure, storage,
+	ensure,
+	inherent::{InherentData, InherentIdentifier, ProvideInherent},
+	storage,
 	traits::Get,
-	weights::{DispatchClass, Weight, PostDispatchInfo, Pays},
+	weights::{DispatchClass, Pays, PostDispatchInfo, Weight},
 };
 use frame_system::{ensure_none, ensure_root};
 use polkadot_parachain::primitives::RelayChainBlockNumber;
-use cumulus_primitives_core::{
-	relay_chain,
-	well_known_keys::{self, NEW_VALIDATION_CODE},
-	AbridgedHostConfiguration, DmpMessageHandler, XcmpMessageHandler,
-	InboundDownwardMessage, InboundHrmpMessage, OnValidationData, OutboundHrmpMessage, ParaId,
-	PersistedValidationData, UpwardMessage, UpwardMessageSender, MessageSendError,
-	XcmpMessageSource, ChannelStatus, GetChannelInfo,
-};
-use cumulus_primitives_parachain_inherent::ParachainInherentData;
 use relay_state_snapshot::MessagingStateSnapshot;
-use sp_runtime::transaction_validity::{
-	TransactionSource, TransactionValidity, InvalidTransaction, ValidTransaction,
-	TransactionLongevity,
+use sp_runtime::{
+	traits::{BlakeTwo256, Hash},
+	transaction_validity::{
+		InvalidTransaction, TransactionLongevity, TransactionSource, TransactionValidity,
+		ValidTransaction,
+	},
+	DispatchError,
 };
-use sp_runtime::DispatchError;
+use sp_std::{cmp, collections::btree_map::BTreeMap, prelude::*};
 
 mod relay_state_snapshot;
 #[macro_use]
@@ -414,8 +417,7 @@ decl_module! {
 
 impl<T: Config> Module<T> {
 	fn validate_authorized_upgrade(code: &[u8]) -> Result<T::Hash, DispatchError> {
-		let required_hash = AuthorizedUpgrade::<T>::get()
-			.ok_or(Error::<T>::NothingAuthorized)?;
+		let required_hash = AuthorizedUpgrade::<T>::get().ok_or(Error::<T>::NothingAuthorized)?;
 		let actual_hash = T::Hashing::hash(&code[..]);
 		ensure!(actual_hash == required_hash, Error::<T>::Unauthorized);
 		Ok(actual_hash)
@@ -434,11 +436,11 @@ impl<T: Config> sp_runtime::traits::ValidateUnsigned for Module<T> {
 					provides: vec![hash.as_ref().to_vec()],
 					longevity: TransactionLongevity::max_value(),
 					propagate: true,
-				})
+				});
 			}
 		}
 		if let Call::set_validation_data(..) = call {
-			return Ok(Default::default())
+			return Ok(Default::default());
 		}
 		Err(InvalidTransaction::Call.into())
 	}
@@ -462,8 +464,8 @@ impl<T: Config> GetChannelInfo for Module<T> {
 		let channels = match Self::relevant_messaging_state() {
 			None => {
 				log::warn!("calling `get_channel_status` with no RelevantMessagingState?!");
-				return ChannelStatus::Closed
-			},
+				return ChannelStatus::Closed;
+			}
 			Some(d) => d.egress_channels,
 		};
 		// ^^^ NOTE: This storage field should carry over from the previous block. So if it's None
@@ -504,15 +506,16 @@ impl<T: Config> Module<T> {
 	/// # Panics
 	fn validate_validation_data(validation_data: &PersistedValidationData) {
 		validate_block::with_validation_params(|params| {
-			assert_eq!(params.parent_head, validation_data.parent_head, "Parent head doesn't match");
 			assert_eq!(
-				params.relay_parent_number,
-				validation_data.relay_parent_number,
+				params.parent_head, validation_data.parent_head,
+				"Parent head doesn't match"
+			);
+			assert_eq!(
+				params.relay_parent_number, validation_data.relay_parent_number,
 				"Relay parent number doesn't match",
 			);
 			assert_eq!(
-				params.relay_parent_storage_root,
-				validation_data.relay_parent_storage_root,
+				params.relay_parent_storage_root, validation_data.relay_parent_storage_root,
 				"Relay parent storage root doesn't match",
 			);
 		});
@@ -535,10 +538,14 @@ impl<T: Config> Module<T> {
 		let mut weight_used = 0;
 		if dm_count != 0 {
 			Self::deposit_event(RawEvent::DownwardMessagesReceived(dm_count));
-			let max_weight = ReservedDmpWeightOverride::get().unwrap_or_else(T::ReservedDmpWeight::get);
+			let max_weight =
+				ReservedDmpWeightOverride::get().unwrap_or_else(T::ReservedDmpWeight::get);
 
-			let message_iter = downward_messages.into_iter()
-				.inspect(|m| { dmq_head.extend_downward(m); })
+			let message_iter = downward_messages
+				.into_iter()
+				.inspect(|m| {
+					dmq_head.extend_downward(m);
+				})
 				.map(|m| (m.sent_at, m.msg));
 			weight_used += T::DmpMessageHandler::handle_dmp_messages(message_iter, max_weight);
 			LastDmqMqcHead::put(&dmq_head);
@@ -579,11 +586,9 @@ impl<T: Config> Module<T> {
 			// A violation of the assertion below indicates that one of the messages submitted by
 			// the collator was sent from a sender that doesn't have a channel opened to this parachain,
 			// according to the relay-parent state.
-			assert!(
-				ingress_channels
-					.binary_search_by_key(sender, |&(s, _)| s)
-					.is_ok(),
-			);
+			assert!(ingress_channels
+				.binary_search_by_key(sender, |&(s, _)| s)
+				.is_ok(),);
 		}
 
 		// Second, prepare horizontal messages for a more convenient processing:
@@ -628,10 +633,12 @@ impl<T: Config> Module<T> {
 					.extend_hrmp(horizontal_message);
 			}
 		}
-		let message_iter = horizontal_messages.iter()
+		let message_iter = horizontal_messages
+			.iter()
 			.map(|&(sender, ref message)| (sender, message.sent_at, &message.data[..]));
 
-		let max_weight = ReservedXcmpWeightOverride::get().unwrap_or_else(T::ReservedXcmpWeight::get);
+		let max_weight =
+			ReservedXcmpWeightOverride::get().unwrap_or_else(T::ReservedXcmpWeight::get);
 		let weight_used = T::XcmpMessageHandler::handle_xcmp_messages(message_iter, max_weight);
 
 		// Check that the MQC heads for each channel provided by the relay chain match the MQC heads
@@ -888,8 +895,8 @@ mod tests {
 
 	use codec::Encode;
 	use cumulus_primitives_core::{
-		AbridgedHrmpChannel, InboundDownwardMessage, InboundHrmpMessage, PersistedValidationData,
-		relay_chain::BlockNumber as RelayBlockNumber,
+		relay_chain::BlockNumber as RelayBlockNumber, AbridgedHrmpChannel, InboundDownwardMessage,
+		InboundHrmpMessage, PersistedValidationData,
 	};
 	use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder;
 	use frame_support::{
@@ -982,10 +989,7 @@ mod tests {
 		static SENT_MESSAGES: RefCell<Vec<(ParaId, Vec<u8>)>> = RefCell::new(Vec::new());
 	}
 
-	fn send_message(
-		dest: ParaId,
-		message: Vec<u8>,
-	) {
+	fn send_message(dest: ParaId, message: Vec<u8>) {
 		SENT_MESSAGES.with(|m| m.borrow_mut().push((dest, message)));
 	}
 
@@ -994,9 +998,9 @@ mod tests {
 			let mut ids = std::collections::BTreeSet::<ParaId>::new();
 			let mut taken = 0;
 			let mut result = Vec::new();
-			SENT_MESSAGES.with(|ms| ms.borrow_mut()
-				.retain(|m| {
-					let status = <Module::<Test> as GetChannelInfo>::get_channel_status(m.0);
+			SENT_MESSAGES.with(|ms| {
+				ms.borrow_mut().retain(|m| {
+					let status = <Module<Test> as GetChannelInfo>::get_channel_status(m.0);
 					let ready = matches!(status, ChannelStatus::Ready(..));
 					if ready && !ids.contains(&m.0) && taken < maximum_channels {
 						ids.insert(m.0);
@@ -1007,14 +1011,14 @@ mod tests {
 						true
 					}
 				})
-			);
+			});
 			result
 		}
 	}
 
 	impl DmpMessageHandler for SaveIntoThreadLocal {
 		fn handle_dmp_messages(
-			iter: impl Iterator<Item=(RelayBlockNumber, Vec<u8>)>,
+			iter: impl Iterator<Item = (RelayBlockNumber, Vec<u8>)>,
 			_max_weight: Weight,
 		) -> Weight {
 			HANDLED_DMP_MESSAGES.with(|m| {
@@ -1027,7 +1031,7 @@ mod tests {
 	}
 
 	impl XcmpMessageHandler for SaveIntoThreadLocal {
-		fn handle_xcmp_messages<'a, I: Iterator<Item=(ParaId, RelayBlockNumber, &'a [u8])>>(
+		fn handle_xcmp_messages<'a, I: Iterator<Item = (ParaId, RelayBlockNumber, &'a [u8])>>(
 			iter: I,
 			_max_weight: Weight,
 		) -> Weight {
@@ -1284,16 +1288,15 @@ mod tests {
 			.add_with_post_test(
 				123,
 				|| {
-					assert_ok!(System::set_code(
-						RawOrigin::Root.into(),
-						Default::default()
-					));
+					assert_ok!(System::set_code(RawOrigin::Root.into(), Default::default()));
 				},
 				|| {
 					let events = System::events();
 					assert_eq!(
 						events[0].event,
-						Event::parachain_system(crate::RawEvent::ValidationFunctionStored(1123).into())
+						Event::parachain_system(
+							crate::RawEvent::ValidationFunctionStored(1123).into()
+						)
 					);
 				},
 			)
@@ -1304,7 +1307,9 @@ mod tests {
 					let events = System::events();
 					assert_eq!(
 						events[0].event,
-						Event::parachain_system(crate::RawEvent::ValidationFunctionApplied(1234).into())
+						Event::parachain_system(
+							crate::RawEvent::ValidationFunctionApplied(1234).into()
+						)
 					);
 				},
 			);
@@ -1317,10 +1322,7 @@ mod tests {
 				builder.host_config.validation_upgrade_delay = 1000;
 			})
 			.add(123, || {
-				assert_ok!(System::set_code(
-					RawOrigin::Root.into(),
-					Default::default()
-				));
+				assert_ok!(System::set_code(RawOrigin::Root.into(), Default::default()));
 			})
 			.add(234, || {
 				assert_eq!(
@@ -1338,10 +1340,7 @@ mod tests {
 					!PendingValidationFunction::exists(),
 					"validation function must not exist yet"
 				);
-				assert_ok!(System::set_code(
-					RawOrigin::Root.into(),
-					Default::default()
-				));
+				assert_ok!(System::set_code(RawOrigin::Root.into(), Default::default()));
 				assert!(
 					PendingValidationFunction::exists(),
 					"validation function must now exist"
@@ -1511,14 +1510,8 @@ mod tests {
 			.add_with_post_test(
 				1,
 				|| {
-					send_message(
-						ParaId::from(300),
-						b"1".to_vec(),
-					);
-					send_message(
-						ParaId::from(400),
-						b"2".to_vec(),
-					);
+					send_message(ParaId::from(300), b"1".to_vec());
+					send_message(ParaId::from(400), b"2".to_vec());
 				},
 				|| {},
 			)
diff --git a/cumulus/rococo-parachains/runtime/Cargo.toml b/cumulus/rococo-parachains/runtime/Cargo.toml
index 0d3e50e6ec4..1b97a0e2094 100644
--- a/cumulus/rococo-parachains/runtime/Cargo.toml
+++ b/cumulus/rococo-parachains/runtime/Cargo.toml
@@ -55,7 +55,7 @@ hex-literal = "0.3.1"
 hex = "0.4.3"
 
 [build-dependencies]
-substrate-wasm-builder = "3.0.0"
+substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "master" }
 
 [features]
 default = [ "std" ]
diff --git a/cumulus/rococo-parachains/shell-runtime/Cargo.toml b/cumulus/rococo-parachains/shell-runtime/Cargo.toml
index c779c7b287c..81454d6d341 100644
--- a/cumulus/rococo-parachains/shell-runtime/Cargo.toml
+++ b/cumulus/rococo-parachains/shell-runtime/Cargo.toml
@@ -46,7 +46,7 @@ hex = "0.4.3"
 hex-literal = "0.3.1"
 
 [build-dependencies]
-substrate-wasm-builder = "3.0.0"
+substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "master" }
 
 [features]
 default = [ "std" ]
diff --git a/cumulus/rococo-parachains/src/service.rs b/cumulus/rococo-parachains/src/service.rs
index 677be33d1cb..5e88ea78779 100644
--- a/cumulus/rococo-parachains/src/service.rs
+++ b/cumulus/rococo-parachains/src/service.rs
@@ -28,9 +28,9 @@ use sc_executor::native_executor_instance;
 pub use sc_executor::NativeExecutor;
 use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager};
 use sc_telemetry::{Telemetry, TelemetryWorker, TelemetryWorkerHandle};
+use sp_api::ConstructRuntimeApi;
 use sp_runtime::traits::BlakeTwo256;
 use sp_trie::PrefixedMemoryDB;
-use sp_api::ConstructRuntimeApi;
 use std::sync::Arc;
 
 // Native executor instance.
@@ -63,7 +63,8 @@ pub fn new_partial<RuntimeApi, Executor>(
 		(Option<Telemetry>, Option<TelemetryWorkerHandle>),
 	>,
 	sc_service::Error,
-> where
+>
+where
 	RuntimeApi: ConstructRuntimeApi<Block, TFullClient<Block, RuntimeApi, Executor>>
 		+ Send
 		+ Sync
@@ -79,9 +80,9 @@ pub fn new_partial<RuntimeApi, Executor>(
 	sc_client_api::StateBackendFor<TFullBackend<Block>, Block>: sp_api::StateBackend<BlakeTwo256>,
 	Executor: sc_executor::NativeExecutionDispatch + 'static,
 {
-	let inherent_data_providers = sp_inherents::InherentDataProviders::new();
-
-	let telemetry = config.telemetry_endpoints.clone()
+	let telemetry = config
+		.telemetry_endpoints
+		.clone()
 		.filter(|x| !x.is_empty())
 		.map(|endpoints| -> Result<_, sc_telemetry::Error> {
 			let worker = TelemetryWorker::new(16)?;
@@ -97,15 +98,12 @@ pub fn new_partial<RuntimeApi, Executor>(
 		)?;
 	let client = Arc::new(client);
 
-	let telemetry_worker_handle = telemetry
-		.as_ref()
-		.map(|(worker, _)| worker.handle());
+	let telemetry_worker_handle = telemetry.as_ref().map(|(worker, _)| worker.handle());
 
-	let telemetry = telemetry
-		.map(|(worker, telemetry)| {
-			task_manager.spawn_handle().spawn("telemetry", worker.run());
-			telemetry
-		});
+	let telemetry = telemetry.map(|(worker, telemetry)| {
+		task_manager.spawn_handle().spawn("telemetry", worker.run());
+		telemetry
+	});
 
 	let registry = config.prometheus_registry();
 
@@ -120,7 +118,7 @@ pub fn new_partial<RuntimeApi, Executor>(
 	let import_queue = cumulus_client_consensus_relay_chain::import_queue(
 		client.clone(),
 		client.clone(),
-		inherent_data_providers.clone(),
+		|_, _| async { Ok(sp_timestamp::InherentDataProvider::from_system_time()) },
 		&task_manager.spawn_essential_handle(),
 		registry.clone(),
 	)?;
@@ -132,7 +130,6 @@ pub fn new_partial<RuntimeApi, Executor>(
 		keystore_container,
 		task_manager,
 		transaction_pool,
-		inherent_data_providers,
 		select_chain: (),
 		other: (telemetry, telemetry_worker_handle),
 	};
@@ -180,22 +177,17 @@ where
 	let parachain_config = prepare_node_config(parachain_config);
 
 	let params = new_partial::<RuntimeApi, Executor>(&parachain_config)?;
-	params
-		.inherent_data_providers
-		.register_provider(sp_timestamp::InherentDataProvider)
-		.unwrap();
 	let (mut telemetry, telemetry_worker_handle) = params.other;
 
-	let polkadot_full_node =
-		cumulus_client_service::build_polkadot_full_node(
-			polkadot_config,
-			collator_key.clone(),
-			telemetry_worker_handle,
-		)
-		.map_err(|e| match e {
-			polkadot_service::Error::Sub(x) => x,
-			s => format!("{}", s).into(),
-		})?;
+	let polkadot_full_node = cumulus_client_service::build_polkadot_full_node(
+		polkadot_config,
+		collator_key.clone(),
+		telemetry_worker_handle,
+	)
+	.map_err(|e| match e {
+		polkadot_service::Error::Sub(x) => x,
+		s => format!("{}", s).into(),
+	})?;
 
 	let client = params.client.clone();
 	let backend = params.backend.clone();
@@ -258,7 +250,9 @@ where
 		let parachain_consensus = build_relay_chain_consensus(BuildRelayChainConsensusParams {
 			para_id: id,
 			proposer_factory,
-			inherent_data_providers: params.inherent_data_providers,
+			create_inherent_data_providers: |_, _| async {
+				Ok(sp_timestamp::InherentDataProvider::from_system_time())
+			},
 			block_import: client.clone(),
 			relay_chain_client: polkadot_full_node.client.clone(),
 			relay_chain_backend: polkadot_full_node.backend.clone(),
@@ -302,9 +296,10 @@ pub async fn start_node(
 	polkadot_config: Configuration,
 	id: ParaId,
 	validator: bool,
-) -> sc_service::error::Result<
-	(TaskManager, Arc<TFullClient<Block, parachain_runtime::RuntimeApi, RuntimeExecutor>>)
-> {
+) -> sc_service::error::Result<(
+	TaskManager,
+	Arc<TFullClient<Block, parachain_runtime::RuntimeApi, RuntimeExecutor>>,
+)> {
 	start_node_impl::<parachain_runtime::RuntimeApi, RuntimeExecutor, _>(
 		parachain_config,
 		collator_key,
@@ -312,7 +307,8 @@ pub async fn start_node(
 		id,
 		validator,
 		|_| Default::default(),
-	).await
+	)
+	.await
 }
 
 /// Start a rococo-shell parachain node.
@@ -322,9 +318,10 @@ pub async fn start_shell_node(
 	polkadot_config: Configuration,
 	id: ParaId,
 	validator: bool,
-) -> sc_service::error::Result<
-	(TaskManager, Arc<TFullClient<Block, shell_runtime::RuntimeApi, ShellRuntimeExecutor>>)
-> {
+) -> sc_service::error::Result<(
+	TaskManager,
+	Arc<TFullClient<Block, shell_runtime::RuntimeApi, ShellRuntimeExecutor>>,
+)> {
 	start_node_impl::<shell_runtime::RuntimeApi, ShellRuntimeExecutor, _>(
 		parachain_config,
 		collator_key,
@@ -332,5 +329,6 @@ pub async fn start_shell_node(
 		id,
 		validator,
 		|_| Default::default(),
-	).await
+	)
+	.await
 }
diff --git a/cumulus/test/runtime-upgrade/Cargo.toml b/cumulus/test/runtime-upgrade/Cargo.toml
index 898cb4677e7..7fb231b5f7b 100644
--- a/cumulus/test/runtime-upgrade/Cargo.toml
+++ b/cumulus/test/runtime-upgrade/Cargo.toml
@@ -37,7 +37,7 @@ cumulus-primitives-core = { path = "../../primitives/core", default-features = f
 polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
 
 [build-dependencies]
-substrate-wasm-builder = "3.0.0"
+substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "master" }
 
 [features]
 default = [ "std", "upgrade" ]
diff --git a/cumulus/test/runtime/Cargo.toml b/cumulus/test/runtime/Cargo.toml
index 5b0798e7869..780c18e041e 100644
--- a/cumulus/test/runtime/Cargo.toml
+++ b/cumulus/test/runtime/Cargo.toml
@@ -37,7 +37,7 @@ cumulus-primitives-core = { path = "../../primitives/core", default-features = f
 polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
 
 [build-dependencies]
-substrate-wasm-builder = "3.0.0"
+substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "master" }
 
 [features]
 default = [ "std" ]
diff --git a/cumulus/test/service/Cargo.toml b/cumulus/test/service/Cargo.toml
index a42775ddcaa..486febb1f23 100644
--- a/cumulus/test/service/Cargo.toml
+++ b/cumulus/test/service/Cargo.toml
@@ -29,7 +29,6 @@ sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "
 sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
-sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" }
diff --git a/cumulus/test/service/src/lib.rs b/cumulus/test/service/src/lib.rs
index 4ffbf8f7d03..6b10606d96b 100644
--- a/cumulus/test/service/src/lib.rs
+++ b/cumulus/test/service/src/lib.rs
@@ -89,8 +89,6 @@ pub fn new_partial(
 	>,
 	sc_service::Error,
 > {
-	let inherent_data_providers = sp_inherents::InherentDataProviders::new();
-
 	let (client, backend, keystore_container, task_manager) =
 		sc_service::new_full_parts::<Block, RuntimeApi, RuntimeExecutor>(&config, None)?;
 	let client = Arc::new(client);
@@ -108,7 +106,7 @@ pub fn new_partial(
 	let import_queue = cumulus_client_consensus_relay_chain::import_queue(
 		client.clone(),
 		client.clone(),
-		inherent_data_providers.clone(),
+		|_, _| async { Ok(sp_timestamp::InherentDataProvider::from_system_time()) },
 		&task_manager.spawn_essential_handle(),
 		registry.clone(),
 	)?;
@@ -120,7 +118,6 @@ pub fn new_partial(
 		keystore_container,
 		task_manager,
 		transaction_pool,
-		inherent_data_providers,
 		select_chain: (),
 		other: (),
 	};
@@ -158,10 +155,6 @@ where
 	let mut parachain_config = prepare_node_config(parachain_config);
 
 	let params = new_partial(&mut parachain_config)?;
-	params
-		.inherent_data_providers
-		.register_provider(sp_timestamp::InherentDataProvider)
-		.expect("Registers timestamp inherent data provider.");
 
 	let transaction_pool = params.transaction_pool.clone();
 	let mut task_manager = params.task_manager;
@@ -242,7 +235,7 @@ where
 		let parachain_consensus = cumulus_client_consensus_relay_chain::RelayChainConsensus::new(
 			para_id,
 			proposer_factory,
-			params.inherent_data_providers,
+			|_, _| async { Ok(sp_timestamp::InherentDataProvider::from_system_time()) },
 			client.clone(),
 			relay_chain_full_node.client.clone(),
 			relay_chain_full_node.backend.clone(),
-- 
GitLab