diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock
index a25b5d3973fed5e932744aa4d4fe2b157a623646..e1368d3433a488fc05326b398ac9237cca515eb8 100644
--- a/polkadot/Cargo.lock
+++ b/polkadot/Cargo.lock
@@ -1221,7 +1221,7 @@ checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
 [[package]]
 name = "fork-tree"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
 ]
@@ -1229,7 +1229,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1246,7 +1246,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking-cli"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "parity-scale-codec",
@@ -1264,7 +1264,7 @@ dependencies = [
 [[package]]
 name = "frame-executive"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1279,7 +1279,7 @@ dependencies = [
 [[package]]
 name = "frame-metadata"
 version = "11.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -1290,7 +1290,7 @@ dependencies = [
 [[package]]
 name = "frame-support"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "bitmask",
  "frame-metadata",
@@ -1301,6 +1301,7 @@ dependencies = [
  "parity-scale-codec",
  "paste",
  "serde",
+ "smallvec 1.4.0",
  "sp-arithmetic",
  "sp-core",
  "sp-inherents",
@@ -1314,7 +1315,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support-procedural-tools",
  "proc-macro2 1.0.12",
@@ -1325,7 +1326,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support-procedural-tools-derive",
  "proc-macro-crate",
@@ -1337,7 +1338,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools-derive"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "proc-macro2 1.0.12",
  "quote 1.0.5",
@@ -1347,7 +1348,7 @@ dependencies = [
 [[package]]
 name = "frame-system"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "impl-trait-for-tuples",
@@ -1363,7 +1364,7 @@ dependencies = [
 [[package]]
 name = "frame-system-rpc-runtime-api"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -2268,6 +2269,7 @@ dependencies = [
  "serde",
  "serde_derive",
  "serde_json",
+ "smallvec 1.4.0",
  "sp-api",
  "sp-authority-discovery",
  "sp-block-builder",
@@ -3265,7 +3267,7 @@ dependencies = [
 [[package]]
 name = "pallet-authority-discovery"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3281,7 +3283,7 @@ dependencies = [
 [[package]]
 name = "pallet-authorship"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3296,7 +3298,7 @@ dependencies = [
 [[package]]
 name = "pallet-babe"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3318,7 +3320,7 @@ dependencies = [
 [[package]]
 name = "pallet-balances"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3332,7 +3334,7 @@ dependencies = [
 [[package]]
 name = "pallet-collective"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3348,7 +3350,7 @@ dependencies = [
 [[package]]
 name = "pallet-democracy"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3363,7 +3365,7 @@ dependencies = [
 [[package]]
 name = "pallet-elections-phragmen"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3378,7 +3380,7 @@ dependencies = [
 [[package]]
 name = "pallet-finality-tracker"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3394,7 +3396,7 @@ dependencies = [
 [[package]]
 name = "pallet-grandpa"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3414,7 +3416,7 @@ dependencies = [
 [[package]]
 name = "pallet-identity"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -3430,7 +3432,7 @@ dependencies = [
 [[package]]
 name = "pallet-im-online"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3450,7 +3452,7 @@ dependencies = [
 [[package]]
 name = "pallet-indices"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3466,7 +3468,7 @@ dependencies = [
 [[package]]
 name = "pallet-membership"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3480,7 +3482,7 @@ dependencies = [
 [[package]]
 name = "pallet-nicks"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3494,7 +3496,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3509,7 +3511,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences-benchmarking"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3530,7 +3532,7 @@ dependencies = [
 [[package]]
 name = "pallet-randomness-collective-flip"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3543,7 +3545,7 @@ dependencies = [
 [[package]]
 name = "pallet-recovery"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "enumflags2",
  "frame-support",
@@ -3558,7 +3560,7 @@ dependencies = [
 [[package]]
 name = "pallet-scheduler"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3573,7 +3575,7 @@ dependencies = [
 [[package]]
 name = "pallet-session"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3591,7 +3593,7 @@ dependencies = [
 [[package]]
 name = "pallet-session-benchmarking"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3605,7 +3607,7 @@ dependencies = [
 [[package]]
 name = "pallet-society"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3619,7 +3621,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3642,7 +3644,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-reward-curve"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.12",
@@ -3653,7 +3655,7 @@ dependencies = [
 [[package]]
 name = "pallet-sudo"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3667,7 +3669,7 @@ dependencies = [
 [[package]]
 name = "pallet-timestamp"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3685,12 +3687,13 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "frame-system",
  "pallet-transaction-payment-rpc-runtime-api",
  "parity-scale-codec",
+ "smallvec 1.4.0",
  "sp-runtime",
  "sp-std",
 ]
@@ -3698,7 +3701,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -3716,7 +3719,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc-runtime-api"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -3729,7 +3732,7 @@ dependencies = [
 [[package]]
 name = "pallet-treasury"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3744,7 +3747,7 @@ dependencies = [
 [[package]]
 name = "pallet-utility"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3760,7 +3763,7 @@ dependencies = [
 [[package]]
 name = "pallet-vesting"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -4332,6 +4335,7 @@ dependencies = [
  "serde",
  "serde_derive",
  "serde_json",
+ "smallvec 1.4.0",
  "sp-api",
  "sp-authority-discovery",
  "sp-block-builder",
@@ -4499,6 +4503,7 @@ dependencies = [
  "serde",
  "serde_derive",
  "serde_json",
+ "smallvec 1.4.0",
  "sp-api",
  "sp-block-builder",
  "sp-consensus-babe",
@@ -5309,7 +5314,7 @@ dependencies = [
 [[package]]
 name = "sc-authority-discovery"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "bytes 0.5.4",
  "derive_more 0.99.6",
@@ -5336,7 +5341,7 @@ dependencies = [
 [[package]]
 name = "sc-block-builder"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "sc-client-api",
@@ -5352,7 +5357,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "impl-trait-for-tuples",
  "sc-chain-spec-derive",
@@ -5368,7 +5373,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec-derive"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.12",
@@ -5379,7 +5384,7 @@ dependencies = [
 [[package]]
 name = "sc-cli"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "ansi_term 0.12.1",
  "app_dirs",
@@ -5421,7 +5426,7 @@ dependencies = [
 [[package]]
 name = "sc-client-api"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "fnv",
@@ -5457,7 +5462,7 @@ dependencies = [
 [[package]]
 name = "sc-client-db"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "blake2-rfc",
  "hash-db",
@@ -5486,7 +5491,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "sc-client-api",
  "sp-blockchain",
@@ -5497,7 +5502,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "fork-tree",
@@ -5539,7 +5544,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe-rpc"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "futures 0.3.5",
@@ -5561,7 +5566,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-epochs"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "fork-tree",
  "parity-scale-codec",
@@ -5574,7 +5579,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-slots"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -5596,7 +5601,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-uncles"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "log 0.4.8",
  "sc-client-api",
@@ -5610,7 +5615,7 @@ dependencies = [
 [[package]]
 name = "sc-executor"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "lazy_static",
@@ -5638,7 +5643,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-common"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "log 0.4.8",
@@ -5655,7 +5660,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmi"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "log 0.4.8",
  "parity-scale-codec",
@@ -5670,7 +5675,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmtime"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "cranelift-codegen",
  "cranelift-wasm",
@@ -5691,7 +5696,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "assert_matches",
  "derive_more 0.99.6",
@@ -5728,7 +5733,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa-rpc"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "finality-grandpa",
@@ -5745,7 +5750,7 @@ dependencies = [
 [[package]]
 name = "sc-informant"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "ansi_term 0.12.1",
  "futures 0.3.5",
@@ -5762,7 +5767,7 @@ dependencies = [
 [[package]]
 name = "sc-keystore"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "hex",
@@ -5777,7 +5782,7 @@ dependencies = [
 [[package]]
 name = "sc-network"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "bitflags",
  "bs58",
@@ -5829,7 +5834,7 @@ dependencies = [
 [[package]]
 name = "sc-network-gossip"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -5844,7 +5849,7 @@ dependencies = [
 [[package]]
 name = "sc-network-test"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "env_logger",
  "futures 0.3.5",
@@ -5871,7 +5876,7 @@ dependencies = [
 [[package]]
 name = "sc-offchain"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "bytes 0.5.4",
  "fnv",
@@ -5898,7 +5903,7 @@ dependencies = [
 [[package]]
 name = "sc-peerset"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "futures 0.3.5",
  "libp2p",
@@ -5911,7 +5916,7 @@ dependencies = [
 [[package]]
 name = "sc-proposer-metrics"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "log 0.4.8",
  "substrate-prometheus-endpoint",
@@ -5920,7 +5925,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "futures 0.3.5",
  "hash-db",
@@ -5952,7 +5957,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-api"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "futures 0.3.5",
@@ -5976,7 +5981,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-server"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-http-server",
@@ -5991,7 +5996,7 @@ dependencies = [
 [[package]]
 name = "sc-service"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "exit-future",
@@ -6049,7 +6054,7 @@ dependencies = [
 [[package]]
 name = "sc-state-db"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "log 0.4.8",
  "parity-scale-codec",
@@ -6063,7 +6068,7 @@ dependencies = [
 [[package]]
 name = "sc-telemetry"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "bytes 0.5.4",
  "futures 0.3.5",
@@ -6085,7 +6090,7 @@ dependencies = [
 [[package]]
 name = "sc-tracing"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "erased-serde",
  "log 0.4.8",
@@ -6100,7 +6105,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-graph"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "futures 0.3.5",
@@ -6120,7 +6125,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-pool"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "futures 0.3.5",
@@ -6517,7 +6522,7 @@ dependencies = [
 [[package]]
 name = "sp-allocator"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "log 0.4.8",
@@ -6529,7 +6534,7 @@ dependencies = [
 [[package]]
 name = "sp-api"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "hash-db",
  "parity-scale-codec",
@@ -6544,7 +6549,7 @@ dependencies = [
 [[package]]
 name = "sp-api-proc-macro"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "blake2-rfc",
  "proc-macro-crate",
@@ -6556,7 +6561,7 @@ dependencies = [
 [[package]]
 name = "sp-application-crypto"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -6568,7 +6573,7 @@ dependencies = [
 [[package]]
 name = "sp-arithmetic"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "integer-sqrt",
  "num-traits 0.2.11",
@@ -6582,7 +6587,7 @@ dependencies = [
 [[package]]
 name = "sp-authority-discovery"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -6594,7 +6599,7 @@ dependencies = [
 [[package]]
 name = "sp-authorship"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "sp-inherents",
@@ -6605,7 +6610,7 @@ dependencies = [
 [[package]]
 name = "sp-block-builder"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -6617,7 +6622,7 @@ dependencies = [
 [[package]]
 name = "sp-blockchain"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "log 0.4.8",
@@ -6633,7 +6638,7 @@ dependencies = [
 [[package]]
 name = "sp-chain-spec"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "serde",
  "serde_json",
@@ -6642,7 +6647,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "futures 0.3.5",
@@ -6665,7 +6670,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-aura"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -6679,7 +6684,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-babe"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "merlin",
  "parity-scale-codec",
@@ -6696,7 +6701,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-vrf"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "schnorrkel",
@@ -6708,7 +6713,7 @@ dependencies = [
 [[package]]
 name = "sp-core"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "base58",
  "blake2-rfc",
@@ -6750,7 +6755,7 @@ dependencies = [
 [[package]]
 name = "sp-database"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "kvdb",
  "parking_lot 0.10.2",
@@ -6759,7 +6764,7 @@ dependencies = [
 [[package]]
 name = "sp-debug-derive"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "proc-macro2 1.0.12",
  "quote 1.0.5",
@@ -6769,7 +6774,7 @@ dependencies = [
 [[package]]
 name = "sp-externalities"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -6780,7 +6785,7 @@ dependencies = [
 [[package]]
 name = "sp-finality-grandpa"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "finality-grandpa",
  "log 0.4.8",
@@ -6796,7 +6801,7 @@ dependencies = [
 [[package]]
 name = "sp-finality-tracker"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "sp-inherents",
@@ -6806,7 +6811,7 @@ dependencies = [
 [[package]]
 name = "sp-inherents"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "parity-scale-codec",
@@ -6818,7 +6823,7 @@ dependencies = [
 [[package]]
 name = "sp-io"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "futures 0.3.5",
  "hash-db",
@@ -6838,7 +6843,7 @@ dependencies = [
 [[package]]
 name = "sp-keyring"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "lazy_static",
  "sp-core",
@@ -6849,7 +6854,7 @@ dependencies = [
 [[package]]
 name = "sp-offchain"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "sp-api",
  "sp-core",
@@ -6859,7 +6864,7 @@ dependencies = [
 [[package]]
 name = "sp-panic-handler"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "backtrace",
  "log 0.4.8",
@@ -6868,7 +6873,7 @@ dependencies = [
 [[package]]
 name = "sp-phragmen"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -6880,7 +6885,7 @@ dependencies = [
 [[package]]
 name = "sp-phragmen-compact"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.12",
@@ -6891,7 +6896,7 @@ dependencies = [
 [[package]]
 name = "sp-rpc"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "serde",
  "sp-core",
@@ -6900,7 +6905,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "hash256-std-hasher",
  "impl-trait-for-tuples",
@@ -6921,7 +6926,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "primitive-types",
@@ -6936,7 +6941,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "Inflector",
  "proc-macro-crate",
@@ -6948,7 +6953,7 @@ dependencies = [
 [[package]]
 name = "sp-serializer"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "serde",
  "serde_json",
@@ -6957,7 +6962,7 @@ dependencies = [
 [[package]]
 name = "sp-session"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -6970,7 +6975,7 @@ dependencies = [
 [[package]]
 name = "sp-staking"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "parity-scale-codec",
  "sp-runtime",
@@ -6980,7 +6985,7 @@ dependencies = [
 [[package]]
 name = "sp-state-machine"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "hash-db",
  "log 0.4.8",
@@ -6999,12 +7004,12 @@ dependencies = [
 [[package]]
 name = "sp-std"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 
 [[package]]
 name = "sp-storage"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "impl-serde 0.2.3",
  "ref-cast",
@@ -7016,7 +7021,7 @@ dependencies = [
 [[package]]
 name = "sp-timestamp"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -7030,7 +7035,7 @@ dependencies = [
 [[package]]
 name = "sp-tracing"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "tracing",
 ]
@@ -7038,7 +7043,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-pool"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "derive_more 0.99.6",
  "futures 0.3.5",
@@ -7053,7 +7058,7 @@ dependencies = [
 [[package]]
 name = "sp-trie"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "hash-db",
  "memory-db",
@@ -7067,7 +7072,7 @@ dependencies = [
 [[package]]
 name = "sp-utils"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "futures 0.3.5",
  "futures-core",
@@ -7078,7 +7083,7 @@ dependencies = [
 [[package]]
 name = "sp-version"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "impl-serde 0.2.3",
  "parity-scale-codec",
@@ -7090,7 +7095,7 @@ dependencies = [
 [[package]]
 name = "sp-wasm-interface"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -7218,7 +7223,7 @@ dependencies = [
 [[package]]
 name = "substrate-browser-utils"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "chrono",
  "clear_on_drop",
@@ -7245,7 +7250,7 @@ dependencies = [
 [[package]]
 name = "substrate-build-script-utils"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "platforms",
 ]
@@ -7253,7 +7258,7 @@ dependencies = [
 [[package]]
 name = "substrate-frame-rpc-system"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "frame-system-rpc-runtime-api",
  "futures 0.3.5",
@@ -7274,7 +7279,7 @@ dependencies = [
 [[package]]
 name = "substrate-prometheus-endpoint"
 version = "0.8.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "async-std",
  "derive_more 0.99.6",
@@ -7288,7 +7293,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-client"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "futures 0.3.5",
  "hash-db",
@@ -7309,7 +7314,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-runtime"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "cfg-if",
  "frame-executive",
@@ -7349,7 +7354,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-runtime-client"
 version = "2.0.0-dev"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 dependencies = [
  "futures 0.3.5",
  "parity-scale-codec",
@@ -7369,7 +7374,7 @@ dependencies = [
 [[package]]
 name = "substrate-wasm-builder-runner"
 version = "1.0.6"
-source = "git+https://github.com/paritytech/substrate#7fccdfac8232b2286c3dfd481ffcb2744ebc070b"
+source = "git+https://github.com/paritytech/substrate#a97a49347d955716b40ed1185352ba236f9809d6"
 
 [[package]]
 name = "substrate-wasm-builder-runner"
@@ -8538,6 +8543,7 @@ dependencies = [
  "serde",
  "serde_derive",
  "serde_json",
+ "smallvec 1.4.0",
  "sp-api",
  "sp-authority-discovery",
  "sp-block-builder",
diff --git a/polkadot/runtime/kusama/Cargo.toml b/polkadot/runtime/kusama/Cargo.toml
index 3b23e86cd4f99638f9a2585b57210a1ffd7864ef..24dc4a4d1f787f6297243243cff475a4fdd2e58d 100644
--- a/polkadot/runtime/kusama/Cargo.toml
+++ b/polkadot/runtime/kusama/Cargo.toml
@@ -13,6 +13,7 @@ rustc-hex = { version = "2.0.1", default-features = false }
 serde = { version = "1.0.102", default-features = false }
 serde_derive = { version = "1.0.102", optional = true }
 static_assertions = "1.1.0"
+smallvec = "1.4.0"
 
 authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
diff --git a/polkadot/runtime/kusama/src/constants.rs b/polkadot/runtime/kusama/src/constants.rs
index 8cc626f3c76635ab4495c9631da6caee3b98f473..b0b692f9d265e3e34fbc8aef616eb46a1ea5c466 100644
--- a/polkadot/runtime/kusama/src/constants.rs
+++ b/polkadot/runtime/kusama/src/constants.rs
@@ -52,9 +52,11 @@ pub mod time {
 pub mod fee {
 	pub use sp_runtime::Perbill;
 	use primitives::Balance;
-	use frame_support::weights::Weight;
-	use sp_runtime::traits::Convert;
 	use runtime_common::ExtrinsicBaseWeight;
+	use frame_support::weights::{
+		WeightToFeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients,
+	};
+	use smallvec::smallvec;
 
 	/// The block saturation level. Fees will be updates based on this value.
 	pub const TARGET_BLOCK_FULLNESS: Perbill = Perbill::from_percent(25);
@@ -70,17 +72,25 @@ pub mod fee {
 	///   - Setting it to `0` will essentially disable the weight fee.
 	///   - Setting it to `1` will cause the literal `#[weight = x]` values to be charged.
 	pub struct WeightToFee;
-	impl Convert<Weight, Balance> for WeightToFee {
-		fn convert(x: Weight) -> Balance {
+	impl WeightToFeePolynomial for WeightToFee {
+		type Balance = Balance;
+		fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
 			// in Kusama, extrinsic base weight (smallest non-zero weight) is mapped to 1/10 CENT:
-			Balance::from(x).saturating_mul(super::currency::CENTS / 10) / Balance::from(ExtrinsicBaseWeight::get())
+			let p = super::currency::CENTS;
+			let q = 10 * Balance::from(ExtrinsicBaseWeight::get());
+			smallvec![WeightToFeeCoefficient {
+				degree: 1,
+				negative: false,
+				coeff_frac: Perbill::from_rational_approximation(p % q, q),
+				coeff_integer: p / q,
+			}]
 		}
 	}
 }
 
 #[cfg(test)]
 mod tests {
-	use sp_runtime::traits::Convert;
+	use frame_support::weights::WeightToFeePolynomial;
 	use runtime_common::{MaximumBlockWeight, ExtrinsicBaseWeight};
 	use super::fee::WeightToFee;
 	use super::currency::{CENTS, DOLLARS};
@@ -89,13 +99,15 @@ mod tests {
 	// This function tests that the fee for `MaximumBlockWeight` of weight is correct
 	fn full_block_fee_is_correct() {
 		// A full block should cost 16 DOLLARS
-		assert_eq!(WeightToFee::convert(MaximumBlockWeight::get()), 16 * DOLLARS)
+		println!("Base: {}", ExtrinsicBaseWeight::get());
+		assert_eq!(WeightToFee::calc(&MaximumBlockWeight::get()), 16 * DOLLARS)
 	}
 
 	#[test]
 	// This function tests that the fee for `ExtrinsicBaseWeight` of weight is correct
 	fn extrinsic_base_fee_is_correct() {
 		// `ExtrinsicBaseWeight` should cost 1/10 of a CENT
-		assert_eq!(WeightToFee::convert(ExtrinsicBaseWeight::get()), CENTS / 10)
+		println!("Base: {}", ExtrinsicBaseWeight::get());
+		assert_eq!(WeightToFee::calc(&ExtrinsicBaseWeight::get()), CENTS / 10)
 	}
 }
diff --git a/polkadot/runtime/kusama/src/lib.rs b/polkadot/runtime/kusama/src/lib.rs
index e0552983b2dc4c72f36397ed9bb9f0e77cb6be04..692ed4b328e3fc23577947674228af47c617f380 100644
--- a/polkadot/runtime/kusama/src/lib.rs
+++ b/polkadot/runtime/kusama/src/lib.rs
@@ -389,7 +389,7 @@ impl collective::Trait<CouncilCollective> for Runtime {
 	type MaxProposals = CouncilMaxProposals;
 }
 
-const DESIRED_MEMBERS: u32 = 13;
+const DESIRED_MEMBERS: u32 = 17;
 parameter_types! {
 	pub const CandidacyBond: Balance = 1 * DOLLARS;
 	pub const VotingBond: Balance = 5 * CENTS;
diff --git a/polkadot/runtime/polkadot/Cargo.toml b/polkadot/runtime/polkadot/Cargo.toml
index 5d57e0e99c2b060f82a9307824e5e62a12bd2804..7fc9d29834920bef70f6feedc9892ba5ae8ff3dd 100644
--- a/polkadot/runtime/polkadot/Cargo.toml
+++ b/polkadot/runtime/polkadot/Cargo.toml
@@ -13,6 +13,7 @@ rustc-hex = { version = "2.0.1", default-features = false }
 serde = { version = "1.0.102", default-features = false }
 serde_derive = { version = "1.0.102", optional = true }
 static_assertions = "1.1.0"
+smallvec = "1.4.0"
 
 authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
diff --git a/polkadot/runtime/polkadot/src/constants.rs b/polkadot/runtime/polkadot/src/constants.rs
index a80d6fdc6e1ea0692bb68eb33e674e7c2688885e..27affd820e649d40525fea1172901db838f2a8e0 100644
--- a/polkadot/runtime/polkadot/src/constants.rs
+++ b/polkadot/runtime/polkadot/src/constants.rs
@@ -44,9 +44,11 @@ pub mod time {
 pub mod fee {
 	pub use sp_runtime::Perbill;
 	use primitives::Balance;
-	use frame_support::weights::Weight;
-	use sp_runtime::traits::Convert;
 	use runtime_common::ExtrinsicBaseWeight;
+	use frame_support::weights::{
+		WeightToFeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients,
+	};
+	use smallvec::smallvec;
 
 	/// The block saturation level. Fees will be updates based on this value.
 	pub const TARGET_BLOCK_FULLNESS: Perbill = Perbill::from_percent(25);
@@ -62,32 +64,40 @@ pub mod fee {
 	///   - Setting it to `0` will essentially disable the weight fee.
 	///   - Setting it to `1` will cause the literal `#[weight = x]` values to be charged.
 	pub struct WeightToFee;
-	impl Convert<Weight, Balance> for WeightToFee {
-		fn convert(x: Weight) -> Balance {
+	impl WeightToFeePolynomial for WeightToFee {
+		type Balance = Balance;
+		fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
 			// in Polkadot, extrinsic base weight (smallest non-zero weight) is mapped to 1/10 CENT:
-			Balance::from(x).saturating_mul(super::currency::CENTS / 10) / Balance::from(ExtrinsicBaseWeight::get())
+			let p = super::currency::CENTS;
+			let q = 10 * Balance::from(ExtrinsicBaseWeight::get());
+			smallvec![WeightToFeeCoefficient {
+				degree: 1,
+				negative: false,
+				coeff_frac: Perbill::from_rational_approximation(p % q, q),
+				coeff_integer: p / q,
+			}]
 		}
 	}
 }
 
 #[cfg(test)]
 mod tests {
-	use sp_runtime::traits::Convert;
 	use runtime_common::{MaximumBlockWeight, ExtrinsicBaseWeight};
 	use super::fee::WeightToFee;
 	use super::currency::{CENTS, DOLLARS};
+	use frame_support::weights::WeightToFeePolynomial;
 
 	#[test]
 	// This function tests that the fee for `MaximumBlockWeight` of weight is correct
 	fn full_block_fee_is_correct() {
 		// A full block should cost 16 DOLLARS
-		assert_eq!(WeightToFee::convert(MaximumBlockWeight::get()), 16 * DOLLARS)
+		assert_eq!(WeightToFee::calc(&MaximumBlockWeight::get()), 16 * DOLLARS)
 	}
 
 	#[test]
 	// This function tests that the fee for `ExtrinsicBaseWeight` of weight is correct
 	fn extrinsic_base_fee_is_correct() {
 		// `ExtrinsicBaseWeight` should cost 1/10 of a CENT
-		assert_eq!(WeightToFee::convert(ExtrinsicBaseWeight::get()), CENTS / 10)
+		assert_eq!(WeightToFee::calc(&ExtrinsicBaseWeight::get()), CENTS / 10)
 	}
 }
diff --git a/polkadot/runtime/test-runtime/Cargo.toml b/polkadot/runtime/test-runtime/Cargo.toml
index 70b39ee68a666149437dd79c91ce7649956e32e2..6af1b8f39038837adf8c98965a681914e271c588 100644
--- a/polkadot/runtime/test-runtime/Cargo.toml
+++ b/polkadot/runtime/test-runtime/Cargo.toml
@@ -12,6 +12,7 @@ log = { version = "0.3.9", optional = true }
 rustc-hex = { version = "2.0.1", default-features = false }
 serde = { version = "1.0.102", default-features = false }
 serde_derive = { version = "1.0.102", optional = true }
+smallvec = "1.4.0"
 
 babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
diff --git a/polkadot/runtime/test-runtime/src/constants.rs b/polkadot/runtime/test-runtime/src/constants.rs
index 203ce348cd96b9494f6af3a3b9aa307581ad94d7..b0431e55f26820379765bdad0a89efebf431cf42 100644
--- a/polkadot/runtime/test-runtime/src/constants.rs
+++ b/polkadot/runtime/test-runtime/src/constants.rs
@@ -46,8 +46,11 @@ pub mod time {
 pub mod fee {
 	pub use sp_runtime::Perbill;
 	use primitives::Balance;
-	use frame_support::weights::Weight;
-	use sp_runtime::traits::Convert;
+	use runtime_common::ExtrinsicBaseWeight;
+	use frame_support::weights::{
+		WeightToFeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients,
+	};
+	use smallvec::smallvec;
 
 	/// The block saturation level. Fees will be updates based on this value.
 	pub const TARGET_BLOCK_FULLNESS: Perbill = Perbill::from_percent(25);
@@ -63,10 +66,17 @@ pub mod fee {
 	///   - Setting it to `0` will essentially disable the weight fee.
 	///   - Setting it to `1` will cause the literal `#[weight = x]` values to be charged.
 	pub struct WeightToFee;
-	impl Convert<Weight, Balance> for WeightToFee {
-		fn convert(x: Weight) -> Balance {
-			// in Kusama a weight of 10_000_000 (smallest non-zero weight) is mapped to 1/10 CENT:
-			Balance::from(x).saturating_mul(super::currency::CENTS / (10 * 10_000_000))
+	impl WeightToFeePolynomial for WeightToFee {
+		type Balance = Balance;
+		fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
+			let p = super::currency::CENTS;
+			let q = 10 * Balance::from(ExtrinsicBaseWeight::get());
+			smallvec![WeightToFeeCoefficient {
+				degree: 1,
+				negative: false,
+				coeff_frac: Perbill::from_rational_approximation(p % q, q),
+				coeff_integer: p / q,
+			}]
 		}
 	}
 }
diff --git a/polkadot/runtime/westend/Cargo.toml b/polkadot/runtime/westend/Cargo.toml
index a9e9a6ed0db005ec1eabef02081d8e339e0bb5b4..c1097d68fe43397ae677413864cdf9443cc41993 100644
--- a/polkadot/runtime/westend/Cargo.toml
+++ b/polkadot/runtime/westend/Cargo.toml
@@ -12,6 +12,7 @@ log = { version = "0.3.9", optional = true }
 rustc-hex = { version = "2.0.1", default-features = false }
 serde = { version = "1.0.102", default-features = false }
 serde_derive = { version = "1.0.102", optional = true }
+smallvec = "1.4.0"
 
 authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
diff --git a/polkadot/runtime/westend/src/constants.rs b/polkadot/runtime/westend/src/constants.rs
index 8310e770fa6e36e5090f180b13fa57e95545f28a..101fef913fd449409e1c7692f9acbca0223b63a9 100644
--- a/polkadot/runtime/westend/src/constants.rs
+++ b/polkadot/runtime/westend/src/constants.rs
@@ -44,9 +44,11 @@ pub mod time {
 pub mod fee {
 	pub use sp_runtime::Perbill;
 	use primitives::Balance;
-	use frame_support::weights::Weight;
-	use sp_runtime::traits::Convert;
 	use runtime_common::ExtrinsicBaseWeight;
+	use frame_support::weights::{
+		WeightToFeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients,
+	};
+	use smallvec::smallvec;
 
 	/// The block saturation level. Fees will be updates based on this value.
 	pub const TARGET_BLOCK_FULLNESS: Perbill = Perbill::from_percent(25);
@@ -62,32 +64,40 @@ pub mod fee {
 	///   - Setting it to `0` will essentially disable the weight fee.
 	///   - Setting it to `1` will cause the literal `#[weight = x]` values to be charged.
 	pub struct WeightToFee;
-	impl Convert<Weight, Balance> for WeightToFee {
-		fn convert(x: Weight) -> Balance {
+	impl WeightToFeePolynomial for WeightToFee {
+		type Balance = Balance;
+		fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
 			// in Westend, extrinsic base weight (smallest non-zero weight) is mapped to 1/10 CENT:
-			Balance::from(x).saturating_mul(super::currency::CENTS / 10) / Balance::from(ExtrinsicBaseWeight::get())
+			let p = super::currency::CENTS;
+			let q = 10 * Balance::from(ExtrinsicBaseWeight::get());
+			smallvec![WeightToFeeCoefficient {
+				degree: 1,
+				negative: false,
+				coeff_frac: Perbill::from_rational_approximation(p % q, q),
+				coeff_integer: p / q,
+			}]
 		}
 	}
 }
 
 #[cfg(test)]
 mod tests {
-	use sp_runtime::traits::Convert;
 	use runtime_common::{MaximumBlockWeight, ExtrinsicBaseWeight};
 	use super::fee::WeightToFee;
 	use super::currency::{CENTS, DOLLARS};
+	use frame_support::weights::WeightToFeePolynomial;
 
 	#[test]
 	// This function tests that the fee for `MaximumBlockWeight` of weight is correct
 	fn full_block_fee_is_correct() {
 		// A full block should cost 16 DOLLARS
-		assert_eq!(WeightToFee::convert(MaximumBlockWeight::get()), 16 * DOLLARS)
+		assert_eq!(WeightToFee::calc(&MaximumBlockWeight::get()), 16 * DOLLARS)
 	}
 
 	#[test]
 	// This function tests that the fee for `ExtrinsicBaseWeight` of weight is correct
 	fn extrinsic_base_fee_is_correct() {
 		// `ExtrinsicBaseWeight` should cost 1/10 of a CENT
-		assert_eq!(WeightToFee::convert(ExtrinsicBaseWeight::get()), CENTS / 10)
+		assert_eq!(WeightToFee::calc(&ExtrinsicBaseWeight::get()), CENTS / 10)
 	}
 }