diff --git a/cumulus/Cargo.lock b/cumulus/Cargo.lock
index dee98b3cc8..ce3388b072 100644
--- a/cumulus/Cargo.lock
+++ b/cumulus/Cargo.lock
@@ -196,7 +196,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502"
dependencies = [
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -232,63 +232,74 @@ dependencies = [
[[package]]
name = "async-executor"
-version = "0.1.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90f47c78ea98277cb1f5e6f60ba4fc762f5eafe9f6511bc2f7dfd8b75c225650"
+checksum = "d373d78ded7d0b3fa8039375718cde0aace493f2e34fb60f51cbf567562ca801"
dependencies = [
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "once_cell",
+ "vec-arena",
+]
+
+[[package]]
+name = "async-global-executor"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fefeb39da249f4c33af940b779a56723ce45809ef5c54dad84bb538d4ffb6d9e"
+dependencies = [
+ "async-executor",
"async-io",
"futures-lite",
- "multitask",
- "parking 1.0.6",
- "scoped-tls",
- "waker-fn",
+ "num_cpus",
+ "once_cell",
]
[[package]]
name = "async-io"
-version = "0.1.11"
+version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ae22a338d28c75b53702b66f77979062cb29675db376d99e451af4fa79dedb3"
+checksum = "6e727cebd055ab2861a854f79def078c4b99ea722d54c6800a0e274389882d4c"
dependencies = [
- "cfg-if",
"concurrent-queue",
+ "fastrand",
"futures-lite",
- "libc",
+ "log 0.4.11",
+ "nb-connect",
"once_cell",
- "parking 2.0.0",
+ "parking",
"polling",
- "socket2",
"vec-arena",
- "wepoll-sys-stjepang",
- "winapi 0.3.9",
+ "waker-fn",
]
[[package]]
name = "async-mutex"
-version = "1.3.0"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66941c2577c4fa351e4ce5fdde8f86c69b88d623f3b955be1bc7362a23434632"
+checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e"
dependencies = [
"event-listener",
]
[[package]]
name = "async-std"
-version = "1.6.3"
+version = "1.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46c8da367da62b8ff2313c406c9ac091c1b31d67a165becdd2de380d846260f7"
+checksum = "a9fa76751505e8df1c7a77762f60486f60c71bbd9b8557f4da6ad47d083732ed"
dependencies = [
- "async-executor",
+ "async-global-executor",
"async-io",
"async-mutex",
- "async-task",
"blocking",
"crossbeam-utils",
"futures-channel",
"futures-core",
"futures-io",
"futures-lite",
- "futures-timer 3.0.2",
+ "gloo-timers",
"kv-log-macro",
"log 0.4.11",
"memchr",
@@ -302,9 +313,9 @@ dependencies = [
[[package]]
name = "async-task"
-version = "3.0.0"
+version = "4.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17772156ef2829aadc587461c7753af20b7e8db1529bc66855add962a3b35d3"
+checksum = "8ab27c1aa62945039e44edaeee1dc23c74cc0c303dd5fe0fb462a184f1c3a518"
[[package]]
name = "async-tls"
@@ -349,9 +360,9 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
[[package]]
name = "backtrace"
-version = "0.3.50"
+version = "0.3.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293"
+checksum = "ec1931848a574faa8f7c71a12ea00453ff5effbb5f51afe7f77d7a48cace6ac1"
dependencies = [
"addr2line",
"cfg-if",
@@ -399,7 +410,7 @@ dependencies = [
"lazycell",
"log 0.4.11",
"peeking_take_while",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
"regex",
"rustc-hash",
@@ -522,12 +533,13 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
[[package]]
name = "blocking"
-version = "0.5.2"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea5800d29218fea137b0880387e5948694a23c93fcdde157006966693a865c7c"
+checksum = "2640778f8053e72c11f621b0a5175a0560a269282aa98ed85107773ab8e2a556"
dependencies = [
"async-channel",
"atomic-waker",
+ "fastrand",
"futures-lite",
"once_cell",
"waker-fn",
@@ -603,9 +615,9 @@ checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"
[[package]]
name = "cc"
-version = "1.0.59"
+version = "1.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381"
+checksum = "ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"
dependencies = [
"jobserver",
]
@@ -650,13 +662,15 @@ dependencies = [
[[package]]
name = "chrono"
-version = "0.4.15"
+version = "0.4.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942f72db697d8767c22d46a598e01f2d3b475501ea43d0db4f16d90259182d0b"
+checksum = "d021fddb7bd3e734370acfa4a83f34095571d8570c039f1420d77540f68d5772"
dependencies = [
+ "libc",
"num-integer",
"num-traits 0.2.12",
"time",
+ "winapi 0.3.9",
]
[[package]]
@@ -1192,6 +1206,7 @@ dependencies = [
"polkadot-core-primitives",
"polkadot-parachain",
"polkadot-primitives",
+ "sc-service",
"sp-inherents",
"sp-runtime",
"sp-std",
@@ -1209,6 +1224,7 @@ dependencies = [
"parity-scale-codec",
"polkadot-parachain",
"sc-block-builder",
+ "sc-client-api",
"sc-executor",
"sp-blockchain",
"sp-consensus",
@@ -1217,6 +1233,7 @@ dependencies = [
"sp-keyring",
"sp-runtime",
"sp-std",
+ "sp-timestamp",
"sp-trie",
"trie-db",
]
@@ -1246,14 +1263,25 @@ dependencies = [
name = "cumulus-test-client"
version = "0.1.0"
dependencies = [
+ "cumulus-primitives",
"cumulus-test-runtime",
+ "cumulus-test-service",
+ "frame-system",
+ "pallet-balances",
+ "pallet-transaction-payment",
"parity-scale-codec",
+ "sc-block-builder",
+ "sc-client-api",
"sc-consensus",
"sc-service",
+ "sp-api",
+ "sp-blockchain",
+ "sp-consensus",
"sp-core",
"sp-keyring",
"sp-runtime",
"sp-test-primitives",
+ "sp-timestamp",
"substrate-test-client",
]
@@ -1298,11 +1326,85 @@ dependencies = [
name = "cumulus-test-runtime"
version = "0.1.0"
dependencies = [
+ "cumulus-parachain-upgrade",
+ "cumulus-primitives",
"cumulus-runtime",
- "substrate-test-runtime",
+ "cumulus-upward-message",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "pallet-balances",
+ "pallet-randomness-collective-flip",
+ "pallet-sudo",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "parity-scale-codec",
+ "polkadot-parachain",
+ "serde",
+ "sp-api",
+ "sp-block-builder",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std",
+ "sp-transaction-pool",
+ "sp-version",
"substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
+[[package]]
+name = "cumulus-test-service"
+version = "0.1.0"
+dependencies = [
+ "ansi_term 0.12.1",
+ "cumulus-collator",
+ "cumulus-consensus",
+ "cumulus-network",
+ "cumulus-primitives",
+ "cumulus-service",
+ "cumulus-test-runtime",
+ "futures 0.3.5",
+ "jsonrpc-core",
+ "pallet-sudo",
+ "parity-scale-codec",
+ "polkadot-collator",
+ "polkadot-primitives",
+ "polkadot-test-runtime",
+ "polkadot-test-service",
+ "rand 0.7.3",
+ "sc-basic-authorship",
+ "sc-block-builder",
+ "sc-chain-spec",
+ "sc-client-api",
+ "sc-executor",
+ "sc-informant",
+ "sc-network",
+ "sc-rpc",
+ "sc-service",
+ "sc-transaction-pool",
+ "serde",
+ "sp-api",
+ "sp-block-builder",
+ "sp-consensus",
+ "sp-core",
+ "sp-inherents",
+ "sp-keyring",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-state-machine",
+ "sp-timestamp",
+ "sp-transaction-pool",
+ "sp-trie",
+ "substrate-test-client",
+ "substrate-test-runtime-client",
+ "substrate-test-utils",
+ "tokio 0.2.22",
+]
+
[[package]]
name = "cumulus-token-dealer"
version = "0.1.0"
@@ -1388,13 +1490,13 @@ dependencies = [
[[package]]
name = "derive_more"
-version = "0.99.9"
+version = "0.99.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "298998b1cf6b5b2c8a7b023dfd45821825ce3ba8a8af55c921a0e734e4653f76"
+checksum = "1dcfabdab475c16a93d669dddfc393027803e347d09663f524447f642fbb84ba"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -1474,9 +1576,9 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -1487,18 +1589,18 @@ checksum = "4c53dc3a653e0f64081026e4bf048d48fec9fce90c66e8326ca7292df0ff2d82"
[[package]]
name = "ed25519"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf038a7b6fd7ef78ad3348b63f3a17550877b0e28f8d68bcc94894d1412158bc"
+checksum = "07dfc993ea376e864fe29a4099a61ca0bb994c6d7745a61bf60ddb3d64e05237"
dependencies = [
"signature",
]
[[package]]
name = "ed25519-dalek"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d2e93f837d749c16d118e7ddf7a4dfd0ac8f452cf51e46e9348824e5ef6851"
+checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
dependencies = [
"curve25519-dalek 3.0.0",
"ed25519",
@@ -1510,9 +1612,9 @@ dependencies = [
[[package]]
name = "either"
-version = "1.6.0"
+version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f"
+checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
[[package]]
name = "enum-primitive-derive"
@@ -1549,9 +1651,9 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -1569,9 +1671,9 @@ dependencies = [
[[package]]
name = "environmental"
-version = "1.1.1"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "516aa8d7a71cb00a1c4146f0798549b93d083d4f189b3ced8f3de6b8f11ee6c4"
+checksum = "6576a1755ddffd988788025e75bce9e74b018f7cc226198fe931d077911c6d7e"
[[package]]
name = "erased-serde"
@@ -1617,9 +1719,9 @@ dependencies = [
[[package]]
name = "event-listener"
-version = "2.4.0"
+version = "2.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1cd41440ae7e4734bbd42302f63eaba892afc93a3912dad84006247f0dedb0e"
+checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59"
[[package]]
name = "exit-future"
@@ -1656,9 +1758,9 @@ version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
"synstructure",
]
@@ -1754,7 +1856,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "fork-tree"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
]
@@ -1762,7 +1864,7 @@ dependencies = [
[[package]]
name = "frame-benchmarking"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -1779,7 +1881,7 @@ dependencies = [
[[package]]
name = "frame-benchmarking-cli"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-benchmarking",
"parity-scale-codec",
@@ -1797,7 +1899,7 @@ dependencies = [
[[package]]
name = "frame-executive"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -1812,7 +1914,7 @@ dependencies = [
[[package]]
name = "frame-metadata"
version = "11.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"serde",
@@ -1823,7 +1925,7 @@ dependencies = [
[[package]]
name = "frame-support"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"bitmask",
"frame-metadata",
@@ -1848,40 +1950,40 @@ dependencies = [
[[package]]
name = "frame-support-procedural"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support-procedural-tools",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "frame-support-procedural-tools"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "frame-support-procedural-tools-derive"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "frame-system"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"impl-trait-for-tuples",
@@ -1897,7 +1999,7 @@ dependencies = [
[[package]]
name = "frame-system-rpc-runtime-api"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -2035,15 +2137,15 @@ checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
[[package]]
name = "futures-lite"
-version = "0.1.11"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97999970129b808f0ccba93211201d431fcc12d7e1ffae03a61b5cedd1a7ced2"
+checksum = "0db18c5f58083b54b0c416638ea73066722c2815c1e54dd8ba85ee3def593c3a"
dependencies = [
"fastrand",
"futures-core",
"futures-io",
"memchr",
- "parking 2.0.0",
+ "parking",
"pin-project-lite",
"waker-fn",
]
@@ -2055,9 +2157,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
dependencies = [
"proc-macro-hack",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -2086,10 +2188,6 @@ name = "futures-timer"
version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
-dependencies = [
- "gloo-timers",
- "send_wrapper",
-]
[[package]]
name = "futures-util"
@@ -2332,9 +2430,9 @@ dependencies = [
[[package]]
name = "hashbrown"
-version = "0.9.0"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00d63df3d41950fb462ed38308eea019113ad1508da725bbedcd0fa5a85ef5f7"
+checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
[[package]]
name = "heck"
@@ -2347,9 +2445,9 @@ dependencies = [
[[package]]
name = "hermit-abi"
-version = "0.1.15"
+version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
+checksum = "4c30f6d0bc6b00693347368a67d41b58f2fb851215ff1da49e90fe2c5c667151"
dependencies = [
"libc",
]
@@ -2450,6 +2548,12 @@ version = "1.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+[[package]]
+name = "httpdate"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47"
+
[[package]]
name = "humantime"
version = "1.3.0"
@@ -2491,9 +2595,9 @@ dependencies = [
[[package]]
name = "hyper"
-version = "0.13.7"
+version = "0.13.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e68a8dd9716185d9e64ea473ea6ef63529252e3e27623295a0378a19665d5eb"
+checksum = "2f3afcfae8af5ad0576a31e768415edb627824129e8e5a29b8bfccb2f234e835"
dependencies = [
"bytes 0.5.6",
"futures-channel",
@@ -2503,10 +2607,10 @@ dependencies = [
"http 0.2.1",
"http-body 0.3.1",
"httparse",
+ "httpdate",
"itoa",
"pin-project",
"socket2",
- "time",
"tokio 0.2.22",
"tower-service",
"tracing",
@@ -2522,7 +2626,7 @@ dependencies = [
"bytes 0.5.6",
"ct-logs",
"futures-util",
- "hyper 0.13.7",
+ "hyper 0.13.8",
"log 0.4.11",
"rustls",
"rustls-native-certs",
@@ -2586,9 +2690,9 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -2598,15 +2702,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2"
dependencies = [
"autocfg 1.0.1",
- "hashbrown 0.9.0",
+ "hashbrown 0.9.1",
"serde",
]
[[package]]
name = "instant"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485"
+checksum = "63312a18f7ea8760cdd0a7c5aac1a619752a246b833545e3e36d1f81f7cd9e66"
+dependencies = [
+ "cfg-if",
+]
[[package]]
name = "integer-sqrt"
@@ -2735,9 +2842,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0e77e8812f02155b85a677a96e1d16b60181950c0636199bc4528524fba98dc"
dependencies = [
"proc-macro-crate",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -2831,7 +2938,7 @@ dependencies = [
[[package]]
name = "kusama-runtime"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"bitvec",
"frame-executive",
@@ -3072,7 +3179,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f753d9324cd3ec14bf04b8a8cd0d269c87f294153d6bf2a84497a63a5ad22213"
dependencies = [
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -3450,9 +3557,9 @@ dependencies = [
[[package]]
name = "memoffset"
-version = "0.5.5"
+version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
+checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
dependencies = [
"autocfg 1.0.1",
]
@@ -3497,11 +3604,12 @@ dependencies = [
[[package]]
name = "miniz_oxide"
-version = "0.4.1"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d7559a8a40d0f97e1edea3220f698f78b1c5ab67532e49f68fde3910323b722"
+checksum = "c60c0dfe32c10b43a144bad8fc83538c52f58302c92300ea7ec7bf7b38d5a7b9"
dependencies = [
"adler",
+ "autocfg 1.0.1",
]
[[package]]
@@ -3621,17 +3729,6 @@ dependencies = [
"unsigned-varint 0.4.0",
]
-[[package]]
-name = "multitask"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c09c35271e7dcdb5f709779111f2c8e8ab8e06c1b587c1c6a9e179d865aaa5b4"
-dependencies = [
- "async-task",
- "concurrent-queue",
- "fastrand",
-]
-
[[package]]
name = "nalgebra"
version = "0.18.1"
@@ -3658,6 +3755,16 @@ dependencies = [
"rand 0.3.23",
]
+[[package]]
+name = "nb-connect"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "701f47aeb98466d0a7fea67e2c2f667c33efa1f2e4fd7f76743aac1153196f72"
+dependencies = [
+ "libc",
+ "winapi 0.3.9",
+]
+
[[package]]
name = "net2"
version = "0.2.35"
@@ -3869,7 +3976,7 @@ dependencies = [
[[package]]
name = "pallet-authority-discovery"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -3885,7 +3992,7 @@ dependencies = [
[[package]]
name = "pallet-authorship"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -3900,7 +4007,7 @@ dependencies = [
[[package]]
name = "pallet-babe"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -3925,7 +4032,7 @@ dependencies = [
[[package]]
name = "pallet-balances"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -3939,7 +4046,7 @@ dependencies = [
[[package]]
name = "pallet-collective"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -3954,7 +4061,7 @@ dependencies = [
[[package]]
name = "pallet-democracy"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -3969,7 +4076,7 @@ dependencies = [
[[package]]
name = "pallet-elections-phragmen"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -3983,7 +4090,7 @@ dependencies = [
[[package]]
name = "pallet-finality-tracker"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -3999,7 +4106,7 @@ dependencies = [
[[package]]
name = "pallet-grandpa"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -4021,7 +4128,7 @@ dependencies = [
[[package]]
name = "pallet-identity"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"enumflags2",
"frame-benchmarking",
@@ -4037,7 +4144,7 @@ dependencies = [
[[package]]
name = "pallet-im-online"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4056,7 +4163,7 @@ dependencies = [
[[package]]
name = "pallet-indices"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4072,7 +4179,7 @@ dependencies = [
[[package]]
name = "pallet-membership"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4086,7 +4193,7 @@ dependencies = [
[[package]]
name = "pallet-multisig"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4101,7 +4208,7 @@ dependencies = [
[[package]]
name = "pallet-nicks"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4115,7 +4222,7 @@ dependencies = [
[[package]]
name = "pallet-offences"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4130,7 +4237,7 @@ dependencies = [
[[package]]
name = "pallet-proxy"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4145,7 +4252,7 @@ dependencies = [
[[package]]
name = "pallet-randomness-collective-flip"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4158,7 +4265,7 @@ dependencies = [
[[package]]
name = "pallet-recovery"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"enumflags2",
"frame-support",
@@ -4173,7 +4280,7 @@ dependencies = [
[[package]]
name = "pallet-scheduler"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -4188,7 +4295,7 @@ dependencies = [
[[package]]
name = "pallet-session"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4208,7 +4315,7 @@ dependencies = [
[[package]]
name = "pallet-society"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4222,7 +4329,7 @@ dependencies = [
[[package]]
name = "pallet-staking"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4242,18 +4349,18 @@ dependencies = [
[[package]]
name = "pallet-staking-reward-curve"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"proc-macro-crate",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "pallet-sudo"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4267,7 +4374,7 @@ dependencies = [
[[package]]
name = "pallet-timestamp"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -4284,7 +4391,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4301,7 +4408,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment-rpc"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"jsonrpc-core",
"jsonrpc-core-client",
@@ -4319,7 +4426,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment-rpc-runtime-api"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"parity-scale-codec",
@@ -4332,7 +4439,7 @@ dependencies = [
[[package]]
name = "pallet-treasury"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4346,7 +4453,7 @@ dependencies = [
[[package]]
name = "pallet-utility"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-support",
"frame-system",
@@ -4361,7 +4468,7 @@ dependencies = [
[[package]]
name = "pallet-vesting"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"enumflags2",
"frame-support",
@@ -4435,9 +4542,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "198db82bb1c18fc00176004462dd809b2a6d851669550aa17af6dacd21ae0c14"
dependencies = [
"proc-macro-crate",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -4487,8 +4594,8 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2"
dependencies = [
- "proc-macro2 1.0.21",
- "syn 1.0.40",
+ "proc-macro2 1.0.23",
+ "syn 1.0.42",
"synstructure",
]
@@ -4498,12 +4605,6 @@ version = "0.41.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddfc878dac00da22f8f61e7af3157988424567ab01d9920b962ef7dcbd7cd865"
-[[package]]
-name = "parking"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cb300f271742d4a2a66c01b6b2fa0c83dfebd2e0bf11addb879a3547b4ed87c"
-
[[package]]
name = "parking"
version = "2.0.0"
@@ -4674,29 +4775,29 @@ dependencies = [
[[package]]
name = "pin-project"
-version = "0.4.23"
+version = "0.4.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa"
+checksum = "f48fad7cfbff853437be7cf54d7b993af21f53be7f0988cbfe4a51535aa77205"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
-version = "0.4.23"
+version = "0.4.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
+checksum = "24c6d293bdd3ca5a1697997854c6cf7855e43fb6a0ba1c47af57a5bcafd158ae"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "pin-project-lite"
-version = "0.1.7"
+version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715"
+checksum = "4fe74897791e156a0cd8cce0db31b9b2198e67877316bf3086c3acd187f719f0"
[[package]]
name = "pin-utils"
@@ -4719,9 +4820,9 @@ checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e"
[[package]]
name = "polkadot-availability-store"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"exit-future 0.2.0",
"futures 0.3.5",
"kvdb",
@@ -4746,7 +4847,7 @@ dependencies = [
[[package]]
name = "polkadot-cli"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"frame-benchmarking-cli",
"futures 0.3.5",
@@ -4769,7 +4870,7 @@ dependencies = [
[[package]]
name = "polkadot-collator"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"futures 0.3.5",
"futures-timer 2.0.2",
@@ -4796,7 +4897,7 @@ dependencies = [
[[package]]
name = "polkadot-core-primitives"
version = "0.7.30"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"parity-scale-codec",
"sp-core",
@@ -4807,7 +4908,7 @@ dependencies = [
[[package]]
name = "polkadot-erasure-coding"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"derive_more 0.15.0",
"parity-scale-codec",
@@ -4820,7 +4921,7 @@ dependencies = [
[[package]]
name = "polkadot-network"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"arrayvec 0.4.12",
"bytes 0.5.6",
@@ -4849,9 +4950,9 @@ dependencies = [
[[package]]
name = "polkadot-parachain"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"futures 0.3.5",
"log 0.4.11",
"parity-scale-codec",
@@ -4870,7 +4971,7 @@ dependencies = [
[[package]]
name = "polkadot-primitives"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"bitvec",
"frame-system",
@@ -4893,7 +4994,7 @@ dependencies = [
[[package]]
name = "polkadot-rpc"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"jsonrpc-core",
"pallet-transaction-payment-rpc",
@@ -4920,7 +5021,7 @@ dependencies = [
[[package]]
name = "polkadot-runtime"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"bitvec",
"frame-executive",
@@ -4985,7 +5086,7 @@ dependencies = [
[[package]]
name = "polkadot-runtime-common"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"bitvec",
"frame-support",
@@ -5019,7 +5120,7 @@ dependencies = [
[[package]]
name = "polkadot-runtime-parachains"
version = "0.8.0"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"bitvec",
"frame-support",
@@ -5050,7 +5151,7 @@ dependencies = [
[[package]]
name = "polkadot-service"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"frame-benchmarking",
"frame-system-rpc-runtime-api",
@@ -5110,7 +5211,7 @@ dependencies = [
[[package]]
name = "polkadot-statement-table"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"parity-scale-codec",
"polkadot-primitives",
@@ -5120,7 +5221,7 @@ dependencies = [
[[package]]
name = "polkadot-test-runtime"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"bitvec",
"frame-executive",
@@ -5174,7 +5275,7 @@ dependencies = [
[[package]]
name = "polkadot-test-runtime-client"
version = "2.0.0"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"futures 0.3.5",
"pallet-timestamp",
@@ -5198,7 +5299,7 @@ dependencies = [
[[package]]
name = "polkadot-test-service"
version = "0.8.2"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"frame-benchmarking",
"frame-system",
@@ -5207,6 +5308,7 @@ dependencies = [
"hex",
"log 0.4.11",
"pallet-staking",
+ "pallet-sudo",
"pallet-transaction-payment",
"polkadot-availability-store",
"polkadot-network",
@@ -5245,7 +5347,7 @@ dependencies = [
[[package]]
name = "polkadot-validation"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"ansi_term 0.12.1",
"bitvec",
@@ -5283,9 +5385,9 @@ dependencies = [
[[package]]
name = "polling"
-version = "0.1.9"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fffa183f6bd5f1a8a3e1f60ce2f8d5621e350eed84a62d6daaa5b9d1aaf6fbd"
+checksum = "e0720e0b9ea9d52451cf29d3413ba8a9303f8815d9d9653ef70e03ff73e65566"
dependencies = [
"cfg-if",
"libc",
@@ -5296,18 +5398,18 @@ dependencies = [
[[package]]
name = "poly1305"
-version = "0.6.0"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b42192ab143ed7619bf888a7f9c6733a9a2153b218e2cd557cfdb52fbf9bb1"
+checksum = "22ce46de8e53ee414ca4d02bfefac75d8c12fba948b76622a40b4be34dfce980"
dependencies = [
"universal-hash",
]
[[package]]
name = "polyval"
-version = "0.4.0"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9a50142b55ab3ed0e9f68dfb3709f1d90d29da24e91033f28b96330643107dc"
+checksum = "a5884790f1ce3553ad55fec37b5aaac5882e0e845a2612df744d6c85c9bf046c"
dependencies = [
"cfg-if",
"universal-hash",
@@ -5373,9 +5475,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
"version_check",
]
@@ -5385,7 +5487,7 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
"version_check",
]
@@ -5413,9 +5515,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.21"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36e28516df94f3dd551a587da5357459d9b36d945a7c37c3557928c1c2ff2a2c"
+checksum = "51ef7cd2518ead700af67bf9d1a658d90b6037d77110fd9c0445429d0ba1c6c9"
dependencies = [
"unicode-xid 0.2.1",
]
@@ -5484,9 +5586,9 @@ checksum = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72"
dependencies = [
"anyhow",
"itertools 0.8.2",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -5548,7 +5650,7 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
]
[[package]]
@@ -5769,9 +5871,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
[[package]]
name = "rayon"
-version = "1.4.0"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfd016f0c045ad38b5251be2c9c0ab806917f82da4d36b2a327e5166adad9270"
+checksum = "dcf6960dc9a5b4ee8d3e4c5787b4a112a8818e0290a42ff664ad60692fdf2032"
dependencies = [
"autocfg 1.0.1",
"crossbeam-deque",
@@ -5781,9 +5883,9 @@ dependencies = [
[[package]]
name = "rayon-core"
-version = "1.8.0"
+version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91739a34c4355b5434ce54c9086c5895604a9c278586d1f1aa95e04f66b525a0"
+checksum = "e8c4fec834fb6e6d2dd5eece3c7b432a52f0ba887cf40e595190c4107edc08bf"
dependencies = [
"crossbeam-channel",
"crossbeam-deque",
@@ -5842,9 +5944,9 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d21b475ab879ef0e315ad99067fa25778c3b0377f57f1b00207448dac1a3144"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -5913,9 +6015,9 @@ version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -5976,19 +6078,13 @@ dependencies = [
"jsonrpc-core",
"log 0.4.11",
"nix 0.17.0",
- "pallet-sudo",
"parity-scale-codec",
"parking_lot 0.9.0",
"polkadot-cli",
"polkadot-collator",
"polkadot-parachain",
"polkadot-primitives",
- "polkadot-runtime-common",
"polkadot-service",
- "polkadot-test-runtime",
- "polkadot-test-runtime-client",
- "polkadot-test-service",
- "rand 0.7.3",
"rococo-parachain-primitives",
"sc-basic-authorship",
"sc-chain-spec",
@@ -5998,7 +6094,6 @@ dependencies = [
"sc-executor",
"sc-finality-grandpa",
"sc-informant",
- "sc-network",
"sc-rpc",
"sc-service",
"sc-transaction-pool",
@@ -6018,10 +6113,6 @@ dependencies = [
"sp-trie",
"structopt",
"substrate-build-script-utils",
- "substrate-test-client",
- "substrate-test-runtime-client",
- "substrate-test-utils",
- "tokio 0.2.22",
"trie-root 0.15.2",
]
@@ -6036,7 +6127,7 @@ dependencies = [
[[package]]
name = "rococo-runtime"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"bitvec",
"frame-executive",
@@ -6211,10 +6302,10 @@ dependencies = [
[[package]]
name = "sc-authority-discovery"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"bytes 0.5.6",
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"futures 0.3.5",
"futures-timer 3.0.2",
"libp2p",
@@ -6238,7 +6329,7 @@ dependencies = [
[[package]]
name = "sc-basic-authorship"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"futures 0.3.5",
"futures-timer 3.0.2",
@@ -6262,7 +6353,7 @@ dependencies = [
[[package]]
name = "sc-block-builder"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"sc-client-api",
@@ -6279,7 +6370,7 @@ dependencies = [
[[package]]
name = "sc-chain-spec"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"impl-trait-for-tuples",
"sc-chain-spec-derive",
@@ -6295,23 +6386,23 @@ dependencies = [
[[package]]
name = "sc-chain-spec-derive"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"proc-macro-crate",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "sc-cli"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"ansi_term 0.12.1",
"atty",
"chrono",
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"env_logger",
"fdlimit",
"futures 0.3.5",
@@ -6347,9 +6438,9 @@ dependencies = [
[[package]]
name = "sc-client-api"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"fnv",
"futures 0.3.5",
"hash-db",
@@ -6383,7 +6474,7 @@ dependencies = [
[[package]]
name = "sc-client-db"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"blake2-rfc",
"hash-db",
@@ -6413,7 +6504,7 @@ dependencies = [
[[package]]
name = "sc-consensus"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"sc-client-api",
"sp-blockchain",
@@ -6424,9 +6515,9 @@ dependencies = [
[[package]]
name = "sc-consensus-babe"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"fork-tree",
"futures 0.3.5",
"futures-timer 3.0.2",
@@ -6468,9 +6559,9 @@ dependencies = [
[[package]]
name = "sc-consensus-babe-rpc"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"futures 0.3.5",
"jsonrpc-core",
"jsonrpc-core-client",
@@ -6492,7 +6583,7 @@ dependencies = [
[[package]]
name = "sc-consensus-epochs"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"fork-tree",
"parity-scale-codec",
@@ -6505,7 +6596,7 @@ dependencies = [
[[package]]
name = "sc-consensus-slots"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"futures 0.3.5",
"futures-timer 3.0.2",
@@ -6528,7 +6619,7 @@ dependencies = [
[[package]]
name = "sc-consensus-uncles"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"log 0.4.11",
"sc-client-api",
@@ -6542,9 +6633,9 @@ dependencies = [
[[package]]
name = "sc-executor"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"lazy_static",
"libsecp256k1",
"log 0.4.11",
@@ -6570,9 +6661,9 @@ dependencies = [
[[package]]
name = "sc-executor-common"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"log 0.4.11",
"parity-scale-codec",
"parity-wasm",
@@ -6587,7 +6678,7 @@ dependencies = [
[[package]]
name = "sc-executor-wasmi"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"log 0.4.11",
"parity-scale-codec",
@@ -6602,7 +6693,7 @@ dependencies = [
[[package]]
name = "sc-executor-wasmtime"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"cranelift-codegen",
"cranelift-wasm",
@@ -6623,10 +6714,10 @@ dependencies = [
[[package]]
name = "sc-finality-grandpa"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"assert_matches",
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"finality-grandpa",
"fork-tree",
"futures 0.3.5",
@@ -6661,9 +6752,9 @@ dependencies = [
[[package]]
name = "sc-finality-grandpa-rpc"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"finality-grandpa",
"futures 0.3.5",
"jsonrpc-core",
@@ -6678,7 +6769,7 @@ dependencies = [
[[package]]
name = "sc-informant"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"ansi_term 0.12.1",
"futures 0.3.5",
@@ -6696,9 +6787,9 @@ dependencies = [
[[package]]
name = "sc-keystore"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"hex",
"merlin",
"parking_lot 0.10.2",
@@ -6712,7 +6803,7 @@ dependencies = [
[[package]]
name = "sc-light"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"hash-db",
"lazy_static",
@@ -6731,12 +6822,12 @@ dependencies = [
[[package]]
name = "sc-network"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"bitflags",
"bs58",
"bytes 0.5.6",
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"either",
"erased-serde",
"fnv",
@@ -6783,7 +6874,7 @@ dependencies = [
[[package]]
name = "sc-network-gossip"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"futures 0.3.5",
"futures-timer 3.0.2",
@@ -6798,13 +6889,13 @@ dependencies = [
[[package]]
name = "sc-offchain"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"bytes 0.5.6",
"fnv",
"futures 0.3.5",
"futures-timer 3.0.2",
- "hyper 0.13.7",
+ "hyper 0.13.8",
"hyper-rustls",
"log 0.4.11",
"num_cpus",
@@ -6825,7 +6916,7 @@ dependencies = [
[[package]]
name = "sc-peerset"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"futures 0.3.5",
"libp2p",
@@ -6838,7 +6929,7 @@ dependencies = [
[[package]]
name = "sc-proposer-metrics"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"log 0.4.11",
"substrate-prometheus-endpoint",
@@ -6847,7 +6938,7 @@ dependencies = [
[[package]]
name = "sc-rpc"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"futures 0.3.5",
"hash-db",
@@ -6879,9 +6970,9 @@ dependencies = [
[[package]]
name = "sc-rpc-api"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"futures 0.3.5",
"jsonrpc-core",
"jsonrpc-core-client",
@@ -6903,7 +6994,7 @@ dependencies = [
[[package]]
name = "sc-rpc-server"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"jsonrpc-core",
"jsonrpc-http-server",
@@ -6919,9 +7010,9 @@ dependencies = [
[[package]]
name = "sc-service"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"directories",
"exit-future 0.2.0",
"futures 0.1.29",
@@ -6982,7 +7073,7 @@ dependencies = [
[[package]]
name = "sc-state-db"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"log 0.4.11",
"parity-scale-codec",
@@ -6996,7 +7087,7 @@ dependencies = [
[[package]]
name = "sc-telemetry"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"futures 0.3.5",
"futures-timer 3.0.2",
@@ -7017,7 +7108,7 @@ dependencies = [
[[package]]
name = "sc-tracing"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"erased-serde",
"log 0.4.11",
@@ -7034,9 +7125,9 @@ dependencies = [
[[package]]
name = "sc-transaction-graph"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"futures 0.3.5",
"linked-hash-map",
"log 0.4.11",
@@ -7055,9 +7146,9 @@ dependencies = [
[[package]]
name = "sc-transaction-pool"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"futures 0.3.5",
"futures-diagnose",
"intervalier",
@@ -7139,9 +7230,9 @@ version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e367622f934864ffa1c704ba2b82280aab856e3d8213c84c5720257eb34b15b9"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -7201,30 +7292,24 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-[[package]]
-name = "send_wrapper"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0"
-
[[package]]
name = "serde"
-version = "1.0.115"
+version = "1.0.116"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5"
+checksum = "96fe57af81d28386a513cbc6858332abc6117cfdb5999647c6444b8f43a370a5"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.115"
+version = "1.0.116"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48"
+checksum = "f630a6370fd8e457873b4bd2ffdae75408bc291ba72be773772a4c2a065d9ae8"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -7397,9 +7482,9 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a945ec7f7ce853e89ffa36be1e27dce9a43e82ff9093bf3461c30d5da74ed11b"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -7466,9 +7551,9 @@ dependencies = [
[[package]]
name = "sp-allocator"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"log 0.4.11",
"sp-core",
"sp-std",
@@ -7478,7 +7563,7 @@ dependencies = [
[[package]]
name = "sp-api"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"hash-db",
"parity-scale-codec",
@@ -7493,19 +7578,19 @@ dependencies = [
[[package]]
name = "sp-api-proc-macro"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"blake2-rfc",
"proc-macro-crate",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "sp-application-crypto"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"serde",
@@ -7517,7 +7602,7 @@ dependencies = [
[[package]]
name = "sp-arithmetic"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"integer-sqrt",
"num-traits 0.2.12",
@@ -7530,7 +7615,7 @@ dependencies = [
[[package]]
name = "sp-authority-discovery"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -7542,7 +7627,7 @@ dependencies = [
[[package]]
name = "sp-authorship"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"sp-inherents",
@@ -7553,7 +7638,7 @@ dependencies = [
[[package]]
name = "sp-block-builder"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -7565,9 +7650,9 @@ dependencies = [
[[package]]
name = "sp-blockchain"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"log 0.4.11",
"lru",
"parity-scale-codec",
@@ -7582,7 +7667,7 @@ dependencies = [
[[package]]
name = "sp-chain-spec"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"serde",
"serde_json",
@@ -7591,9 +7676,9 @@ dependencies = [
[[package]]
name = "sp-consensus"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"futures 0.3.5",
"futures-timer 3.0.2",
"libp2p",
@@ -7617,7 +7702,7 @@ dependencies = [
[[package]]
name = "sp-consensus-aura"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -7631,7 +7716,7 @@ dependencies = [
[[package]]
name = "sp-consensus-babe"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"merlin",
"parity-scale-codec",
@@ -7650,7 +7735,7 @@ dependencies = [
[[package]]
name = "sp-consensus-slots"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"sp-runtime",
@@ -7659,7 +7744,7 @@ dependencies = [
[[package]]
name = "sp-consensus-vrf"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"schnorrkel",
@@ -7671,12 +7756,12 @@ dependencies = [
[[package]]
name = "sp-core"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"base58",
"blake2-rfc",
"byteorder",
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"dyn-clonable",
"ed25519-dalek",
"futures 0.3.5",
@@ -7715,7 +7800,7 @@ dependencies = [
[[package]]
name = "sp-database"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"kvdb",
"parking_lot 0.10.2",
@@ -7724,17 +7809,17 @@ dependencies = [
[[package]]
name = "sp-debug-derive"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "sp-externalities"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"environmental",
"parity-scale-codec",
@@ -7745,7 +7830,7 @@ dependencies = [
[[package]]
name = "sp-finality-grandpa"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"finality-grandpa",
"log 0.4.11",
@@ -7761,7 +7846,7 @@ dependencies = [
[[package]]
name = "sp-finality-tracker"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"sp-inherents",
@@ -7771,9 +7856,9 @@ dependencies = [
[[package]]
name = "sp-inherents"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"parity-scale-codec",
"parking_lot 0.10.2",
"sp-core",
@@ -7783,7 +7868,7 @@ dependencies = [
[[package]]
name = "sp-io"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"futures 0.3.5",
"hash-db",
@@ -7804,7 +7889,7 @@ dependencies = [
[[package]]
name = "sp-keyring"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"lazy_static",
"sp-core",
@@ -7815,7 +7900,7 @@ dependencies = [
[[package]]
name = "sp-npos-elections"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"serde",
@@ -7827,18 +7912,18 @@ dependencies = [
[[package]]
name = "sp-npos-elections-compact"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"proc-macro-crate",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "sp-offchain"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"sp-api",
"sp-core",
@@ -7848,7 +7933,7 @@ dependencies = [
[[package]]
name = "sp-panic-handler"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"backtrace",
"log 0.4.11",
@@ -7857,7 +7942,7 @@ dependencies = [
[[package]]
name = "sp-rpc"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"serde",
"sp-core",
@@ -7866,7 +7951,7 @@ dependencies = [
[[package]]
name = "sp-runtime"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"either",
"hash256-std-hasher",
@@ -7888,7 +7973,7 @@ dependencies = [
[[package]]
name = "sp-runtime-interface"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"primitive-types",
@@ -7903,19 +7988,19 @@ dependencies = [
[[package]]
name = "sp-runtime-interface-proc-macro"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"Inflector",
"proc-macro-crate",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "sp-sandbox"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"sp-core",
@@ -7928,7 +8013,7 @@ dependencies = [
[[package]]
name = "sp-serializer"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"serde",
"serde_json",
@@ -7937,7 +8022,7 @@ dependencies = [
[[package]]
name = "sp-session"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -7950,7 +8035,7 @@ dependencies = [
[[package]]
name = "sp-staking"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"sp-runtime",
@@ -7960,7 +8045,7 @@ dependencies = [
[[package]]
name = "sp-state-machine"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"hash-db",
"itertools 0.9.0",
@@ -7981,12 +8066,12 @@ dependencies = [
[[package]]
name = "sp-std"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
[[package]]
name = "sp-storage"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"impl-serde 0.2.3",
"ref-cast",
@@ -7998,7 +8083,7 @@ dependencies = [
[[package]]
name = "sp-test-primitives"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"parity-scale-codec",
"parity-util-mem",
@@ -8011,7 +8096,7 @@ dependencies = [
[[package]]
name = "sp-timestamp"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"impl-trait-for-tuples",
"parity-scale-codec",
@@ -8025,7 +8110,7 @@ dependencies = [
[[package]]
name = "sp-tracing"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"log 0.4.11",
"rental",
@@ -8035,9 +8120,9 @@ dependencies = [
[[package]]
name = "sp-transaction-pool"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"futures 0.3.5",
"log 0.4.11",
"parity-scale-codec",
@@ -8050,7 +8135,7 @@ dependencies = [
[[package]]
name = "sp-trie"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"hash-db",
"memory-db",
@@ -8064,7 +8149,7 @@ dependencies = [
[[package]]
name = "sp-utils"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"futures 0.3.5",
"futures-core",
@@ -8076,7 +8161,7 @@ dependencies = [
[[package]]
name = "sp-version"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"impl-serde 0.2.3",
"parity-scale-codec",
@@ -8088,7 +8173,7 @@ dependencies = [
[[package]]
name = "sp-wasm-interface"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"impl-trait-for-tuples",
"parity-scale-codec",
@@ -8149,9 +8234,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "structopt"
-version = "0.3.17"
+version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cc388d94ffabf39b5ed5fadddc40147cb21e605f53db6f8f36a625d27489ac5"
+checksum = "a33f6461027d7f08a13715659b2948e1602c31a3756aeae9378bfe7518c72e82"
dependencies = [
"clap",
"lazy_static",
@@ -8160,15 +8245,15 @@ dependencies = [
[[package]]
name = "structopt-derive"
-version = "0.4.10"
+version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e2513111825077552a6751dfad9e11ce0fba07d7276a3943a037d7e93e64c5f"
+checksum = "c92e775028122a4b3dd55d58f14fc5120289c69bee99df1d117ae30f84b225c9"
dependencies = [
"heck",
"proc-macro-error",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -8187,9 +8272,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0054a7df764039a6cd8592b9de84be4bec368ff081d203a7d5371cbfa8e65c81"
dependencies = [
"heck",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -8208,7 +8293,7 @@ dependencies = [
[[package]]
name = "substrate-build-script-utils"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"platforms",
]
@@ -8216,7 +8301,7 @@ dependencies = [
[[package]]
name = "substrate-frame-rpc-system"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"frame-system-rpc-runtime-api",
"futures 0.3.5",
@@ -8239,12 +8324,12 @@ dependencies = [
[[package]]
name = "substrate-prometheus-endpoint"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"async-std",
- "derive_more 0.99.9",
+ "derive_more 0.99.10",
"futures-util",
- "hyper 0.13.7",
+ "hyper 0.13.8",
"log 0.4.11",
"prometheus",
"tokio 0.2.22",
@@ -8253,7 +8338,7 @@ dependencies = [
[[package]]
name = "substrate-test-client"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"futures 0.1.29",
"futures 0.3.5",
@@ -8279,7 +8364,7 @@ dependencies = [
[[package]]
name = "substrate-test-runtime"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"cfg-if",
"frame-executive",
@@ -8319,7 +8404,7 @@ dependencies = [
[[package]]
name = "substrate-test-runtime-client"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"futures 0.3.5",
"parity-scale-codec",
@@ -8340,7 +8425,7 @@ dependencies = [
[[package]]
name = "substrate-test-utils"
version = "2.0.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"futures 0.3.5",
"substrate-test-utils-derive",
@@ -8350,17 +8435,17 @@ dependencies = [
[[package]]
name = "substrate-test-utils-derive"
version = "0.8.0-rc5"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
dependencies = [
"proc-macro-crate",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "substrate-wasm-builder-runner"
version = "1.0.6"
-source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#316852b8217c2a542a6464cabfc71e3fdd21a7a9"
+source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#83544d41abcc0e3d3cbbd6aa510e04dc50863e5c"
[[package]]
name = "substrate-wasm-builder-runner"
@@ -8429,11 +8514,11 @@ dependencies = [
[[package]]
name = "syn"
-version = "1.0.40"
+version = "1.0.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "963f7d3cc59b59b9325165add223142bbf1df27655d07789f109896d353d8350"
+checksum = "9c51d92969d209b54a98397e1b91c8ae82d8c87a7bb87df0b29aa2ad81454228"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
"unicode-xid 0.2.1",
]
@@ -8453,9 +8538,9 @@ version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
"unicode-xid 0.2.1",
]
@@ -8544,9 +8629,9 @@ version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -8737,9 +8822,9 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
@@ -8923,12 +9008,13 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
[[package]]
name = "tracing"
-version = "0.1.19"
+version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c"
+checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27"
dependencies = [
"cfg-if",
"log 0.4.11",
+ "pin-project-lite",
"tracing-attributes",
"tracing-core",
]
@@ -8939,16 +9025,16 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
]
[[package]]
name = "tracing-core"
-version = "0.1.16"
+version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bcf46c1f1f06aeea2d6b81f3c863d0930a596c86ad1920d4e5bad6dd1d7119a"
+checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"
dependencies = [
"lazy_static",
]
@@ -9144,9 +9230,9 @@ checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
[[package]]
name = "vec-arena"
-version = "0.5.2"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cb18268690309760d59ee1a9b21132c126ba384f374c59a94db4bc03adeb561"
+checksum = "eafc1b9b2dfc6f5529177b62cf806484db55b32dc7c9658a118e11bbeb33061d"
[[package]]
name = "vec_map"
@@ -9256,9 +9342,9 @@ dependencies = [
"bumpalo",
"lazy_static",
"log 0.4.11",
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
"wasm-bindgen-shared",
]
@@ -9290,9 +9376,9 @@ version = "0.2.68"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f249f06ef7ee334cc3b8ff031bfc11ec99d00f34d86da7498396dc1e3b1498fe"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -9541,9 +9627,9 @@ dependencies = [
[[package]]
name = "wepoll-sys-stjepang"
-version = "1.0.6"
+version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fd319e971980166b53e17b1026812ad66c6b54063be879eb182342b55284694"
+checksum = "1fdfbb03f290ca0b27922e8d48a0997b4ceea12df33269b9f75e713311eb178d"
dependencies = [
"cc",
]
@@ -9551,7 +9637,7 @@ dependencies = [
[[package]]
name = "westend-runtime"
version = "0.8.22"
-source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#26f1fa47f7836ab4bee5d4aad127ebce748320dd"
+source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#9d2324b24a8e616b67a96b862e048e75b0ec211b"
dependencies = [
"bitvec",
"frame-executive",
@@ -9724,22 +9810,22 @@ dependencies = [
[[package]]
name = "zeroize"
-version = "1.1.0"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cbac2ed2ba24cc90f5e06485ac8c7c1e5449fe8911aef4d8877218af021a5b8"
+checksum = "05f33972566adbd2d3588b0491eb94b98b43695c4ef897903470ede4f3f5a28a"
dependencies = [
"zeroize_derive",
]
[[package]]
name = "zeroize_derive"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de251eec69fc7c1bc3923403d18ececb929380e016afe103da75f396704f8ca2"
+checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16"
dependencies = [
- "proc-macro2 1.0.21",
+ "proc-macro2 1.0.23",
"quote 1.0.7",
- "syn 1.0.40",
+ "syn 1.0.42",
"synstructure",
]
diff --git a/cumulus/Cargo.toml b/cumulus/Cargo.toml
index 9c26bef75f..031e9d6ab0 100644
--- a/cumulus/Cargo.toml
+++ b/cumulus/Cargo.toml
@@ -15,6 +15,7 @@ members = [
"service",
"test/runtime",
"test/client",
+ "test/service",
"upward-message",
]
diff --git a/cumulus/parachain-upgrade/src/lib.rs b/cumulus/parachain-upgrade/src/lib.rs
index 06a9ba3025..dd11518ef7 100644
--- a/cumulus/parachain-upgrade/src/lib.rs
+++ b/cumulus/parachain-upgrade/src/lib.rs
@@ -96,7 +96,7 @@ decl_module! {
/// Set the current validation function parameters
///
/// This should be invoked exactly once per block. It will panic at the finalization
- /// phease if the call was not invoked.
+ /// phase if the call was not invoked.
///
/// The dispatch origin for this call must be `Inherent`
///
diff --git a/cumulus/primitives/Cargo.toml b/cumulus/primitives/Cargo.toml
index 6d6866db3b..3e8b38fe5a 100644
--- a/cumulus/primitives/Cargo.toml
+++ b/cumulus/primitives/Cargo.toml
@@ -6,6 +6,7 @@ edition = "2018"
[dependencies]
# Substrate dependencies
+sc-service = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", optional = true }
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
sp-std = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
@@ -24,6 +25,7 @@ polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", bra
[features]
default = [ "std" ]
std = [
+ "sc-service",
"sp-std/std",
"codec/std",
"polkadot-primitives/std",
diff --git a/cumulus/primitives/src/genesis.rs b/cumulus/primitives/src/genesis.rs
new file mode 100644
index 0000000000..68f3c856c6
--- /dev/null
+++ b/cumulus/primitives/src/genesis.rs
@@ -0,0 +1,50 @@
+// Copyright 2020 Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+use codec::Encode;
+use sc_service::ChainSpec;
+use sp_runtime::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, Zero};
+
+/// Generate the genesis state for a given ChainSpec.
+pub fn generate_genesis_block(
+ chain_spec: &Box,
+) -> Result {
+ let storage = chain_spec.build_storage()?;
+
+ let child_roots = storage.children_default.iter().map(|(sk, child_content)| {
+ let state_root = <<::Header as HeaderT>::Hashing as HashT>::trie_root(
+ child_content.data.clone().into_iter().collect(),
+ );
+ (sk.clone(), state_root.encode())
+ });
+ let state_root = <<::Header as HeaderT>::Hashing as HashT>::trie_root(
+ storage.top.clone().into_iter().chain(child_roots).collect(),
+ );
+
+ let extrinsics_root =
+ <<::Header as HeaderT>::Hashing as HashT>::trie_root(Vec::new());
+
+ Ok(Block::new(
+ <::Header as HeaderT>::new(
+ Zero::zero(),
+ extrinsics_root,
+ state_root,
+ Default::default(),
+ Default::default(),
+ ),
+ Default::default(),
+ ))
+}
diff --git a/cumulus/primitives/src/lib.rs b/cumulus/primitives/src/lib.rs
index f6b724e012..edd9f989c4 100644
--- a/cumulus/primitives/src/lib.rs
+++ b/cumulus/primitives/src/lib.rs
@@ -29,6 +29,8 @@ pub use polkadot_parachain::primitives::{
Id as ParaId, ParachainDispatchOrigin as UpwardMessageOrigin,
};
+#[cfg(feature = "std")]
+pub mod genesis;
pub mod validation_function_params;
pub mod xcmp;
diff --git a/cumulus/rococo-parachains/Cargo.toml b/cumulus/rococo-parachains/Cargo.toml
index 8133d5444f..2c19020e3c 100644
--- a/cumulus/rococo-parachains/Cargo.toml
+++ b/cumulus/rococo-parachains/Cargo.toml
@@ -41,7 +41,6 @@ sc-executor = { git = "https://github.com/paritytech/substrate", branch = "rococ
sc-service = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
-sc-network = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", version = "0.8.0-rc5" }
sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
@@ -70,7 +69,6 @@ polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch =
polkadot-collator = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
-polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
[build-dependencies]
@@ -79,17 +77,3 @@ substrate-build-script-utils = { git = "https://github.com/paritytech/substrate"
[dev-dependencies]
assert_cmd = "0.12"
nix = "0.17"
-rand = "0.7.3"
-tokio = { version = "0.2.21", features = ["macros"] }
-
-# Polkadot dependencies
-polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
-polkadot-test-runtime = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
-polkadot-test-runtime-client = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
-polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
-
-# Substrate dependencies
-pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
-substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
-substrate-test-runtime-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
-substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
diff --git a/cumulus/rococo-parachains/src/command.rs b/cumulus/rococo-parachains/src/command.rs
index d374c1b0b4..ea5d293668 100644
--- a/cumulus/rococo-parachains/src/command.rs
+++ b/cumulus/rococo-parachains/src/command.rs
@@ -19,7 +19,7 @@ use crate::{
cli::{Cli, RelayChainCli, Subcommand},
};
use codec::Encode;
-use cumulus_primitives::ParaId;
+use cumulus_primitives::{genesis::generate_genesis_block, ParaId};
use log::info;
use parachain_runtime::Block;
use polkadot_parachain::primitives::AccountIdConversion;
@@ -29,7 +29,7 @@ use sc_cli::{
};
use sc_service::config::{BasePath, PrometheusConfig};
use sp_core::hexdisplay::HexDisplay;
-use sp_runtime::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, Zero};
+use sp_runtime::traits::Block as BlockT;
use std::{io::Write, net::SocketAddr, sync::Arc};
fn load_spec(
@@ -134,34 +134,6 @@ impl SubstrateCli for RelayChainCli {
}
}
-pub fn generate_genesis_state(chain_spec: &Box) -> Result {
- let storage = chain_spec.build_storage()?;
-
- let child_roots = storage.children_default.iter().map(|(sk, child_content)| {
- let state_root = <<::Header as HeaderT>::Hashing as HashT>::trie_root(
- child_content.data.clone().into_iter().collect(),
- );
- (sk.clone(), state_root.encode())
- });
- let state_root = <<::Header as HeaderT>::Hashing as HashT>::trie_root(
- storage.top.clone().into_iter().chain(child_roots).collect(),
- );
-
- let extrinsics_root =
- <<::Header as HeaderT>::Hashing as HashT>::trie_root(Vec::new());
-
- Ok(Block::new(
- <::Header as HeaderT>::new(
- Zero::zero(),
- extrinsics_root,
- state_root,
- Default::default(),
- Default::default(),
- ),
- Default::default(),
- ))
-}
-
fn extract_genesis_wasm(chain_spec: &Box) -> Result> {
let mut storage = chain_spec.build_storage()?;
@@ -216,7 +188,7 @@ pub fn run() -> Result<()> {
Some(Subcommand::ExportGenesisState(params)) => {
sc_cli::init_logger("");
- let block = generate_genesis_state(&load_spec(
+ let block: Block = generate_genesis_block(&load_spec(
¶ms.chain.clone().unwrap_or_default(),
params.parachain_id.into(),
)?)?;
@@ -268,8 +240,8 @@ pub fn run() -> Result<()> {
let parachain_account =
AccountIdConversion::::into_account(&id);
- let block =
- generate_genesis_state(&config.chain_spec).map_err(|e| format!("{:?}", e))?;
+ let block: Block =
+ generate_genesis_block(&config.chain_spec).map_err(|e| format!("{:?}", e))?;
let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode()));
let task_executor = config.task_executor.clone();
@@ -293,7 +265,6 @@ pub fn run() -> Result<()> {
polkadot_config,
id,
collator,
- false,
)
} else {
crate::service::start_node(
@@ -302,7 +273,6 @@ pub fn run() -> Result<()> {
polkadot_config,
id,
collator,
- false,
)
.map(|r| r.0)
}
diff --git a/cumulus/rococo-parachains/src/integration_test.rs b/cumulus/rococo-parachains/src/integration_test.rs
deleted file mode 100644
index 9b44f36df3..0000000000
--- a/cumulus/rococo-parachains/src/integration_test.rs
+++ /dev/null
@@ -1,215 +0,0 @@
-// Copyright 2020 Parity Technologies (UK) Ltd.
-// This file is part of Substrate.
-
-// Substrate is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Substrate is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Substrate. If not, see .
-
-use codec::Encode;
-use futures::future;
-use polkadot_primitives::v0::{Id as ParaId, Info, Scheduling};
-use polkadot_runtime_common::registrar;
-use polkadot_test_runtime_client::Sr25519Keyring;
-use sc_chain_spec::ChainSpec;
-use sc_client_api::execution_extensions::ExecutionStrategies;
-use sc_informant::OutputFormat;
-use sc_network::{config::TransportConfig, multiaddr};
-use sc_service::{
- config::{
- DatabaseConfig, KeystoreConfig, MultiaddrWithPeerId, NetworkConfiguration,
- OffchainWorkerConfig, PruningMode, WasmExecutionMethod,
- },
- BasePath, Configuration, Error as ServiceError, Role, TaskExecutor,
-};
-use sp_api::BlockT;
-use std::sync::Arc;
-use substrate_test_client::BlockchainEventsExt;
-use substrate_test_runtime_client::AccountKeyring::*;
-
-#[substrate_test_utils::test]
-#[ignore]
-async fn integration_test(task_executor: TaskExecutor) {
- let para_id = ParaId::from(100);
-
- // generate parachain spec
- let spec = Box::new(crate::chain_spec::get_chain_spec(para_id));
-
- // start alice
- let alice = polkadot_test_service::run_test_node(task_executor.clone(), Alice, || {}, vec![]);
-
- // start bob
- let bob = polkadot_test_service::run_test_node(
- task_executor.clone(),
- Bob,
- || {},
- vec![alice.addr.clone()],
- );
-
- // ensure alice and bob can produce blocks
- future::join(alice.wait_for_blocks(2), bob.wait_for_blocks(2)).await;
-
- // export genesis state
- let block = crate::command::generate_genesis_state(&(spec.clone() as Box<_>)).unwrap();
- let genesis_state = block.header().encode();
-
- // create and sign transaction to register parachain
- let function = polkadot_test_runtime::Call::Sudo(pallet_sudo::Call::sudo(Box::new(
- polkadot_test_runtime::Call::Registrar(registrar::Call::register_para(
- para_id,
- Info {
- scheduling: Scheduling::Always,
- },
- parachain_runtime::WASM_BINARY
- .expect("You need to build the WASM binary to run this test!")
- .to_vec()
- .into(),
- genesis_state.into(),
- )),
- )));
-
- // register parachain
- let _ = alice.call_function(function, Alice).await.unwrap();
-
- // run cumulus charlie (a validator)
- let key = Arc::new(sp_core::Pair::generate().0);
- let polkadot_config = polkadot_test_service::node_config(
- || {},
- task_executor.clone(),
- Charlie,
- vec![alice.addr.clone(), bob.addr.clone()],
- );
- let charlie_config =
- parachain_config(task_executor.clone(), Charlie, vec![], spec.clone()).unwrap();
- let multiaddr = charlie_config.network.listen_addresses[0].clone();
- let (charlie_task_manager, charlie_client, charlie_network) =
- crate::service::start_node(charlie_config, key, polkadot_config, para_id, true, true)
- .unwrap();
- charlie_client.wait_for_blocks(4).await;
- let peer_id = charlie_network.local_peer_id().clone();
- let charlie_addr = MultiaddrWithPeerId { multiaddr, peer_id };
-
- // run cumulus dave (not a validator)
- //
- // a collator running in non-validator mode should be able to sync blocks from the tip of the
- // parachain
- let key = Arc::new(sp_core::Pair::generate().0);
- let polkadot_config = polkadot_test_service::node_config(
- || {},
- task_executor.clone(),
- Dave,
- vec![alice.addr.clone(), bob.addr.clone()],
- );
- let dave_config = parachain_config(
- task_executor.clone(),
- Dave,
- vec![charlie_addr],
- spec.clone(),
- )
- .unwrap();
- let (dave_task_manager, dave_client, _dave_network) =
- crate::service::start_node(dave_config, key, polkadot_config, para_id, false, true)
- .unwrap();
- dave_client.wait_for_blocks(4).await;
-
- alice.task_manager.clean_shutdown();
- bob.task_manager.clean_shutdown();
- charlie_task_manager.clean_shutdown();
- dave_task_manager.clean_shutdown();
-}
-
-pub fn parachain_config(
- task_executor: TaskExecutor,
- key: Sr25519Keyring,
- boot_nodes: Vec,
- spec: Box,
-) -> Result {
- let base_path = BasePath::new_temp_dir()?;
- let root = base_path.path().to_path_buf();
- let role = Role::Authority {
- sentry_nodes: Vec::new(),
- };
- let key_seed = key.to_seed();
-
- let mut network_config = NetworkConfiguration::new(
- format!("Cumulus Test Node for: {}", key_seed),
- "network/test/0.1",
- Default::default(),
- None,
- );
- let informant_output_format = OutputFormat {
- enable_color: false,
- prefix: format!("[{}] ", key_seed),
- };
-
- network_config.boot_nodes = boot_nodes;
-
- network_config.allow_non_globals_in_dht = false;
-
- network_config
- .listen_addresses
- .push(multiaddr::Protocol::Memory(rand::random()).into());
-
- network_config.transport = TransportConfig::MemoryOnly;
-
- Ok(Configuration {
- impl_name: "cumulus-test-node".to_string(),
- impl_version: "0.1".to_string(),
- role,
- task_executor,
- transaction_pool: Default::default(),
- network: network_config,
- keystore: KeystoreConfig::Path {
- path: root.join("key"),
- password: None,
- },
- database: DatabaseConfig::RocksDb {
- path: root.join("db"),
- cache_size: 128,
- },
- state_cache_size: 67108864,
- state_cache_child_ratio: None,
- pruning: PruningMode::ArchiveAll,
- chain_spec: spec,
- wasm_method: WasmExecutionMethod::Interpreted,
- // NOTE: we enforce the use of the native runtime to make the errors more debuggable
- execution_strategies: ExecutionStrategies {
- syncing: sc_client_api::ExecutionStrategy::NativeWhenPossible,
- importing: sc_client_api::ExecutionStrategy::NativeWhenPossible,
- block_construction: sc_client_api::ExecutionStrategy::NativeWhenPossible,
- offchain_worker: sc_client_api::ExecutionStrategy::NativeWhenPossible,
- other: sc_client_api::ExecutionStrategy::NativeWhenPossible,
- },
- rpc_http: None,
- rpc_ws: None,
- rpc_ipc: None,
- rpc_ws_max_connections: None,
- rpc_cors: None,
- rpc_methods: Default::default(),
- prometheus_config: None,
- telemetry_endpoints: None,
- telemetry_external_transport: None,
- default_heap_pages: None,
- offchain_worker: OffchainWorkerConfig {
- enabled: true,
- indexing_enabled: false,
- },
- force_authoring: false,
- disable_grandpa: false,
- dev_key_seed: Some(key_seed),
- tracing_targets: None,
- tracing_receiver: Default::default(),
- max_runtime_instances: 8,
- announce_block: true,
- base_path: Some(base_path),
- informant_output_format,
- })
-}
diff --git a/cumulus/rococo-parachains/src/main.rs b/cumulus/rococo-parachains/src/main.rs
index d786b6f3cf..be7e27dcd3 100644
--- a/cumulus/rococo-parachains/src/main.rs
+++ b/cumulus/rococo-parachains/src/main.rs
@@ -24,8 +24,6 @@ mod chain_spec;
mod service;
mod cli;
mod command;
-#[cfg(test)]
-mod integration_test;
fn main() -> sc_cli::Result<()> {
command::run()
diff --git a/cumulus/rococo-parachains/src/service.rs b/cumulus/rococo-parachains/src/service.rs
index 6c57472d70..3fc8fa43ce 100644
--- a/cumulus/rococo-parachains/src/service.rs
+++ b/cumulus/rococo-parachains/src/service.rs
@@ -15,24 +15,18 @@
// along with Cumulus. If not, see .
use ansi_term::Color;
-use cumulus_collator::CollatorBuilder;
use cumulus_network::DelayedBlockAnnounceValidator;
use cumulus_service::{
prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams,
};
use polkadot_primitives::v0::CollatorPair;
use rococo_parachain_primitives::Block;
-use sc_client_api::{Backend as BackendT, BlockBackend, Finalizer, UsageProvider};
use sc_executor::native_executor_instance;
pub use sc_executor::NativeExecutor;
use sc_informant::OutputFormat;
-use sc_network::NetworkService;
use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager};
use sp_api::ConstructRuntimeApi;
-use sp_blockchain::HeaderBackend;
-use sp_consensus::{BlockImport, Environment, Error as ConsensusError, Proposer};
-use sp_core::{crypto::Pair, H256};
-use sp_runtime::traits::{BlakeTwo256, Block as BlockT};
+use sp_runtime::traits::BlakeTwo256;
use sp_trie::PrefixedMemoryDB;
use std::sync::Arc;
@@ -122,91 +116,6 @@ where
Ok(params)
}
-/// Start a test collator node for a parachain.
-///
-/// A collator is similar to a validator in a normal blockchain.
-/// It is responsible for producing blocks and sending the blocks to a
-/// parachain validator for validation and inclusion into the relay chain.
-pub fn start_test_collator<'a, Block, PF, BI, BS, Client, Backend>(
- StartCollatorParams {
- para_id,
- proposer_factory,
- inherent_data_providers,
- block_import,
- block_status,
- announce_block,
- client,
- block_announce_validator,
- task_manager,
- polkadot_config,
- collator_key,
- }: StartCollatorParams<'a, Block, PF, BI, BS, Client>,
-) -> sc_service::error::Result<()>
-where
- Block: BlockT,
- PF: Environment + Send + 'static,
- BI: BlockImport<
- Block,
- Error = ConsensusError,
- Transaction = >::Transaction,
- > + Send
- + Sync
- + 'static,
- BS: BlockBackend + Send + Sync + 'static,
- Client: Finalizer
- + UsageProvider
- + HeaderBackend
- + Send
- + Sync
- + BlockBackend
- + 'static,
- for<'b> &'b Client: BlockImport,
- Backend: BackendT + 'static,
-{
- let builder = CollatorBuilder::new(
- proposer_factory,
- inherent_data_providers,
- block_import,
- block_status,
- para_id,
- client,
- announce_block,
- block_announce_validator,
- );
-
- let (polkadot_future, polkadot_task_manager) = {
- let (task_manager, client, handles, _network, _rpc_handlers) =
- polkadot_test_service::polkadot_test_new_full(
- polkadot_config,
- Some((collator_key.public(), para_id)),
- None,
- false,
- 6000,
- )?;
-
- let test_client = polkadot_test_service::TestClient(client);
-
- let future = polkadot_collator::build_collator_service(
- task_manager.spawn_handle(),
- handles,
- test_client,
- para_id,
- collator_key,
- builder,
- )?;
-
- (future, task_manager)
- };
-
- task_manager
- .spawn_essential_handle()
- .spawn("polkadot", polkadot_future);
-
- task_manager.add_child(polkadot_task_manager);
-
- Ok(())
-}
-
/// Start a node with the given parachain `Configuration` and relay chain `Configuration`.
///
/// This is the actual implementation that is abstract over the executor and the runtime api.
@@ -217,12 +126,7 @@ fn start_node_impl(
id: polkadot_primitives::v0::Id,
validator: bool,
rpc_ext_builder: RB,
- test: bool,
-) -> sc_service::error::Result<(
- TaskManager,
- Arc>,
- Arc>,
-)>
+) -> sc_service::error::Result<(TaskManager, Arc>)>
where
RuntimeApi: ConstructRuntimeApi>
+ Send
@@ -339,11 +243,7 @@ where
collator_key,
};
- if test {
- start_test_collator(params)?;
- } else {
- start_collator(params)?;
- }
+ start_collator(params)?;
} else {
let params = StartFullNodeParams {
client: client.clone(),
@@ -360,7 +260,7 @@ where
start_network.start_network();
- Ok((task_manager, client, network))
+ Ok((task_manager, client))
}
/// Start a normal parachain node.
@@ -370,11 +270,9 @@ pub fn start_node(
polkadot_config: polkadot_collator::Configuration,
id: polkadot_primitives::v0::Id,
validator: bool,
- test: bool,
) -> sc_service::error::Result<(
TaskManager,
Arc>,
- Arc>,
)> {
start_node_impl::(
parachain_config,
@@ -383,7 +281,6 @@ pub fn start_node(
id,
validator,
|_| Default::default(),
- test,
)
}
@@ -394,7 +291,6 @@ pub fn start_contracts_node(
polkadot_config: polkadot_collator::Configuration,
id: polkadot_primitives::v0::Id,
validator: bool,
- test: bool,
) -> sc_service::error::Result {
start_node_impl::(
parachain_config,
@@ -409,7 +305,6 @@ pub fn start_contracts_node(
io.extend_with(ContractsApi::to_delegate(Contracts::new(client)));
io
},
- test,
)
.map(|r| r.0)
}
diff --git a/cumulus/runtime/Cargo.toml b/cumulus/runtime/Cargo.toml
index 3821fabc05..2490984ec6 100644
--- a/cumulus/runtime/Cargo.toml
+++ b/cumulus/runtime/Cargo.toml
@@ -7,30 +7,35 @@ edition = "2018"
[dependencies]
# Other dependencies
codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false, features = [ "derive" ] }
-memory-db = { version = "0.24.0", default-features = false }
hash-db = { version = "0.15.2", default-features = false }
+memory-db = { version = "0.24.0", default-features = false }
trie-db = { version = "0.22.0", default-features = false }
# Cumulus dependencies
cumulus-primitives = { path = "../primitives", default-features = false }
# Substrate dependencies
-sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
-sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
-frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
# Polkadot dependencies
parachain = { package = "polkadot-parachain", git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false, features = [ "wasm-api" ] }
[dev-dependencies]
+# Substrate dependencies
sc-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
-sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
-sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
sc-executor = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+
+# Cumulus dependencies
test-client = { package = "cumulus-test-client", path = "../test/client" }
[features]
diff --git a/cumulus/runtime/src/validate_block/tests.rs b/cumulus/runtime/src/validate_block/tests.rs
index 0f684ec82d..db939ddd11 100644
--- a/cumulus/runtime/src/validate_block/tests.rs
+++ b/cumulus/runtime/src/validate_block/tests.rs
@@ -25,14 +25,16 @@ use sp_blockchain::HeaderBackend;
use sp_consensus::SelectChain;
use sp_core::traits::CallInWasm;
use sp_io::TestExternalities;
-use sp_keyring::AccountKeyring;
+use sp_keyring::AccountKeyring::*;
use sp_runtime::{
generic::BlockId,
traits::{Block as BlockT, Header as HeaderT},
};
use test_client::{
- runtime::{Block, Hash, Header, Transfer, WASM_BINARY},
- Client, DefaultTestClientBuilderExt, LongestChain, TestClientBuilder, TestClientBuilderExt,
+ generate_block_inherents,
+ runtime::{Block, Hash, Header, UncheckedExtrinsic, WASM_BINARY},
+ transfer, Client, DefaultTestClientBuilderExt, LongestChain, TestClientBuilder,
+ TestClientBuilderExt,
};
use codec::{Decode, Encode};
@@ -74,53 +76,27 @@ fn call_validate_block(
.map_err(|err| err.into())
}
-fn create_extrinsics() -> Vec<::Extrinsic> {
- vec![
- Transfer {
- from: AccountKeyring::Alice.into(),
- to: AccountKeyring::Bob.into(),
- amount: 69,
- nonce: 0,
- }
- .into_signed_tx(),
- Transfer {
- from: AccountKeyring::Alice.into(),
- to: AccountKeyring::Charlie.into(),
- amount: 100,
- nonce: 1,
- }
- .into_signed_tx(),
- Transfer {
- from: AccountKeyring::Bob.into(),
- to: AccountKeyring::Charlie.into(),
- amount: 100,
- nonce: 0,
- }
- .into_signed_tx(),
- Transfer {
- from: AccountKeyring::Charlie.into(),
- to: AccountKeyring::Alice.into(),
- amount: 500,
- nonce: 0,
- }
- .into_signed_tx(),
- ]
-}
-
fn create_test_client() -> (Client, LongestChain) {
- TestClientBuilder::new().build_with_longest_chain()
+ TestClientBuilder::new()
+ // NOTE: this allows easier debugging
+ .set_execution_strategy(sc_client_api::ExecutionStrategy::NativeWhenPossible)
+ .build_with_longest_chain()
}
fn build_block_with_proof(
client: &Client,
- extrinsics: Vec<::Extrinsic>,
+ extra_extrinsics: Vec,
) -> (Block, sp_trie::StorageProof) {
let block_id = BlockId::Hash(client.info().best_hash);
let mut builder = client
.new_block_at(&block_id, Default::default(), true)
.expect("Initializes new block");
- extrinsics
+ generate_block_inherents(client)
+ .into_iter()
+ .for_each(|e| builder.push(e).expect("Pushes an inherent"));
+
+ extra_extrinsics
.into_iter()
.for_each(|e| builder.push(e).expect("Pushes an extrinsic"));
@@ -135,10 +111,10 @@ fn build_block_with_proof(
}
#[test]
-fn validate_block_with_no_extrinsics() {
+fn validate_block_no_extra_extrinsics() {
let (client, longest_chain) = create_test_client();
let parent_head = longest_chain.best_chain().expect("Best block exists");
- let (block, witness_data) = build_block_with_proof(&client, Vec::new());
+ let (block, witness_data) = build_block_with_proof(&client, vec![]);
let (header, extrinsics) = block.deconstruct();
let block_data = ParachainBlockData::new(header.clone(), extrinsics, witness_data);
@@ -148,10 +124,16 @@ fn validate_block_with_no_extrinsics() {
}
#[test]
-fn validate_block_with_extrinsics() {
+fn validate_block_with_extra_extrinsics() {
let (client, longest_chain) = create_test_client();
let parent_head = longest_chain.best_chain().expect("Best block exists");
- let (block, witness_data) = build_block_with_proof(&client, create_extrinsics());
+ let extra_extrinsics = vec![
+ transfer(&client, Alice, Bob, 69),
+ transfer(&client, Bob, Charlie, 100),
+ transfer(&client, Charlie, Alice, 500),
+ ];
+
+ let (block, witness_data) = build_block_with_proof(&client, extra_extrinsics);
let (header, extrinsics) = block.deconstruct();
let block_data = ParachainBlockData::new(header.clone(), extrinsics, witness_data);
@@ -161,11 +143,11 @@ fn validate_block_with_extrinsics() {
}
#[test]
-#[should_panic]
+#[should_panic(expected = "Calls `validate_block`: Other(\"Trap: Trap { kind: Unreachable }\")")]
fn validate_block_invalid_parent_hash() {
let (client, longest_chain) = create_test_client();
let parent_head = longest_chain.best_chain().expect("Best block exists");
- let (block, witness_data) = build_block_with_proof(&client, Vec::new());
+ let (block, witness_data) = build_block_with_proof(&client, vec![]);
let (mut header, extrinsics) = block.deconstruct();
header.set_parent_hash(Hash::from_low_u64_be(1));
diff --git a/cumulus/test/client/Cargo.toml b/cumulus/test/client/Cargo.toml
index c0b11cf1d3..a57aaf6f0c 100644
--- a/cumulus/test/client/Cargo.toml
+++ b/cumulus/test/client/Cargo.toml
@@ -8,9 +8,22 @@ edition = "2018"
sc-service = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
test-client = { package = "substrate-test-client", git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
-runtime = { package = "cumulus-test-runtime", path = "../runtime" }
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
codec = { package = "parity-scale-codec", version = "1.0.5", default-features = false, features = [ "derive" ] }
sp-test-primitives = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+
+# Cumulus dependencies
+cumulus-test-service = { path = "../service" }
+cumulus-primitives = { path = "../../primitives" }
+runtime = { package = "cumulus-test-runtime", path = "../runtime" }
diff --git a/cumulus/test/client/src/block_builder.rs b/cumulus/test/client/src/block_builder.rs
new file mode 100644
index 0000000000..09d50e2ce9
--- /dev/null
+++ b/cumulus/test/client/src/block_builder.rs
@@ -0,0 +1,57 @@
+// Copyright 2020 Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+use crate::Client;
+use cumulus_primitives::{
+ inherents::VALIDATION_FUNCTION_PARAMS_IDENTIFIER,
+ validation_function_params::ValidationFunctionParams,
+};
+use runtime::GetLastTimestamp;
+use sc_block_builder::BlockBuilderApi;
+use sp_api::ProvideRuntimeApi;
+use sp_blockchain::HeaderBackend;
+use sp_core::ExecutionContext;
+use sp_runtime::generic::BlockId;
+
+/// Generate the inherents to a block so you don't have to.
+pub fn generate_block_inherents(client: &Client) -> Vec {
+ let mut inherent_data = sp_consensus::InherentData::new();
+ let block_id = BlockId::Hash(client.info().best_hash);
+ let last_timestamp = client
+ .runtime_api()
+ .get_last_timestamp(&block_id)
+ .expect("Get last timestamp");
+ let timestamp = last_timestamp + runtime::MinimumPeriod::get();
+
+ inherent_data
+ .put_data(sp_timestamp::INHERENT_IDENTIFIER, ×tamp)
+ .expect("Put timestamp failed");
+ inherent_data
+ .put_data(
+ VALIDATION_FUNCTION_PARAMS_IDENTIFIER,
+ &ValidationFunctionParams::default(),
+ )
+ .expect("Put validation function params failed");
+
+ client
+ .runtime_api()
+ .inherent_extrinsics_with_context(
+ &BlockId::number(0),
+ ExecutionContext::BlockConstruction,
+ inherent_data,
+ )
+ .expect("Get inherents failed")
+}
diff --git a/cumulus/test/client/src/lib.rs b/cumulus/test/client/src/lib.rs
index 700886ba70..9f22b3a6df 100644
--- a/cumulus/test/client/src/lib.rs
+++ b/cumulus/test/client/src/lib.rs
@@ -16,15 +16,25 @@
//! A Cumulus test client.
+mod block_builder;
+
+pub use block_builder::*;
+
+use codec::Encode;
pub use runtime;
use runtime::{
- genesismap::{additional_storage_with_genesis, GenesisConfig},
- Block,
+ Balance, Block, BlockHashCount, Call, GenesisConfig, Runtime, Signature, SignedExtra,
+ SignedPayload, UncheckedExtrinsic, VERSION,
};
use sc_service::client;
-use sp_core::{sr25519, storage::Storage, ChangesTrieConfiguration};
-use sp_keyring::{AccountKeyring, Sr25519Keyring};
-use sp_runtime::traits::{Block as BlockT, Hash as HashT, Header as HeaderT};
+use sp_blockchain::HeaderBackend;
+use sp_core::{map, storage::Storage, twox_128, ChangesTrieConfiguration};
+use sp_runtime::{
+ generic::Era,
+ traits::{Block as BlockT, Hash as HashT, Header as HeaderT},
+ BuildStorage, SaturatedConversion,
+};
+use std::collections::BTreeMap;
pub use test_client::*;
mod local_executor {
@@ -63,14 +73,12 @@ pub struct GenesisParameters {
impl test_client::GenesisInit for GenesisParameters {
fn genesis_storage(&self) -> Storage {
- use codec::Encode;
-
let changes_trie_config: Option = if self.support_changes_trie {
Some(sp_test_primitives::changes_trie_config())
} else {
None
};
- let mut storage = genesis_config(changes_trie_config).genesis_map();
+ let mut storage = genesis_config(changes_trie_config).build_storage().unwrap();
let child_roots = storage.children_default.iter().map(|(sk, child_content)| {
let state_root =
@@ -128,20 +136,68 @@ impl DefaultTestClientBuilderExt for TestClientBuilder {
}
fn genesis_config(changes_trie_config: Option) -> GenesisConfig {
- GenesisConfig::new(
- changes_trie_config,
- vec![
- sr25519::Public::from(Sr25519Keyring::Alice).into(),
- sr25519::Public::from(Sr25519Keyring::Bob).into(),
- sr25519::Public::from(Sr25519Keyring::Charlie).into(),
- ],
- vec![
- AccountKeyring::Alice.into(),
- AccountKeyring::Bob.into(),
- AccountKeyring::Charlie.into(),
- ],
- 1000,
- Default::default(),
- Default::default(),
+ cumulus_test_service::local_testnet_genesis(changes_trie_config)
+}
+
+fn additional_storage_with_genesis(genesis_block: &Block) -> BTreeMap, Vec> {
+ map![
+ twox_128(&b"latest"[..]).to_vec() => genesis_block.hash().as_fixed_bytes().to_vec()
+ ]
+}
+
+/// Generate an extrinsic from the provided function call, origin and [`Client`].
+pub fn generate_extrinsic(
+ client: &Client,
+ origin: sp_keyring::AccountKeyring,
+ function: Call,
+) -> UncheckedExtrinsic {
+ let current_block_hash = client.info().best_hash;
+ let current_block = client.info().best_number.saturated_into();
+ let genesis_block = client.hash(0).unwrap().unwrap();
+ let nonce = 0;
+ let period = BlockHashCount::get()
+ .checked_next_power_of_two()
+ .map(|c| c / 2)
+ .unwrap_or(2) as u64;
+ let tip = 0;
+ let extra: SignedExtra = (
+ frame_system::CheckSpecVersion::::new(),
+ frame_system::CheckGenesis::::new(),
+ frame_system::CheckEra::::from(Era::mortal(period, current_block)),
+ frame_system::CheckNonce::::from(nonce),
+ frame_system::CheckWeight::::new(),
+ pallet_transaction_payment::ChargeTransactionPayment::::from(tip),
+ );
+ let raw_payload = SignedPayload::from_raw(
+ function.clone(),
+ extra.clone(),
+ (
+ VERSION.spec_version,
+ genesis_block,
+ current_block_hash,
+ (),
+ (),
+ (),
+ ),
+ );
+ let signature = raw_payload.using_encoded(|e| origin.sign(e));
+
+ UncheckedExtrinsic::new_signed(
+ function.clone(),
+ origin.public().into(),
+ Signature::Sr25519(signature.clone()),
+ extra.clone(),
)
}
+
+/// Transfer some token from one account to another using a provided test [`Client`].
+pub fn transfer(
+ client: &Client,
+ origin: sp_keyring::AccountKeyring,
+ dest: sp_keyring::AccountKeyring,
+ value: Balance,
+) -> UncheckedExtrinsic {
+ let function = Call::Balances(pallet_balances::Call::transfer(dest.public().into(), value));
+
+ generate_extrinsic(client, origin, function)
+}
diff --git a/cumulus/test/runtime/Cargo.toml b/cumulus/test/runtime/Cargo.toml
index 942fd5f697..08ac1fa1f8 100644
--- a/cumulus/test/runtime/Cargo.toml
+++ b/cumulus/test/runtime/Cargo.toml
@@ -3,18 +3,74 @@ name = "cumulus-test-runtime"
version = "0.1.0"
authors = ["Parity Technologies "]
edition = "2018"
-build = "build.rs"
[dependencies]
-runtime = { package = "cumulus-runtime", path = "../../runtime", default-features = false }
-substrate-test-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch", version = "2.0.0-rc5" }
+codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false, features = ["derive"] }
+serde = { version = "1.0.101", optional = true, features = ["derive"] }
+
+# Substrate dependencies
+frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+
+# Cumulus dependencies
+cumulus-parachain-upgrade = { path = "../../parachain-upgrade", default-features = false }
+cumulus-primitives = { path = "../../primitives", default-features = false }
+cumulus-runtime = { path = "../../runtime", default-features = false }
+cumulus-upward-message = { path = "../../upward-message", default-features = false }
+
+# Polkadot dependencies
+polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
[build-dependencies]
-wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = " 1.0.6" }
+wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = "1.0.6" }
[features]
-default = ["std"]
+default = [ "std" ]
std = [
- "runtime/std",
- "substrate-test-runtime/std",
+ "codec/std",
+ "cumulus-parachain-upgrade/std",
+ "cumulus-primitives/std",
+ "cumulus-runtime/std",
+ "cumulus-upward-message/std",
+ "frame-executive/std",
+ "frame-support/std",
+ "frame-system/std",
+ "pallet-balances/std",
+ "pallet-randomness-collective-flip/std",
+ "pallet-sudo/std",
+ "pallet-timestamp/std",
+ "pallet-transaction-payment/std",
+ "serde",
+ "sp-api/std",
+ "sp-block-builder/std",
+ "sp-core/std",
+ "sp-inherents/std",
+ "sp-io/std",
+ "sp-offchain/std",
+ "sp-runtime/std",
+ "sp-session/std",
+ "sp-std/std",
+ "sp-transaction-pool/std",
+ "sp-version/std",
+]
+# Will be enabled by the `wasm-builder` when building the runtime for WASM.
+runtime-wasm = [
+ "cumulus-upward-message/runtime-wasm",
]
diff --git a/cumulus/test/runtime/build.rs b/cumulus/test/runtime/build.rs
index 5e8fb044e5..5fefb95548 100644
--- a/cumulus/test/runtime/build.rs
+++ b/cumulus/test/runtime/build.rs
@@ -1,5 +1,5 @@
// Copyright 2019 Parity Technologies (UK) Ltd.
-// This file is part of Substrate.
+// This file is part of Cumulus.
// Substrate is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
-// along with Substrate. If not, see .
+// along with Cumulus. If not, see .
use wasm_builder_runner::WasmBuilder;
diff --git a/cumulus/test/runtime/src/lib.rs b/cumulus/test/runtime/src/lib.rs
index ded5aec570..bb9c298213 100644
--- a/cumulus/test/runtime/src/lib.rs
+++ b/cumulus/test/runtime/src/lib.rs
@@ -1,12 +1,12 @@
// Copyright 2019 Parity Technologies (UK) Ltd.
-// This file is part of Substrate.
+// This file is part of Cumulus.
-// Substrate is free software: you can redistribute it and/or modify
+// Cumulus is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
-// Substrate is distributed in the hope that it will be useful,
+// Cumulus is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
@@ -14,14 +14,338 @@
// You should have received a copy of the GNU General Public License
// along with Cumulus. If not, see .
-//! A Cumulus test runtime.
-
#![cfg_attr(not(feature = "std"), no_std)]
+// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256.
+#![recursion_limit = "256"]
// Make the WASM binary available.
#[cfg(feature = "std")]
include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
-pub use substrate_test_runtime::*;
+use sp_api::{decl_runtime_apis, impl_runtime_apis};
+use sp_core::OpaqueMetadata;
+use sp_runtime::{
+ create_runtime_str, generic, impl_opaque_keys,
+ traits::{BlakeTwo256, Block as BlockT, IdentifyAccount, IdentityLookup, Saturating, Verify},
+ transaction_validity::{TransactionSource, TransactionValidity},
+ ApplyExtrinsicResult, MultiSignature,
+};
+use sp_std::prelude::*;
+#[cfg(feature = "std")]
+use sp_version::NativeVersion;
+use sp_version::RuntimeVersion;
-runtime::register_validate_block!(Block, system::BlockExecutor);
+// A few exports that help ease life for downstream crates.
+pub use frame_support::{
+ construct_runtime, parameter_types,
+ traits::Randomness,
+ weights::{constants::WEIGHT_PER_SECOND, IdentityFee, Weight},
+ StorageValue,
+};
+pub use pallet_balances::Call as BalancesCall;
+pub use pallet_timestamp::Call as TimestampCall;
+#[cfg(any(feature = "std", test))]
+pub use sp_runtime::BuildStorage;
+pub use sp_runtime::{Perbill, Permill};
+
+pub type SessionHandlers = ();
+
+impl_opaque_keys! {
+ pub struct SessionKeys {}
+}
+
+/// This runtime version.
+pub const VERSION: RuntimeVersion = RuntimeVersion {
+ spec_name: create_runtime_str!("cumulus-test-parachain"),
+ impl_name: create_runtime_str!("cumulus-test-parachain"),
+ authoring_version: 1,
+ spec_version: 3,
+ impl_version: 1,
+ apis: RUNTIME_API_VERSIONS,
+ transaction_version: 1,
+};
+
+pub const MILLISECS_PER_BLOCK: u64 = 1000;
+
+pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK;
+
+pub const EPOCH_DURATION_IN_BLOCKS: u32 = 10 * MINUTES;
+
+// These time units are defined in number of blocks.
+pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber);
+pub const HOURS: BlockNumber = MINUTES * 60;
+pub const DAYS: BlockNumber = HOURS * 24;
+
+// 1 in 4 blocks (on average, not counting collisions) will be primary babe blocks.
+pub const PRIMARY_PROBABILITY: (u64, u64) = (1, 4);
+
+/// The version information used to identify this runtime when compiled natively.
+#[cfg(feature = "std")]
+pub fn native_version() -> NativeVersion {
+ NativeVersion {
+ runtime_version: VERSION,
+ can_author_with: Default::default(),
+ }
+}
+
+parameter_types! {
+ pub const BlockHashCount: BlockNumber = 250;
+ pub const MaximumBlockWeight: Weight = 2 * WEIGHT_PER_SECOND;
+ /// Assume 10% of weight for average on_initialize calls.
+ pub MaximumExtrinsicWeight: Weight = AvailableBlockRatio::get()
+ .saturating_sub(Perbill::from_percent(10)) * MaximumBlockWeight::get();
+ pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);
+ pub const MaximumBlockLength: u32 = 5 * 1024 * 1024;
+ pub const Version: RuntimeVersion = VERSION;
+ pub const ExtrinsicBaseWeight: Weight = 10_000_000;
+}
+
+impl frame_system::Trait for Runtime {
+ /// The identifier used to distinguish between accounts.
+ type AccountId = AccountId;
+ /// The aggregated dispatch type that is available for extrinsics.
+ type Call = Call;
+ /// The lookup mechanism to get account ID from whatever is passed in dispatchers.
+ type Lookup = IdentityLookup;
+ /// The index type for storing how many extrinsics an account has signed.
+ type Index = Index;
+ /// The index type for blocks.
+ type BlockNumber = BlockNumber;
+ /// The type for hashing blocks and tries.
+ type Hash = Hash;
+ /// The hashing algorithm used.
+ type Hashing = BlakeTwo256;
+ /// The header type.
+ type Header = generic::Header;
+ /// The ubiquitous event type.
+ type Event = Event;
+ /// The ubiquitous origin type.
+ type Origin = Origin;
+ /// Maximum number of block number to block hash mappings to keep (oldest pruned first).
+ type BlockHashCount = BlockHashCount;
+ /// Maximum weight of each block. With a default weight system of 1byte == 1weight, 4mb is ok.
+ type MaximumBlockWeight = MaximumBlockWeight;
+ /// Maximum size of all encoded transactions (in bytes) that are allowed in one block.
+ type MaximumBlockLength = MaximumBlockLength;
+ /// Portion of the block weight that is available to all normal transactions.
+ type AvailableBlockRatio = AvailableBlockRatio;
+ /// Runtime version.
+ type Version = Version;
+ /// Converts a module to an index of this module in the runtime.
+ type ModuleToIndex = ModuleToIndex;
+ type AccountData = pallet_balances::AccountData;
+ type OnNewAccount = ();
+ type OnKilledAccount = ();
+ type DbWeight = ();
+ type ExtrinsicBaseWeight = ExtrinsicBaseWeight;
+ type BlockExecutionWeight = ();
+ type MaximumExtrinsicWeight = MaximumExtrinsicWeight;
+ type BaseCallFilter = ();
+ type SystemWeightInfo = ();
+}
+
+parameter_types! {
+ pub const MinimumPeriod: u64 = SLOT_DURATION / 2;
+}
+
+impl pallet_timestamp::Trait for Runtime {
+ /// A timestamp: milliseconds since the unix epoch.
+ type Moment = u64;
+ type OnTimestampSet = ();
+ type MinimumPeriod = MinimumPeriod;
+ type WeightInfo = ();
+}
+
+parameter_types! {
+ pub const ExistentialDeposit: u128 = 500;
+ pub const TransferFee: u128 = 0;
+ pub const CreationFee: u128 = 0;
+ pub const TransactionByteFee: u128 = 1;
+}
+
+impl pallet_balances::Trait for Runtime {
+ /// The type for recording an account's balance.
+ type Balance = Balance;
+ /// The ubiquitous event type.
+ type Event = Event;
+ type DustRemoval = ();
+ type ExistentialDeposit = ExistentialDeposit;
+ type AccountStore = System;
+ type WeightInfo = ();
+}
+
+impl pallet_transaction_payment::Trait for Runtime {
+ type Currency = Balances;
+ type OnTransactionPayment = ();
+ type TransactionByteFee = TransactionByteFee;
+ type WeightToFee = IdentityFee;
+ type FeeMultiplierUpdate = ();
+}
+
+impl pallet_sudo::Trait for Runtime {
+ type Call = Call;
+ type Event = Event;
+}
+
+impl cumulus_parachain_upgrade::Trait for Runtime {
+ type Event = Event;
+ type OnValidationFunctionParams = ();
+}
+
+parameter_types! {
+ pub storage ParachainId: cumulus_primitives::ParaId = 100.into();
+}
+
+construct_runtime! {
+ pub enum Runtime where
+ Block = Block,
+ NodeBlock = NodeBlock,
+ UncheckedExtrinsic = UncheckedExtrinsic,
+ {
+ System: frame_system::{Module, Call, Storage, Config, Event},
+ Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent},
+ Balances: pallet_balances::{Module, Call, Storage, Config, Event},
+ Sudo: pallet_sudo::{Module, Call, Storage, Config, Event},
+ RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage},
+ ParachainUpgrade: cumulus_parachain_upgrade::{Module, Call, Storage, Inherent, Event},
+ TransactionPayment: pallet_transaction_payment::{Module, Storage},
+ }
+}
+
+/// Index of a transaction in the chain.
+pub type Index = u32;
+/// A hash of some data used by the chain.
+pub type Hash = sp_core::H256;
+/// Balance of an account.
+pub type Balance = u128;
+/// Alias to 512-bit hash when used in the context of a transaction signature on the chain.
+pub type Signature = MultiSignature;
+/// An index to a block.
+pub type BlockNumber = u32;
+/// Some way of identifying an account on the chain. We intentionally make it equivalent
+/// to the public key of our transaction signing scheme.
+pub type AccountId = <::Signer as IdentifyAccount>::AccountId;
+/// Opaque block type.
+pub type NodeBlock = generic::Block;
+
+/// The address format for describing accounts.
+pub type Address = AccountId;
+/// Block header type as expected by this runtime.
+pub type Header = generic::Header;
+/// Block type as expected by this runtime.
+pub type Block = generic::Block;
+/// A Block signed with a Justification
+pub type SignedBlock = generic::SignedBlock;
+/// BlockId type as expected by this runtime.
+pub type BlockId = generic::BlockId;
+/// The SignedExtension to the basic transaction logic.
+pub type SignedExtra = (
+ frame_system::CheckSpecVersion,
+ frame_system::CheckGenesis,
+ frame_system::CheckEra,
+ frame_system::CheckNonce,
+ frame_system::CheckWeight,
+ pallet_transaction_payment::ChargeTransactionPayment,
+);
+/// Unchecked extrinsic type as expected by this runtime.
+pub type UncheckedExtrinsic = generic::UncheckedExtrinsic;
+/// Extrinsic type that has already been checked.
+pub type CheckedExtrinsic = generic::CheckedExtrinsic;
+/// Executive: handles dispatch to the various modules.
+pub type Executive = frame_executive::Executive<
+ Runtime,
+ Block,
+ frame_system::ChainContext,
+ Runtime,
+ AllModules,
+>;
+/// The payload being signed in transactions.
+pub type SignedPayload = generic::SignedPayload;
+
+decl_runtime_apis! {
+ pub trait GetLastTimestamp {
+ /// Returns the last timestamp of a runtime.
+ fn get_last_timestamp() -> u64;
+ }
+}
+
+impl_runtime_apis! {
+ impl sp_api::Core for Runtime {
+ fn version() -> RuntimeVersion {
+ VERSION
+ }
+
+ fn execute_block(block: Block) {
+ Executive::execute_block(block)
+ }
+
+ fn initialize_block(header: &::Header) {
+ Executive::initialize_block(header)
+ }
+ }
+
+ impl sp_api::Metadata for Runtime {
+ fn metadata() -> OpaqueMetadata {
+ Runtime::metadata().into()
+ }
+ }
+
+ impl sp_block_builder::BlockBuilder for Runtime {
+ fn apply_extrinsic(
+ extrinsic: ::Extrinsic,
+ ) -> ApplyExtrinsicResult {
+ Executive::apply_extrinsic(extrinsic)
+ }
+
+ fn finalize_block() -> ::Header {
+ Executive::finalize_block()
+ }
+
+ fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> {
+ data.create_extrinsics()
+ }
+
+ fn check_inherents(block: Block, data: sp_inherents::InherentData) -> sp_inherents::CheckInherentsResult {
+ data.check_extrinsics(&block)
+ }
+
+ fn random_seed() -> ::Hash {
+ RandomnessCollectiveFlip::random_seed()
+ }
+ }
+
+ impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime {
+ fn validate_transaction(
+ source: TransactionSource,
+ tx: ::Extrinsic,
+ ) -> TransactionValidity {
+ Executive::validate_transaction(source, tx)
+ }
+ }
+
+ impl sp_offchain::OffchainWorkerApi for Runtime {
+ fn offchain_worker(header: &::Header) {
+ Executive::offchain_worker(header)
+ }
+ }
+
+ impl sp_session::SessionKeys for Runtime {
+ fn decode_session_keys(
+ encoded: Vec,
+ ) -> Option, sp_core::crypto::KeyTypeId)>> {
+ SessionKeys::decode_into_raw_public_keys(&encoded)
+ }
+
+ fn generate_session_keys(seed: Option>) -> Vec {
+ SessionKeys::generate(seed)
+ }
+ }
+
+ impl crate::GetLastTimestamp for Runtime {
+ fn get_last_timestamp() -> u64 {
+ >::now()
+ }
+ }
+}
+
+cumulus_runtime::register_validate_block!(Block, Executive);
diff --git a/cumulus/test/service/Cargo.toml b/cumulus/test/service/Cargo.toml
new file mode 100644
index 0000000000..a6ae3913d3
--- /dev/null
+++ b/cumulus/test/service/Cargo.toml
@@ -0,0 +1,66 @@
+[package]
+name = 'cumulus-test-service'
+version = '0.1.0'
+authors = ["Parity Technologies "]
+edition = '2018'
+
+[dependencies]
+ansi_term = "0.12.1"
+codec = { package = 'parity-scale-codec', version = '1.0.0' }
+rand = "0.7.3"
+serde = { version = "1.0.101", features = ["derive"] }
+
+# Substrate
+sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", version = "0.8.0-rc5" }
+sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sc-executor = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sc-informant = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sc-network = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sc-service = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
+sp-session = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+sp-trie = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+
+# Polkadot
+polkadot-collator = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
+polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
+polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
+
+# Cumulus
+cumulus-collator = { path = "../../collator" }
+cumulus-consensus = { path = "../../consensus" }
+cumulus-network = { path = "../../network" }
+cumulus-primitives = { path = "../../primitives" }
+cumulus-service = { path = "../../service" }
+cumulus-test-runtime = { path = "../runtime" }
+
+# RPC related dependencies
+jsonrpc-core = "14.2.0"
+
+[dev-dependencies]
+futures = { version = "0.3.5" }
+tokio = { version = "0.2.21", features = ["macros"] }
+
+# Polkadot dependencies
+polkadot-test-runtime = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
+polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
+
+# Substrate dependencies
+pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+substrate-test-runtime-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
+substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
diff --git a/cumulus/test/service/src/chain_spec.rs b/cumulus/test/service/src/chain_spec.rs
new file mode 100644
index 0000000000..cdaa4b82dc
--- /dev/null
+++ b/cumulus/test/service/src/chain_spec.rs
@@ -0,0 +1,127 @@
+// Copyright 2020 Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+#![allow(missing_docs)]
+
+use cumulus_primitives::ParaId;
+use cumulus_test_runtime::{AccountId, Signature};
+use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};
+use sc_service::ChainType;
+use serde::{Deserialize, Serialize};
+use sp_core::{sr25519, ChangesTrieConfiguration, Pair, Public};
+use sp_runtime::traits::{IdentifyAccount, Verify};
+
+/// Specialized `ChainSpec` for the normal parachain runtime.
+pub type ChainSpec = sc_service::GenericChainSpec;
+
+/// Helper function to generate a crypto pair from seed
+pub fn get_from_seed(seed: &str) -> ::Public {
+ TPublic::Pair::from_string(&format!("//{}", seed), None)
+ .expect("static values are valid; qed")
+ .public()
+}
+
+/// The extensions for the [`ChainSpec`].
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)]
+#[serde(deny_unknown_fields)]
+pub struct Extensions {
+ /// The relay chain of the Parachain.
+ pub relay_chain: String,
+ /// The id of the Parachain.
+ pub para_id: u32,
+}
+
+impl Extensions {
+ /// Try to get the extension from the given `ChainSpec`.
+ pub fn try_get(chain_spec: &Box) -> Option<&Self> {
+ sc_chain_spec::get_extension(chain_spec.extensions())
+ }
+}
+
+type AccountPublic = ::Signer;
+
+/// Helper function to generate an account ID from seed.
+pub fn get_account_id_from_seed(seed: &str) -> AccountId
+where
+ AccountPublic: From<::Public>,
+{
+ AccountPublic::from(get_from_seed::(seed)).into_account()
+}
+
+/// Get the chain spec for a specific parachain ID.
+pub fn get_chain_spec(id: ParaId) -> ChainSpec {
+ ChainSpec::from_genesis(
+ "Local Testnet",
+ "local_testnet",
+ ChainType::Local,
+ move || local_testnet_genesis(None),
+ vec![],
+ None,
+ None,
+ None,
+ Extensions {
+ relay_chain: "westend-dev".into(),
+ para_id: id.into(),
+ },
+ )
+}
+
+/// Local testnet genesis for testing.
+pub fn local_testnet_genesis(
+ changes_trie_config: Option,
+) -> cumulus_test_runtime::GenesisConfig {
+ testnet_genesis(
+ get_account_id_from_seed::("Alice"),
+ vec![
+ get_account_id_from_seed::("Alice"),
+ get_account_id_from_seed::("Bob"),
+ get_account_id_from_seed::("Charlie"),
+ get_account_id_from_seed::("Dave"),
+ get_account_id_from_seed::("Eve"),
+ get_account_id_from_seed::("Ferdie"),
+ get_account_id_from_seed::("Alice//stash"),
+ get_account_id_from_seed::("Bob//stash"),
+ get_account_id_from_seed::("Charlie//stash"),
+ get_account_id_from_seed::("Dave//stash"),
+ get_account_id_from_seed::("Eve//stash"),
+ get_account_id_from_seed::("Ferdie//stash"),
+ ],
+ changes_trie_config,
+ )
+}
+
+fn testnet_genesis(
+ root_key: AccountId,
+ endowed_accounts: Vec,
+ changes_trie_config: Option,
+) -> cumulus_test_runtime::GenesisConfig {
+ cumulus_test_runtime::GenesisConfig {
+ frame_system: Some(cumulus_test_runtime::SystemConfig {
+ code: cumulus_test_runtime::WASM_BINARY
+ .expect("WASM binary was not build, please build it!")
+ .to_vec(),
+ changes_trie_config,
+ }),
+ pallet_balances: Some(cumulus_test_runtime::BalancesConfig {
+ balances: endowed_accounts
+ .iter()
+ .cloned()
+ .map(|k| (k, 1 << 60))
+ .collect(),
+ }),
+ pallet_sudo: Some(cumulus_test_runtime::SudoConfig { key: root_key }),
+ }
+}
diff --git a/cumulus/test/service/src/genesis.rs b/cumulus/test/service/src/genesis.rs
new file mode 100644
index 0000000000..92e05d0f4e
--- /dev/null
+++ b/cumulus/test/service/src/genesis.rs
@@ -0,0 +1,29 @@
+// Copyright 2020 Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+use codec::Encode;
+use cumulus_primitives::{genesis::generate_genesis_block, ParaId};
+use cumulus_test_runtime::Block;
+use polkadot_primitives::v0::HeadData;
+use sp_runtime::traits::Block as BlockT;
+
+/// Returns the initial head data for a parachain ID.
+pub fn initial_head_data(para_id: ParaId) -> HeadData {
+ let spec = Box::new(crate::chain_spec::get_chain_spec(para_id));
+ let block: Block = generate_genesis_block(&(spec as Box<_>)).unwrap();
+ let genesis_state = block.header().encode();
+ genesis_state.into()
+}
diff --git a/cumulus/test/service/src/lib.rs b/cumulus/test/service/src/lib.rs
new file mode 100644
index 0000000000..766d78a389
--- /dev/null
+++ b/cumulus/test/service/src/lib.rs
@@ -0,0 +1,509 @@
+// Copyright 2019 Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Cumulus is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Cumulus. If not, see .
+
+//! Crate used for testing with Cumulus.
+
+#![warn(missing_docs)]
+
+mod chain_spec;
+mod genesis;
+
+pub use chain_spec::*;
+pub use genesis::*;
+
+use ansi_term::Color;
+use core::future::Future;
+use cumulus_collator::CollatorBuilder;
+use cumulus_network::DelayedBlockAnnounceValidator;
+use cumulus_primitives::ParaId;
+use cumulus_service::{
+ prepare_node_config, start_full_node, StartCollatorParams, StartFullNodeParams,
+};
+use cumulus_test_runtime::{NodeBlock as Block, RuntimeApi};
+use polkadot_primitives::v0::CollatorPair;
+use sc_client_api::execution_extensions::ExecutionStrategies;
+use sc_client_api::BlockBackend;
+use sc_executor::native_executor_instance;
+pub use sc_executor::NativeExecutor;
+use sc_informant::OutputFormat;
+use sc_network::{config::TransportConfig, multiaddr, NetworkService};
+use sc_service::{
+ config::{
+ DatabaseConfig, KeystoreConfig, MultiaddrWithPeerId, NetworkConfiguration,
+ OffchainWorkerConfig, PruningMode, WasmExecutionMethod,
+ },
+ BasePath, ChainSpec, Configuration, Error as ServiceError, PartialComponents, Role,
+ RpcHandlers, TFullBackend, TFullClient, TaskExecutor, TaskManager,
+};
+use sp_consensus::{BlockImport, Environment, Error as ConsensusError, Proposer};
+use sp_core::{crypto::Pair, H256};
+use sp_keyring::Sr25519Keyring;
+use sp_runtime::traits::BlakeTwo256;
+use sp_state_machine::BasicExternalities;
+use sp_trie::PrefixedMemoryDB;
+use std::sync::Arc;
+use substrate_test_client::BlockchainEventsExt;
+
+// Native executor instance.
+native_executor_instance!(
+ pub RuntimeExecutor,
+ cumulus_test_runtime::api::dispatch,
+ cumulus_test_runtime::native_version,
+);
+
+/// Starts a `ServiceBuilder` for a full service.
+///
+/// Use this macro if you don't actually need the full service, but just the builder in order to
+/// be able to perform chain operations.
+pub fn new_partial(
+ config: &mut Configuration,
+) -> Result<
+ PartialComponents<
+ TFullClient,
+ TFullBackend,
+ (),
+ sp_consensus::import_queue::BasicQueue>,
+ sc_transaction_pool::FullPool>,
+ (),
+ >,
+ sc_service::Error,
+> {
+ let inherent_data_providers = sp_inherents::InherentDataProviders::new();
+
+ let (client, backend, keystore, task_manager) =
+ sc_service::new_full_parts::(&config)?;
+ let client = Arc::new(client);
+
+ let registry = config.prometheus_registry();
+
+ let transaction_pool = sc_transaction_pool::BasicPool::new_full(
+ config.transaction_pool.clone(),
+ config.prometheus_registry(),
+ task_manager.spawn_handle(),
+ client.clone(),
+ );
+
+ let import_queue = cumulus_consensus::import_queue::import_queue(
+ client.clone(),
+ client.clone(),
+ inherent_data_providers.clone(),
+ &task_manager.spawn_handle(),
+ registry.clone(),
+ )?;
+
+ let params = PartialComponents {
+ backend,
+ client,
+ import_queue,
+ keystore,
+ task_manager,
+ transaction_pool,
+ inherent_data_providers,
+ select_chain: (),
+ other: (),
+ };
+
+ Ok(params)
+}
+
+/// Start a test collator node for a parachain.
+///
+/// A collator is similar to a validator in a normal blockchain.
+/// It is responsible for producing blocks and sending the blocks to a
+/// parachain validator for validation and inclusion into the relay chain.
+pub fn start_test_collator<'a, PF, BI, BS>(
+ StartCollatorParams {
+ para_id,
+ proposer_factory,
+ inherent_data_providers,
+ block_import,
+ block_status,
+ announce_block,
+ client,
+ block_announce_validator,
+ task_manager,
+ polkadot_config,
+ collator_key,
+ }: StartCollatorParams<'a, Block, PF, BI, BS, TFullClient>,
+) -> sc_service::error::Result<()>
+where
+ PF: Environment + Send + 'static,
+ BI: BlockImport<
+ Block,
+ Error = ConsensusError,
+ Transaction = >::Transaction,
+ > + Send
+ + Sync
+ + 'static,
+ BS: BlockBackend + Send + Sync + 'static,
+{
+ let builder = CollatorBuilder::new(
+ proposer_factory,
+ inherent_data_providers,
+ block_import,
+ block_status,
+ para_id,
+ client,
+ announce_block,
+ block_announce_validator,
+ );
+
+ let (polkadot_future, polkadot_task_manager) = {
+ let (task_manager, client, handles, _network, _rpc_handlers) =
+ polkadot_test_service::polkadot_test_new_full(
+ polkadot_config,
+ Some((collator_key.public(), para_id)),
+ None,
+ false,
+ 6000,
+ )?;
+
+ let test_client = polkadot_test_service::TestClient(client);
+
+ let future = polkadot_collator::build_collator_service(
+ task_manager.spawn_handle(),
+ handles,
+ test_client,
+ para_id,
+ collator_key,
+ builder,
+ )?;
+
+ (future, task_manager)
+ };
+
+ task_manager
+ .spawn_essential_handle()
+ .spawn("polkadot", polkadot_future);
+
+ task_manager.add_child(polkadot_task_manager);
+
+ Ok(())
+}
+
+/// Start a node with the given parachain `Configuration` and relay chain `Configuration`.
+///
+/// This is the actual implementation that is abstract over the executor and the runtime api.
+fn start_node_impl(
+ parachain_config: Configuration,
+ collator_key: Arc,
+ mut polkadot_config: polkadot_collator::Configuration,
+ para_id: ParaId,
+ validator: bool,
+ rpc_ext_builder: RB,
+) -> sc_service::error::Result<(
+ TaskManager,
+ Arc>,
+ Arc>,
+ Arc,
+)>
+where
+ RB: Fn(
+ Arc>,
+ ) -> jsonrpc_core::IoHandler
+ + Send
+ + 'static,
+{
+ if matches!(parachain_config.role, Role::Light) {
+ return Err("Light client not supported!".into());
+ }
+
+ let mut parachain_config = prepare_node_config(parachain_config);
+
+ parachain_config.informant_output_format = OutputFormat {
+ enable_color: true,
+ prefix: format!("[{}] ", Color::Yellow.bold().paint("Parachain")),
+ };
+ polkadot_config.informant_output_format = OutputFormat {
+ enable_color: true,
+ prefix: format!("[{}] ", Color::Blue.bold().paint("Relaychain")),
+ };
+
+ let params = new_partial(&mut parachain_config)?;
+ params
+ .inherent_data_providers
+ .register_provider(sp_timestamp::InherentDataProvider)
+ .unwrap();
+
+ let client = params.client.clone();
+ let backend = params.backend.clone();
+ let block_announce_validator = DelayedBlockAnnounceValidator::new();
+ let block_announce_validator_builder = {
+ let block_announce_validator = block_announce_validator.clone();
+ move |_| Box::new(block_announce_validator) as Box<_>
+ };
+
+ let prometheus_registry = parachain_config.prometheus_registry().cloned();
+ let transaction_pool = params.transaction_pool.clone();
+ let mut task_manager = params.task_manager;
+ let import_queue = params.import_queue;
+ let (network, network_status_sinks, system_rpc_tx, start_network) =
+ sc_service::build_network(sc_service::BuildNetworkParams {
+ config: ¶chain_config,
+ client: client.clone(),
+ transaction_pool: transaction_pool.clone(),
+ spawn_handle: task_manager.spawn_handle(),
+ import_queue,
+ on_demand: None,
+ block_announce_validator_builder: Some(Box::new(block_announce_validator_builder)),
+ finality_proof_request_builder: None,
+ finality_proof_provider: None,
+ })?;
+
+ let rpc_extensions_builder = {
+ let client = client.clone();
+
+ Box::new(move |_deny_unsafe| rpc_ext_builder(client.clone()))
+ };
+
+ let rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams {
+ on_demand: None,
+ remote_blockchain: None,
+ rpc_extensions_builder,
+ client: client.clone(),
+ transaction_pool: transaction_pool.clone(),
+ task_manager: &mut task_manager,
+ telemetry_connection_sinks: Default::default(),
+ config: parachain_config,
+ keystore: params.keystore,
+ backend,
+ network: network.clone(),
+ network_status_sinks,
+ system_rpc_tx,
+ })?;
+
+ let announce_block = {
+ let network = network.clone();
+ Arc::new(move |hash, data| network.announce_block(hash, data))
+ };
+
+ if validator {
+ let proposer_factory = sc_basic_authorship::ProposerFactory::new(
+ client.clone(),
+ transaction_pool,
+ prometheus_registry.as_ref(),
+ );
+
+ let params = StartCollatorParams {
+ para_id,
+ block_import: client.clone(),
+ proposer_factory,
+ inherent_data_providers: params.inherent_data_providers,
+ block_status: client.clone(),
+ announce_block,
+ client: client.clone(),
+ block_announce_validator,
+ task_manager: &mut task_manager,
+ polkadot_config,
+ collator_key,
+ };
+
+ start_test_collator(params)?;
+ } else {
+ let params = StartFullNodeParams {
+ client: client.clone(),
+ announce_block,
+ polkadot_config,
+ collator_key,
+ block_announce_validator,
+ task_manager: &mut task_manager,
+ para_id,
+ };
+
+ start_full_node(params)?;
+ }
+
+ start_network.start_network();
+
+ Ok((task_manager, client, network, rpc_handlers))
+}
+
+/// A Cumulus test node instance used for testing.
+pub struct CumulusTestNode {
+ /// TaskManager's instance.
+ pub task_manager: TaskManager,
+ /// Client's instance.
+ pub client: Arc>,
+ /// Node's network.
+ pub network: Arc>,
+ /// The `MultiaddrWithPeerId` to this node. This is useful if you want to pass it as "boot node"
+ /// to other nodes.
+ pub addr: MultiaddrWithPeerId,
+ /// RPCHandlers to make RPC queries.
+ pub rpc_handlers: Arc,
+}
+
+/// Run a Cumulus test node using the Cumulus test runtime. The node will be using an in-memory
+/// socket, therefore you need to provide boot nodes if you want it to be connected to other nodes.
+/// The `storage_update_func` can be used to make adjustements to the runtime before the node
+/// starts.
+pub fn run_test_node(
+ task_executor: TaskExecutor,
+ key: Sr25519Keyring,
+ parachain_storage_update_func: impl Fn(),
+ polkadot_storage_update_func: impl Fn(),
+ parachain_boot_nodes: Vec,
+ polkadot_boot_nodes: Vec,
+ para_id: ParaId,
+ validator: bool,
+) -> CumulusTestNode {
+ let collator_key = Arc::new(sp_core::Pair::generate().0);
+ let parachain_config = node_config(
+ parachain_storage_update_func,
+ task_executor.clone(),
+ key,
+ parachain_boot_nodes,
+ para_id,
+ )
+ .expect("could not generate Configuration");
+ let polkadot_config = polkadot_test_service::node_config(
+ polkadot_storage_update_func,
+ task_executor.clone(),
+ key,
+ polkadot_boot_nodes,
+ );
+ let multiaddr = parachain_config.network.listen_addresses[0].clone();
+ let (task_manager, client, network, rpc_handlers) = start_node_impl::<_>(
+ parachain_config,
+ collator_key,
+ polkadot_config,
+ para_id,
+ validator,
+ |_| Default::default(),
+ )
+ .expect("could not create Cumulus test service");
+
+ let peer_id = network.local_peer_id().clone();
+ let addr = MultiaddrWithPeerId { multiaddr, peer_id };
+
+ CumulusTestNode {
+ task_manager,
+ client,
+ network,
+ addr,
+ rpc_handlers,
+ }
+}
+
+/// Create a Cumulus `Configuration`. By default an in-memory socket will be used, therefore you
+/// need to provide boot nodes if you want the future node to be connected to other nodes. The
+/// `storage_update_func` can be used to make adjustments to the runtime before the node starts.
+pub fn node_config(
+ storage_update_func: impl Fn(),
+ task_executor: TaskExecutor,
+ key: Sr25519Keyring,
+ boot_nodes: Vec,
+ para_id: ParaId,
+) -> Result {
+ let base_path = BasePath::new_temp_dir()?;
+ let root = base_path.path().to_path_buf();
+ let role = Role::Authority {
+ sentry_nodes: Vec::new(),
+ };
+ let key_seed = key.to_seed();
+ let mut spec = Box::new(chain_spec::get_chain_spec(para_id));
+
+ let mut storage = spec
+ .as_storage_builder()
+ .build_storage()
+ .expect("could not build storage");
+
+ BasicExternalities::execute_with_storage(&mut storage, storage_update_func);
+ spec.set_storage(storage);
+
+ let mut network_config = NetworkConfiguration::new(
+ format!("Cumulus Test Node for: {}", key_seed),
+ "network/test/0.1",
+ Default::default(),
+ None,
+ );
+ let informant_output_format = OutputFormat {
+ enable_color: false,
+ prefix: format!("[{}] ", key_seed),
+ };
+
+ network_config.boot_nodes = boot_nodes;
+
+ network_config.allow_non_globals_in_dht = false;
+
+ network_config
+ .listen_addresses
+ .push(multiaddr::Protocol::Memory(rand::random()).into());
+
+ network_config.transport = TransportConfig::MemoryOnly;
+
+ Ok(Configuration {
+ impl_name: "cumulus-test-node".to_string(),
+ impl_version: "0.1".to_string(),
+ role,
+ task_executor,
+ transaction_pool: Default::default(),
+ network: network_config,
+ keystore: KeystoreConfig::Path {
+ path: root.join("key"),
+ password: None,
+ },
+ database: DatabaseConfig::RocksDb {
+ path: root.join("db"),
+ cache_size: 128,
+ },
+ state_cache_size: 67108864,
+ state_cache_child_ratio: None,
+ pruning: PruningMode::ArchiveAll,
+ chain_spec: spec,
+ wasm_method: WasmExecutionMethod::Interpreted,
+ // NOTE: we enforce the use of the native runtime to make the errors more debuggable
+ execution_strategies: ExecutionStrategies {
+ syncing: sc_client_api::ExecutionStrategy::NativeWhenPossible,
+ importing: sc_client_api::ExecutionStrategy::NativeWhenPossible,
+ block_construction: sc_client_api::ExecutionStrategy::NativeWhenPossible,
+ offchain_worker: sc_client_api::ExecutionStrategy::NativeWhenPossible,
+ other: sc_client_api::ExecutionStrategy::NativeWhenPossible,
+ },
+ rpc_http: None,
+ rpc_ws: None,
+ rpc_ipc: None,
+ rpc_ws_max_connections: None,
+ rpc_cors: None,
+ rpc_methods: Default::default(),
+ prometheus_config: None,
+ telemetry_endpoints: None,
+ telemetry_external_transport: None,
+ default_heap_pages: None,
+ offchain_worker: OffchainWorkerConfig {
+ enabled: true,
+ indexing_enabled: false,
+ },
+ force_authoring: false,
+ disable_grandpa: false,
+ dev_key_seed: Some(key_seed),
+ tracing_targets: None,
+ tracing_receiver: Default::default(),
+ max_runtime_instances: 8,
+ announce_block: true,
+ base_path: Some(base_path),
+ informant_output_format,
+ })
+}
+
+impl CumulusTestNode {
+ /// Wait for `count` blocks to be imported in the node and then exit. This function will not
+ /// return if no blocks are ever created, thus you should restrict the maximum amount of time of
+ /// the test execution.
+ pub fn wait_for_blocks(&self, count: usize) -> impl Future