diff --git a/Cargo.lock b/Cargo.lock index 18d2189f1cee..8ba5e1b225d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1181,9 +1181,9 @@ dependencies = [ [[package]] name = "finality-grandpa" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab32971efbe776e46bfbc34d5b662d8e1de51fd14e26a2eba522c0f3470fc0f" +checksum = "1f4682570188cd105606e621b9992e580f717c15f8cd1b7d106b59f1c6e54680" dependencies = [ "either", "futures 0.3.4", @@ -1234,7 +1234,7 @@ checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" [[package]] name = "fork-tree" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", ] @@ -1242,7 +1242,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -1259,7 +1259,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-benchmarking", "parity-scale-codec", @@ -1277,7 +1277,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -1292,7 +1292,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "11.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "serde", @@ -1303,7 +1303,7 @@ dependencies = [ [[package]] name = "frame-support" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "bitmask", "frame-metadata", @@ -1327,7 +1327,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support-procedural-tools", "proc-macro2 1.0.10", @@ -1338,7 +1338,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -1350,7 +1350,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "proc-macro2 1.0.10", "quote 1.0.3", @@ -1360,7 +1360,7 @@ dependencies = [ [[package]] name = "frame-system" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1376,7 +1376,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "sp-api", @@ -3263,7 +3263,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -3281,7 +3281,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -3298,7 +3298,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -3320,7 +3320,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-benchmarking", "frame-support", @@ -3335,7 +3335,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-benchmarking", "frame-support", @@ -3351,7 +3351,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-benchmarking", "frame-support", @@ -3366,7 +3366,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -3380,7 +3380,7 @@ dependencies = [ [[package]] name = "pallet-finality-tracker" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -3396,7 +3396,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -3404,9 +3404,11 @@ dependencies = [ "pallet-session", "parity-scale-codec", "serde", + "sp-application-crypto", "sp-core", "sp-finality-grandpa", "sp-runtime", + "sp-session", "sp-staking", "sp-std", ] @@ -3414,7 +3416,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" 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#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" 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#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" 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#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" 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#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" 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#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" 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#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-benchmarking", "frame-support", @@ -3531,7 +3533,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -3544,7 +3546,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "enumflags2", "frame-support", @@ -3559,7 +3561,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-benchmarking", "frame-support", @@ -3574,7 +3576,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -3584,6 +3586,7 @@ dependencies = [ "serde", "sp-io", "sp-runtime", + "sp-session", "sp-staking", "sp-std", "sp-trie", @@ -3592,7 +3595,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-benchmarking", "frame-support", @@ -3606,7 +3609,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -3621,7 +3624,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-benchmarking", "frame-support", @@ -3644,7 +3647,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.10", @@ -3655,7 +3658,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -3669,7 +3672,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-benchmarking", "frame-support", @@ -3687,7 +3690,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "frame-system", @@ -3700,7 +3703,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -3718,7 +3721,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-support", "parity-scale-codec", @@ -3731,7 +3734,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-benchmarking", "frame-support", @@ -3746,7 +3749,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-benchmarking", "frame-support", @@ -3762,7 +3765,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4245,6 +4248,7 @@ name = "polkadot-primitives" version = "0.7.33" dependencies = [ "bitvec", + "frame-system", "parity-scale-codec", "polkadot-parachain", "pretty_assertions", @@ -4383,6 +4387,7 @@ dependencies = [ "sp-io", "sp-keyring", "sp-runtime", + "sp-session", "sp-staking", "sp-std", "sp-trie", @@ -5301,7 +5306,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "bytes 0.5.4", "derive_more 0.99.5", @@ -5328,7 +5333,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -5344,7 +5349,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "impl-trait-for-tuples", "sc-chain-spec-derive", @@ -5360,7 +5365,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.10", @@ -5371,7 +5376,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "ansi_term 0.12.1", "app_dirs", @@ -5413,7 +5418,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "fnv", @@ -5449,7 +5454,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "blake2-rfc", "hash-db", @@ -5478,7 +5483,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "sc-client-api", "sp-blockchain", @@ -5489,7 +5494,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "fork-tree", @@ -5530,7 +5535,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "fork-tree", "parity-scale-codec", @@ -5543,7 +5548,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "futures 0.3.4", "futures-timer 3.0.2", @@ -5564,7 +5569,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "log 0.4.8", "sc-client-api", @@ -5578,7 +5583,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "lazy_static", @@ -5606,7 +5611,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "log 0.4.8", @@ -5623,7 +5628,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "log 0.4.8", "parity-scale-codec", @@ -5638,7 +5643,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "cranelift-codegen", "cranelift-wasm", @@ -5659,7 +5664,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "assert_matches", "derive_more 0.99.5", @@ -5696,7 +5701,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "finality-grandpa", @@ -5713,7 +5718,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "ansi_term 0.12.1", "futures 0.3.4", @@ -5730,7 +5735,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "hex", @@ -5745,7 +5750,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "bitflags", "bytes 0.5.4", @@ -5796,7 +5801,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "futures 0.3.4", "futures-timer 3.0.2", @@ -5811,7 +5816,7 @@ dependencies = [ [[package]] name = "sc-network-test" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "env_logger 0.7.1", "futures 0.3.4", @@ -5838,7 +5843,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "bytes 0.5.4", "fnv", @@ -5865,7 +5870,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "futures 0.3.4", "libp2p", @@ -5878,7 +5883,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "futures 0.3.4", "hash-db", @@ -5910,7 +5915,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "futures 0.3.4", @@ -5934,7 +5939,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "jsonrpc-core", "jsonrpc-http-server", @@ -5949,7 +5954,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "exit-future", @@ -6007,7 +6012,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "log 0.4.8", "parity-scale-codec", @@ -6021,7 +6026,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "bytes 0.5.4", "futures 0.3.4", @@ -6043,7 +6048,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "erased-serde", "log 0.4.8", @@ -6058,7 +6063,7 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "futures 0.3.4", @@ -6078,7 +6083,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "futures 0.3.4", @@ -6463,7 +6468,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "log 0.4.8", @@ -6475,7 +6480,7 @@ dependencies = [ [[package]] name = "sp-api" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "hash-db", "parity-scale-codec", @@ -6490,7 +6495,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "blake2-rfc", "proc-macro-crate", @@ -6502,7 +6507,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "serde", @@ -6514,7 +6519,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "integer-sqrt", "num-traits 0.2.11", @@ -6528,7 +6533,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "sp-api", @@ -6540,7 +6545,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -6551,7 +6556,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "sp-api", @@ -6563,7 +6568,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "log 0.4.8", @@ -6579,7 +6584,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "serde", "serde_json", @@ -6588,7 +6593,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "futures 0.3.4", @@ -6610,7 +6615,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "sp-api", @@ -6624,7 +6629,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "merlin", "parity-scale-codec", @@ -6641,7 +6646,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -6653,7 +6658,7 @@ dependencies = [ [[package]] name = "sp-core" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "base58", "blake2-rfc", @@ -6694,7 +6699,7 @@ dependencies = [ [[package]] name = "sp-database" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "kvdb", "parking_lot 0.10.2", @@ -6703,7 +6708,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "proc-macro2 1.0.10", "quote 1.0.3", @@ -6713,7 +6718,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "environmental", "parity-scale-codec", @@ -6724,12 +6729,15 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ + "finality-grandpa", + "log 0.4.8", "parity-scale-codec", "serde", "sp-api", "sp-application-crypto", + "sp-core", "sp-runtime", "sp-std", ] @@ -6737,7 +6745,7 @@ dependencies = [ [[package]] name = "sp-finality-tracker" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -6747,7 +6755,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "parity-scale-codec", @@ -6759,7 +6767,7 @@ dependencies = [ [[package]] name = "sp-io" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "futures 0.3.4", "hash-db", @@ -6779,7 +6787,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "lazy_static", "sp-core", @@ -6790,7 +6798,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "sp-api", "sp-core", @@ -6800,7 +6808,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "backtrace", "log 0.4.8", @@ -6809,7 +6817,7 @@ dependencies = [ [[package]] name = "sp-phragmen" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "serde", @@ -6821,7 +6829,7 @@ dependencies = [ [[package]] name = "sp-phragmen-compact" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.10", @@ -6832,7 +6840,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "serde", "sp-core", @@ -6841,7 +6849,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "hash256-std-hasher", "impl-trait-for-tuples", @@ -6862,7 +6870,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "primitive-types", @@ -6877,7 +6885,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "Inflector", "proc-macro-crate", @@ -6889,7 +6897,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "serde", "serde_json", @@ -6898,18 +6906,20 @@ dependencies = [ [[package]] name = "sp-session" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ + "parity-scale-codec", "sp-api", "sp-core", "sp-runtime", + "sp-staking", "sp-std", ] [[package]] name = "sp-staking" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -6919,7 +6929,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "hash-db", "log 0.4.8", @@ -6938,12 +6948,12 @@ dependencies = [ [[package]] name = "sp-std" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" [[package]] name = "sp-storage" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "impl-serde 0.2.3", "ref-cast", @@ -6955,7 +6965,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -6969,7 +6979,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "tracing", ] @@ -6977,7 +6987,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "derive_more 0.99.5", "futures 0.3.4", @@ -6992,7 +7002,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "hash-db", "memory-db", @@ -7006,7 +7016,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "futures 0.3.4", "futures-core", @@ -7017,7 +7027,7 @@ dependencies = [ [[package]] name = "sp-version" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "impl-serde 0.2.3", "parity-scale-codec", @@ -7029,7 +7039,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7157,7 +7167,7 @@ dependencies = [ [[package]] name = "substrate-browser-utils" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "chrono", "clear_on_drop", @@ -7184,7 +7194,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "platforms", ] @@ -7192,7 +7202,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.4", @@ -7213,7 +7223,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.8.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "async-std", "derive_more 0.99.5", @@ -7227,7 +7237,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "futures 0.3.4", "hash-db", @@ -7248,7 +7258,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "cfg-if", "frame-executive", @@ -7269,6 +7279,7 @@ dependencies = [ "sp-consensus-aura", "sp-consensus-babe", "sp-core", + "sp-finality-grandpa", "sp-inherents", "sp-io", "sp-keyring", @@ -7287,7 +7298,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime-client" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" dependencies = [ "futures 0.3.4", "parity-scale-codec", @@ -7307,7 +7318,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder-runner" version = "1.0.5" -source = "git+https://github.com/paritytech/substrate#3f27afa8640138c9942ceb09016da47ab7a5afaa" +source = "git+https://github.com/paritytech/substrate#a2512e837003db3d3267764283edf31cf95a206c" [[package]] name = "substrate-wasm-builder-runner" diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml index e8f9505d18a8..c841cb73a255 100644 --- a/primitives/Cargo.toml +++ b/primitives/Cargo.toml @@ -8,6 +8,7 @@ edition = "2018" serde = { version = "1.0.102", optional = true, features = ["derive"] } parity-scale-codec = { version = "1.3.0", default-features = false, features = ["bit-vec", "derive"] } primitives = { package = "sp-core", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +system = { package = "frame-system", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } application-crypto = { package = "sp-application-crypto", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } @@ -28,6 +29,7 @@ default = ["std"] std = [ "parity-scale-codec/std", "primitives/std", + "system/std", "inherents/std", "trie/std", "sp-api/std", diff --git a/primitives/src/lib.rs b/primitives/src/lib.rs index 716b40edf9e2..0f80ba6c59ba 100644 --- a/primitives/src/lib.rs +++ b/primitives/src/lib.rs @@ -92,3 +92,32 @@ impl From for u8 { err as u8 } } + +/// App-specific crypto used for reporting equivocation/misbehavior in BABE, +/// GRANDPA and Parachains, described in the white paper as the fisherman role. +/// Any rewards for misbehavior reporting will be paid out to this account. +pub mod fisherman { + use super::{Signature, Verify}; + use primitives::crypto::KeyTypeId; + + /// Key type for the reporting module. Used for reporting BABE, GRANDPA + /// and Parachain equivocations. + pub const KEY_TYPE: KeyTypeId = KeyTypeId(*b"fish"); + + mod app { + use application_crypto::{app_crypto, sr25519}; + app_crypto!(sr25519, super::KEY_TYPE); + } + + /// Identity of the equivocation/misbehavior reporter. + pub type FishermanId = app::Public; + + /// An `AppCrypto` type to allow submitting signed transactions using the fisherman + /// application key as signer. + pub struct FishermanAppCrypto; + impl system::offchain::AppCrypto<::Signer, Signature> for FishermanAppCrypto { + type RuntimeAppPublic = FishermanId; + type GenericSignature = primitives::sr25519::Signature; + type GenericPublic = primitives::sr25519::Public; + } +} diff --git a/primitives/src/parachain.rs b/primitives/src/parachain.rs index 2afa3e19ae70..6fcb696fc956 100644 --- a/primitives/src/parachain.rs +++ b/primitives/src/parachain.rs @@ -88,17 +88,6 @@ application_crypto::with_pair! { /// so we define it to be the same type as `SessionKey`. In the future it may have different crypto. pub type ValidatorSignature = validator_app::Signature; -/// The key type ID for a fisherman key. -pub const FISHERMAN_KEY_TYPE_ID: KeyTypeId = KeyTypeId(*b"fish"); - -mod fisherman_app { - use application_crypto::{app_crypto, sr25519}; - app_crypto!(sr25519, super::FISHERMAN_KEY_TYPE_ID); -} - -/// Identity that fishermen use when generating reports. -pub type FishermanId = fisherman_app::Public; - /// Retriability for a given active para. #[derive(Clone, Eq, PartialEq, Encode, Decode)] #[cfg_attr(feature = "std", derive(Debug))] diff --git a/runtime/common/Cargo.toml b/runtime/common/Cargo.toml index 5de479c04263..ed2da2e213c1 100644 --- a/runtime/common/Cargo.toml +++ b/runtime/common/Cargo.toml @@ -17,6 +17,7 @@ inherents = { package = "sp-inherents", git = "https://github.com/paritytech/sub sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } @@ -67,6 +68,7 @@ std = [ "authorship/std", "balances/std", "sp-runtime/std", + "sp-session/std", "sp-staking/std", "session/std", "staking/std", diff --git a/runtime/common/src/parachains.rs b/runtime/common/src/parachains.rs index 6233d402ab70..b6fc51d935de 100644 --- a/runtime/common/src/parachains.rs +++ b/runtime/common/src/parachains.rs @@ -19,7 +19,6 @@ use sp_std::prelude::*; use sp_std::result; use codec::{Decode, Encode}; -use sp_core::sr25519; use sp_runtime::{ KeyTypeId, Perbill, RuntimeDebug, traits::{ @@ -41,13 +40,12 @@ use frame_support::{ use primitives::{ Balance, BlockNumber, - Signature, parachain::{ Id as ParaId, Chain, DutyRoster, AttestedCandidate, Statement, ParachainDispatchOrigin, UpwardMessage, ValidatorId, ActiveParas, CollatorId, Retriable, OmittedValidationData, CandidateReceipt, GlobalValidationSchedule, AbridgedCandidateReceipt, LocalValidationData, Scheduling, ValidityAttestation, NEW_HEADS_IDENTIFIER, PARACHAIN_KEY_TYPE_ID, - ValidatorSignature, SigningContext, HeadData, ValidationCode, FishermanId, + ValidatorSignature, SigningContext, HeadData, ValidationCode, }, }; use frame_support::{ @@ -56,7 +54,6 @@ use frame_support::{ }; use sp_runtime::{ transaction_validity::InvalidTransaction, - traits::Verify, }; use inherents::{ProvideInherent, InherentData, MakeFatalError, InherentIdentifier}; @@ -68,14 +65,6 @@ use system::{ use crate::attestations::{self, IncludedBlocks}; use crate::registrar::Registrar; -// An `AppCrypto` type to facilitate submitting signed transactions. -pub struct FishermanAuthorityId; -impl system::offchain::AppCrypto<::Signer, Signature> for FishermanAuthorityId { - type RuntimeAppPublic = FishermanId; - type GenericSignature = sr25519::Signature; - type GenericPublic = sp_core::sr25519::Public; -} - // ranges for iteration of general block number don't work, so this // is a utility to get around that. struct BlockNumberRange { @@ -221,12 +210,12 @@ impl Get> for ValidatorIdentities { } } -/// A trait to get a session number the `Proof` belongs to. +/// A trait to get a session number the `MembershipProof` belongs to. pub trait GetSessionNumber { fn session(&self) -> SessionIndex; } -impl GetSessionNumber for session::historical::Proof { +impl GetSessionNumber for sp_session::MembershipProof { fn session(&self) -> SessionIndex { self.session() } @@ -1996,7 +1985,7 @@ mod tests { } fn report_double_vote( - report: DoubleVoteReport, + report: DoubleVoteReport, ) -> Result, TransactionValidityError> { let inner = ParachainsCall::report_double_vote(report); let call = Call::Parachains(inner.clone()); diff --git a/runtime/common/src/registrar.rs b/runtime/common/src/registrar.rs index e17f484273e0..c736a4fe9f89 100644 --- a/runtime/common/src/registrar.rs +++ b/runtime/common/src/registrar.rs @@ -904,9 +904,12 @@ mod tests { type ValidationUpgradeFrequency = ValidationUpgradeFrequency; type ValidationUpgradeDelay = ValidationUpgradeDelay; type SlashPeriod = SlashPeriod; - type Proof = session::historical::Proof; + type Proof = sp_session::MembershipProof; type KeyOwnerProofSystem = session::historical::Module; - type IdentificationTuple = )>>::IdentificationTuple; + type IdentificationTuple = , + )>>::IdentificationTuple; type ReportOffence = (); type BlockHashConversion = sp_runtime::traits::Identity; } diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index 1d0636952e2c..22e9684f2b0c 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -83,7 +83,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("kusama"), impl_name: create_runtime_str!("parity-kusama"), authoring_version: 2, - spec_version: 1062, + spec_version: 1063, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -267,7 +267,7 @@ impl session::Trait for Runtime { type ValidatorIdOf = staking::StashOf; type ShouldEndSession = Babe; type NextSessionRotation = Babe; - type SessionManager = Staking; + type SessionManager = session::historical::NoteHistoricalRoot; type SessionHandler = ::KeyTypeIdProviders; type Keys = SessionKeys; type DisabledValidatorsThreshold = DisabledValidatorsThreshold; @@ -490,6 +490,24 @@ impl im_online::Trait for Runtime { impl grandpa::Trait for Runtime { type Event = Event; + type Call = Call; + + type KeyOwnerProofSystem = Historical; + + type KeyOwnerProof = + >::Proof; + + type KeyOwnerIdentification = >::IdentificationTuple; + + type HandleEquivocation = grandpa::EquivocationHandler< + Self::KeyOwnerIdentification, + primitives::fisherman::FishermanAppCrypto, + Runtime, + Offences, + >; } parameter_types! { @@ -522,7 +540,7 @@ parameter_types! { } impl parachains::Trait for Runtime { - type AuthorityId = parachains::FishermanAuthorityId; + type AuthorityId = primitives::fisherman::FishermanAppCrypto; type Origin = Origin; type Call = Call; type ParachainCurrency = Balances; @@ -537,13 +555,15 @@ impl parachains::Trait for Runtime { type ValidationUpgradeDelay = ValidationUpgradeDelay; type SlashPeriod = SlashPeriod; - type Proof = session::historical::Proof; + type Proof = sp_session::MembershipProof; type KeyOwnerProofSystem = session::historical::Module; type IdentificationTuple = )>>::IdentificationTuple; type ReportOffence = Offences; type BlockHashConversion = sp_runtime::traits::Identity; } +/// Submits transaction with the node's public and signature type. Adheres to the signed extension +/// format of the chain. impl system::offchain::CreateSignedTransaction for Runtime where Call: From, { @@ -553,6 +573,7 @@ impl system::offchain::CreateSignedTransaction for Runtime account: AccountId, nonce: ::Index, ) -> Option<(Call, ::SignaturePayload)> { + // take the biggest period possible. let period = BlockHashCount::get() .checked_next_power_of_two() .map(|c| c / 2) @@ -560,6 +581,8 @@ impl system::offchain::CreateSignedTransaction for Runtime let current_block = System::block_number() .saturated_into::() + // The `System::block_number` is initialized with `n+1`, + // so the actual block number is `n`. .saturating_sub(1); let tip = 0; let extra: SignedExtra = ( @@ -572,6 +595,7 @@ impl system::offchain::CreateSignedTransaction for Runtime transaction_payment::ChargeTransactionPayment::::from(tip), registrar::LimitParathreadCommits::::new(), parachains::ValidateDoubleVoteReports::::new(), + grandpa::ValidateEquivocationReport::::new(), ); let raw_payload = SignedPayload::new(call, extra).map_err(|e| { debug::warn!("Unable to create signed payload: {:?}", e); @@ -818,9 +842,10 @@ pub type SignedExtra = ( system::CheckEra, system::CheckNonce, system::CheckWeight, - transaction_payment::ChargeTransactionPayment::, + transaction_payment::ChargeTransactionPayment, registrar::LimitParathreadCommits, parachains::ValidateDoubleVoteReports, + grandpa::ValidateEquivocationReport, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; @@ -935,6 +960,32 @@ sp_api::impl_runtime_apis! { fn grandpa_authorities() -> Vec<(GrandpaId, u64)> { Grandpa::grandpa_authorities() } + + fn submit_report_equivocation_extrinsic( + equivocation_proof: fg_primitives::EquivocationProof< + ::Hash, + sp_runtime::traits::NumberFor, + >, + key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof, + ) -> Option<()> { + let key_owner_proof = key_owner_proof.decode()?; + + Grandpa::submit_report_equivocation_extrinsic( + equivocation_proof, + key_owner_proof, + ) + } + + fn generate_key_ownership_proof( + _set_id: fg_primitives::SetId, + authority_id: fg_primitives::AuthorityId, + ) -> Option { + use codec::Encode; + + Historical::prove((fg_primitives::KEY_TYPE, authority_id)) + .map(|p| p.encode()) + .map(fg_primitives::OpaqueKeyOwnershipProof::new) + } } impl babe_primitives::BabeApi for Runtime { diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index 1d92a1a39f80..a255063b4589 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -86,7 +86,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("polkadot"), impl_name: create_runtime_str!("parity-polkadot"), authoring_version: 2, - spec_version: 1009, + spec_version: 1010, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -273,7 +273,7 @@ impl session::Trait for Runtime { type ValidatorIdOf = staking::StashOf; type ShouldEndSession = Babe; type NextSessionRotation = Babe; - type SessionManager = Staking; + type SessionManager = session::historical::NoteHistoricalRoot; type SessionHandler = ::KeyTypeIdProviders; type Keys = SessionKeys; type DisabledValidatorsThreshold = DisabledValidatorsThreshold; @@ -496,6 +496,24 @@ impl im_online::Trait for Runtime { impl grandpa::Trait for Runtime { type Event = Event; + type Call = Call; + + type KeyOwnerProofSystem = Historical; + + type KeyOwnerProof = + >::Proof; + + type KeyOwnerIdentification = >::IdentificationTuple; + + type HandleEquivocation = grandpa::EquivocationHandler< + Self::KeyOwnerIdentification, + primitives::fisherman::FishermanAppCrypto, + Runtime, + Offences, + >; } parameter_types! { @@ -529,7 +547,7 @@ parameter_types! { } impl parachains::Trait for Runtime { - type AuthorityId = parachains::FishermanAuthorityId; + type AuthorityId = primitives::fisherman::FishermanAppCrypto; type Origin = Origin; type Call = Call; type ParachainCurrency = Balances; @@ -544,13 +562,15 @@ impl parachains::Trait for Runtime { type ValidationUpgradeDelay = ValidationUpgradeDelay; type SlashPeriod = SlashPeriod; - type Proof = session::historical::Proof; + type Proof = sp_session::MembershipProof; type KeyOwnerProofSystem = session::historical::Module; type IdentificationTuple = )>>::IdentificationTuple; type ReportOffence = Offences; type BlockHashConversion = sp_runtime::traits::Identity; } +/// Submits a transaction with the node's public and signature type. Adheres to the signed extension +/// format of the chain. impl system::offchain::CreateSignedTransaction for Runtime where Call: From, { @@ -560,6 +580,7 @@ impl system::offchain::CreateSignedTransaction for Runtime account: AccountId, nonce: ::Index, ) -> Option<(Call, ::SignaturePayload)> { + // take the biggest period possible. let period = BlockHashCount::get() .checked_next_power_of_two() .map(|c| c / 2) @@ -567,6 +588,8 @@ impl system::offchain::CreateSignedTransaction for Runtime let current_block = System::block_number() .saturated_into::() + // The `System::block_number` is initialized with `n+1`, + // so the actual block number is `n`. .saturating_sub(1); let tip = 0; let extra: SignedExtra = ( @@ -579,6 +602,7 @@ impl system::offchain::CreateSignedTransaction for Runtime transaction_payment::ChargeTransactionPayment::::from(tip), registrar::LimitParathreadCommits::::new(), parachains::ValidateDoubleVoteReports::::new(), + grandpa::ValidateEquivocationReport::::new(), ); let raw_payload = SignedPayload::new(call, extra).map_err(|e| { debug::warn!("Unable to create signed payload: {:?}", e); @@ -733,9 +757,10 @@ pub type SignedExtra = ( system::CheckEra, system::CheckNonce, system::CheckWeight, - transaction_payment::ChargeTransactionPayment::, + transaction_payment::ChargeTransactionPayment, registrar::LimitParathreadCommits, - parachains::ValidateDoubleVoteReports + parachains::ValidateDoubleVoteReports, + grandpa::ValidateEquivocationReport, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; @@ -850,6 +875,32 @@ sp_api::impl_runtime_apis! { fn grandpa_authorities() -> Vec<(GrandpaId, u64)> { Grandpa::grandpa_authorities() } + + fn submit_report_equivocation_extrinsic( + equivocation_proof: fg_primitives::EquivocationProof< + ::Hash, + sp_runtime::traits::NumberFor, + >, + key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof, + ) -> Option<()> { + let key_owner_proof = key_owner_proof.decode()?; + + Grandpa::submit_report_equivocation_extrinsic( + equivocation_proof, + key_owner_proof, + ) + } + + fn generate_key_ownership_proof( + _set_id: fg_primitives::SetId, + authority_id: fg_primitives::AuthorityId, + ) -> Option { + use codec::Encode; + + Historical::prove((fg_primitives::KEY_TYPE, authority_id)) + .map(|p| p.encode()) + .map(fg_primitives::OpaqueKeyOwnershipProof::new) + } } impl babe_primitives::BabeApi for Runtime { diff --git a/runtime/test-runtime/src/lib.rs b/runtime/test-runtime/src/lib.rs index 102e450eb74d..350531ebaef3 100644 --- a/runtime/test-runtime/src/lib.rs +++ b/runtime/test-runtime/src/lib.rs @@ -31,7 +31,6 @@ use runtime_common::{attestations, claims, parachains, registrar, slots, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio, MaximumBlockLength, BlockExecutionWeight, ExtrinsicBaseWeight, }; -use sp_core::sr25519; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, ApplyExtrinsicResult, Perbill, Perquintill, RuntimeDebug, KeyTypeId, @@ -316,6 +315,19 @@ impl staking::Trait for Runtime { impl grandpa::Trait for Runtime { type Event = Event; + type Call = Call; + + type KeyOwnerProofSystem = (); + + type KeyOwnerProof = + >::Proof; + + type KeyOwnerIdentification = >::IdentificationTuple; + + type HandleEquivocation = (); } parameter_types! { @@ -338,7 +350,7 @@ parameter_types! { } impl parachains::Trait for Runtime { - type AuthorityId = FishermanAuthorityId; + type AuthorityId = primitives::fisherman::FishermanAppCrypto; type Origin = Origin; type Call = Call; type ParachainCurrency = Balances; @@ -353,7 +365,7 @@ impl parachains::Trait for Runtime { type ValidationUpgradeDelay = ValidationUpgradeDelay; type SlashPeriod = SlashPeriod; - type Proof = session::historical::Proof; + type Proof = sp_session::MembershipProof; type KeyOwnerProofSystem = session::historical::Module; type IdentificationTuple = < Self::KeyOwnerProofSystem as KeyOwnerProofSystem<(KeyTypeId, Vec)> @@ -362,13 +374,6 @@ impl parachains::Trait for Runtime { type BlockHashConversion = sp_runtime::traits::Identity; } -pub struct FishermanAuthorityId; -impl system::offchain::AppCrypto<::Signer, Signature> for FishermanAuthorityId { - type RuntimeAppPublic = parachain::FishermanId; - type GenericSignature = sr25519::Signature; - type GenericPublic = sr25519::Public; -} - impl system::offchain::CreateSignedTransaction for Runtime where Call: From, { @@ -645,6 +650,23 @@ sp_api::impl_runtime_apis! { fn grandpa_authorities() -> Vec<(GrandpaId, u64)> { Grandpa::grandpa_authorities() } + + fn submit_report_equivocation_extrinsic( + _equivocation_proof: fg_primitives::EquivocationProof< + ::Hash, + sp_runtime::traits::NumberFor, + >, + _key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof, + ) -> Option<()> { + None + } + + fn generate_key_ownership_proof( + _set_id: fg_primitives::SetId, + _authority_id: fg_primitives::AuthorityId, + ) -> Option { + None + } } impl babe_primitives::BabeApi for Runtime { diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index 9d9b5bcca6d2..d28427fa1a8b 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -83,7 +83,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("westend"), impl_name: create_runtime_str!("parity-westend"), authoring_version: 2, - spec_version: 8, + spec_version: 9, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -259,7 +259,7 @@ impl session::Trait for Runtime { type ValidatorIdOf = staking::StashOf; type ShouldEndSession = Babe; type NextSessionRotation = Babe; - type SessionManager = Staking; + type SessionManager = session::historical::NoteHistoricalRoot; type SessionHandler = ::KeyTypeIdProviders; type Keys = SessionKeys; type DisabledValidatorsThreshold = DisabledValidatorsThreshold; @@ -357,6 +357,24 @@ impl im_online::Trait for Runtime { impl grandpa::Trait for Runtime { type Event = Event; + type Call = Call; + + type KeyOwnerProofSystem = Historical; + + type KeyOwnerProof = + >::Proof; + + type KeyOwnerIdentification = >::IdentificationTuple; + + type HandleEquivocation = grandpa::EquivocationHandler< + Self::KeyOwnerIdentification, + primitives::fisherman::FishermanAppCrypto, + Runtime, + Offences, + >; } parameter_types! { @@ -389,7 +407,7 @@ parameter_types! { } impl parachains::Trait for Runtime { - type AuthorityId = parachains::FishermanAuthorityId; + type AuthorityId = primitives::fisherman::FishermanAppCrypto; type Origin = Origin; type Call = Call; type ParachainCurrency = Balances; @@ -404,13 +422,15 @@ impl parachains::Trait for Runtime { type ValidationUpgradeDelay = ValidationUpgradeDelay; type SlashPeriod = SlashPeriod; - type Proof = session::historical::Proof; + type Proof = sp_session::MembershipProof; type KeyOwnerProofSystem = session::historical::Module; type IdentificationTuple = )>>::IdentificationTuple; type ReportOffence = Offences; type BlockHashConversion = sp_runtime::traits::Identity; } +/// Submits a transaction with the node's public and signature type. Adheres to the signed extension +/// format of the chain. impl system::offchain::CreateSignedTransaction for Runtime where Call: From, { @@ -420,6 +440,7 @@ impl system::offchain::CreateSignedTransaction for Runtime account: AccountId, nonce: ::Index, ) -> Option<(Call, ::SignaturePayload)> { + // take the biggest period possible. let period = BlockHashCount::get() .checked_next_power_of_two() .map(|c| c / 2) @@ -427,6 +448,8 @@ impl system::offchain::CreateSignedTransaction for Runtime let current_block = System::block_number() .saturated_into::() + // The `System::block_number` is initialized with `n+1`, + // so the actual block number is `n`. .saturating_sub(1); let tip = 0; let extra: SignedExtra = ( @@ -439,6 +462,7 @@ impl system::offchain::CreateSignedTransaction for Runtime transaction_payment::ChargeTransactionPayment::::from(tip), registrar::LimitParathreadCommits::::new(), parachains::ValidateDoubleVoteReports::::new(), + grandpa::ValidateEquivocationReport::::new(), ); let raw_payload = SignedPayload::new(call, extra).map_err(|e| { debug::warn!("Unable to create signed payload: {:?}", e); @@ -626,9 +650,10 @@ pub type SignedExtra = ( system::CheckEra, system::CheckNonce, system::CheckWeight, - transaction_payment::ChargeTransactionPayment::, + transaction_payment::ChargeTransactionPayment, registrar::LimitParathreadCommits, parachains::ValidateDoubleVoteReports, + grandpa::ValidateEquivocationReport, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; @@ -743,6 +768,32 @@ sp_api::impl_runtime_apis! { fn grandpa_authorities() -> Vec<(GrandpaId, u64)> { Grandpa::grandpa_authorities() } + + fn submit_report_equivocation_extrinsic( + equivocation_proof: fg_primitives::EquivocationProof< + ::Hash, + sp_runtime::traits::NumberFor, + >, + key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof, + ) -> Option<()> { + let key_owner_proof = key_owner_proof.decode()?; + + Grandpa::submit_report_equivocation_extrinsic( + equivocation_proof, + key_owner_proof, + ) + } + + fn generate_key_ownership_proof( + _set_id: fg_primitives::SetId, + authority_id: fg_primitives::AuthorityId, + ) -> Option { + use codec::Encode; + + Historical::prove((fg_primitives::KEY_TYPE, authority_id)) + .map(|p| p.encode()) + .map(fg_primitives::OpaqueKeyOwnershipProof::new) + } } impl babe_primitives::BabeApi for Runtime { diff --git a/service/src/lib.rs b/service/src/lib.rs index 6955ed712e96..085dcdc78861 100644 --- a/service/src/lib.rs +++ b/service/src/lib.rs @@ -80,6 +80,7 @@ pub trait RuntimeApiCollection: sp_transaction_pool::runtime_api::TaggedTransactionQueue + sp_api::ApiExt + babe_primitives::BabeApi + + grandpa_primitives::GrandpaApi + ParachainHost + sp_block_builder::BlockBuilder + system_rpc_runtime_api::AccountNonceApi @@ -99,6 +100,7 @@ where sp_transaction_pool::runtime_api::TaggedTransactionQueue + sp_api::ApiExt + babe_primitives::BabeApi + + grandpa_primitives::GrandpaApi + ParachainHost + sp_block_builder::BlockBuilder + system_rpc_runtime_api::AccountNonceApi