diff --git a/parachain/Cargo.lock b/parachain/Cargo.lock index e8b470835..8f3658fc5 100644 --- a/parachain/Cargo.lock +++ b/parachain/Cargo.lock @@ -12,11 +12,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.13.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072" +checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7" dependencies = [ - "gimli 0.22.0", + "gimli 0.23.0", ] [[package]] @@ -40,23 +40,11 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd2bc6d3f370b5666245ff421e231cba4353df936e26986d2918e61a8fd6aef6" dependencies = [ - "aes-soft 0.5.0", - "aesni 0.8.0", + "aes-soft", + "aesni", "block-cipher", ] -[[package]] -name = "aes-ctr" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2e5b0458ea3beae0d1d8c0f3946564f8e10f90646cf78c06b4351052058d1ee" -dependencies = [ - "aes-soft 0.3.3", - "aesni 0.6.0", - "ctr", - "stream-cipher 0.3.2", -] - [[package]] name = "aes-gcm" version = "0.7.0" @@ -67,18 +55,7 @@ dependencies = [ "aes", "block-cipher", "ghash", - "subtle 2.3.0", -] - -[[package]] -name = "aes-soft" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d" -dependencies = [ - "block-cipher-trait", - "byteorder 1.3.4", - "opaque-debug 0.2.3", + "subtle 2.4.0", ] [[package]] @@ -88,21 +65,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63dd91889c49327ad7ef3b500fd1109dbd3c509a03db0d4a9ce413b79f575cb6" dependencies = [ "block-cipher", - "byteorder 1.3.4", + "byteorder", "opaque-debug 0.3.0", ] -[[package]] -name = "aesni" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100" -dependencies = [ - "block-cipher-trait", - "opaque-debug 0.2.3", - "stream-cipher 0.3.2", -] - [[package]] name = "aesni" version = "0.8.0" @@ -115,39 +81,19 @@ dependencies = [ [[package]] name = "ahash" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29661b60bec623f0586702976ff4d0c9942dcb6723161c2df0eea78455cfedfb" -dependencies = [ - "const-random", -] - -[[package]] -name = "ahash" -version = "0.3.8" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" +checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" [[package]] name = "aho-corasick" -version = "0.7.13" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86" +checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" dependencies = [ "memchr", ] -[[package]] -name = "alga" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2" -dependencies = [ - "approx", - "num-complex", - "num-traits", -] - [[package]] name = "ansi_term" version = "0.11.0" @@ -168,9 +114,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1fd36ffbb1fb7c834eac128ea8d0e310c5aeb635548f9d58861e1308d46e71c" +checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1" [[package]] name = "approx" @@ -178,14 +124,14 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" dependencies = [ - "num-traits", + "num-traits 0.2.14", ] [[package]] name = "arc-swap" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034" +checksum = "dabe5a181f83789739c194cbe5a897dde195078fac08568d09221fd6137a7ba8" [[package]] name = "arrayref" @@ -204,9 +150,9 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "artemis-assets" @@ -263,7 +209,7 @@ dependencies = [ "ethabi-decode", "frame-support", "frame-system", - "hex-literal 0.3.1", + "hex-literal", "parity-scale-codec", "rlp", "rustc-hex", @@ -286,7 +232,7 @@ dependencies = [ "ethabi-decode", "frame-support", "frame-system", - "hex-literal 0.3.1", + "hex-literal", "parity-scale-codec", "rlp", "rustc-hex", @@ -305,9 +251,10 @@ dependencies = [ "artemis-testutils", "ethabi-decode", "ethash", - "ethbloom 0.8.1", + "ethbloom", "ethereum-types", - "hex-literal 0.3.1", + "getrandom 0.2.1", + "hex-literal", "libsecp256k1", "parity-bytes", "parity-scale-codec", @@ -329,20 +276,41 @@ name = "artemis-node" version = "0.1.1" dependencies = [ "artemis-runtime", - "hex-literal 0.3.1", - "jsonrpc-core", + "cumulus-collator", + "cumulus-consensus", + "cumulus-network", + "cumulus-primitives", + "cumulus-service", + "frame-benchmarking", + "frame-benchmarking-cli", + "futures 0.3.9", + "hex-literal", + "jsonrpc-core 15.1.0", + "jsonrpc-pubsub 14.2.0", + "log", "pallet-transaction-payment-rpc", + "parity-scale-codec", + "parking_lot 0.10.2", + "polkadot-cli", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-service", + "rand 0.7.3", "sc-basic-authorship", + "sc-chain-spec", "sc-cli", "sc-client-api", "sc-consensus", "sc-consensus-aura", "sc-executor", "sc-finality-grandpa", + "sc-keystore", "sc-rpc", "sc-rpc-api", "sc-service", + "sc-tracing", "sc-transaction-pool", + "serde", "sp-api", "sp-block-builder", "sp-blockchain", @@ -352,10 +320,13 @@ dependencies = [ "sp-finality-grandpa", "sp-inherents", "sp-runtime", + "sp-timestamp", "sp-transaction-pool", + "sp-trie", "structopt", "substrate-build-script-utils", "substrate-frame-rpc-system", + "tracing", ] [[package]] @@ -367,26 +338,31 @@ dependencies = [ "artemis-core", "artemis-erc20-app", "artemis-eth-app", + "artemis-token-dealer", + "artemis-xcm-support", + "cumulus-message-broker", + "cumulus-parachain-upgrade", + "cumulus-primitives", + "cumulus-runtime", "frame-executive", "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "pallet-aura", + "getrandom 0.2.1", + "hex-literal", "pallet-balances", "pallet-bridge", - "pallet-grandpa", "pallet-randomness-collective-flip", - "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", - "pallet-verifier", "pallet-verifier-lightclient", + "parachain-info", "parity-scale-codec", + "polkadot-parachain", "serde", "sp-api", "sp-block-builder", - "sp-consensus-aura", "sp-core", "sp-inherents", "sp-offchain", @@ -395,7 +371,11 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", - "substrate-wasm-builder-runner", + "substrate-wasm-builder 3.0.0 (git+https://github.com/paritytech/substrate.git)", + "xcm", + "xcm-builder", + "xcm-executor", + "xcm-handler", ] [[package]] @@ -408,6 +388,37 @@ dependencies = [ "serde_json", ] +[[package]] +name = "artemis-token-dealer" +version = "0.1.1" +dependencies = [ + "artemis-core", + "cumulus-primitives", + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "artemis-xcm-support" +version = "0.1.0" +dependencies = [ + "artemis-core", + "frame-support", + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + [[package]] name = "asn1_der" version = "0.6.3" @@ -423,8 +434,8 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502" dependencies = [ - "quote", - "syn", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -440,36 +451,36 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d373d78ded7d0b3fa8039375718cde0aace493f2e34fb60f51cbf567562ca801" +checksum = "eb877970c7b440ead138f6321a3b5395d6061183af779340b65e20c0fede9146" dependencies = [ "async-task", "concurrent-queue", "fastrand", "futures-lite", - "once_cell 1.4.1", + "once_cell", "vec-arena", ] [[package]] name = "async-global-executor" -version = "1.3.0" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fefeb39da249f4c33af940b779a56723ce45809ef5c54dad84bb538d4ffb6d9e" +checksum = "73079b49cd26b8fd5a15f68fc7707fc78698dc2a3d61430f2a7a9430230dfa04" dependencies = [ "async-executor", "async-io", "futures-lite", "num_cpus", - "once_cell 1.4.1", + "once_cell", ] [[package]] name = "async-io" -version = "1.1.10" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54bc4c1c7292475efb2253227dbcfad8fe1ca4c02bc62c510cc2f3da5c4704e" +checksum = "9315f8f07556761c3e48fec2e6b276004acf426e6dc068b2c2251854d65ee0fd" dependencies = [ "concurrent-queue", "fastrand", @@ -477,7 +488,7 @@ dependencies = [ "libc", "log", "nb-connect", - "once_cell 1.4.1", + "once_cell", "parking", "polling", "vec-arena", @@ -494,17 +505,35 @@ dependencies = [ "event-listener", ] +[[package]] +name = "async-process" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8cea09c1fb10a317d1b5af8024eeba256d6554763e85ecd90ff8df31c7bbda" +dependencies = [ + "async-io", + "blocking", + "cfg-if 0.1.10", + "event-listener", + "futures-lite", + "once_cell", + "signal-hook", + "winapi 0.3.9", +] + [[package]] name = "async-std" -version = "1.6.5" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9fa76751505e8df1c7a77762f60486f60c71bbd9b8557f4da6ad47d083732ed" +checksum = "8f9f84f1280a2b436a2c77c2582602732b6c2f4321d5494d6e799e6c367859a8" dependencies = [ + "async-channel", "async-global-executor", "async-io", "async-mutex", + "async-process", "blocking", - "crossbeam-utils", + "crossbeam-utils 0.8.1", "futures-channel", "futures-core", "futures-io", @@ -514,8 +543,8 @@ dependencies = [ "log", "memchr", "num_cpus", - "once_cell 1.4.1", - "pin-project-lite", + "once_cell", + "pin-project-lite 0.2.4", "pin-utils", "slab", "wasm-bindgen-futures", @@ -523,38 +552,42 @@ dependencies = [ [[package]] name = "async-task" -version = "4.0.2" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ab27c1aa62945039e44edaeee1dc23c74cc0c303dd5fe0fb462a184f1c3a518" +checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" [[package]] name = "async-tls" -version = "0.8.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df097e3f506bec0e1a24f06bb3c962c228f36671de841ff579cb99f371772634" +checksum = "2f23d769dbf1838d5df5156e7b1ad404f4c463d1ac2c6aeb6cd943630f8a8400" dependencies = [ - "futures 0.3.6", - "rustls", + "futures-core", + "futures-io", + "rustls 0.19.0", "webpki", - "webpki-roots 0.19.0", + "webpki-roots", ] [[package]] name = "async-trait" -version = "0.1.41" +version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b246867b8b3b6ae56035f1eb1ed557c1d8eae97f0d53696138a50fa0e3a3b8c0" +checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "atomic" -version = "0.4.6" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f46ca51dca4837f1520754d1c8c36636356b81553d928dc9c177025369a06e" +checksum = "c3410529e8288c463bedb5930f82833bc0c90e5d2fe639a56582a4d09220b281" +dependencies = [ + "autocfg", +] [[package]] name = "atomic-waker" @@ -573,12 +606,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "autocfg" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" - [[package]] name = "autocfg" version = "1.0.1" @@ -587,15 +614,15 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.52" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f813291114c186a042350e787af10c26534601062603d888be110f59f85ef8fa" +checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598" dependencies = [ "addr2line", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.20.0", + "object 0.22.0", "rustc-demangle", ] @@ -607,15 +634,15 @@ checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" [[package]] name = "base64" -version = "0.11.0" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" [[package]] name = "base64" -version = "0.12.3" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bincode" @@ -623,7 +650,7 @@ version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d" dependencies = [ - "byteorder 1.3.4", + "byteorder", "serde", ] @@ -635,7 +662,7 @@ checksum = "66c0bb6167449588ff70803f4127f0684f9063097eca5016f37eb52b92c2cf36" dependencies = [ "bitflags", "cexpr", - "cfg-if", + "cfg-if 0.1.10", "clang-sys", "clap", "env_logger", @@ -643,41 +670,20 @@ dependencies = [ "lazycell", "log", "peeking_take_while", - "proc-macro2", - "quote", + "proc-macro2 1.0.24", + "quote 1.0.8", "regex", "rustc-hash", "shlex", "which", ] -[[package]] -name = "bip39" -version = "0.6.0-beta.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7059804e226b3ac116519a252d7f5fb985a5ccc0e93255e036a5f7e7283323f4" -dependencies = [ - "failure", - "hashbrown 0.1.8", - "hmac", - "once_cell 0.1.8", - "pbkdf2", - "rand 0.6.5", - "sha2 0.8.2", -] - [[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -[[package]] -name = "bitmask" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da9b3d9f6f585199287a473f4f8dfab6566cf827d15c00c219f53c645687ead" - [[package]] name = "bitvec" version = "0.17.4" @@ -690,15 +696,13 @@ dependencies = [ [[package]] name = "blake2" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84ce5b6108f8e154604bd4eb76a2f726066c3464d5a552a4229262a18c9bb471" +checksum = "10a5720225ef5daecf08657f23791354e1685a8c91a4c60c7f3d3b2892f978f4" dependencies = [ - "byte-tools", - "byteorder 1.3.4", "crypto-mac 0.8.0", "digest 0.9.0", - "opaque-debug 0.2.3", + "opaque-debug 0.3.0", ] [[package]] @@ -713,23 +717,12 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" -dependencies = [ - "arrayref", - "arrayvec 0.5.1", - "constant_time_eq", -] - -[[package]] -name = "blake2s_simd" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab9e07352b829279624ceb7c64adb4f585dacdb81d35cafae81139ccd617cf44" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" dependencies = [ "arrayref", - "arrayvec 0.5.1", + "arrayvec 0.5.2", "constant_time_eq", ] @@ -741,7 +734,7 @@ checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ "block-padding 0.1.5", "byte-tools", - "byteorder 1.3.4", + "byteorder", "generic-array 0.12.3", ] @@ -764,15 +757,6 @@ dependencies = [ "generic-array 0.14.4", ] -[[package]] -name = "block-cipher-trait" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" -dependencies = [ - "generic-array 0.12.3", -] - [[package]] name = "block-padding" version = "0.1.5" @@ -799,24 +783,33 @@ dependencies = [ "atomic-waker", "fastrand", "futures-lite", - "once_cell 1.4.1", + "once_cell", ] [[package]] name = "bs58" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931" +checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf" dependencies = [ "memchr", ] +[[package]] +name = "build-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdce191bf3fa4995ce948c8c83b4640a1745457a149e73c6db75b4ffe36aad5f" +dependencies = [ + "semver 0.6.0", +] + [[package]] name = "bumpalo" version = "3.4.0" @@ -837,15 +830,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "byteorder" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" - -[[package]] -name = "byteorder" -version = "1.3.4" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" +checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b" [[package]] name = "bytes" @@ -853,7 +840,7 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" dependencies = [ - "byteorder 1.3.4", + "byteorder", "either", "iovec", ] @@ -865,10 +852,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] -name = "c_linked_list" -version = "1.1.1" +name = "bytes" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b" +checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" [[package]] name = "cache-padded" @@ -876,11 +863,33 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" +[[package]] +name = "cargo-platform" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0226944a63d1bf35a3b5f948dd7c59e263db83695c9e8bffc4037de02e30f1d7" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11a47b6286279a9998588ef7050d1ebc2500c69892a557c90fe5d071c64415dc" +dependencies = [ + "cargo-platform", + "semver 0.11.0", + "semver-parser 0.10.2", + "serde", + "serde_json", +] + [[package]] name = "cc" -version = "1.0.61" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d" +checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" dependencies = [ "jobserver", ] @@ -900,13 +909,19 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + [[package]] name = "chacha20" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "244fbce0d47e97e8ef2f63b81d5e05882cb518c68531eb33194990d7b7e85845" dependencies = [ - "stream-cipher 0.7.1", + "stream-cipher", "zeroize", ] @@ -919,7 +934,7 @@ dependencies = [ "aead", "chacha20", "poly1305", - "stream-cipher 0.7.1", + "stream-cipher", "zeroize", ] @@ -931,11 +946,20 @@ checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" dependencies = [ "libc", "num-integer", - "num-traits", + "num-traits 0.2.14", "time", "winapi 0.3.9", ] +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array 0.14.4", +] + [[package]] name = "clang-sys" version = "0.29.3" @@ -971,15 +995,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "cloudabi" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467" -dependencies = [ - "bitflags", -] - [[package]] name = "concurrent-queue" version = "1.2.2" @@ -990,24 +1005,10 @@ dependencies = [ ] [[package]] -name = "const-random" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02dc82c12dc2ee6e1ded861cf7d582b46f66f796d1b6c93fa28b911ead95da02" -dependencies = [ - "const-random-macro", - "proc-macro-hack", -] - -[[package]] -name = "const-random-macro" -version = "0.1.11" +name = "const_fn" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc757bbb9544aa296c2ae00c679e81f886b37e28e59097defe0cf524306f6685" -dependencies = [ - "getrandom 0.2.0", - "proc-macro-hack", -] +checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6" [[package]] name = "constant_time_eq" @@ -1037,6 +1038,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" +[[package]] +name = "cpuid-bool" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" + [[package]] name = "cranelift-bforest" version = "0.66.0" @@ -1052,7 +1059,7 @@ version = "0.66.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d9badfe36176cb653506091693bc2bb1970c9bddfcd6ec7fac404f7eaec6f38" dependencies = [ - "byteorder 1.3.4", + "byteorder", "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", @@ -1061,7 +1068,7 @@ dependencies = [ "log", "regalloc", "serde", - "smallvec 1.4.2", + "smallvec 1.6.1", "target-lexicon", "thiserror", ] @@ -1099,7 +1106,7 @@ checksum = "2ef419efb4f94ecc02e5d9fbcc910d2bb7f0040e2de570e63a454f883bc891d6" dependencies = [ "cranelift-codegen", "log", - "smallvec 1.4.2", + "smallvec 1.6.1", "target-lexicon", ] @@ -1131,21 +1138,21 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" +checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] name = "crossbeam-channel" -version = "0.4.4" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" +checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" dependencies = [ - "crossbeam-utils", - "maybe-uninit", + "cfg-if 1.0.0", + "crossbeam-utils 0.8.1", ] [[package]] @@ -1154,24 +1161,49 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", + "crossbeam-epoch 0.8.2", + "crossbeam-utils 0.7.2", "maybe-uninit", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch 0.9.1", + "crossbeam-utils 0.8.1", +] + [[package]] name = "crossbeam-epoch" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ - "autocfg 1.0.1", - "cfg-if", - "crossbeam-utils", + "autocfg", + "cfg-if 0.1.10", + "crossbeam-utils 0.7.2", "lazy_static", "maybe-uninit", - "memoffset", - "scopeguard 1.1.0", + "memoffset 0.5.6", + "scopeguard", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d" +dependencies = [ + "cfg-if 1.0.0", + "const_fn", + "crossbeam-utils 0.8.1", + "lazy_static", + "memoffset 0.6.1", + "scopeguard", ] [[package]] @@ -1180,8 +1212,8 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" dependencies = [ - "cfg-if", - "crossbeam-utils", + "cfg-if 0.1.10", + "crossbeam-utils 0.7.2", "maybe-uninit", ] @@ -1191,8 +1223,19 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "autocfg 1.0.1", - "cfg-if", + "autocfg", + "cfg-if 0.1.10", + "lazy_static", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" +dependencies = [ + "autocfg", + "cfg-if 1.0.0", "lazy_static", ] @@ -1219,7 +1262,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.4", - "subtle 2.3.0", + "subtle 2.4.0", ] [[package]] @@ -1232,56 +1275,224 @@ dependencies = [ ] [[package]] -name = "ctr" -version = "0.3.2" +name = "cuckoofilter" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022cd691704491df67d25d006fe8eca083098253c4d43516c2206479c58c6736" +checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18" dependencies = [ - "block-cipher-trait", - "stream-cipher 0.3.2", + "byteorder", + "fnv", + "rand 0.7.3", ] [[package]] -name = "cuckoofilter" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd43f7cfaffe0a386636a10baea2ee05cc50df3b77bea4a456c9572a939bf1f" +name = "cumulus-collator" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git#5dfd0756efbd5be85937c2f530cfeaa7108b6dec" dependencies = [ - "byteorder 0.5.3", - "rand 0.3.23", + "cumulus-network", + "cumulus-primitives", + "cumulus-runtime", + "futures 0.3.9", + "log", + "parity-scale-codec", + "parking_lot 0.9.0", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-service", + "polkadot-validation", + "sc-cli", + "sc-client-api", + "sp-api", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", +] + +[[package]] +name = "cumulus-consensus" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git#5dfd0756efbd5be85937c2f530cfeaa7108b6dec" +dependencies = [ + "futures 0.3.9", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime", + "sc-client-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "substrate-prometheus-endpoint", + "tokio 0.1.22", + "tracing", +] + +[[package]] +name = "cumulus-message-broker" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git#5dfd0756efbd5be85937c2f530cfeaa7108b6dec" +dependencies = [ + "cumulus-primitives", + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-inherents", + "sp-std", +] + +[[package]] +name = "cumulus-network" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git#5dfd0756efbd5be85937c2f530cfeaa7108b6dec" +dependencies = [ + "cumulus-primitives", + "derive_more", + "futures 0.3.9", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "parking_lot 0.10.2", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives", + "polkadot-service", + "polkadot-statement-table", + "polkadot-validation", + "sc-client-api", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "cumulus-parachain-upgrade" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git#5dfd0756efbd5be85937c2f530cfeaa7108b6dec" +dependencies = [ + "cumulus-primitives", + "cumulus-runtime", + "frame-support", + "frame-system", + "pallet-balances", + "parity-scale-codec", + "polkadot-parachain", + "serde", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-version", +] + +[[package]] +name = "cumulus-primitives" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git#5dfd0756efbd5be85937c2f530cfeaa7108b6dec" +dependencies = [ + "impl-trait-for-tuples 0.1.3", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain", + "polkadot-primitives", + "sc-chain-spec", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "cumulus-runtime" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git#5dfd0756efbd5be85937c2f530cfeaa7108b6dec" +dependencies = [ + "cumulus-primitives", + "frame-executive", + "hash-db", + "memory-db", + "parity-scale-codec", + "polkadot-parachain", + "sp-core", + "sp-externalities", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "trie-db", +] + +[[package]] +name = "cumulus-service" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git#5dfd0756efbd5be85937c2f530cfeaa7108b6dec" +dependencies = [ + "cumulus-collator", + "cumulus-consensus", + "cumulus-primitives", + "futures 0.3.9", + "polkadot-overseer", + "polkadot-primitives", + "polkadot-service", + "sc-cli", + "sc-client-api", + "sc-service", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "tracing", ] [[package]] name = "curve25519-dalek" -version = "2.1.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5" +checksum = "434e1720189a637d44fe464f4df1e6eb900b4835255b14354497c78af37d9bb8" dependencies = [ - "byteorder 1.3.4", + "byteorder", "digest 0.8.1", "rand_core 0.5.1", - "subtle 2.3.0", + "subtle 2.4.0", "zeroize", ] [[package]] name = "curve25519-dalek" -version = "3.0.0" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8492de420e9e60bc9a1d66e2dbb91825390b738a388606600663fc529b4b307" +checksum = "f627126b946c25a4638eec0ea634fc52506dea98db118aae985118ce7c3d723f" dependencies = [ - "byteorder 1.3.4", + "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle 2.3.0", + "subtle 2.4.0", "zeroize", ] [[package]] name = "data-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d0e2d24e5ee3b23a01de38eefdcd978907890701f08ffffd4cb457ca4ee8d6" +checksum = "993a608597367c6377b258c25d7120740f00ed23a2252b729b1932dd7866f908" [[package]] name = "derive_more" @@ -1289,9 +1500,9 @@ version = "0.99.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -1318,7 +1529,16 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", + "dirs-sys", +] + +[[package]] +name = "directories" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fed639d60b58d0f53498ab13d26f621fd77569cc6edb031f4cc36a2ad9da0f" +dependencies = [ "dirs-sys", ] @@ -1339,8 +1559,8 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" dependencies = [ - "byteorder 1.3.4", - "quick-error", + "byteorder", + "quick-error 1.2.3", ] [[package]] @@ -1359,22 +1579,22 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "dyn-clone" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c53dc3a653e0f64081026e4bf048d48fec9fce90c66e8326ca7292df0ff2d82" +checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" [[package]] name = "ed25519" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07dfc993ea376e864fe29a4099a61ca0bb994c6d7745a61bf60ddb3d64e05237" +checksum = "37c66a534cbb46ab4ea03477eae19d5c22c01da8258030280b7bd9d8433fb6ef" dependencies = [ "signature", ] @@ -1385,11 +1605,11 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ - "curve25519-dalek 3.0.0", + "curve25519-dalek 3.0.2", "ed25519", "rand 0.7.3", "serde", - "sha2 0.9.1", + "sha2 0.9.2", "zeroize", ] @@ -1399,6 +1619,35 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +[[package]] +name = "enum_primitive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180" +dependencies = [ + "num-traits 0.1.43", +] + +[[package]] +name = "enumflags2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0" +dependencies = [ + "enumflags2_derive", +] + +[[package]] +name = "enumflags2_derive" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + [[package]] name = "env_logger" version = "0.7.1" @@ -1420,18 +1669,18 @@ checksum = "6576a1755ddffd988788025e75bce9e74b018f7cc226198fe931d077911c6d7e" [[package]] name = "erased-serde" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ca8b296792113e1500fd935ae487be6e00ce318952a6880555554824d6ebf38" +checksum = "0465971a8cc1fa2455c8465aaa377131e1f1cf4983280f474a13e68793aa770c" dependencies = [ "serde", ] [[package]] name = "errno" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eab5ee3df98a279d9b316b1af6ac95422127b1290317e6d18c1743c99418b01" +checksum = "fa68f2fb9cae9d37c9b2b3584aba698a2e97f72d7aef7b9f7aa71d8b54ce46fe" dependencies = [ "errno-dragonfly", "libc", @@ -1450,8 +1699,8 @@ dependencies = [ [[package]] name = "ethabi-decode" -version = "1.3.1" -source = "git+https://github.com/Snowfork/ethabi-decode#473b19733e61ed753a722cfd3dd237cf7b167f31" +version = "1.3.2" +source = "git+https://github.com/Snowfork/ethabi-decode.git#26b1c5bc6eb80c79092828d36df73645dcaa4258" dependencies = [ "ethereum-types", "tiny-keccak 1.5.0", @@ -1459,10 +1708,10 @@ dependencies = [ [[package]] name = "ethash" -version = "0.4.0" -source = "git+https://github.com/nearprotocol/rust-ethash?branch=upgrade-eth-types#d1dd3efad109498189c03957dc1cf80b4f410632" +version = "0.5.0" +source = "git+https://github.com/Snowfork/ethash.git#f8d72b1af1e6f996192c96112f6a318e5293a48f" dependencies = [ - "byteorder 1.3.4", + "byteorder", "ethereum-types", "primitive-types", "rlp", @@ -1471,24 +1720,12 @@ dependencies = [ [[package]] name = "ethbloom" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cfe1c169414b709cf28aa30c74060bdb830a03a8ba473314d079ac79d80a5f" -dependencies = [ - "crunchy", - "fixed-hash 0.5.2", - "impl-rlp", - "tiny-keccak 1.5.0", -] - -[[package]] -name = "ethbloom" -version = "0.9.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71a6567e6fd35589fea0c63b94b4cf2e55573e413901bdbe60ab15cf0e25e5df" +checksum = "22a621dcebea74f2a6f2002d0a885c81ccf6cbdf86760183316a7722b5707ca4" dependencies = [ "crunchy", - "fixed-hash 0.6.1", + "fixed-hash", "impl-codec", "impl-rlp", "tiny-keccak 2.0.2", @@ -1496,16 +1733,16 @@ dependencies = [ [[package]] name = "ethereum-types" -version = "0.9.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "473aecff686bd8e7b9db0165cbbb53562376b39bf35b427f0c60446a9e1634b0" +checksum = "05dc5f0df4915fa6dff7f975a8366ecfaaa8959c74235469495153e7bb1b280e" dependencies = [ - "ethbloom 0.9.2", - "fixed-hash 0.6.1", + "ethbloom", + "fixed-hash", "impl-codec", "impl-rlp", "primitive-types", - "uint", + "uint 0.9.0", ] [[package]] @@ -1520,7 +1757,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", ] [[package]] @@ -1539,9 +1776,9 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", "synstructure", ] @@ -1568,9 +1805,9 @@ dependencies = [ [[package]] name = "fdlimit" -version = "0.1.4" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da54a593b34c71b889ee45f5b5bb900c74148c5f7f8c6a9479ee7899f69603c" +checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" dependencies = [ "libc", ] @@ -1592,34 +1829,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8feb87a63249689640ac9c011742c33139204e3c134293d3054022276869133b" dependencies = [ "either", - "futures 0.3.6", + "futures 0.3.9", "futures-timer 2.0.2", "log", - "num-traits", + "num-traits 0.2.14", "parity-scale-codec", "parking_lot 0.9.0", ] [[package]] name = "fixed-hash" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3367952ceb191f4ab95dd5685dc163ac539e36202f9fcfd0cb22f9f9c542fefc" -dependencies = [ - "byteorder 1.3.4", - "rand 0.7.3", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fixed-hash" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11498d382790b7a8f2fd211780bec78619bba81cdad3a283997c0c41f836759c" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" dependencies = [ - "byteorder 1.3.4", - "rand 0.7.3", + "byteorder", + "rand 0.8.1", "rustc-hex", "static_assertions", ] @@ -1632,11 +1857,11 @@ checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" [[package]] name = "flate2" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da80be589a72651dcda34d8b35bcdc9b7254ad06325611074d9cc0fbb19f60ee" +checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crc32fast", "libc", "libz-sys", @@ -1651,16 +1876,26 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "parity-scale-codec", ] +[[package]] +name = "form_urlencoded" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +dependencies = [ + "matches", + "percent-encoding 2.1.0", +] + [[package]] name = "frame-benchmarking" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-support", "frame-system", @@ -1675,15 +1910,39 @@ dependencies = [ "sp-storage", ] +[[package]] +name = "frame-benchmarking-cli" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "Inflector", + "chrono", + "frame-benchmarking", + "handlebars", + "parity-scale-codec", + "sc-cli", + "sc-client-db", + "sc-executor", + "sc-service", + "serde", + "sp-core", + "sp-externalities", + "sp-keystore", + "sp-runtime", + "sp-state-machine", + "structopt", +] + [[package]] name = "frame-executive" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", "serde", + "sp-core", "sp-io", "sp-runtime", "sp-std", @@ -1692,8 +1951,8 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "11.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "12.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "parity-scale-codec", "serde", @@ -1703,19 +1962,19 @@ dependencies = [ [[package]] name = "frame-support" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "bitmask", + "bitflags", "frame-metadata", "frame-support-procedural", - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", "log", - "once_cell 1.4.1", + "once_cell", "parity-scale-codec", "paste", "serde", - "smallvec 1.4.2", + "smallvec 1.6.1", "sp-arithmetic", "sp-core", "sp-inherents", @@ -1728,44 +1987,45 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ + "Inflector", "frame-support-procedural-tools", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "frame-support-procedural-tools" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "frame-system" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-support", - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", "parity-scale-codec", "serde", "sp-core", @@ -1777,8 +2037,8 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "parity-scale-codec", "sp-api", @@ -1786,9 +2046,9 @@ dependencies = [ [[package]] name = "fs-swap" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "921d332c89b3b61a826de38c61ee5b6e02c56806cade1b0e5d81bd71f57a71bb" +checksum = "5839fda247e24ca4919c87c71dd5ca658f1f39e4f06829f80e3f15c3bafcfc2c" dependencies = [ "lazy_static", "libc", @@ -1826,9 +2086,9 @@ checksum = "4c7e4c2612746b0df8fed4ce0c69156021b704c9aefa360311c04e6e9e002eed" [[package]] name = "futures" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d8e3078b7b2a8a671cb7a3d17b4760e4181ea243227776ba83fd043b4ca034e" +checksum = "c70be434c505aee38639abccb918163b63158a4b4bb791b45b7023044bdc3c9c" dependencies = [ "futures-channel", "futures-core", @@ -1841,34 +2101,19 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a4d35f7401e948629c9c3d6638fb9bf94e0b2121e96c3b428cc4e631f3eb74" +checksum = "f01c61843314e95f96cc9245702248733a3a3d744e43e2e755e3c7af8348a0a9" dependencies = [ "futures-core", "futures-sink", ] -[[package]] -name = "futures-channel-preview" -version = "0.3.0-alpha.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5e5f4df964fa9c1c2f8bddeb5c3611631cacd93baf810fc8bb2fb4b495c263a" -dependencies = [ - "futures-core-preview", -] - [[package]] name = "futures-core" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d674eaa0056896d5ada519900dbf97ead2e46a7b6621e8160d79e2f2e1e2784b" - -[[package]] -name = "futures-core-preview" -version = "0.3.0-alpha.19" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a" +checksum = "db8d3b0917ff63a2a96173133c02818fac4a746b0a57569d3baca9ec0e945e08" [[package]] name = "futures-cpupool" @@ -1887,20 +2132,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9" dependencies = [ "futures 0.1.30", - "futures 0.3.6", + "futures 0.3.9", "lazy_static", "log", "parking_lot 0.9.0", - "pin-project", + "pin-project 0.4.27", "serde", "serde_json", ] [[package]] name = "futures-executor" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc709ca1da6f66143b8c9bec8e6260181869893714e9b5a490b169b0414144ab" +checksum = "9ee9ca2f7eb4475772cf39dd1cd06208dce2670ad38f4d9c7262b3e15f127068" dependencies = [ "futures-core", "futures-task", @@ -1910,50 +2155,50 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc94b64bb39543b4e432f1790b6bf18e3ee3b74653c5449f63310e9a74b123c" +checksum = "e37c1a51b037b80922864b8eed90692c5cd8abd4c71ce49b77146caa47f3253b" [[package]] name = "futures-lite" -version = "1.11.1" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "381a7ad57b1bad34693f63f6f377e1abded7a9c85c9d3eb6771e11c60aaadab9" +checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb" dependencies = [ "fastrand", "futures-core", "futures-io", "memchr", "parking", - "pin-project-lite", + "pin-project-lite 0.2.4", "waker-fn", ] [[package]] name = "futures-macro" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f57ed14da4603b2554682e9f2ff3c65d7567b53188db96cb71538217fc64581b" +checksum = "0f8719ca0e1f3c5e34f3efe4570ef2c0610ca6da85ae7990d472e9cbfba13664" dependencies = [ "proc-macro-hack", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "futures-sink" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8764258ed64ebc5d9ed185cf86a95db5cac810269c5d20ececb32e0088abbd" +checksum = "f6adabac1290109cfa089f79192fb6244ad2c3f1cc2281f3e1dd987592b71feb" [[package]] name = "futures-task" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd26820a9f3637f1302da8bceba3ff33adbe53464b54ca24d4e2d4f1db30f94" +checksum = "a92a0843a2ff66823a8f7c77bffe9a09be2b64e533562c412d63075643ec0038" dependencies = [ - "once_cell 1.4.1", + "once_cell", ] [[package]] @@ -1970,9 +2215,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a894a0acddba51a2d49a6f4263b1e64b8c579ece8af50fa86503d52cd1eea34" +checksum = "036a2107cdeb57f6d7322f1b6c363dad67cd63ca3b7d1b925bdf75bd5d96cda9" dependencies = [ "futures 0.1.30", "futures-channel", @@ -1982,25 +2227,13 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project", + "pin-project-lite 0.2.4", "pin-utils", "proc-macro-hack", "proc-macro-nested", "slab", ] -[[package]] -name = "futures-util-preview" -version = "0.3.0-alpha.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce968633c17e5f97936bd2797b6e38fb56cf16a7422319f7ec2e30d3c470e8d" -dependencies = [ - "futures-channel-preview", - "futures-core-preview", - "pin-utils", - "slab", -] - [[package]] name = "futures_codec" version = "0.4.1" @@ -2008,9 +2241,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce54d63f8b0c75023ed920d46fd71d0cbbb830b0ee012726b5b4f506fb6dea5b" dependencies = [ "bytes 0.5.6", - "futures 0.3.6", + "futures 0.3.9", "memchr", - "pin-project", + "pin-project 0.4.27", ] [[package]] @@ -2030,64 +2263,54 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.4" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +checksum = "0ed1e761351b56f54eb9dcd0cfaca9fd0daecf93918e1cfc01c8a3d26ee7adcd" dependencies = [ "typenum", - "version_check", -] - -[[package]] -name = "get_if_addrs" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abddb55a898d32925f3148bd281174a68eeb68bbfd9a5938a57b18f506ee4ef7" -dependencies = [ - "c_linked_list", - "get_if_addrs-sys", - "libc", - "winapi 0.2.8", ] [[package]] -name = "get_if_addrs-sys" -version = "0.1.1" +name = "generic-array" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04f9fb746cf36b191c00f3ede8bde9c8e64f9f4b05ae2694a9ccf5e3f5ab48" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" dependencies = [ - "gcc", - "libc", + "typenum", + "version_check", ] [[package]] name = "getrandom" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi 0.9.0+wasi-snapshot-preview1", ] [[package]] name = "getrandom" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4" +checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", + "js-sys", "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "wasi 0.10.1+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] name = "ghash" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6e27f0689a6e15944bdce7e45425efb87eaa8ab0c6e87f11d0987a9133e2531" +checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" dependencies = [ + "opaque-debug 0.3.0", "polyval", ] @@ -2104,9 +2327,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724" +checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" [[package]] name = "glob" @@ -2116,9 +2339,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "globset" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad1da430bd7281dde2576f44c84cc3f0f7b475e7202cd503042dff01a8c8120" +checksum = "c152169ef1e421390738366d2f796655fec62621dabbd0fd476f905934061e4a" dependencies = [ "aho-corasick", "bstr", @@ -2146,7 +2369,7 @@ version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462" dependencies = [ - "byteorder 1.3.4", + "byteorder", "bytes 0.4.12", "fnv", "futures 0.1.30", @@ -2160,21 +2383,36 @@ dependencies = [ [[package]] name = "h2" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53" +checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" dependencies = [ "bytes 0.5.6", "fnv", "futures-core", "futures-sink", "futures-util", - "http 0.2.1", + "http 0.2.3", "indexmap", "slab", - "tokio 0.2.22", + "tokio 0.2.24", "tokio-util", "tracing", + "tracing-futures", +] + +[[package]] +name = "handlebars" +version = "3.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "964d0e99a61fe9b1b347389b77ebf8b7e1587b70293676aaca7d27e59b9073b2" +dependencies = [ + "log", + "pest", + "pest_derive", + "quick-error 2.0.0", + "serde", + "serde_json", ] [[package]] @@ -2192,47 +2430,20 @@ dependencies = [ "crunchy", ] -[[package]] -name = "hashbrown" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bae29b6653b3412c2e71e9d486db9f9df5d701941d86683005efb9f2d28e3da" -dependencies = [ - "byteorder 1.3.4", - "scopeguard 0.3.3", -] - -[[package]] -name = "hashbrown" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" -dependencies = [ - "ahash 0.2.19", - "autocfg 0.1.7", -] - -[[package]] -name = "hashbrown" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" -dependencies = [ - "ahash 0.3.8", - "autocfg 1.0.1", -] - [[package]] name = "hashbrown" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +dependencies = [ + "ahash", +] [[package]] name = "heck" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" +checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" dependencies = [ "unicode-segmentation", ] @@ -2252,16 +2463,6 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" -[[package]] -name = "hex-literal" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "961de220ec9a91af2e1e5bd80d02109155695e516771762381ef8581317066e0" -dependencies = [ - "hex-literal-impl", - "proc-macro-hack", -] - [[package]] name = "hex-literal" version = "0.3.1" @@ -2269,13 +2470,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5af1f635ef1bc545d78392b136bfe1c9809e029023c84a3638a864a10b8819c8" [[package]] -name = "hex-literal-impl" -version = "0.2.2" +name = "hex_fmt" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "853f769599eb31de176303197b7ba4973299c38c7a7604a6bc88c3eef05b9b46" -dependencies = [ - "proc-macro-hack", -] +checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" [[package]] name = "hmac" @@ -2287,6 +2485,16 @@ dependencies = [ "digest 0.8.1", ] +[[package]] +name = "hmac" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +dependencies = [ + "crypto-mac 0.8.0", + "digest 0.9.0", +] + [[package]] name = "hmac-drbg" version = "0.2.0" @@ -2295,7 +2503,7 @@ checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b" dependencies = [ "digest 0.8.1", "generic-array 0.12.3", - "hmac", + "hmac 0.7.1", ] [[package]] @@ -2311,11 +2519,11 @@ dependencies = [ [[package]] name = "http" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" +checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747" dependencies = [ - "bytes 0.5.6", + "bytes 1.0.1", "fnv", "itoa", ] @@ -2339,7 +2547,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" dependencies = [ "bytes 0.5.6", - "http 0.2.1", + "http 0.2.3", ] [[package]] @@ -2360,7 +2568,7 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" dependencies = [ - "quick-error", + "quick-error 1.2.3", ] [[package]] @@ -2384,7 +2592,7 @@ dependencies = [ "time", "tokio 0.1.22", "tokio-buf", - "tokio-executor 0.1.10", + "tokio-executor", "tokio-io", "tokio-reactor", "tokio-tcp", @@ -2395,23 +2603,23 @@ dependencies = [ [[package]] name = "hyper" -version = "0.13.8" +version = "0.13.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f3afcfae8af5ad0576a31e768415edb627824129e8e5a29b8bfccb2f234e835" +checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf" dependencies = [ "bytes 0.5.6", "futures-channel", "futures-core", "futures-util", - "h2 0.2.6", - "http 0.2.1", + "h2 0.2.7", + "http 0.2.3", "http-body 0.3.1", "httparse", "httpdate", "itoa", - "pin-project", + "pin-project 1.0.4", "socket2", - "tokio 0.2.22", + "tokio 0.2.24", "tower-service", "tracing", "want 0.3.0", @@ -2426,11 +2634,11 @@ dependencies = [ "bytes 0.5.6", "ct-logs", "futures-util", - "hyper 0.13.8", + "hyper 0.13.9", "log", - "rustls", + "rustls 0.18.1", "rustls-native-certs", - "tokio 0.2.22", + "tokio 0.2.24", "tokio-rustls", "webpki", ] @@ -2457,6 +2665,43 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "if-addrs" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48" +dependencies = [ + "if-addrs-sys", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "if-addrs-sys" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "if-watch" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d7c5e361e6b05c882b4847dd98992534cebc6fcde7f4bc98225bcf10fd6d0d" +dependencies = [ + "async-io", + "futures 0.3.9", + "futures-lite", + "if-addrs", + "ipnet", + "libc", + "log", + "winapi 0.3.9", +] + [[package]] name = "impl-codec" version = "0.4.2" @@ -2468,69 +2713,77 @@ dependencies = [ [[package]] name = "impl-rlp" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f7a72f11830b52333f36e3b09a288333888bf54380fd0ac0790a3c31ab0f3c5" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" dependencies = [ "rlp", ] [[package]] name = "impl-serde" -version = "0.2.3" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58e3cae7e99c7ff5a995da2cf78dd0a5383740eda71d98cf7b1910c301ac69b8" +checksum = "b47ca4d2b6931707a55fce5cf66aff80e2178c8b63bbb4ecb5695cbc870ddf6f" dependencies = [ "serde", ] [[package]] -name = "impl-serde" -version = "0.3.1" +name = "impl-trait-for-tuples" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b47ca4d2b6931707a55fce5cf66aff80e2178c8b63bbb4ecb5695cbc870ddf6f" +checksum = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d" dependencies = [ - "serde", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "impl-trait-for-tuples" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d" +checksum = "6f65a8ecf74feeacdab8d38cb129e550ca871cccaa7d1921d8636ecd75534903" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "indexmap" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2" +checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b" dependencies = [ - "autocfg 1.0.1", - "hashbrown 0.9.1", + "autocfg", + "hashbrown", "serde", ] [[package]] name = "instant" -version = "0.1.7" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63312a18f7ea8760cdd0a7c5aac1a619752a246b833545e3e36d1f81f7cd9e66" +checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] +[[package]] +name = "integer-encoding" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6104619c35f8835695e517cfb80fb7142139ee4b53f4d0fa4c8dca6e98fbc66" + [[package]] name = "integer-sqrt" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" dependencies = [ - "num-traits", + "num-traits 0.2.14", ] [[package]] @@ -2539,7 +2792,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "futures-timer 2.0.2", ] @@ -2584,9 +2837,9 @@ dependencies = [ [[package]] name = "itoa" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" +checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" [[package]] name = "jobserver" @@ -2599,23 +2852,23 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.45" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca059e81d9486668f12d455a4ea6daa600bd408134cd17e3d3fb5a32d1f016f8" +checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpc-client-transports" -version = "14.2.1" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2773fa94a2a1fd51efb89a8f45b8861023dbb415d18d3c9235ae9388d780f9ec" +checksum = "489b9c612e60c766f751ab40fcb43cbb55a1e10bb44a9b4307ed510ca598cbd7" dependencies = [ "failure", "futures 0.1.30", - "jsonrpc-core", - "jsonrpc-pubsub", + "jsonrpc-core 15.1.0", + "jsonrpc-pubsub 15.1.0", "log", "serde", "serde_json", @@ -2635,35 +2888,48 @@ dependencies = [ "serde_json", ] +[[package]] +name = "jsonrpc-core" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0745a6379e3edc893c84ec203589790774e4247420033e71a76d3ab4687991fa" +dependencies = [ + "futures 0.1.30", + "log", + "serde", + "serde_derive", + "serde_json", +] + [[package]] name = "jsonrpc-core-client" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34221123bc79b66279a3fde2d3363553835b43092d629b34f2e760c44dc94713" +checksum = "6f764902d7b891344a0acb65625f32f6f7c6db006952143bd650209fbe7d94db" dependencies = [ "jsonrpc-client-transports", ] [[package]] name = "jsonrpc-derive" -version = "14.2.2" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0e77e8812f02155b85a677a96e1d16b60181950c0636199bc4528524fba98dc" +checksum = "99a847f9ec7bb52149b2786a17c9cb260d6effc6b8eeb8c16b343a487a7563a3" dependencies = [ "proc-macro-crate", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "jsonrpc-http-server" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da906d682799df05754480dac1b9e70ec92e12c19ebafd2662a5ea1c9fd6522" +checksum = "4fb5c4513b7b542f42da107942b7b759f27120b5cc894729f88254b28dff44b7" dependencies = [ "hyper 0.12.35", - "jsonrpc-core", + "jsonrpc-core 15.1.0", "jsonrpc-server-utils", "log", "net2", @@ -2673,11 +2939,11 @@ dependencies = [ [[package]] name = "jsonrpc-ipc-server" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dedccd693325d833963b549e959137f30a7a0ea650cde92feda81dc0c1393cb5" +checksum = "cf50e53e4eea8f421a7316c5f63e395f7bc7c4e786a6dc54d76fab6ff7aa7ce7" dependencies = [ - "jsonrpc-core", + "jsonrpc-core 15.1.0", "jsonrpc-server-utils", "log", "parity-tokio-ipc", @@ -2691,7 +2957,20 @@ version = "14.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d44f5602a11d657946aac09357956d2841299ed422035edf140c552cb057986" dependencies = [ - "jsonrpc-core", + "jsonrpc-core 14.2.0", + "log", + "parking_lot 0.10.2", + "rand 0.7.3", + "serde", +] + +[[package]] +name = "jsonrpc-pubsub" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "639558e0604013be9787ae52f798506ae42bf4220fe587bdc5625871cc8b9c77" +dependencies = [ + "jsonrpc-core 15.1.0", "log", "parking_lot 0.10.2", "rand 0.7.3", @@ -2700,13 +2979,13 @@ dependencies = [ [[package]] name = "jsonrpc-server-utils" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56cbfb462e7f902e21121d9f0d1c2b77b2c5b642e1a4e8f4ebfa2e15b94402bb" +checksum = "72f1f3990650c033bd8f6bd46deac76d990f9bbfb5f8dc8c4767bf0a00392176" dependencies = [ "bytes 0.4.12", "globset", - "jsonrpc-core", + "jsonrpc-core 15.1.0", "lazy_static", "log", "tokio 0.1.22", @@ -2716,16 +2995,16 @@ dependencies = [ [[package]] name = "jsonrpc-ws-server" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "903d3109fe7c4acb932b567e1e607e0f524ed04741b09fb0e61841bc40a022fc" +checksum = "6596fe75209b73a2a75ebe1dce4e60e03b88a2b25e8807b667597f6315150d22" dependencies = [ - "jsonrpc-core", + "jsonrpc-core 15.1.0", "jsonrpc-server-utils", "log", + "parity-ws", "parking_lot 0.10.2", "slab", - "ws", ] [[package]] @@ -2744,6 +3023,73 @@ dependencies = [ "winapi-build", ] +[[package]] +name = "kusama-runtime" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "bitvec", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-bounties", + "pallet-collective", + "pallet-democracy", + "pallet-elections-phragmen", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-proxy", + "pallet-randomness-collective-flip", + "pallet-recovery", + "pallet-scheduler", + "pallet-session", + "pallet-society", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-timestamp", + "pallet-tips", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-common", + "rustc-hex", + "serde", + "serde_derive", + "smallvec 1.6.1", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "static_assertions", + "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "kv-log-macro" version = "1.0.7" @@ -2755,30 +3101,30 @@ dependencies = [ [[package]] name = "kvdb" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0315ef2f688e33844400b31f11c263f2b3dc21d8b9355c6891c5f185fae43f9a" +checksum = "92312348daade49976a6dc59263ad39ed54f840aacb5664874f7c9aa16e5f848" dependencies = [ "parity-util-mem", - "smallvec 1.4.2", + "smallvec 1.6.1", ] [[package]] name = "kvdb-memorydb" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73de822b260a3bdfb889dbbb65bb2d473eee2253973d6fa4a5d149a2a4a7c66e" +checksum = "986052a8d16c692eaebe775391f9a3ac26714f3907132658500b601dec94c8c2" dependencies = [ "kvdb", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", ] [[package]] name = "kvdb-rocksdb" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44947dd392f09475af614d740fe0320b66d01cb5b977f664bbbb5e45a70ea4c1" +checksum = "8d92c36be64baba5ea549116ff0d7ffd445456a7be8aaee21ec05882b980cd11" dependencies = [ "fs-swap", "kvdb", @@ -2786,10 +3132,10 @@ dependencies = [ "num_cpus", "owning_ref", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "regex", "rocksdb", - "smallvec 1.4.2", + "smallvec 1.6.1", ] [[package]] @@ -2812,9 +3158,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.79" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743" +checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929" [[package]] name = "libloading" @@ -2834,12 +3180,13 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" [[package]] name = "libp2p" -version = "0.22.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0306a49ee6a89468f96089906f36b0eef82c988dcfc8acf3e2dcd6ad1c859f85" +checksum = "2e17c636b5fe5ff900ccc2840b643074bfac321551d821243a781d0d46f06588" dependencies = [ + "atomic", "bytes 0.5.6", - "futures 0.3.6", + "futures 0.3.9", "lazy_static", "libp2p-core", "libp2p-core-derive", @@ -2851,70 +3198,36 @@ dependencies = [ "libp2p-kad", "libp2p-mdns", "libp2p-mplex", - "libp2p-noise 0.21.0", + "libp2p-noise", "libp2p-ping", "libp2p-plaintext", "libp2p-pnet", "libp2p-request-response", - "libp2p-secio", "libp2p-swarm", "libp2p-tcp", "libp2p-uds", "libp2p-wasm-ext", "libp2p-websocket", "libp2p-yamux", - "multihash", - "parity-multiaddr", - "parking_lot 0.10.2", - "pin-project", - "smallvec 1.4.2", - "wasm-timer", -] - -[[package]] -name = "libp2p" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1ebb6c031584a5af181fe3a1e4b074af5d0b1a3b31663200f0251f4bcff6b5c" -dependencies = [ - "atomic", - "bytes 0.5.6", - "futures 0.3.6", - "lazy_static", - "libp2p-core", - "libp2p-core-derive", - "libp2p-dns", - "libp2p-identify", - "libp2p-kad", - "libp2p-mdns", - "libp2p-mplex", - "libp2p-noise 0.22.0", - "libp2p-ping", - "libp2p-swarm", - "libp2p-tcp", - "libp2p-wasm-ext", - "libp2p-websocket", - "libp2p-yamux", - "multihash", "parity-multiaddr", - "parking_lot 0.10.2", - "pin-project", - "smallvec 1.4.2", + "parking_lot 0.11.1", + "pin-project 1.0.4", + "smallvec 1.6.1", "wasm-timer", ] [[package]] name = "libp2p-core" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a694fd76d7c33a45a0e6e1525e9b9b5d11127c9c94e560ac0f8abba54ed80af" +checksum = "e1cb706da14c064dce54d8864ade6836b3486b51689300da74eeb7053aa4551e" dependencies = [ "asn1_der", "bs58", "ed25519-dalek", "either", "fnv", - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", "lazy_static", "libsecp256k1", @@ -2922,227 +3235,207 @@ dependencies = [ "multihash", "multistream-select", "parity-multiaddr", - "parking_lot 0.10.2", - "pin-project", + "parking_lot 0.11.1", + "pin-project 1.0.4", "prost", "prost-build", "rand 0.7.3", "ring", "rw-stream-sink", - "sha2 0.8.2", - "smallvec 1.4.2", + "sha2 0.9.2", + "smallvec 1.6.1", "thiserror", - "unsigned-varint 0.4.0", + "unsigned-varint", "void", "zeroize", ] [[package]] name = "libp2p-core-derive" -version = "0.20.2" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f753d9324cd3ec14bf04b8a8cd0d269c87f294153d6bf2a84497a63a5ad22213" +checksum = "f4bc40943156e42138d22ed3c57ff0e1a147237742715937622a99b10fbe0156" dependencies = [ - "quote", - "syn", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "libp2p-deflate" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abeff37fa533fead23fc71b14ed0a2aced36c0c65c3d0078aff07821fb71029e" +checksum = "e3257a41f376aa23f237231971fee7e350e4d8353cfcf233aef34d6d6b638f0c" dependencies = [ "flate2", - "futures 0.3.6", + "futures 0.3.9", "libp2p-core", ] [[package]] name = "libp2p-dns" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751924b6b98e350005e0b87a822beb246792a3fb878c684e088f866158120ac" +checksum = "2e09bab25af01326b4ed9486d31325911437448edda30bc57681502542d49f20" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "libp2p-core", "log", ] [[package]] name = "libp2p-floodsub" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d4f310a02441b681075037ffb41649ee8836619559311b801ef3d5cdbe14cf" +checksum = "6fd8cdd5ef1dd0b7346975477216d752de976b92e43051bc8bd808c372ea6cec" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.6", + "futures 0.3.9", "libp2p-core", "libp2p-swarm", + "log", "prost", "prost-build", "rand 0.7.3", - "smallvec 1.4.2", + "smallvec 1.6.1", ] [[package]] name = "libp2p-gossipsub" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a70f76b6c53ae9c97c234498c799802e43f91766bcf4a2a1f94f9339617d713b" +checksum = "d489531aa9d4ba8726a08b3b74e21c2e10a518ad266ebca98d79040123ab0036" dependencies = [ - "base64 0.11.0", - "byteorder 1.3.4", + "base64 0.13.0", + "byteorder", "bytes 0.5.6", "fnv", - "futures 0.3.6", + "futures 0.3.9", "futures_codec", + "hex_fmt", "libp2p-core", "libp2p-swarm", "log", - "lru", + "lru_time_cache", "prost", "prost-build", "rand 0.7.3", - "sha2 0.8.2", - "smallvec 1.4.2", - "unsigned-varint 0.4.0", + "sha2 0.9.2", + "smallvec 1.6.1", + "unsigned-varint", "wasm-timer", ] [[package]] name = "libp2p-identify" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "912c00a7bf67e0e765daf0cc37e08f675ea26aba3d6d1fbfaee81f19a4c23049" +checksum = "c43bc51a9bc3780288c526615ba0f5f8216820ea6dcc02b89e8daee526c5fccb" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "libp2p-core", "libp2p-swarm", "log", "prost", "prost-build", - "smallvec 1.4.2", + "smallvec 1.6.1", "wasm-timer", ] [[package]] name = "libp2p-kad" -version = "0.21.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44ed3a4c8111c570ab2bffb30c6353178d7603ce3787e3c5f2493c8d3d16d1f0" +checksum = "bfe68563ee33f3848293919afd61470ebcdea4e757a36cc2c33a5508abec2216" dependencies = [ - "arrayvec 0.5.1", + "arrayvec 0.5.2", "bytes 0.5.6", "either", "fnv", - "futures 0.3.6", + "futures 0.3.9", "futures_codec", "libp2p-core", "libp2p-swarm", "log", - "multihash", "prost", "prost-build", "rand 0.7.3", - "sha2 0.8.2", - "smallvec 1.4.2", - "uint", - "unsigned-varint 0.4.0", + "sha2 0.9.2", + "smallvec 1.6.1", + "uint 0.8.5", + "unsigned-varint", "void", "wasm-timer", ] [[package]] name = "libp2p-mdns" -version = "0.20.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd004c668160fd922f7268b2cd1e4550ff69165d9c744e9eb5770086eb753d02" +checksum = "8a9e12688e8f14008c950c1efde587cb44dbf316fa805f419cd4e524991236f5" dependencies = [ - "async-std", + "async-io", "data-encoding", "dns-parser", - "either", - "futures 0.3.6", + "futures 0.3.9", + "if-watch", "lazy_static", "libp2p-core", "libp2p-swarm", "log", - "net2", "rand 0.7.3", - "smallvec 1.4.2", + "smallvec 1.6.1", + "socket2", "void", - "wasm-timer", ] [[package]] name = "libp2p-mplex" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14ae0ffacd30f073f96cd518b2c9cd2cb18ac27c3d136a4b23cf1af99f33e541" +checksum = "ce3200fbe6608e623bd9efa459cc8bafa0e4efbb0a2dfcdd0e1387ff4181264b" dependencies = [ "bytes 0.5.6", - "fnv", - "futures 0.3.6", + "futures 0.3.9", "futures_codec", "libp2p-core", "log", - "parking_lot 0.10.2", - "unsigned-varint 0.4.0", -] - -[[package]] -name = "libp2p-noise" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f353f8966bbaaf7456535fffd3f366f153148773a0cf04b2ec3860955cb720e" -dependencies = [ - "bytes 0.5.6", - "curve25519-dalek 2.1.0", - "futures 0.3.6", - "lazy_static", - "libp2p-core", - "log", - "prost", - "prost-build", + "nohash-hasher", + "parking_lot 0.11.1", "rand 0.7.3", - "sha2 0.8.2", - "snow", - "static_assertions", - "x25519-dalek 0.6.0", - "zeroize", + "smallvec 1.6.1", + "unsigned-varint", ] [[package]] name = "libp2p-noise" -version = "0.22.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e594f2de0c23c2b7ad14802c991a2e68e95315c6a6c7715e53801506f20135d" +checksum = "0580e0d18019d254c9c349c03ff7b22e564b6f2ada70c045fc39738e144f2139" dependencies = [ "bytes 0.5.6", - "curve25519-dalek 2.1.0", - "futures 0.3.6", + "curve25519-dalek 3.0.2", + "futures 0.3.9", "lazy_static", "libp2p-core", "log", "prost", "prost-build", "rand 0.7.3", - "sha2 0.8.2", + "sha2 0.9.2", "snow", "static_assertions", - "x25519-dalek 0.6.0", + "x25519-dalek", "zeroize", ] [[package]] name = "libp2p-ping" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70130cf130e4ba6dc177366e72dd9f86f9e3588fa1a0c4145247e676f16affad" +checksum = "50b2ec86a18cbf09d7df440e7786a2409640c774e476e9a3b4d031382c3d7588" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "libp2p-core", "libp2p-swarm", "log", @@ -3153,105 +3446,81 @@ dependencies = [ [[package]] name = "libp2p-plaintext" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53f0308a97f6fdd37a2bc388070e471c3ce9d92aa45c99d75c87c2dc5d5cac96" +checksum = "6a7b1bdcbe46a3a2159c231601ed29645282653c0a96ce3a2ad8352c9fbe6800" dependencies = [ "bytes 0.5.6", - "futures 0.3.6", + "futures 0.3.9", "futures_codec", "libp2p-core", "log", "prost", "prost-build", - "rw-stream-sink", - "unsigned-varint 0.4.0", + "unsigned-varint", "void", ] [[package]] name = "libp2p-pnet" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d0db10e139d22d7af0b23ed7949449ec86262798aa0fd01595abdbcb02dc87" +checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "log", - "pin-project", + "pin-project 1.0.4", "rand 0.7.3", "salsa20", - "sha3 0.8.2", + "sha3 0.9.1", ] [[package]] name = "libp2p-request-response" -version = "0.1.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f48682b48a96545a323edd150c1d64fc1e250240bba02866e9f902e3dc032a9" +checksum = "620e2950decbf77554b5aed3824f7d0e2c04923f28c70f9bff1a402c47ef6b1e" dependencies = [ "async-trait", - "futures 0.3.6", + "bytes 0.5.6", + "futures 0.3.9", "libp2p-core", "libp2p-swarm", - "smallvec 1.4.2", - "wasm-timer", -] - -[[package]] -name = "libp2p-secio" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ff43513c383f7cdab2736eb98465fc4c5dd5d1988df89749dc8a68950349d56" -dependencies = [ - "aes-ctr", - "ctr", - "futures 0.3.6", - "hmac", - "js-sys", - "lazy_static", - "libp2p-core", "log", - "parity-send-wrapper", - "pin-project", - "prost", - "prost-build", - "quicksink", + "lru", + "minicbor", "rand 0.7.3", - "ring", - "rw-stream-sink", - "sha2 0.8.2", - "static_assertions", - "twofish", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", + "smallvec 1.6.1", + "unsigned-varint", + "wasm-timer", ] [[package]] name = "libp2p-swarm" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88d5e2a090a2aadf042cd33484e2f015c6dab212567406a59deece5dedbd133" +checksum = "fdf5894ee1ee63a38aa58d58a16e3dcf7ede6b59ea7b22302c00c1a41d7aec41" dependencies = [ - "futures 0.3.6", + "either", + "futures 0.3.9", "libp2p-core", "log", "rand 0.7.3", - "smallvec 1.4.2", + "smallvec 1.6.1", "void", "wasm-timer", ] [[package]] name = "libp2p-tcp" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1fa2bbad054020cb875546a577a66a65a5bf42eff55ed5265f92ffee3cc052" +checksum = "1d2113a7dab2b502c55fe290910cd7399a2aa04fe70a2f5a415a87a1db600c0e" dependencies = [ "async-std", - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", - "get_if_addrs", + "if-addrs", "ipnet", "libp2p-core", "log", @@ -3260,23 +3529,23 @@ dependencies = [ [[package]] name = "libp2p-uds" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9db9fce9e3588c3118475d9ca761c5c133b639a624a7341e2a61e4b28c376b8" +checksum = "af05fe92c2a3aa320bc82a308ddb7b33bef3b060154c5a4b9fb0b01f15385fc0" dependencies = [ "async-std", - "futures 0.3.6", + "futures 0.3.9", "libp2p-core", "log", ] [[package]] name = "libp2p-wasm-ext" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0feb99e32fea20ffb1bbf56a6fb2614bff7325ff44a515728385170b3420d2c3" +checksum = "37cd44ea05a4523f40183f60ab6e6a80e400a5ddfc98b0df1c55edeb85576cd9" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -3286,33 +3555,33 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.21.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046a5201f6e471f22b22b394e4d084269ed1e28cf7300f7b49874385db84c7bd" +checksum = "270c80528e21089ea25b41dd1ab8fd834bdf093ebee422fed3b68699a857a083" dependencies = [ "async-tls", "either", - "futures 0.3.6", + "futures 0.3.9", "libp2p-core", "log", "quicksink", - "rustls", + "rustls 0.19.0", "rw-stream-sink", "soketto", - "url 2.1.1", + "url 2.2.0", "webpki", - "webpki-roots 0.18.0", + "webpki-roots", ] [[package]] name = "libp2p-yamux" -version = "0.20.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ae9bf2f7d8a4be9c7e9b61df9de9dc1bd66419d669098f22f81f8d9571029a" +checksum = "36799de9092c35782f080032eddbc8de870f94a0def87cf9f8883efccd5cacf0" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "libp2p-core", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "thiserror", "yamux", ] @@ -3341,7 +3610,7 @@ dependencies = [ "hmac-drbg", "rand 0.7.3", "sha2 0.8.2", - "subtle 2.3.0", + "subtle 2.4.0", "typenum", ] @@ -3358,9 +3627,9 @@ dependencies = [ [[package]] name = "linked-hash-map" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a" +checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" [[package]] name = "linked_hash_set" @@ -3373,60 +3642,56 @@ dependencies = [ [[package]] name = "linregress" -version = "0.1.7" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9290cf6f928576eeb9c096c6fad9d8d452a0a1a70a2bbffa6e36064eedc0aac9" +checksum = "0d0ad4b5cc8385a881c561fac3501353d63d2a2b7a357b5064d71815c9a92724" dependencies = [ - "failure", "nalgebra", "statrs", ] -[[package]] -name = "lock_api" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" -dependencies = [ - "scopeguard 0.3.3", -] - [[package]] name = "lock_api" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" dependencies = [ - "scopeguard 1.1.0", + "scopeguard", ] [[package]] name = "lock_api" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c" +checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" dependencies = [ - "scopeguard 1.1.0", + "scopeguard", ] [[package]] name = "log" -version = "0.4.11" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +checksum = "fcf3805d4480bb5b86070dcfeb9e2cb2ebc148adb753c5cca5f884d1d65a42b2" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", ] [[package]] name = "lru" -version = "0.4.3" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0609345ddee5badacf857d4f547e0e5a2e987db77085c24cd887f73573a04237" +checksum = "3aae342b73d57ad0b8b364bd12584819f2c1fe9114285dfcf8b0722607671635" dependencies = [ - "hashbrown 0.6.3", + "hashbrown", ] +[[package]] +name = "lru_time_cache" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cc2beb26938dfd9988fc368548b70bcdfaf955f55aa788e1682198de794a451" + [[package]] name = "mach" version = "0.3.2" @@ -3436,6 +3701,12 @@ dependencies = [ "libc", ] +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + [[package]] name = "matchers" version = "0.0.1" @@ -3453,9 +3724,9 @@ checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" [[package]] name = "matrixmultiply" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f" +checksum = "916806ba0031cd542105d916a97c8572e1fa6dd79c9c51e7eb43a09ec2dd84c1" dependencies = [ "rawpointer", ] @@ -3468,9 +3739,9 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "memchr" -version = "2.3.3" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" +checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" [[package]] name = "memmap" @@ -3488,17 +3759,26 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" dependencies = [ - "autocfg 1.0.1", + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87" +dependencies = [ + "autocfg", ] [[package]] name = "memory-db" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f36ddb0b2cdc25d38babba472108798e3477f02be5165f038c5e393e50c57a" +checksum = "6cbd2a22f201c03cc1706a727842490abfea17b7b53260358239828208daba3c" dependencies = [ "hash-db", - "hashbrown 0.8.2", + "hashbrown", "parity-util-mem", ] @@ -3508,18 +3788,58 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" +[[package]] +name = "memrange" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc29ba65898edc4fdc252cb31cd3925f37c1a8ba25bb46eec883569984976530" +dependencies = [ + "rustc-serialize", +] + [[package]] name = "merlin" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6feca46f4fa3443a01769d768727f10c10a20fdb65e52dc16a81f0c8269bb78" dependencies = [ - "byteorder 1.3.4", + "byteorder", "keccak", "rand_core 0.5.1", "zeroize", ] +[[package]] +name = "mick-jaeger" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df" +dependencies = [ + "futures 0.3.9", + "rand 0.7.3", + "thrift", +] + +[[package]] +name = "minicbor" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0164190d1771b1458c3742075b057ed55d25cd9dfb930aade99315a1eb1fe12d" +dependencies = [ + "minicbor-derive", +] + +[[package]] +name = "minicbor-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e071b3159835ee91df62dbdbfdd7ec366b7ea77c838f43aff4acda6b61bcfb9" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + [[package]] name = "miniz_oxide" version = "0.4.3" @@ -3527,23 +3847,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" dependencies = [ "adler", - "autocfg 1.0.1", + "autocfg", ] [[package]] name = "mio" -version = "0.6.22" +version = "0.6.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "fuchsia-zircon", "fuchsia-zircon-sys", "iovec", "kernel32-sys", "libc", "log", - "miow 0.2.1", + "miow 0.2.2", "net2", "slab", "winapi 0.2.8", @@ -3569,7 +3889,7 @@ checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" dependencies = [ "log", "mio", - "miow 0.3.5", + "miow 0.3.6", "winapi 0.3.9", ] @@ -3586,9 +3906,9 @@ dependencies = [ [[package]] name = "miow" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" dependencies = [ "kernel32-sys", "net2", @@ -3598,9 +3918,9 @@ dependencies = [ [[package]] name = "miow" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e" +checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897" dependencies = [ "socket2", "winapi 0.3.9", @@ -3614,17 +3934,29 @@ checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238" [[package]] name = "multihash" -version = "0.11.4" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567122ab6492f49b59def14ecc36e13e64dca4188196dd0cd41f9f3f979f3df6" +checksum = "4dac63698b887d2d929306ea48b63760431ff8a24fac40ddb22f9c7f49fb7cab" dependencies = [ - "blake2b_simd", - "blake2s_simd", "digest 0.9.0", - "sha-1 0.9.1", - "sha2 0.9.1", - "sha3 0.9.1", - "unsigned-varint 0.5.1", + "generic-array 0.14.4", + "multihash-derive", + "sha2 0.9.2", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85ee3c48cb9d9b275ad967a0e96715badc13c6029adb92f34fa17b9ff28fd81f" +dependencies = [ + "proc-macro-crate", + "proc-macro-error", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", + "synstructure", ] [[package]] @@ -3635,32 +3967,33 @@ checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333" [[package]] name = "multistream-select" -version = "0.8.2" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9157e87afbc2ef0d84cc0345423d715f445edde00141c93721c162de35a05e5" +checksum = "dda822043bba2d6da31c4e14041f9794f8fb130a5959289038d0b809d8888614" dependencies = [ "bytes 0.5.6", - "futures 0.3.6", + "futures 0.3.9", "log", - "pin-project", - "smallvec 1.4.2", - "unsigned-varint 0.4.0", + "pin-project 1.0.4", + "smallvec 1.6.1", + "unsigned-varint", ] [[package]] name = "nalgebra" -version = "0.18.1" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2" +checksum = "d6b6147c3d50b4f3cdabfe2ecc94a0191fd3d6ad58aefd9664cf396285883486" dependencies = [ - "alga", "approx", - "generic-array 0.12.3", + "generic-array 0.13.2", "matrixmultiply", "num-complex", "num-rational", - "num-traits", - "rand 0.6.5", + "num-traits 0.2.14", + "rand 0.7.3", + "rand_distr", + "simba", "typenum", ] @@ -3685,24 +4018,25 @@ dependencies = [ [[package]] name = "net2" -version = "0.2.35" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "winapi 0.3.9", ] [[package]] name = "nix" -version = "0.17.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" +checksum = "b7fd5681d13fda646462cfbd4e5f2051279a89a544d50eb98c365b507246839f" dependencies = [ "bitflags", - "cc", - "cfg-if", + "bytes 0.4.12", + "cfg-if 0.1.10", + "gcc", "libc", "void", ] @@ -3735,9 +4069,9 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ - "autocfg 1.0.1", + "autocfg", "num-integer", - "num-traits", + "num-traits 0.2.14", ] [[package]] @@ -3746,18 +4080,18 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" dependencies = [ - "autocfg 1.0.1", - "num-traits", + "autocfg", + "num-traits 0.2.14", ] [[package]] name = "num-integer" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" dependencies = [ - "autocfg 1.0.1", - "num-traits", + "autocfg", + "num-traits 0.2.14", ] [[package]] @@ -3766,19 +4100,28 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" dependencies = [ - "autocfg 1.0.1", + "autocfg", "num-bigint", "num-integer", - "num-traits", + "num-traits 0.2.14", +] + +[[package]] +name = "num-traits" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" +dependencies = [ + "num-traits 0.2.14", ] [[package]] name = "num-traits" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ - "autocfg 1.0.1", + "autocfg", "libm", ] @@ -3810,23 +4153,26 @@ dependencies = [ ] [[package]] -name = "once_cell" -version = "0.1.8" +name = "object" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532c29a261168a45ce28948f9537ddd7a5dd272cc513b3017b1e82a88f962c37" -dependencies = [ - "parking_lot 0.7.1", -] +checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" [[package]] name = "once_cell" -version = "1.4.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad" +checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" dependencies = [ - "parking_lot 0.11.0", + "parking_lot 0.11.1", ] +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + [[package]] name = "opaque-debug" version = "0.2.3" @@ -3845,6 +4191,15 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" +[[package]] +name = "ordered-float" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" +dependencies = [ + "num-traits 0.2.14", +] + [[package]] name = "owning_ref" version = "0.4.1" @@ -3855,32 +4210,29 @@ dependencies = [ ] [[package]] -name = "pallet-aura" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "pallet-authority-discovery" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-support", "frame-system", "pallet-session", - "pallet-timestamp", "parity-scale-codec", "serde", "sp-application-crypto", - "sp-consensus-aura", - "sp-inherents", + "sp-authority-discovery", "sp-runtime", "sp-std", - "sp-timestamp", ] [[package]] name = "pallet-authorship" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-support", "frame-system", - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", "parity-scale-codec", "sp-authorship", "sp-inherents", @@ -3889,559 +4241,1728 @@ dependencies = [ ] [[package]] -name = "pallet-balances" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "pallet-babe" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "pallet-authorship", + "pallet-session", + "pallet-timestamp", "parity-scale-codec", "serde", + "sp-application-crypto", + "sp-consensus-babe", + "sp-consensus-vrf", + "sp-inherents", + "sp-io", "sp-runtime", + "sp-session", + "sp-staking", "sp-std", + "sp-timestamp", ] [[package]] -name = "pallet-bridge" -version = "0.1.1" +name = "pallet-balances" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "artemis-core", + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", - "sp-core", - "sp-io", + "serde", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-finality-tracker" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "pallet-bounties" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-support", "frame-system", - "impl-trait-for-tuples", + "pallet-treasury", "parity-scale-codec", "serde", - "sp-finality-tracker", - "sp-inherents", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-grandpa" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "pallet-bridge" +version = "0.1.1" dependencies = [ - "frame-benchmarking", + "artemis-core", "frame-support", "frame-system", - "pallet-authorship", - "pallet-finality-tracker", - "pallet-session", "parity-scale-codec", - "serde", - "sp-application-crypto", "sp-core", - "sp-finality-grandpa", + "sp-io", "sp-runtime", - "sp-session", - "sp-staking", "sp-std", ] [[package]] -name = "pallet-randomness-collective-flip" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "pallet-collective" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "safe-mix", + "serde", + "sp-core", + "sp-io", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-session" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "pallet-democracy" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", - "impl-trait-for-tuples", - "pallet-timestamp", "parity-scale-codec", "serde", - "sp-core", "sp-io", "sp-runtime", - "sp-session", - "sp-staking", "sp-std", - "sp-trie", ] [[package]] -name = "pallet-sudo" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "pallet-elections-phragmen" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", "serde", - "sp-io", + "sp-npos-elections", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-timestamp" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "pallet-grandpa" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "impl-trait-for-tuples", + "pallet-authorship", + "pallet-session", "parity-scale-codec", "serde", - "sp-inherents", + "sp-application-crypto", + "sp-core", + "sp-finality-grandpa", "sp-runtime", + "sp-session", + "sp-staking", "sp-std", - "sp-timestamp", ] [[package]] -name = "pallet-transaction-payment" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "pallet-identity" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ + "enumflags2", + "frame-benchmarking", "frame-support", "frame-system", - "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "serde", - "smallvec 1.4.2", - "sp-core", "sp-io", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-transaction-payment-rpc" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "pallet-im-online" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "pallet-transaction-payment-rpc-runtime-api", + "frame-support", + "frame-system", + "pallet-authorship", + "pallet-session", "parity-scale-codec", "serde", - "sp-api", - "sp-blockchain", + "sp-application-crypto", "sp-core", - "sp-rpc", + "sp-io", "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] -name = "pallet-transaction-payment-rpc-runtime-api" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "pallet-indices" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-support", + "frame-system", "parity-scale-codec", "serde", - "sp-api", + "sp-core", + "sp-io", + "sp-keyring", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-verifier" -version = "0.1.1" +name = "pallet-membership" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "artemis-core", - "artemis-ethereum", "frame-support", "frame-system", "parity-scale-codec", - "rustc-hex", "serde", - "sp-core", "sp-io", - "sp-keyring", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-verifier-lightclient" -version = "0.1.1" +name = "pallet-multisig" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "artemis-core", - "artemis-ethereum", - "artemis-testutils", - "ethash", "frame-support", "frame-system", - "hex-literal 0.3.1", "parity-scale-codec", - "rlp", - "rustc-hex", "serde", - "serde_json", "sp-core", "sp-io", - "sp-keyring", "sp-runtime", "sp-std", ] [[package]] -name = "parity-bytes" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67" - -[[package]] -name = "parity-db" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00d595e372d119261593297debbe4193811a4dc811d2a1ccbb8caaa6666ad7ab" +name = "pallet-nicks" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "blake2-rfc", - "crc32fast", - "libc", - "log", - "memmap", - "parking_lot 0.10.2", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "parity-multiaddr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2165a93382a93de55868dcbfa11e4a8f99676a9164eee6a2b4a9479ad319c257" +name = "pallet-offences" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "arrayref", - "bs58", - "byteorder 1.3.4", - "data-encoding", - "multihash", - "percent-encoding 2.1.0", + "frame-support", + "frame-system", + "pallet-balances", + "parity-scale-codec", "serde", - "static_assertions", - "unsigned-varint 0.4.0", - "url 2.1.1", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] -name = "parity-scale-codec" -version = "1.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c740e5fbcb6847058b40ac7e5574766c6388f585e184d769910fe0d3a2ca861" +name = "pallet-proxy" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "arrayvec 0.5.1", - "bitvec", - "byte-slice-cast", - "parity-scale-codec-derive", + "frame-support", + "frame-system", + "parity-scale-codec", "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "parity-scale-codec-derive" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198db82bb1c18fc00176004462dd809b2a6d851669550aa17af6dacd21ae0c14" +name = "pallet-randomness-collective-flip" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", + "frame-support", + "frame-system", + "parity-scale-codec", + "safe-mix", + "sp-runtime", + "sp-std", ] [[package]] -name = "parity-send-wrapper" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" - -[[package]] -name = "parity-tokio-ipc" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e57fea504fea33f9fbb5f49f378359030e7e026a6ab849bb9e8f0787376f1bf" +name = "pallet-recovery" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "bytes 0.4.12", - "futures 0.1.30", - "libc", - "log", - "mio-named-pipes", - "miow 0.3.5", - "rand 0.7.3", - "tokio 0.1.22", - "tokio-named-pipes", - "tokio-uds", - "winapi 0.3.9", + "enumflags2", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "parity-util-mem" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297ff91fa36aec49ce183484b102f6b75b46776822bd81525bfc4cc9b0dd0f5c" +name = "pallet-scheduler" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "cfg-if", - "hashbrown 0.8.2", - "impl-trait-for-tuples", - "parity-util-mem-derive", - "parking_lot 0.10.2", - "primitive-types", - "smallvec 1.4.2", - "winapi 0.3.9", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "parity-util-mem-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" +name = "pallet-session" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "proc-macro2", - "syn", - "synstructure", + "frame-support", + "frame-system", + "impl-trait-for-tuples 0.1.3", + "pallet-timestamp", + "parity-scale-codec", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-trie", ] [[package]] -name = "parity-wasm" -version = "0.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc878dac00da22f8f61e7af3157988424567ab01d9920b962ef7dcbd7cd865" - -[[package]] -name = "parking" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" +name = "pallet-society" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "rand_chacha 0.2.2", + "serde", + "sp-runtime", + "sp-std", +] [[package]] -name = "parking_lot" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" +name = "pallet-staking" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "lock_api 0.1.5", - "parking_lot_core 0.4.0", + "frame-support", + "frame-system", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "serde", + "sp-application-crypto", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-staking", + "sp-std", + "static_assertions", ] [[package]] -name = "parking_lot" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" +name = "pallet-staking-reward-curve" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.6.2", - "rustc_version", + "proc-macro-crate", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] -name = "parking_lot" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" +name = "pallet-sudo" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.7.2", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "parking_lot" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733" +name = "pallet-timestamp" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "instant", - "lock_api 0.4.1", - "parking_lot_core 0.8.0", + "frame-benchmarking", + "frame-support", + "frame-system", + "impl-trait-for-tuples 0.2.0", + "parity-scale-codec", + "serde", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", ] [[package]] -name = "parking_lot_core" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" +name = "pallet-tips" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "libc", - "rand 0.6.5", - "rustc_version", - "smallvec 0.6.13", - "winapi 0.3.9", + "frame-support", + "frame-system", + "pallet-treasury", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-std", ] [[package]] -name = "parking_lot_core" -version = "0.6.2" +name = "pallet-transaction-payment" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "frame-support", + "frame-system", + "pallet-transaction-payment-rpc-runtime-api", + "parity-scale-codec", + "serde", + "smallvec 1.6.1", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-transaction-payment-rpc" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "jsonrpc-core 15.1.0", + "jsonrpc-core-client", + "jsonrpc-derive", + "pallet-transaction-payment-rpc-runtime-api", + "parity-scale-codec", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", +] + +[[package]] +name = "pallet-transaction-payment-rpc-runtime-api" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "frame-support", + "parity-scale-codec", + "serde", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-treasury" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples 0.2.0", + "pallet-balances", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-utility" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-verifier-lightclient" +version = "0.1.1" +dependencies = [ + "artemis-core", + "artemis-ethereum", + "artemis-testutils", + "ethash", + "frame-support", + "frame-system", + "hex-literal", + "parity-scale-codec", + "rlp", + "rustc-hex", + "serde", + "serde_json", + "sp-core", + "sp-io", + "sp-keyring", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-vesting" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "enumflags2", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "parachain-info" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git#5dfd0756efbd5be85937c2f530cfeaa7108b6dec" +dependencies = [ + "cumulus-primitives", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", +] + +[[package]] +name = "parity-bytes" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" +checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67" + +[[package]] +name = "parity-db" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00d595e372d119261593297debbe4193811a4dc811d2a1ccbb8caaa6666ad7ab" dependencies = [ - "cfg-if", - "cloudabi 0.0.3", + "blake2-rfc", + "crc32fast", "libc", - "redox_syscall", - "rustc_version", - "smallvec 0.6.13", - "winapi 0.3.9", + "log", + "memmap", + "parking_lot 0.10.2", ] [[package]] -name = "parking_lot_core" -version = "0.7.2" +name = "parity-multiaddr" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" +checksum = "2f51a30667591b14f96068b2d12f1306d07a41ebd98239d194356d4d9707ac16" +dependencies = [ + "arrayref", + "bs58", + "byteorder", + "data-encoding", + "multihash", + "percent-encoding 2.1.0", + "serde", + "static_assertions", + "unsigned-varint", + "url 2.2.0", +] + +[[package]] +name = "parity-scale-codec" +version = "1.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c740e5fbcb6847058b40ac7e5574766c6388f585e184d769910fe0d3a2ca861" +dependencies = [ + "arrayvec 0.5.2", + "bitvec", + "byte-slice-cast", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "198db82bb1c18fc00176004462dd809b2a6d851669550aa17af6dacd21ae0c14" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + +[[package]] +name = "parity-send-wrapper" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" + +[[package]] +name = "parity-tokio-ipc" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e57fea504fea33f9fbb5f49f378359030e7e026a6ab849bb9e8f0787376f1bf" dependencies = [ - "cfg-if", - "cloudabi 0.0.3", + "bytes 0.4.12", + "futures 0.1.30", "libc", - "redox_syscall", - "smallvec 1.4.2", + "log", + "mio-named-pipes", + "miow 0.3.6", + "rand 0.7.3", + "tokio 0.1.22", + "tokio-named-pipes", + "tokio-uds", "winapi 0.3.9", ] [[package]] -name = "parking_lot_core" +name = "parity-util-mem" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b" +checksum = "8f17f15cb05897127bf36a240085a1f0bbef7bce3024849eccf7f93f6171bc27" dependencies = [ - "cfg-if", - "cloudabi 0.1.0", - "instant", - "libc", - "redox_syscall", - "smallvec 1.4.2", + "cfg-if 1.0.0", + "hashbrown", + "impl-trait-for-tuples 0.2.0", + "parity-util-mem-derive", + "parking_lot 0.11.1", + "primitive-types", + "smallvec 1.6.1", "winapi 0.3.9", ] [[package]] -name = "paste" -version = "0.1.18" +name = "parity-util-mem-derive" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" +checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ - "paste-impl", - "proc-macro-hack", + "proc-macro2 1.0.24", + "syn 1.0.58", + "synstructure", ] [[package]] -name = "paste-impl" -version = "0.1.18" +name = "parity-wasm" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" +checksum = "16ad52817c4d343339b3bc2e26861bd21478eda0b7509acf83505727000512ac" dependencies = [ - "proc-macro-hack", + "byteorder", ] [[package]] -name = "pbkdf2" -version = "0.3.0" +name = "parity-wasm" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" +checksum = "ddfc878dac00da22f8f61e7af3157988424567ab01d9920b962ef7dcbd7cd865" + +[[package]] +name = "parity-ws" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e02a625dd75084c2a7024f07c575b61b782f729d18702dabb3cdbf31911dc61" dependencies = [ - "byteorder 1.3.4", - "crypto-mac 0.7.0", - "rayon", + "byteorder", + "bytes 0.4.12", + "httparse", + "log", + "mio", + "mio-extras", + "rand 0.7.3", + "sha-1 0.8.2", + "slab", + "url 2.2.0", ] [[package]] -name = "peeking_take_while" -version = "0.1.2" +name = "parking" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" [[package]] -name = "percent-encoding" -version = "1.0.1" +name = "parking_lot" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" +checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" +dependencies = [ + "lock_api 0.3.4", + "parking_lot_core 0.6.2", + "rustc_version", +] [[package]] -name = "percent-encoding" -version = "2.1.0" +name = "parking_lot" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" +dependencies = [ + "lock_api 0.3.4", + "parking_lot_core 0.7.2", +] + +[[package]] +name = "parking_lot" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" +dependencies = [ + "instant", + "lock_api 0.4.2", + "parking_lot_core 0.8.2", +] + +[[package]] +name = "parking_lot_core" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" +dependencies = [ + "cfg-if 0.1.10", + "cloudabi", + "libc", + "redox_syscall", + "rustc_version", + "smallvec 0.6.14", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" +dependencies = [ + "cfg-if 0.1.10", + "cloudabi", + "libc", + "redox_syscall", + "smallvec 1.6.1", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272" +dependencies = [ + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall", + "smallvec 1.6.1", + "winapi 0.3.9", +] + +[[package]] +name = "paste" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" +dependencies = [ + "paste-impl", + "proc-macro-hack", +] + +[[package]] +name = "paste-impl" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" +dependencies = [ + "proc-macro-hack", +] + +[[package]] +name = "pbkdf2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" +dependencies = [ + "byteorder", + "crypto-mac 0.7.0", +] + +[[package]] +name = "pbkdf2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" +dependencies = [ + "crypto-mac 0.8.0", +] + +[[package]] +name = "pdqselect" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec91767ecc0a0bbe558ce8c9da33c068066c57ecc8bb8477ef8c1ad3ef77c27" + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "percent-encoding" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pest" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +dependencies = [ + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + +[[package]] +name = "pest_meta" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" +dependencies = [ + "maplit", + "pest", + "sha-1 0.8.2", +] + +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pin-project" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15" +dependencies = [ + "pin-project-internal 0.4.27", +] + +[[package]] +name = "pin-project" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b70b68509f17aa2857863b6fa00bf21fc93674c7a8893de2f469f6aa7ca2f2" +dependencies = [ + "pin-project-internal 1.0.4", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa25a6393f22ce819b0f50e0be89287292fda8d425be38ee0ca14c4931d9e71" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + +[[package]] +name = "pin-project-lite" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" + +[[package]] +name = "pin-project-lite" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" + +[[package]] +name = "platforms" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" + +[[package]] +name = "polkadot-availability-bitfield-distribution" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "parity-scale-codec", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-availability-distribution" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-core", + "sp-keystore", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-cli" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "frame-benchmarking-cli", + "log", + "polkadot-parachain", + "polkadot-service", + "sc-cli", + "sc-service", + "sp-core", + "sp-trie", + "structopt", + "substrate-build-script-utils", + "thiserror", + "tracing-futures", +] + +[[package]] +name = "polkadot-collator-protocol" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-core-primitives" +version = "0.7.30" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "polkadot-erasure-coding" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "parity-scale-codec", + "polkadot-primitives", + "reed-solomon-erasure", + "sp-core", + "sp-trie", + "thiserror", +] + +[[package]] +name = "polkadot-network-bridge" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "async-trait", + "futures 0.3.9", + "parity-scale-codec", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-primitives", + "sc-authority-discovery", + "sc-network", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-collation-generation" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-core", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-av-store" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "futures-timer 3.0.2", + "kvdb", + "kvdb-rocksdb", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "sc-service", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-backing" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "bitvec", + "futures 0.3.9", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "polkadot-statement-table", + "sp-keystore", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-bitfield-signing" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-keystore", + "thiserror", + "tracing", + "tracing-futures", + "wasm-timer", +] + +[[package]] +name = "polkadot-node-core-candidate-selection" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-keystore", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-candidate-validation" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-parachain", + "polkadot-primitives", + "sp-core", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-chain-api" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-blockchain", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-proposer" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "futures-timer 3.0.2", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives", + "sc-basic-authorship", + "sc-block-builder", + "sc-client-api", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-transaction-pool", + "substrate-prometheus-endpoint", + "tracing", +] + +[[package]] +name = "polkadot-node-core-provisioner" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "bitvec", + "futures 0.3.9", + "futures-timer 3.0.2", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-runtime-api" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-api", + "sp-core", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-jaeger" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "async-std", + "lazy_static", + "log", + "mick-jaeger", + "parking_lot 0.11.1", + "polkadot-primitives", + "sc-network", + "sp-core", + "thiserror", +] + +[[package]] +name = "polkadot-node-network-protocol" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "parity-scale-codec", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-primitives", + "sc-network", +] + +[[package]] +name = "polkadot-node-primitives" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-statement-table", + "sp-consensus-vrf", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "polkadot-node-subsystem" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "async-std", + "async-trait", + "derive_more", + "futures 0.3.9", + "futures-timer 3.0.2", + "lazy_static", + "log", + "mick-jaeger", + "parity-scale-codec", + "parking_lot 0.11.1", + "pin-project 1.0.4", + "polkadot-node-jaeger", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-primitives", + "polkadot-statement-table", + "sc-network", + "smallvec 1.6.1", + "sp-core", + "substrate-prometheus-endpoint", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-subsystem-util" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "async-trait", + "futures 0.3.9", + "futures-timer 3.0.2", + "parity-scale-codec", + "pin-project 1.0.4", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-primitives", + "sc-network", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "streamunordered", + "substrate-prometheus-endpoint", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-overseer" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "async-trait", + "futures 0.3.9", + "futures-timer 3.0.2", + "oorandom", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sc-client-api", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-parachain" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "derive_more", + "futures 0.3.9", + "log", + "parity-scale-codec", + "parking_lot 0.11.1", + "polkadot-core-primitives", + "sc-executor", + "serde", + "shared_memory", + "sp-core", + "sp-externalities", + "sp-io", + "sp-runtime", + "sp-std", + "sp-wasm-interface", + "thiserror", +] + +[[package]] +name = "polkadot-pov-distribution" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-primitives" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "bitvec", + "frame-system", + "hex-literal", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain", + "serde", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-authority-discovery", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-staking", + "sp-std", + "sp-trie", + "sp-version", +] + +[[package]] +name = "polkadot-rpc" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "jsonrpc-core 15.1.0", + "pallet-transaction-payment-rpc", + "parity-scale-codec", + "polkadot-primitives", + "sc-chain-spec", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-babe-rpc", + "sc-consensus-epochs", + "sc-finality-grandpa", + "sc-finality-grandpa-rpc", + "sc-keystore", + "sc-rpc", + "sc-sync-state-rpc", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-keystore", + "sp-runtime", + "sp-transaction-pool", + "substrate-frame-rpc-system", +] + +[[package]] +name = "polkadot-runtime" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "bitvec", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-bounties", + "pallet-collective", + "pallet-democracy", + "pallet-elections-phragmen", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-proxy", + "pallet-randomness-collective-flip", + "pallet-scheduler", + "pallet-session", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-timestamp", + "pallet-tips", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-common", + "rustc-hex", + "serde", + "serde_derive", + "smallvec 1.6.1", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "static_assertions", + "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "polkadot-runtime-common" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "bitvec", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-balances", + "pallet-offences", + "pallet-session", + "pallet-staking", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-treasury", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-parachains", + "rustc-hex", + "serde", + "serde_derive", + "sp-api", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "static_assertions", + "xcm", +] + +[[package]] +name = "polkadot-runtime-parachains" +version = "0.8.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "bitvec", + "derive_more", + "frame-support", + "frame-system", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-balances", + "pallet-offences", + "pallet-session", + "pallet-staking", + "pallet-timestamp", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "rand 0.8.1", + "rand_chacha 0.3.0", + "rustc-hex", + "serde", + "sp-api", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "xcm", + "xcm-executor", +] [[package]] -name = "petgraph" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +name = "polkadot-service" +version = "0.8.3" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" dependencies = [ - "fixedbitset", - "indexmap", + "frame-benchmarking", + "frame-system-rpc-runtime-api", + "futures 0.3.9", + "hex-literal", + "kusama-runtime", + "pallet-babe", + "pallet-im-online", + "pallet-staking", + "pallet-transaction-payment-rpc-runtime-api", + "polkadot-availability-bitfield-distribution", + "polkadot-availability-distribution", + "polkadot-collator-protocol", + "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-av-store", + "polkadot-node-core-backing", + "polkadot-node-core-bitfield-signing", + "polkadot-node-core-candidate-selection", + "polkadot-node-core-candidate-validation", + "polkadot-node-core-chain-api", + "polkadot-node-core-proposer", + "polkadot-node-core-provisioner", + "polkadot-node-core-runtime-api", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-parachain", + "polkadot-pov-distribution", + "polkadot-primitives", + "polkadot-rpc", + "polkadot-runtime", + "polkadot-runtime-parachains", + "polkadot-statement-distribution", + "rococo-runtime", + "sc-authority-discovery", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-consensus-babe", + "sc-consensus-slots", + "sc-executor", + "sc-finality-grandpa", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-transaction-pool", + "serde", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-core", + "sp-finality-grandpa", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-state-machine", + "sp-storage", + "sp-transaction-pool", + "sp-trie", + "substrate-prometheus-endpoint", + "thiserror", + "tracing", + "tracing-futures", + "westend-runtime", ] [[package]] -name = "pin-project" -version = "0.4.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13fbdfd6bdee3dc9be46452f86af4a4072975899cf8592466668620bebfbcc17" +name = "polkadot-statement-distribution" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" dependencies = [ - "pin-project-internal", + "arrayvec 0.5.2", + "futures 0.3.9", + "indexmap", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-staking", + "tracing", + "tracing-futures", ] [[package]] -name = "pin-project-internal" -version = "0.4.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c82fb1329f632c3552cf352d14427d57a511b1cf41db93b3a7d77906a82dcc8e" +name = "polkadot-statement-table" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" dependencies = [ - "proc-macro2", - "quote", - "syn", + "parity-scale-codec", + "polkadot-primitives", + "sp-core", ] [[package]] -name = "pin-project-lite" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e555d9e657502182ac97b539fb3dae8b79cda19e3e4f8ffb5e8de4f18df93c95" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" - -[[package]] -name = "platforms" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" +name = "polkadot-validation" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "futures 0.3.9", + "log", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "sc-basic-authorship", + "sc-block-builder", + "sc-client-api", + "sc-finality-grandpa", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-timestamp", + "sp-transaction-pool", + "sp-trie", + "substrate-prometheus-endpoint", + "thiserror", +] [[package]] name = "polling" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab773feb154f12c49ffcfd66ab8bdcf9a1843f950db48b0d8be9d4393783b058" +checksum = "a2a7bc6b2a29e632e45451c941832803a18cce6781db04de8a04696cdca8bde4" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "log", "wepoll-sys", @@ -4450,40 +5971,42 @@ dependencies = [ [[package]] name = "poly1305" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ce46de8e53ee414ca4d02bfefac75d8c12fba948b76622a40b4be34dfce980" +checksum = "4b7456bc1ad2d4cf82b3a016be4c2ac48daf11bf990c1603ebd447fe6f30fca8" dependencies = [ + "cpuid-bool 0.2.0", "universal-hash", ] [[package]] name = "polyval" -version = "0.4.1" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5884790f1ce3553ad55fec37b5aaac5882e0e845a2612df744d6c85c9bf046c" +checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" dependencies = [ - "cfg-if", + "cpuid-bool 0.2.0", + "opaque-debug 0.3.0", "universal-hash", ] [[package]] name = "ppv-lite86" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" [[package]] name = "primitive-types" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55c21c64d0eaa4d7ed885d959ef2d62d9e488c27c0e02d9aa5ce6c877b7d5f8" +checksum = "b3824ae2c5e27160113b9e029a10ec9e3f0237bad8029f69c7724393c9fdefd8" dependencies = [ - "fixed-hash 0.6.1", + "fixed-hash", "impl-codec", "impl-rlp", - "impl-serde 0.3.1", - "uint", + "impl-serde", + "uint 0.9.0", ] [[package]] @@ -4502,9 +6025,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", "version_check", ] @@ -4514,16 +6037,16 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.24", + "quote 1.0.8", "version_check", ] [[package]] name = "proc-macro-hack" -version = "0.5.18" +version = "0.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro-nested" @@ -4531,25 +6054,35 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + [[package]] name = "proc-macro2" version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" dependencies = [ - "unicode-xid", + "unicode-xid 0.2.1", ] [[package]] name = "prometheus" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0ced56dee39a6e960c15c74dc48849d614586db2eaada6497477af7c7811cd" +checksum = "30d70cf4412832bcac9cffe27906f4a66e450d323525e977168c70d1b36120ae" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "fnv", "lazy_static", - "spin", + "parking_lot 0.11.1", + "regex", "thiserror", ] @@ -4589,9 +6122,9 @@ checksum = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72" dependencies = [ "anyhow", "itertools 0.8.2", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -4610,9 +6143,9 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f53bc2558e8376358ebdc28301546471d67336584f6438ed4b7c7457a055fd7" dependencies = [ - "byteorder 1.3.4", + "byteorder", "log", - "parity-wasm", + "parity-wasm 0.41.0", ] [[package]] @@ -4621,6 +6154,12 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-error" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ac73b1112776fc109b2e61909bc46c7e1bf0d7f690ffb1676553acce16d5cda" + [[package]] name = "quicksink" version = "0.1.2" @@ -4629,16 +6168,25 @@ checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" dependencies = [ "futures-core", "futures-sink", - "pin-project-lite", + "pin-project-lite 0.1.11", ] [[package]] name = "quote" -version = "1.0.7" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" dependencies = [ - "proc-macro2", + "proc-macro2 1.0.24", ] [[package]] @@ -4672,68 +6220,47 @@ dependencies = [ [[package]] name = "rand" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" -dependencies = [ - "cloudabi 0.0.3", - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "winapi 0.3.9", -] - -[[package]] -name = "rand" -version = "0.6.5" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "autocfg 0.1.7", + "getrandom 0.1.16", "libc", - "rand_chacha 0.1.1", - "rand_core 0.4.2", - "rand_hc 0.1.0", - "rand_isaac", - "rand_jitter", - "rand_os", - "rand_pcg 0.1.2", - "rand_xorshift", - "winapi 0.3.9", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", ] [[package]] name = "rand" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "c24fcd450d3fa2b592732565aa4f17a27a61c65ece4726353e000939b0edee34" dependencies = [ - "getrandom 0.1.15", "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc 0.2.0", - "rand_pcg 0.2.1", + "rand_chacha 0.3.0", + "rand_core 0.6.1", ] [[package]] name = "rand_chacha" -version = "0.1.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" dependencies = [ - "autocfg 0.1.7", - "rand_core 0.3.1", + "ppv-lite86", + "rand_core 0.5.1", ] [[package]] name = "rand_chacha" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" dependencies = [ "ppv-lite86", - "rand_core 0.5.1", + "rand_core 0.6.1", ] [[package]] @@ -4757,69 +6284,34 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom 0.1.15", -] - -[[package]] -name = "rand_hc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_isaac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -dependencies = [ - "rand_core 0.3.1", + "getrandom 0.1.16", ] [[package]] -name = "rand_jitter" -version = "0.1.4" +name = "rand_core" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5" dependencies = [ - "libc", - "rand_core 0.4.2", - "winapi 0.3.9", + "getrandom 0.2.1", ] [[package]] -name = "rand_os" -version = "0.1.3" +name = "rand_distr" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +checksum = "96977acbdd3a6576fb1d27391900035bf3863d4a16422973a409b488cf29ffb2" dependencies = [ - "cloudabi 0.0.3", - "fuchsia-cprng", - "libc", - "rand_core 0.4.2", - "rdrand", - "winapi 0.3.9", + "rand 0.7.3", ] [[package]] -name = "rand_pcg" -version = "0.1.2" +name = "rand_hc" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" dependencies = [ - "autocfg 0.1.7", - "rand_core 0.4.2", + "rand_core 0.5.1", ] [[package]] @@ -4831,20 +6323,11 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_xorshift" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -dependencies = [ - "rand_core 0.3.1", -] - [[package]] name = "raw-cpuid" -version = "7.0.3" +version = "7.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a349ca83373cfa5d6dbb66fd76e58b2cca08da71a5f6400de0a0a6a9bceeaf" +checksum = "beb71f708fe39b2c5e98076204c3cc094ee5a4c12c4cdb119a2b72dc34164f41" dependencies = [ "bitflags", "cc", @@ -4859,25 +6342,25 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf6960dc9a5b4ee8d3e4c5787b4a112a8818e0290a42ff664ad60692fdf2032" +checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" dependencies = [ - "autocfg 1.0.1", - "crossbeam-deque", + "autocfg", + "crossbeam-deque 0.8.0", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c4fec834fb6e6d2dd5eece3c7b432a52f0ba887cf40e595190c4107edc08bf" +checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" dependencies = [ "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", + "crossbeam-deque 0.8.0", + "crossbeam-utils 0.8.1", "lazy_static", "num_cpus", ] @@ -4903,29 +6386,38 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" dependencies = [ - "getrandom 0.1.15", + "getrandom 0.1.16", "redox_syscall", "rust-argon2", ] +[[package]] +name = "reed-solomon-erasure" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" +dependencies = [ + "smallvec 1.6.1", +] + [[package]] name = "ref-cast" -version = "1.0.2" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "745c1787167ddae5569661d5ffb8b25ae5fedbf46717eaa92d652221cec72623" +checksum = "300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541da" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.2" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d21b475ab879ef0e315ad99067fa25778c3b0377f57f1b00207448dac1a3144" +checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -4936,14 +6428,14 @@ checksum = "b9ba8aaf5fe7cf307c6dbdaeed85478961d29e25e3bee5169e11b92fa9f027a8" dependencies = [ "log", "rustc-hash", - "smallvec 1.4.2", + "smallvec 1.6.1", ] [[package]] name = "regex" -version = "1.3.9" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" +checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a" dependencies = [ "aho-corasick", "memchr", @@ -4957,15 +6449,15 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4" dependencies = [ - "byteorder 1.3.4", + "byteorder", "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.18" +version = "0.6.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" +checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" [[package]] name = "region" @@ -4988,42 +6480,21 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "rental" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8545debe98b2b139fb04cad8618b530e9b07c152d99a5de83c860b877d67847f" -dependencies = [ - "rental-impl", - "stable_deref_trait", -] - -[[package]] -name = "rental-impl" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "retain_mut" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e005d658ad26eacc2b6c506dfde519f4e277e328d0eb3379ca61647d70a8f531" +checksum = "53552c6c49e1e13f1a203ef0080ab3bbef0beb570a528993e83df057a9d9bba1" [[package]] name = "ring" -version = "0.16.15" +version = "0.16.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "952cd6b98c85bbc30efa1ba5783b8abf12fec8b3287ffa52605b9432313e34e4" +checksum = "024a1e66fea74c66c66624ee5622a7ff0e4b73a13b4f5c326ddb50c708944226" dependencies = [ "cc", "libc", - "once_cell 1.4.1", + "once_cell", "spin", "untrusted", "web-sys", @@ -5032,10 +6503,11 @@ dependencies = [ [[package]] name = "rlp" -version = "0.4.6" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1190dcc8c3a512f1eef5d09bb8c84c7f39e1054e174d1795482e18f5272f2e73" +checksum = "e54369147e3e7796c9b885c7304db87ca3d09a0a98f72843d532868675bbfba8" dependencies = [ + "bytes 1.0.1", "rustc-hex", ] @@ -5049,11 +6521,63 @@ dependencies = [ "librocksdb-sys", ] +[[package]] +name = "rococo-runtime" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-grandpa", + "pallet-im-online", + "pallet-indices", + "pallet-offences", + "pallet-session", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "serde", + "serde_derive", + "smallvec 1.6.1", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "xcm", + "xcm-builder", + "xcm-executor", +] + [[package]] name = "rpassword" -version = "4.0.5" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99371657d3c8e4d816fb6221db98fa408242b0b53bac08f8676a41f8554fe99f" +checksum = "d755237fc0f99d98641540e66abac8bc46a0652f19148ac9e21de2da06b326c9" dependencies = [ "libc", "winapi 0.3.9", @@ -5061,21 +6585,21 @@ dependencies = [ [[package]] name = "rust-argon2" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dab61250775933275e84053ac235621dfb739556d5c54a2f2e9313b7cf43a19" +checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" dependencies = [ - "base64 0.12.3", + "base64 0.13.0", "blake2b_simd", "constant_time_eq", - "crossbeam-utils", + "crossbeam-utils 0.8.1", ] [[package]] name = "rustc-demangle" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2610b7f643d18c87dff3b489950269617e6601a51f1f05aa5daefee36f64f0b" +checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232" [[package]] name = "rustc-hash" @@ -5089,13 +6613,19 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" +[[package]] +name = "rustc-serialize" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" + [[package]] name = "rustc_version" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" dependencies = [ - "semver", + "semver 0.9.0", ] [[package]] @@ -5111,6 +6641,19 @@ dependencies = [ "webpki", ] +[[package]] +name = "rustls" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064fd21ff87c6e87ed4506e68beb42459caa4a0e2eb144932e6776768556980b" +dependencies = [ + "base64 0.13.0", + "log", + "ring", + "sct", + "webpki", +] + [[package]] name = "rustls-native-certs" version = "0.4.0" @@ -5118,7 +6661,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "629d439a7672da82dd955498445e496ee2096fe2117b9f796558a43fdb9e59b8" dependencies = [ "openssl-probe", - "rustls", + "rustls 0.18.1", "schannel", "security-framework", ] @@ -5129,8 +6672,8 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.6", - "pin-project", + "futures 0.3.9", + "pin-project 0.4.27", "static_assertions", ] @@ -5151,30 +6694,56 @@ dependencies = [ [[package]] name = "salsa20" -version = "0.3.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2324b0e8c3bb9a586a571fdb3136f70e7e2c748de00a78043f86e0cff91f91fe" +checksum = "399f290ffc409596022fce5ea5d4138184be4784f2b28c62c59f0d8389059a15" dependencies = [ - "byteorder 1.3.4", - "salsa20-core", - "stream-cipher 0.3.2", + "cipher", ] [[package]] -name = "salsa20-core" -version = "0.2.3" +name = "same-file" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fe6cc1b9f5a5867853ade63099de70f042f7679e408d1ffe52821c9248e6e69" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ - "stream-cipher 0.3.2", + "winapi-util", +] + +[[package]] +name = "sc-authority-discovery" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "async-trait", + "derive_more", + "either", + "futures 0.3.9", + "futures-timer 3.0.2", + "libp2p", + "log", + "parity-scale-codec", + "prost", + "prost-build", + "rand 0.7.3", + "sc-client-api", + "sc-network", + "serde_json", + "sp-api", + "sp-authority-discovery", + "sp-blockchain", + "sp-core", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-basic-authorship" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -5190,13 +6759,12 @@ dependencies = [ "sp-runtime", "sp-transaction-pool", "substrate-prometheus-endpoint", - "tokio-executor 0.2.0-alpha.6", ] [[package]] name = "sc-block-builder" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -5212,57 +6780,55 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", + "parity-scale-codec", "sc-chain-spec-derive", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-finality-grandpa", "sc-network", "sc-telemetry", "serde", "serde_json", "sp-chain-spec", + "sp-consensus-babe", "sp-core", "sp-runtime", ] [[package]] name = "sc-chain-spec-derive" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "proc-macro-crate", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "sc-cli" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "ansi_term 0.12.1", "atty", - "bip39", "chrono", - "derive_more", - "env_logger", "fdlimit", - "futures 0.3.6", + "futures 0.3.9", "hex", - "lazy_static", - "libp2p 0.22.0", + "libp2p", "log", "names", - "nix", "parity-scale-codec", - "parity-util-mem", "rand 0.7.3", "regex", "rpassword", + "sc-cli-proc-macro", "sc-client-api", - "sc-informant", "sc-keystore", "sc-network", "sc-service", @@ -5273,34 +6839,46 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-keyring", + "sp-keystore", "sp-panic-handler", "sp-runtime", - "sp-state-machine", "sp-utils", "sp-version", "structopt", - "substrate-prometheus-endpoint", - "time", - "tokio 0.2.22", + "thiserror", + "tiny-bip39", + "tokio 0.2.24", + "tracing", + "tracing-log", + "tracing-subscriber", +] + +[[package]] +name = "sc-cli-proc-macro" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "sc-client-api" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "derive_more", "fnv", - "futures 0.3.6", + "futures 0.3.9", "hash-db", - "hex-literal 0.2.1", "kvdb", "lazy_static", "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-executor", - "sc-telemetry", "sp-api", "sp-blockchain", "sp-consensus", @@ -5308,7 +6886,7 @@ dependencies = [ "sp-database", "sp-externalities", "sp-inherents", - "sp-keyring", + "sp-keystore", "sp-runtime", "sp-state-machine", "sp-std", @@ -5322,8 +6900,8 @@ dependencies = [ [[package]] name = "sc-client-db" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "blake2-rfc", "hash-db", @@ -5335,7 +6913,7 @@ dependencies = [ "parity-db", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-client-api", "sc-executor", "sc-state-db", @@ -5352,8 +6930,8 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "sc-client-api", "sp-blockchain", @@ -5363,19 +6941,18 @@ dependencies = [ [[package]] name = "sc-consensus-aura" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "derive_more", - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-block-builder", "sc-client-api", "sc-consensus-slots", - "sc-keystore", "sc-telemetry", "sp-api", "sp-application-crypto", @@ -5386,26 +6963,110 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-keystore", + "sp-runtime", + "sp-timestamp", + "sp-version", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-consensus-babe" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "derive_more", + "fork-tree", + "futures 0.3.9", + "futures-timer 3.0.2", + "log", + "merlin", + "num-bigint", + "num-rational", + "num-traits 0.2.14", + "parity-scale-codec", + "parking_lot 0.11.1", + "pdqselect", + "rand 0.7.3", + "retain_mut", + "sc-client-api", + "sc-consensus-epochs", + "sc-consensus-slots", + "sc-consensus-uncles", + "sc-keystore", + "sc-telemetry", + "schnorrkel", + "serde", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-consensus-vrf", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", "sp-runtime", "sp-timestamp", + "sp-utils", "sp-version", "substrate-prometheus-endpoint", ] +[[package]] +name = "sc-consensus-babe-rpc" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "derive_more", + "futures 0.3.9", + "jsonrpc-core 15.1.0", + "jsonrpc-core-client", + "jsonrpc-derive", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-rpc-api", + "serde", + "sp-api", + "sp-application-crypto", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-core", + "sp-keystore", + "sp-runtime", +] + +[[package]] +name = "sc-consensus-epochs" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "fork-tree", + "parity-scale-codec", + "parking_lot 0.11.1", + "sc-client-api", + "sp-blockchain", + "sp-runtime", +] + [[package]] name = "sc-consensus-slots" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-client-api", "sc-telemetry", "sp-api", "sp-application-crypto", + "sp-arithmetic", "sp-blockchain", "sp-consensus", "sp-consensus-slots", @@ -5413,20 +7074,36 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", + "sp-trie", + "thiserror", +] + +[[package]] +name = "sc-consensus-uncles" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "log", + "sc-client-api", + "sp-authorship", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", ] [[package]] name = "sc-executor" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "derive_more", "lazy_static", "libsecp256k1", "log", "parity-scale-codec", - "parity-wasm", - "parking_lot 0.10.2", + "parity-wasm 0.41.0", + "parking_lot 0.11.1", "sc-executor-common", "sc-executor-wasmi", "sc-executor-wasmtime", @@ -5437,6 +7114,7 @@ dependencies = [ "sp-panic-handler", "sp-runtime-interface", "sp-serializer", + "sp-tasks", "sp-trie", "sp-version", "sp-wasm-interface", @@ -5445,25 +7123,24 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "derive_more", - "log", "parity-scale-codec", - "parity-wasm", + "parity-wasm 0.41.0", "sp-allocator", "sp-core", - "sp-runtime-interface", "sp-serializer", "sp-wasm-interface", + "thiserror", "wasmi", ] [[package]] name = "sc-executor-wasmi" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "log", "parity-scale-codec", @@ -5477,12 +7154,12 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "log", "parity-scale-codec", - "parity-wasm", + "parity-wasm 0.41.0", "pwasm-utils", "sc-executor-common", "scoped-tls", @@ -5495,18 +7172,18 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "derive_more", "finality-grandpa", "fork-tree", - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", "log", "parity-scale-codec", - "parking_lot 0.10.2", - "pin-project", + "parking_lot 0.11.1", + "pin-project 0.4.27", "rand 0.7.3", "sc-block-builder", "sc-client-api", @@ -5523,20 +7200,44 @@ dependencies = [ "sp-consensus", "sp-core", "sp-finality-grandpa", - "sp-finality-tracker", "sp-inherents", + "sp-keystore", "sp-runtime", "sp-utils", "substrate-prometheus-endpoint", ] +[[package]] +name = "sc-finality-grandpa-rpc" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "derive_more", + "finality-grandpa", + "futures 0.3.9", + "jsonrpc-core 15.1.0", + "jsonrpc-core-client", + "jsonrpc-derive", + "jsonrpc-pubsub 15.1.0", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-finality-grandpa", + "sc-rpc", + "serde", + "serde_json", + "sp-blockchain", + "sp-core", + "sp-runtime", +] + [[package]] name = "sc-informant" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "ansi_term 0.12.1", - "futures 0.3.6", + "futures 0.3.9", "log", "parity-util-mem", "sc-client-api", @@ -5550,29 +7251,33 @@ dependencies = [ [[package]] name = "sc-keystore" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ + "async-trait", "derive_more", + "futures 0.3.9", + "futures-util", "hex", "merlin", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "rand 0.7.3", "serde_json", "sp-application-crypto", "sp-core", - "subtle 2.3.0", + "sp-keystore", + "subtle 2.4.0", ] [[package]] name = "sc-light" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "hash-db", "lazy_static", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-client-api", "sc-executor", "sp-api", @@ -5585,10 +7290,11 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "async-std", + "async-trait", "bitflags", "bs58", "bytes 0.5.6", @@ -5597,20 +7303,19 @@ dependencies = [ "erased-serde", "fnv", "fork-tree", - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", "futures_codec", "hex", "ip_network", - "libp2p 0.23.0", + "libp2p", "linked-hash-map", "linked_hash_set", "log", - "lru", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.10.2", - "pin-project", + "parking_lot 0.11.1", + "pin-project 0.4.27", "prost", "prost-build", "rand 0.7.3", @@ -5621,7 +7326,7 @@ dependencies = [ "serde_json", "slog", "slog_derive", - "smallvec 0.6.13", + "smallvec 1.6.1", "sp-arithmetic", "sp-blockchain", "sp-consensus", @@ -5630,7 +7335,7 @@ dependencies = [ "sp-utils", "substrate-prometheus-endpoint", "thiserror", - "unsigned-varint 0.4.0", + "unsigned-varint", "void", "wasm-timer", "zeroize", @@ -5638,12 +7343,12 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", - "libp2p 0.23.0", + "libp2p", "log", "lru", "sc-network", @@ -5653,19 +7358,19 @@ dependencies = [ [[package]] name = "sc-offchain" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "bytes 0.5.6", "fnv", - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", - "hyper 0.13.8", + "hyper 0.13.9", "hyper-rustls", "log", "num_cpus", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "rand 0.7.3", "sc-client-api", "sc-keystore", @@ -5680,11 +7385,11 @@ dependencies = [ [[package]] name = "sc-peerset" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "futures 0.3.6", - "libp2p 0.23.0", + "futures 0.3.9", + "libp2p", "log", "serde_json", "sp-utils", @@ -5693,8 +7398,8 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -5702,26 +7407,28 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "hash-db", - "jsonrpc-core", - "jsonrpc-pubsub", + "jsonrpc-core 15.1.0", + "jsonrpc-pubsub 15.1.0", "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-block-builder", "sc-client-api", "sc-executor", "sc-keystore", "sc-rpc-api", + "sc-tracing", "serde_json", "sp-api", "sp-blockchain", "sp-chain-spec", "sp-core", + "sp-keystore", "sp-offchain", "sp-rpc", "sp-runtime", @@ -5734,18 +7441,18 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "derive_more", - "futures 0.3.6", - "jsonrpc-core", + "futures 0.3.9", + "jsonrpc-core 15.1.0", "jsonrpc-core-client", "jsonrpc-derive", - "jsonrpc-pubsub", + "jsonrpc-pubsub 15.1.0", "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "serde", "serde_json", "sp-chain-spec", @@ -5758,40 +7465,41 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "jsonrpc-core", + "futures 0.1.30", + "jsonrpc-core 15.1.0", "jsonrpc-http-server", "jsonrpc-ipc-server", - "jsonrpc-pubsub", + "jsonrpc-pubsub 15.1.0", "jsonrpc-ws-server", "log", "serde", "serde_json", "sp-runtime", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-service" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "derive_more", - "directories", + "directories 3.0.1", "exit-future", "futures 0.1.30", - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", "hash-db", - "jsonrpc-core", - "jsonrpc-pubsub", + "jsonrpc-core 15.1.0", + "jsonrpc-pubsub 15.1.0", "lazy_static", "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.10.2", - "pin-project", + "parking_lot 0.11.1", + "pin-project 0.4.27", "rand 0.7.3", "sc-block-builder", "sc-chain-spec", @@ -5820,44 +7528,69 @@ dependencies = [ "sp-externalities", "sp-inherents", "sp-io", + "sp-keystore", "sp-runtime", "sp-session", "sp-state-machine", + "sp-tracing", "sp-transaction-pool", "sp-trie", "sp-utils", "sp-version", "substrate-prometheus-endpoint", "tempfile", + "thiserror", "tracing", + "tracing-futures", "wasm-timer", ] [[package]] name = "sc-state-db" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "log", "parity-scale-codec", "parity-util-mem", "parity-util-mem-derive", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-client-api", "sp-core", + "thiserror", +] + +[[package]] +name = "sc-sync-state-rpc" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "jsonrpc-core 15.1.0", + "jsonrpc-core-client", + "jsonrpc-derive", + "sc-chain-spec", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-finality-grandpa", + "sc-rpc-api", + "serde_json", + "sp-blockchain", + "sp-runtime", + "thiserror", ] [[package]] name = "sc-telemetry" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", - "libp2p 0.23.0", + "libp2p", "log", - "parking_lot 0.10.2", - "pin-project", + "parking_lot 0.11.1", + "pin-project 0.4.27", "rand 0.7.3", "serde", "slog", @@ -5870,12 +7603,16 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ + "ansi_term 0.12.1", "erased-serde", + "lazy_static", "log", - "parking_lot 0.10.2", + "once_cell", + "parking_lot 0.11.1", + "regex", "rustc-hash", "sc-telemetry", "serde", @@ -5883,20 +7620,22 @@ dependencies = [ "slog", "sp-tracing", "tracing", + "tracing-core", + "tracing-log", "tracing-subscriber", ] [[package]] name = "sc-transaction-graph" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "derive_more", - "futures 0.3.6", + "futures 0.3.9", "linked-hash-map", "log", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "retain_mut", "serde", "sp-blockchain", @@ -5904,22 +7643,22 @@ dependencies = [ "sp-runtime", "sp-transaction-pool", "sp-utils", + "thiserror", "wasm-timer", ] [[package]] name = "sc-transaction-pool" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "derive_more", - "futures 0.3.6", + "futures 0.3.9", "futures-diagnose", "intervalier", "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-client-api", "sc-transaction-graph", "sp-api", @@ -5930,6 +7669,7 @@ dependencies = [ "sp-transaction-pool", "sp-utils", "substrate-prometheus-endpoint", + "thiserror", "wasm-timer", ] @@ -5950,14 +7690,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" dependencies = [ "arrayref", - "arrayvec 0.5.1", - "curve25519-dalek 2.1.0", - "getrandom 0.1.15", + "arrayvec 0.5.2", + "curve25519-dalek 2.1.2", + "getrandom 0.1.16", "merlin", "rand 0.7.3", "rand_core 0.5.1", + "serde", "sha2 0.8.2", - "subtle 2.3.0", + "subtle 2.4.0", "zeroize", ] @@ -5967,12 +7708,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" -[[package]] -name = "scopeguard" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" - [[package]] name = "scopeguard" version = "1.1.0" @@ -5990,13 +7725,13 @@ dependencies = [ [[package]] name = "scroll_derive" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dfde5d1531034db129e95c76ac857e2baecea3443579d493d02224950b0fb6d" +checksum = "b12bd20b94c7cdfda8c7ba9b92ad0d9a56e3fa018c25fca83b51aa664c9b4c0d" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -6011,9 +7746,9 @@ dependencies = [ [[package]] name = "secrecy" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9182278ed645df3477a9c27bfee0621c621aa16f6972635f7f795dae3d81070f" +checksum = "0673d6a6449f5e7d12a1caf424fd9363e2af3a4953023ed455e3c4beef4597c0" dependencies = [ "zeroize", ] @@ -6041,13 +7776,32 @@ dependencies = [ "libc", ] +[[package]] +name = "semver" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537" +dependencies = [ + "semver-parser 0.7.0", +] + [[package]] name = "semver" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" dependencies = [ - "semver-parser", + "semver-parser 0.7.0", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser 0.10.2", + "serde", ] [[package]] @@ -6056,11 +7810,20 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + [[package]] name = "serde" -version = "1.0.116" +version = "1.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96fe57af81d28386a513cbc6858332abc6117cfdb5999647c6444b8f43a370a5" +checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800" dependencies = [ "serde_derive", ] @@ -6077,20 +7840,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.116" +version = "1.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f630a6370fd8e457873b4bd2ffdae75408bc291ba72be773772a4c2a065d9ae8" +checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "serde_json" -version = "1.0.58" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a230ea9107ca2220eea9d46de97eddcb04cd00e92d13dda78e478dd33fa82bd4" +checksum = "4fceb2595057b6891a4ee808f70054bd2d12f0e97f1cbb78689b59f676df325a" dependencies = [ "itoa", "ryu", @@ -6111,13 +7874,13 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "170a36ea86c864a3f16dd2687712dd6646f7019f301e57537c7f4dc9f5916770" +checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c" dependencies = [ "block-buffer 0.9.0", - "cfg-if", - "cpuid-bool", + "cfg-if 1.0.0", + "cpuid-bool 0.1.2", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -6136,13 +7899,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2933378ddfeda7ea26f48c555bdad8bb446bf8a3d17832dc83e380d444cfb8c1" +checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8" dependencies = [ "block-buffer 0.9.0", - "cfg-if", - "cpuid-bool", + "cfg-if 1.0.0", + "cpuid-bool 0.1.2", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -6174,34 +7937,85 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.0.9" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06d5a3f5166fb5b42a5439f2eee8b9de149e235961e3eb21c5808fc3ea17ff3e" +checksum = "79c719719ee05df97490f80a45acfc99e5a30ce98a1e4fb67aee422745ae14e3" dependencies = [ "lazy_static", ] +[[package]] +name = "shared_memory" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf3ab0cdff84d6c66fc9e268010ea6508e58ee942575afb66f2cf194bb218bb4" +dependencies = [ + "cfg-if 0.1.10", + "enum_primitive", + "libc", + "log", + "memrange", + "nix", + "quick-error 1.2.3", + "rand 0.4.6", + "shared_memory_derive", + "theban_interval_tree", + "winapi 0.3.9", +] + +[[package]] +name = "shared_memory_derive" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767a14f1304be2f0b04e69860252f8ae9cfae0afaa9cc07b675147c43425dd3a" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + [[package]] name = "shlex" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" +[[package]] +name = "signal-hook" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729" +dependencies = [ + "libc", + "signal-hook-registry", +] + [[package]] name = "signal-hook-registry" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e12110bc539e657a646068aaf5eb5b63af9d0c1f7b29c97113fad80e15f035" +checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6" dependencies = [ - "arc-swap", "libc", ] [[package]] name = "signature" -version = "1.2.2" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68" + +[[package]] +name = "simba" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29f060a7d147e33490ec10da418795238fd7545bba241504d6b31a409f2e6210" +checksum = "fb931b1367faadea6b1ab1c306a860ec17aaa5fa39f367d0c744e69d971a1fb2" +dependencies = [ + "approx", + "num-complex", + "num-traits 0.2.14", + "paste", +] [[package]] name = "slab" @@ -6211,9 +8025,9 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" [[package]] name = "slog" -version = "2.5.2" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cc9c640a4adbfbcc11ffb95efe5aa7af7309e002adab54b185507dbf2377b99" +checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" dependencies = [ "erased-serde", ] @@ -6248,25 +8062,25 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a945ec7f7ce853e89ffa36be1e27dce9a43e82ff9093bf3461c30d5da74ed11b" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "smallvec" -version = "0.6.13" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" +checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" dependencies = [ "maybe-uninit", ] [[package]] name = "smallvec" -version = "1.4.2" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252" +checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" [[package]] name = "snow" @@ -6281,20 +8095,19 @@ dependencies = [ "rand_core 0.5.1", "ring", "rustc_version", - "sha2 0.9.1", - "subtle 2.3.0", - "x25519-dalek 1.1.0", + "sha2 0.9.2", + "subtle 2.4.0", + "x25519-dalek", ] [[package]] name = "socket2" -version = "0.3.15" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1fa70dc5c8104ec096f4fe7ede7a221d35ae13dcd19ba1ad9a81d2cab9a1c44" +checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", - "redox_syscall", "winapi 0.3.9", ] @@ -6307,29 +8120,29 @@ dependencies = [ "base64 0.12.3", "bytes 0.5.6", "flate2", - "futures 0.3.6", + "futures 0.3.9", "httparse", "log", "rand 0.7.3", - "sha-1 0.9.1", + "sha-1 0.9.2", ] [[package]] name = "sp-allocator" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "derive_more", "log", "sp-core", "sp-std", "sp-wasm-interface", + "thiserror", ] [[package]] name = "sp-api" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "hash-db", "parity-scale-codec", @@ -6339,24 +8152,25 @@ dependencies = [ "sp-state-machine", "sp-std", "sp-version", + "thiserror", ] [[package]] name = "sp-api-proc-macro" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "blake2-rfc", "proc-macro-crate", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "sp-application-crypto" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "parity-scale-codec", "serde", @@ -6367,21 +8181,33 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "integer-sqrt", - "num-traits", + "num-traits 0.2.14", "parity-scale-codec", "serde", "sp-debug-derive", "sp-std", ] +[[package]] +name = "sp-authority-discovery" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "parity-scale-codec", + "sp-api", + "sp-application-crypto", + "sp-runtime", + "sp-std", +] + [[package]] name = "sp-authorship" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -6391,8 +8217,8 @@ dependencies = [ [[package]] name = "sp-block-builder" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "parity-scale-codec", "sp-api", @@ -6403,25 +8229,26 @@ dependencies = [ [[package]] name = "sp-blockchain" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "derive_more", + "futures 0.3.9", "log", "lru", "parity-scale-codec", - "parking_lot 0.10.2", - "sp-block-builder", + "parking_lot 0.11.1", + "sp-api", "sp-consensus", "sp-database", "sp-runtime", "sp-state-machine", + "thiserror", ] [[package]] name = "sp-chain-spec" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "serde", "serde_json", @@ -6429,16 +8256,15 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "derive_more", - "futures 0.3.6", + "futures 0.3.9", "futures-timer 3.0.2", - "libp2p 0.23.0", + "libp2p", "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "serde", "sp-api", "sp-core", @@ -6450,18 +8276,39 @@ dependencies = [ "sp-utils", "sp-version", "substrate-prometheus-endpoint", + "thiserror", "wasm-timer", ] [[package]] name = "sp-consensus-aura" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "parity-scale-codec", + "sp-api", + "sp-application-crypto", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "sp-consensus-babe" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ + "merlin", "parity-scale-codec", "sp-api", "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", + "sp-consensus-vrf", + "sp-core", "sp-inherents", + "sp-keystore", "sp-runtime", "sp-std", "sp-timestamp", @@ -6469,50 +8316,62 @@ dependencies = [ [[package]] name = "sp-consensus-slots" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "parity-scale-codec", "sp-runtime", ] +[[package]] +name = "sp-consensus-vrf" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "parity-scale-codec", + "schnorrkel", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "sp-core" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "base58", "blake2-rfc", - "byteorder 1.3.4", - "derive_more", + "byteorder", "dyn-clonable", "ed25519-dalek", - "futures 0.3.6", + "futures 0.3.9", "hash-db", "hash256-std-hasher", "hex", - "impl-serde 0.3.1", + "impl-serde", "lazy_static", "libsecp256k1", "log", "merlin", - "num-traits", + "num-traits 0.2.14", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "primitive-types", "rand 0.7.3", "regex", "schnorrkel", "secrecy", "serde", - "sha2 0.8.2", + "sha2 0.9.2", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", "sp-std", "sp-storage", "substrate-bip39", + "thiserror", "tiny-bip39", "tiny-keccak 2.0.2", "twox-hash", @@ -6522,27 +8381,27 @@ dependencies = [ [[package]] name = "sp-database" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "kvdb", - "parking_lot 0.10.2", + "parking_lot 0.11.1", ] [[package]] name = "sp-debug-derive" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "sp-externalities" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "environmental", "parity-scale-codec", @@ -6552,8 +8411,8 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "finality-grandpa", "log", @@ -6562,57 +8421,51 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", + "sp-keystore", "sp-runtime", "sp-std", ] -[[package]] -name = "sp-finality-tracker" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" -dependencies = [ - "parity-scale-codec", - "sp-inherents", - "sp-std", -] - [[package]] name = "sp-inherents" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "derive_more", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sp-core", "sp-std", + "thiserror", ] [[package]] name = "sp-io" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "hash-db", "libsecp256k1", "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sp-core", "sp-externalities", + "sp-keystore", "sp-runtime-interface", "sp-state-machine", "sp-std", "sp-tracing", "sp-trie", "sp-wasm-interface", + "tracing", + "tracing-core", ] [[package]] name = "sp-keyring" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "lazy_static", "sp-core", @@ -6620,10 +8473,50 @@ dependencies = [ "strum", ] +[[package]] +name = "sp-keystore" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.9", + "merlin", + "parity-scale-codec", + "parking_lot 0.11.1", + "schnorrkel", + "serde", + "sp-core", + "sp-externalities", +] + +[[package]] +name = "sp-npos-elections" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "parity-scale-codec", + "serde", + "sp-arithmetic", + "sp-npos-elections-compact", + "sp-std", +] + +[[package]] +name = "sp-npos-elections-compact" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + [[package]] name = "sp-offchain" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "sp-api", "sp-core", @@ -6632,17 +8525,16 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "backtrace", - "log", ] [[package]] name = "sp-rpc" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "serde", "sp-core", @@ -6650,12 +8542,12 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "either", "hash256-std-hasher", - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", "log", "parity-scale-codec", "parity-util-mem", @@ -6665,16 +8557,16 @@ dependencies = [ "sp-application-crypto", "sp-arithmetic", "sp-core", - "sp-inherents", "sp-io", "sp-std", ] [[package]] name = "sp-runtime-interface" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ + "impl-trait-for-tuples 0.2.0", "parity-scale-codec", "primitive-types", "sp-externalities", @@ -6688,20 +8580,20 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "Inflector", "proc-macro-crate", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "sp-serializer" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "serde", "serde_json", @@ -6709,8 +8601,8 @@ dependencies = [ [[package]] name = "sp-session" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "parity-scale-codec", "sp-api", @@ -6722,8 +8614,8 @@ dependencies = [ [[package]] name = "sp-staking" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -6732,36 +8624,37 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "hash-db", - "itertools 0.9.0", "log", - "num-traits", + "num-traits 0.2.14", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "rand 0.7.3", - "smallvec 1.4.2", + "smallvec 1.6.1", "sp-core", "sp-externalities", "sp-panic-handler", + "sp-std", "sp-trie", + "thiserror", "trie-db", "trie-root", ] [[package]] name = "sp-std" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" [[package]] name = "sp-storage" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "impl-serde 0.2.3", + "impl-serde", "parity-scale-codec", "ref-cast", "serde", @@ -6769,12 +8662,25 @@ dependencies = [ "sp-std", ] +[[package]] +name = "sp-tasks" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "log", + "sp-core", + "sp-externalities", + "sp-io", + "sp-runtime-interface", + "sp-std", +] + [[package]] name = "sp-timestamp" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", "parity-scale-codec", "sp-api", "sp-inherents", @@ -6785,33 +8691,37 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "log", - "rental", + "parity-scale-codec", + "sp-std", "tracing", + "tracing-core", + "tracing-subscriber", ] [[package]] name = "sp-transaction-pool" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "derive_more", - "futures 0.3.6", + "futures 0.3.9", "log", "parity-scale-codec", "serde", "sp-api", "sp-blockchain", "sp-runtime", + "thiserror", ] [[package]] name = "sp-trie" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "hash-db", "memory-db", @@ -6824,10 +8734,10 @@ dependencies = [ [[package]] name = "sp-utils" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "futures-core", "futures-timer 3.0.2", "lazy_static", @@ -6836,10 +8746,10 @@ dependencies = [ [[package]] name = "sp-version" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "impl-serde 0.2.3", + "impl-serde", "parity-scale-codec", "serde", "sp-runtime", @@ -6848,10 +8758,10 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", "parity-scale-codec", "sp-std", "wasmi", @@ -6877,30 +8787,33 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "statrs" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10102ac8d55e35db2b3fafc26f81ba8647da2e15879ab686a67e6d19af2685e8" +checksum = "cce16f6de653e88beca7bd13780d08e09d4489dbca1f9210e041bc4852481382" dependencies = [ - "rand 0.5.6", + "rand 0.7.3", ] [[package]] name = "stream-cipher" -version = "0.3.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c" +checksum = "c80e15f898d8d8f25db24c253ea615cc14acf418ff307822995814e7d42cfa89" dependencies = [ - "generic-array 0.12.3", + "block-cipher", + "generic-array 0.14.4", ] [[package]] -name = "stream-cipher" -version = "0.7.1" +name = "streamunordered" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c80e15f898d8d8f25db24c253ea615cc14acf418ff307822995814e7d42cfa89" +checksum = "f9394ee1338fee8370bee649f8a7170b3a56917903a0956467ad192dcf8699ca" dependencies = [ - "block-cipher", - "generic-array 0.14.4", + "futures-core", + "futures-sink", + "futures-util", + "slab", ] [[package]] @@ -6920,9 +8833,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a7159e7d0dbcab6f9c980d7971ef50f3ff5753081461eeda120d5974a4ee95" +checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c" dependencies = [ "clap", "lazy_static", @@ -6931,15 +8844,15 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc47de4dfba76248d1e9169ccff240eea2a4dc1e34e309b95b2393109b4b383" +checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" dependencies = [ "heck", "proc-macro-error", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -6958,9 +8871,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0054a7df764039a6cd8592b9de84be4bec368ff081d203a7d5371cbfa8e65c81" dependencies = [ "heck", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -6969,8 +8882,8 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bed6646a0159b9935b5d045611560eeef842b78d7adc3ba36f5ca325a13a0236" dependencies = [ - "hmac", - "pbkdf2", + "hmac 0.7.1", + "pbkdf2 0.3.0", "schnorrkel", "sha2 0.8.2", "zeroize", @@ -6978,20 +8891,20 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "platforms", ] [[package]] name = "substrate-frame-rpc-system" -version = "2.0.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.6", - "jsonrpc-core", + "futures 0.3.9", + "jsonrpc-core 15.1.0", "jsonrpc-core-client", "jsonrpc-derive", "log", @@ -7009,22 +8922,48 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.8.0-rc6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" dependencies = [ "async-std", "derive_more", "futures-util", - "hyper 0.13.8", + "hyper 0.13.9", "log", "prometheus", - "tokio 0.2.22", + "tokio 0.2.24", ] [[package]] -name = "substrate-wasm-builder-runner" -version = "1.0.6" -source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-rc6#be8bb186d87b9d2b47a2907c9b51ae1e252362c3" +name = "substrate-wasm-builder" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79091baab813855ddf65b191de9fe53e656b6b67c1e9bd23fdcbff8788164684" +dependencies = [ + "ansi_term 0.12.1", + "atty", + "build-helper", + "cargo_metadata", + "tempfile", + "toml", + "walkdir", + "wasm-gc-api", +] + +[[package]] +name = "substrate-wasm-builder" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git#8b3e4c86bc5a86570a3091e470011604fb46d324" +dependencies = [ + "ansi_term 0.12.1", + "atty", + "build-helper", + "cargo_metadata", + "tempfile", + "toml", + "walkdir", + "wasm-gc-api", +] [[package]] name = "subtle" @@ -7034,19 +8973,30 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.3.0" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" + +[[package]] +name = "syn" +version = "0.15.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "343f3f510c2915908f155e94f17220b19ccfacf2a64a2a5d8004f2c3e311e7fd" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] [[package]] name = "syn" -version = "1.0.43" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e2e59c50ed8f6b050b071aa7b6865293957a9af6b58b94f97c1c9434ad440ea" +checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5" dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", + "proc-macro2 1.0.24", + "quote 1.0.8", + "unicode-xid 0.2.1", ] [[package]] @@ -7055,10 +9005,10 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", + "unicode-xid 0.2.1", ] [[package]] @@ -7079,7 +9029,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "rand 0.7.3", "redox_syscall", @@ -7089,9 +9039,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" dependencies = [ "winapi-util", ] @@ -7105,31 +9055,42 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "theban_interval_tree" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b42a5385db9a651628091edcd1d58ac9cb1c92327d8cd2a29bf8e35bdfe4ea" +dependencies = [ + "memrange", + "rand 0.3.23", + "time", +] + [[package]] name = "thiserror" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "318234ffa22e0920fe9a40d7b8369b5f649d490980cf7aadcf1eb91594869b42" +checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae2447b6282786c3493999f40a9be2a6ad20cb8bd268b0a0dbf5a065535c0ab" +checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "thread_local" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" +checksum = "bb9bc092d0d51e76b2b19d9d85534ffc9ec2db959a2523cdae0697e2972cd447" dependencies = [ "lazy_static", ] @@ -7143,31 +9104,45 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "thrift" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6d965454947cc7266d22716ebfd07b18d84ebaf35eec558586bbb2a8cb6b5b" +dependencies = [ + "byteorder", + "integer-encoding", + "log", + "ordered-float", + "threadpool", +] + [[package]] name = "time" -version = "0.1.44" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" dependencies = [ "libc", - "wasi 0.10.0+wasi-snapshot-preview1", "winapi 0.3.9", ] [[package]] name = "tiny-bip39" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0165e045cc2ae1660270ca65e1676dbaab60feb0f91b10f7d0665e9b47e31f2" +checksum = "d9e44c4759bae7f1032e286a7ef990bd9ed23fe831b7eeba0beb97484c2e59b8" dependencies = [ - "failure", - "hmac", - "once_cell 1.4.1", - "pbkdf2", + "anyhow", + "hmac 0.8.1", + "once_cell", + "pbkdf2 0.4.0", "rand 0.7.3", "rustc-hash", - "sha2 0.8.2", + "sha2 0.9.2", + "thiserror", "unicode-normalization", + "zeroize", ] [[package]] @@ -7190,9 +9165,18 @@ dependencies = [ [[package]] name = "tinyvec" -version = "0.3.4" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" @@ -7206,11 +9190,11 @@ dependencies = [ "num_cpus", "tokio-codec", "tokio-current-thread", - "tokio-executor 0.1.10", + "tokio-executor", "tokio-fs", "tokio-io", "tokio-reactor", - "tokio-sync 0.1.8", + "tokio-sync", "tokio-tcp", "tokio-threadpool", "tokio-timer", @@ -7220,9 +9204,9 @@ dependencies = [ [[package]] name = "tokio" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd" +checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48" dependencies = [ "bytes 0.5.6", "fnv", @@ -7234,7 +9218,7 @@ dependencies = [ "mio", "mio-uds", "num_cpus", - "pin-project-lite", + "pin-project-lite 0.1.11", "signal-hook-registry", "slab", "winapi 0.3.9", @@ -7269,7 +9253,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" dependencies = [ "futures 0.1.30", - "tokio-executor 0.1.10", + "tokio-executor", ] [[package]] @@ -7278,21 +9262,10 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" dependencies = [ - "crossbeam-utils", + "crossbeam-utils 0.7.2", "futures 0.1.30", ] -[[package]] -name = "tokio-executor" -version = "0.2.0-alpha.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee9ceecf69145923834ea73f32ba40c790fd877b74a7817dd0b089f1eb9c7c8" -dependencies = [ - "futures-util-preview", - "lazy_static", - "tokio-sync 0.2.0-alpha.6", -] - [[package]] name = "tokio-fs" version = "0.1.7" @@ -7334,7 +9307,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" dependencies = [ - "crossbeam-utils", + "crossbeam-utils 0.7.2", "futures 0.1.30", "lazy_static", "log", @@ -7342,9 +9315,9 @@ dependencies = [ "num_cpus", "parking_lot 0.9.0", "slab", - "tokio-executor 0.1.10", + "tokio-executor", "tokio-io", - "tokio-sync 0.1.8", + "tokio-sync", ] [[package]] @@ -7354,8 +9327,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" dependencies = [ "futures-core", - "rustls", - "tokio 0.2.22", + "rustls 0.18.1", + "tokio 0.2.24", "webpki", ] @@ -7378,17 +9351,6 @@ dependencies = [ "futures 0.1.30", ] -[[package]] -name = "tokio-sync" -version = "0.2.0-alpha.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1aaeb685540f7407ea0e27f1c9757d258c7c6bf4e3eb19da6fc59b747239d2" -dependencies = [ - "fnv", - "futures-core-preview", - "futures-util-preview", -] - [[package]] name = "tokio-tcp" version = "0.1.4" @@ -7409,15 +9371,15 @@ version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" dependencies = [ - "crossbeam-deque", + "crossbeam-deque 0.7.3", "crossbeam-queue", - "crossbeam-utils", + "crossbeam-utils 0.7.2", "futures 0.1.30", "lazy_static", "log", "num_cpus", "slab", - "tokio-executor 0.1.10", + "tokio-executor", ] [[package]] @@ -7426,10 +9388,10 @@ version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" dependencies = [ - "crossbeam-utils", + "crossbeam-utils 0.7.2", "futures 0.1.30", "slab", - "tokio-executor 0.1.10", + "tokio-executor", ] [[package]] @@ -7475,15 +9437,15 @@ dependencies = [ "futures-core", "futures-sink", "log", - "pin-project-lite", - "tokio 0.2.22", + "pin-project-lite 0.1.11", + "tokio 0.2.24", ] [[package]] name = "toml" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" +checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" dependencies = [ "serde", ] @@ -7496,13 +9458,13 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" [[package]] name = "tracing" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27" +checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "log", - "pin-project-lite", + "pin-project-lite 0.2.4", "tracing-attributes", "tracing-core", ] @@ -7513,9 +9475,9 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -7527,6 +9489,16 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "tracing-futures" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" +dependencies = [ + "pin-project 0.4.27", + "tracing", +] + [[package]] name = "tracing-log" version = "0.1.1" @@ -7550,9 +9522,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ef0a5e15477aa303afbfac3a44cba9b6430fdaad52423b1e6c0dbbe28c3eedd" +checksum = "a1fa8f0c8f4c594e4fc9debc1990deab13238077271ba84dd853d54902ee3401" dependencies = [ "ansi_term 0.12.1", "chrono", @@ -7562,7 +9534,7 @@ dependencies = [ "serde", "serde_json", "sharded-slab", - "smallvec 1.4.2", + "smallvec 1.6.1", "thread_local", "tracing", "tracing-core", @@ -7572,15 +9544,15 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.22.1" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e55f7ace33d6237e14137e386f4e1672e2a5c6bbc97fef9f438581a143971f0" +checksum = "5cc176c377eb24d652c9c69c832c832019011b6106182bf84276c66b66d5c9a6" dependencies = [ "hash-db", - "hashbrown 0.8.2", + "hashbrown", "log", "rustc-hex", - "smallvec 1.4.2", + "smallvec 1.6.1", ] [[package]] @@ -7598,24 +9570,15 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" -[[package]] -name = "twofish" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712d261e83e727c8e2dbb75dacac67c36e35db36a958ee504f2164fc052434e1" -dependencies = [ - "block-cipher-trait", - "byteorder 1.3.4", - "opaque-debug 0.2.3", -] - [[package]] name = "twox-hash" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bfd5b7557925ce778ff9b9ef90e3ade34c524b5ff10e239c69a42d546d2af56" +checksum = "04f8ab788026715fa63b31960869617cba39117e520eb415b0139543e325ab59" dependencies = [ - "rand 0.3.23", + "cfg-if 0.1.10", + "rand 0.7.3", + "static_assertions", ] [[package]] @@ -7624,18 +9587,36 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" +[[package]] +name = "ucd-trie" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" + [[package]] name = "uint" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9db035e67dfaf7edd9aebfe8676afcd63eed53c8a4044fed514c8cccf1835177" dependencies = [ - "byteorder 1.3.4", + "byteorder", "crunchy", "rustc-hex", "static_assertions", ] +[[package]] +name = "uint" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e11fe9a9348741cf134085ad57c249508345fe16411b3d7fb4ff2da2f1d6382e" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + [[package]] name = "unicase" version = "2.6.0" @@ -7656,18 +9637,18 @@ dependencies = [ [[package]] name = "unicode-normalization" -version = "0.1.13" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" +checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" +checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" [[package]] name = "unicode-width" @@ -7675,6 +9656,12 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + [[package]] name = "unicode-xid" version = "0.2.1" @@ -7688,14 +9675,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" dependencies = [ "generic-array 0.14.4", - "subtle 2.3.0", + "subtle 2.4.0", ] [[package]] name = "unsigned-varint" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "669d776983b692a906c881fcd0cfb34271a48e197e4d6cb8df32b05bfc3d3fa5" +checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35" dependencies = [ "bytes 0.5.6", "futures-io", @@ -7703,12 +9690,6 @@ dependencies = [ "futures_codec", ] -[[package]] -name = "unsigned-varint" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35" - [[package]] name = "untrusted" version = "0.7.1" @@ -7728,10 +9709,11 @@ dependencies = [ [[package]] name = "url" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" +checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" dependencies = [ + "form_urlencoded", "idna 0.2.0", "matches", "percent-encoding 2.1.0", @@ -7739,9 +9721,9 @@ dependencies = [ [[package]] name = "vcpkg" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c" +checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" [[package]] name = "vec-arena" @@ -7773,6 +9755,17 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +[[package]] +name = "walkdir" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" +dependencies = [ + "same-file", + "winapi 0.3.9", + "winapi-util", +] + [[package]] name = "want" version = "0.2.0" @@ -7802,42 +9795,42 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" +version = "0.10.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" +checksum = "93c6c3420963c5c64bca373b25e77acb562081b9bb4dd5bb864187742186cea9" [[package]] name = "wasm-bindgen" -version = "0.2.68" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac64ead5ea5f05873d7c12b545865ca2b8d28adfc50a49b84770a3a97265d42" +checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.68" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f22b422e2a757c35a73774860af8e112bff612ce6cb604224e8e47641a9e4f68" +checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62" dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.18" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7866cab0aa01de1edf8b5d7936938a7e397ee50ce24119aef3e1eaa3b6171da" +checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "js-sys", "wasm-bindgen", "web-sys", @@ -7845,32 +9838,43 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.68" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b13312a745c08c469f0b292dd2fcd6411dba5f7160f593da6ef69b64e407038" +checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084" dependencies = [ - "quote", + "quote 1.0.8", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.68" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f249f06ef7ee334cc3b8ff031bfc11ec99d00f34d86da7498396dc1e3b1498fe" +checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.68" +version = "0.2.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158" + +[[package]] +name = "wasm-gc-api" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d649a3145108d7d3fbcde896a468d1bd636791823c9921135218ad89be08307" +checksum = "d0c32691b6c7e6c14e7f8fd55361a9088b507aa49620fcd06c09b3a1082186b9" +dependencies = [ + "log", + "parity-wasm 0.32.0", + "rustc-demangle", +] [[package]] name = "wasm-timer" @@ -7878,9 +9882,9 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "js-sys", - "parking_lot 0.11.0", + "parking_lot 0.11.1", "pin-utils", "wasm-bindgen", "wasm-bindgen-futures", @@ -7896,8 +9900,8 @@ dependencies = [ "libc", "memory_units", "num-rational", - "num-traits", - "parity-wasm", + "num-traits 0.2.14", + "parity-wasm 0.41.0", "wasmi-validation", ] @@ -7907,7 +9911,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea78c597064ba73596099281e2f4cfc019075122a65cdda3205af94f0b264d93" dependencies = [ - "parity-wasm", + "parity-wasm 0.41.0", ] [[package]] @@ -7930,13 +9934,13 @@ checksum = "1cd3c4f449382779ef6e0a7c3ec6752ae614e20a42e4100000c3efdc973100e2" dependencies = [ "anyhow", "backtrace", - "cfg-if", + "cfg-if 0.1.10", "lazy_static", "libc", "log", "region", "rustc-demangle", - "smallvec 1.4.2", + "smallvec 1.6.1", "target-lexicon", "wasmparser 0.59.0", "wasmtime-environ", @@ -7972,12 +9976,12 @@ dependencies = [ "anyhow", "base64 0.12.3", "bincode", - "cfg-if", + "cfg-if 0.1.10", "cranelift-codegen", "cranelift-entity", "cranelift-frontend", "cranelift-wasm", - "directories", + "directories 2.0.2", "errno", "file-per-thread-logger", "indexmap", @@ -8001,7 +10005,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e914c013c7a9f15f4e429d5431f2830fb8adb56e40567661b69c5ec1d645be23" dependencies = [ "anyhow", - "cfg-if", + "cfg-if 0.1.10", "cranelift-codegen", "cranelift-entity", "cranelift-frontend", @@ -8044,7 +10048,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e8d4d1af8dd5f7096cfcc89dd668d358e52980c38cce199643372ffd6590e27" dependencies = [ "anyhow", - "cfg-if", + "cfg-if 0.1.10", "gimli 0.21.0", "lazy_static", "libc", @@ -8064,12 +10068,12 @@ checksum = "3a25f140bbbaadb07c531cba99ce1a966dba216138dc1b2a0ddecec851a01a93" dependencies = [ "backtrace", "cc", - "cfg-if", + "cfg-if 0.1.10", "indexmap", "lazy_static", "libc", "log", - "memoffset", + "memoffset 0.5.6", "more-asserts", "region", "thiserror", @@ -8079,27 +10083,27 @@ dependencies = [ [[package]] name = "wast" -version = "25.0.2" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "000df4e05cdb4cbc1d0bb1e7e5ea86adb3f1295850c9effb9a47b1086a346895" +checksum = "9b79907b22f740634810e882d8d1d9d0f9563095a8ab94e786e370242bff5cd2" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.26" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4766d466249e23279e92c52033429eb91141c5efea1c4478138fa6f6ef4efe3e" +checksum = "a8279a02835bf12e61ed2b3c3cbc6ecf9918762fd97e036917c11a09ec20ca44" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.45" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bf6ef87ad7ae8008e15a355ce696bed26012b7caa21605188cfd8214ab51e2d" +checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3" dependencies = [ "js-sys", "wasm-bindgen", @@ -8107,9 +10111,9 @@ dependencies = [ [[package]] name = "webpki" -version = "0.21.3" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab146130f5f790d45f82aeeb09e55a256573373ec64409fc19a6fb82fb1032ae" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" dependencies = [ "ring", "untrusted", @@ -8117,29 +10121,87 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.18.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cd5736df7f12a964a5067a12c62fa38e1bd8080aff1f80bc29be7c80d19ab4" +checksum = "82015b7e0b8bad8185994674a13a93306bea76cf5a16c5a181382fd3a5ec2376" dependencies = [ "webpki", ] [[package]] -name = "webpki-roots" -version = "0.19.0" +name = "wepoll-sys" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8eff4b7516a57307f9349c64bf34caa34b940b66fed4b2fb3136cb7386e5739" +checksum = "0fcb14dea929042224824779fbc82d9fab8d2e6d3cbc0ac404de8edf489e77ff" dependencies = [ - "webpki", + "cc", ] [[package]] -name = "wepoll-sys" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "142bc2cba3fe88be1a8fcb55c727fa4cd5b0cf2d7438722792e22f26f04bc1e0" +name = "westend-runtime" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" dependencies = [ - "cc", + "bitvec", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-collective", + "pallet-democracy", + "pallet-elections-phragmen", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-proxy", + "pallet-randomness-collective-flip", + "pallet-recovery", + "pallet-scheduler", + "pallet-session", + "pallet-society", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "rustc-hex", + "serde", + "serde_derive", + "smallvec 1.6.1", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "static_assertions", + "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -8194,24 +10256,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "ws" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51a2c47b5798ccc774ffb93ff536aec7c4275d722fd9c740c83cdd1af1f2d94" -dependencies = [ - "byteorder 1.3.4", - "bytes 0.4.12", - "httparse", - "log", - "mio", - "mio-extras", - "rand 0.7.3", - "sha-1 0.8.2", - "slab", - "url 2.1.1", -] - [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -8224,45 +10268,87 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "0.6.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637ff90c9540fa3073bb577e65033069e4bae7c79d49d74aa3ffdf5342a53217" +checksum = "bc614d95359fd7afc321b66d2107ede58b246b844cf5d8a0adcca413e439f088" dependencies = [ - "curve25519-dalek 2.1.0", + "curve25519-dalek 3.0.2", "rand_core 0.5.1", "zeroize", ] [[package]] -name = "x25519-dalek" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc614d95359fd7afc321b66d2107ede58b246b844cf5d8a0adcca413e439f088" +name = "xcm" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" dependencies = [ - "curve25519-dalek 3.0.0", - "rand_core 0.5.1", - "zeroize", + "parity-scale-codec", +] + +[[package]] +name = "xcm-builder" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "frame-support", + "parity-scale-codec", + "polkadot-parachain", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "xcm-executor" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot.git#ac5e2a08345e99486be46c911889914d99f07286" +dependencies = [ + "frame-support", + "impl-trait-for-tuples 0.2.0", + "parity-scale-codec", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", +] + +[[package]] +name = "xcm-handler" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git#5dfd0756efbd5be85937c2f530cfeaa7108b6dec" +dependencies = [ + "cumulus-primitives", + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-std", + "xcm", ] [[package]] name = "yamux" -version = "0.4.9" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053585b18bca1a3d00e4b5ef93e72d4f49a10005374c455db7177e27149c899d" +checksum = "9aeb8c4043cac71c3c299dff107171c220d179492350ea198e109a414981b83c" dependencies = [ - "futures 0.3.6", + "futures 0.3.9", "log", "nohash-hasher", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "rand 0.7.3", "static_assertions", ] [[package]] name = "zeroize" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f33972566adbd2d3588b0491eb94b98b43695c4ef897903470ede4f3f5a28a" +checksum = "81a974bcdd357f0dca4d41677db03436324d45a4c9ed2d0b873a5a360ce41c36" dependencies = [ "zeroize_derive", ] @@ -8273,26 +10359,26 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", "synstructure", ] [[package]] name = "zstd" -version = "0.5.3+zstd.1.4.5" +version = "0.5.4+zstd.1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b32eaf771efa709e8308605bbf9319bf485dc1503179ec0469b611937c0cd8" +checksum = "69996ebdb1ba8b1517f61387a883857818a66c8a295f487b1ffd8fd9d2c82910" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "2.0.5+zstd.1.4.5" +version = "2.0.6+zstd.1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfb642e0d27f64729a639c52db457e0ae906e7bc6f5fe8f5c453230400f1055" +checksum = "98aa931fb69ecee256d44589d19754e61851ae4769bf963b385119b1cc37a49e" dependencies = [ "libc", "zstd-sys", @@ -8300,9 +10386,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.4.17+zstd.1.4.5" +version = "1.4.18+zstd.1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b89249644df056b522696b1bb9e7c18c87e8ffa3e2f0dc3b0155875d6498f01b" +checksum = "a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81" dependencies = [ "cc", "glob", diff --git a/parachain/Cargo.toml b/parachain/Cargo.toml index 56294d34b..3df643412 100644 --- a/parachain/Cargo.toml +++ b/parachain/Cargo.toml @@ -1,3 +1,5 @@ +cargo-features = ["resolver"] + [profile.release] panic = "unwind" @@ -6,13 +8,15 @@ members = [ "primitives/core", "primitives/ethereum", "primitives/testutils", + "primitives/xcm-support", "pallets/bridge", "pallets/assets", - "pallets/verifier", "pallets/verifier-lightclient", "pallets/eth-app", "pallets/erc20-app", "pallets/commitments", + "pallets/token-dealer", "node", "runtime", ] +resolver = "2" diff --git a/parachain/README.md b/parachain/README.md index e0b49a09d..037879ffd 100644 --- a/parachain/README.md +++ b/parachain/README.md @@ -84,17 +84,9 @@ Edit the generated spec file and replace the following addresses: } ``` -#### Relayer Key - -_It is not required to change anything here for local development and testing._ - -The parachain depends on a external relayer service to forward messages to and from Ethereum. The relayer service is trusted by the parachain. Its identity should be injected into the [GenesisConfig](https://snowfork.github.io/artemis-rust-docs/pallet_verifier/struct.GenesisConfig.html#structfield.key) for the [Verifier](https://snowfork.github.io/artemis-rust-docs/pallet_verifier/index.html) pallet. - -The node's baked-in chain spec uses `//Relay` as the relayer's account seed. For reference, see [chain_spec.rs](https://github.com/Snowfork/polkadot-ethereum/blob/main/parachain/node/src/chain_spec.rs#L50). - ### Build -Once the development environment is set up, build the node template. This command will build the +Once the development environment is set up, build the parachain. This command will build the [Wasm](https://substrate.dev/docs/en/knowledgebase/advanced/executor#wasm-execution) and [native](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code: @@ -104,24 +96,36 @@ cargo build --release ### Run -Purge any existing dev chain state: + +Install `polkadot-launch`: ```bash -target/release/artemis-node purge-chain --dev +git clone https://github.com/paritytech/polkadot-launch.git +cd polkadot-launch +yarn global add file:. ``` -Start a dev chain: +Build polkadot: ```bash -target/release/artemis-node --tmp --dev +git clone https://github.com/paritytech/polkadot.git +cd polkadot +cargo build --release --features=real-overseer ``` -Or, start a dev chain with a custom chain spec: +Create a configuration for polkadot-launch by editing `config.json`: ```bash -target/release/artemis-node --tmp --spec spec.json +vim config.json ``` +Launch polkadot and parachain: + +```bash +polkadot-launch config.json +``` + + ## Interacting with the chain You can interact with a development chain using our [webapp](https://polkaeth-substrate.netlify.app). Its an instance of the Polkadot-JS webapp with the necessary configuration to interact with our development chain. diff --git a/parachain/config.json b/parachain/config.json new file mode 100644 index 000000000..2bc6e42f7 --- /dev/null +++ b/parachain/config.json @@ -0,0 +1,298 @@ +{ + "relaychain": { + "bin": "/target/release/polkadot", + "chain": "rococo-local", + "nodes": [ + { + "name": "alice", + "wsPort": 9944, + "port": 30444 + }, + { + "name": "bob", + "wsPort": 9955, + "port": 30555 + } + ] + }, + "parachains": [ + { + "bin": "target/release/artemis", + "id": "200", + "wsPort": 9988, + "port": 31200, + "balance": "1000000000000000000000", + "flags": ["--discover-local", "--", "--execution=wasm"] + } + ], + "simpleParachains": [], + "types": { + "HrmpChannelId": { + "sender": "u32", + "receiver": "u32" + }, + "SignedAvailabilityBitfield": { + "payload": "BitVec", + "validator_index": "u32", + "signature": "Signature" + }, + "SignedAvailabilityBitfields": "Vec", + "ValidatorSignature": "Signature", + "HeadData": "Vec", + "CandidateDescriptor": { + "para_id": "u32", + "relay_parent": "Hash", + "collator_id": "Hash", + "persisted_validation_data_hash": "Hash", + "pov_hash": "Hash", + "signature": "Signature" + }, + "CandidateReceipt": { + "descriptor": "CandidateDescriptor", + "commitments_hash": "Hash" + }, + "UpwardMessage": "Vec", + "OutboundHrmpMessage": { + "recipient": "u32", + "data": "Vec" + }, + "ValidationCode": "Vec", + "CandidateCommitments": { + "upward_messages": "Vec", + "horizontal_messages": "Vec", + "erasure_root": "Hash", + "new_validation_code": "Option", + "head_data": "HeadData", + "processed_downward_messages": "u32", + "hrmp_watermark": "BlockNumber" + }, + "CommittedCandidateReceipt": { + "descriptor": "CandidateDescriptor", + "commitments": "CandidateCommitments" + }, + "ValidityAttestation": { + "_enum": { + "DummyOffsetBy1": "Raw", + "Implicit": "ValidatorSignature", + "Explicit": "ValidatorSignature" + } + }, + "BackedCandidate": { + "candidate": "CommittedCandidateReceipt", + "validity_votes": "Vec", + "validator_indices": "BitVec" + }, + "OriginKind": { + "_enum": { + "Native": null, + "SovereignAccount": null, + "Superuser": null + } + }, + "NetworkId": { + "_enum": { + "Any": null, + "Named": "Vec", + "Polkadot": null, + "Kusama": null + } + }, + "MultiLocation": { + "_enum": { + "Null": null, + "X1": "Junction", + "X2": "(Junction, Junction)", + "X3": "(Junction, Junction, Junction)", + "X4": "(Junction, Junction, Junction, Junction)" + } + }, + "AccountId32Junction": { + "network": "NetworkId", + "id": "AccountId" + }, + "AccountIndex64Junction": { + "network": "NetworkId", + "index": "Compact" + }, + "AccountKey20Junction": { + "network": "NetworkId", + "index": "[u8; 20]" + }, + "Junction": { + "_enum": { + "Parent": null, + "Parachain": "Compact", + "AccountId32": "AccountId32Junction", + "AccountIndex64": "AccountIndex64Junction", + "AccountKey20": "AccountKey20Junction", + "PalletInstance": "u8", + "GeneralIndex": "Compact", + "GeneralKey": "Vec", + "OnlyChild": null + } + }, + "VersionedMultiLocation": { + "_enum": { + "V0": "MultiLocation" + } + }, + "AssetInstance": { + "_enum": { + "Undefined": null, + "Index8": "u8", + "Index16": "Compact", + "Index32": "Compact", + "Index64": "Compact", + "Index128": "Compact", + "Array4": "[u8; 4]", + "Array8": "[u8; 8]", + "Array16": "[u8; 16]", + "Array32": "[u8; 32]", + "Blob": "Vec" + } + }, + "AbstractFungible": { + "id": "Vec", + "instance": "Compact" + }, + "AbstractNonFungible": { + "class": "Vec", + "instance": "AssetInstance" + }, + "ConcreteFungible": { + "id": "MultiLocation", + "amount": "Compact" + }, + "ConcreteNonFungible": { + "class": "MultiLocation", + "instance": "AssetInstance" + }, + "MultiAsset": { + "_enum": { + "None": null, + "All": null, + "AllFungible": null, + "AllNonFungible": null, + "AllAbstractFungible": "Vec", + "AllAbstractNonFungible": "Vec", + "AllConcreteFungible": "MultiLocation", + "AllConcreteNonFungible": "MultiLocation", + "AbstractFungible": "AbstractFungible", + "AbstractNonFungible": "AbstractNonFungible", + "ConcreteFungible": "ConcreteFungible", + "ConcreteNonFungible": "ConcreteNonFungible" + } + }, + "VersionedMultiAsset": { + "_enum": { + "V0": "MultiAsset" + } + }, + "DepositAsset": { + "assets": "Vec", + "dest": "MultiLocation" + }, + "DepositReserveAsset": { + "assets": "Vec", + "dest": "MultiLocation", + "effects": "Vec" + }, + "ExchangeAsset": { + "give": "Vec", + "receive": "Vec" + }, + "InitiateReserveWithdraw": { + "assets": "Vec", + "reserve": "MultiLocation", + "effects": "Vec" + }, + "InitiateTeleport": { + "assets": "Vec", + "dest": "MultiLocation", + "effects": "Vec" + }, + "QueryHolding": { + "query_id": "Compact", + "dest": "MultiLocation", + "assets": "Vec" + }, + "Order": { + "_enum": { + "Null": null, + "DepositAsset": "DepositAsset", + "DepositReserveAsset": "DepositReserveAsset", + "ExchangeAsset": "ExchangeAsset", + "InitiateReserveWithdraw": "InitiateReserveWithdraw", + "InitiateTeleport": "InitiateTeleport", + "QueryHolding": "QueryHolding" + } + }, + "WithdrawAsset": { + "assets": "Vec", + "effects": "Vec" + }, + "ReserveAssetDeposit": { + "assets": "Vec", + "effects": "Vec" + }, + "TeleportAsset": { + "assets": "Vec", + "effects": "Vec" + }, + "Balances": { + "query_id": "Compact", + "assets": "Vec" + }, + "Transact": { + "origin_type": "OriginKind", + "call": "Vec" + }, + "RelayTo": { + "dest": "MultiLocation", + "inner": "VersionedXcm" + }, + "RelayedFrom": { + "superorigin": "MultiLocation", + "inner": "VersionedXcm" + }, + "Xcm": { + "_enum": { + "WithdrawAsset": "WithdrawAsset", + "ReserveAssetDeposit": "ReserveAssetDeposit", + "TeleportAsset": "TeleportAsset", + "Balances": "Balances", + "Transact": "Transact", + "RelayTo": "RelayTo", + "RelayedFrom": "RelayedFrom" + } + }, + "VersionedXcm": { + "_enum": { + "V0": "Xcm" + } + }, + "XcmError": { + "_enum": [ + "Undefined", + "Unimplemented", + "UnhandledXcmVersion", + "UnhandledXcmMessage", + "UnhandledEffect", + "EscalationOfPrivilege", + "UntrustedReserveLocation", + "UntrustedTeleportLocation", + "DestinationBufferOverflow", + "CannotReachDestination", + "MultiLocationFull", + "FailedToDecode", + "BadOrigin" + ] + }, + "XcmResult": { + "_enum": { + "Ok": "()", + "Err": "XcmError" + } + } + } +} diff --git a/parachain/node/Cargo.toml b/parachain/node/Cargo.toml index 1b15fa818..7bc8edcf3 100644 --- a/parachain/node/Cargo.toml +++ b/parachain/node/Cargo.toml @@ -11,136 +11,66 @@ repository = "https://github.com/Snowfork/polkadot-ethereum" targets = ["x86_64-unknown-linux-gnu"] [[bin]] -name = "artemis-node" - -[dependencies.artemis-runtime] -path = "../runtime" -version = "0.1.1" - -[dependencies.pallet-transaction-payment-rpc] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sc-basic-authorship] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "0.8.0-rc6" - -[dependencies.sc-cli] -features = ["wasmtime"] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "0.8.0-rc6" - -[dependencies.sc-client-api] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sc-consensus] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "0.8.0-rc6" - -[dependencies.sc-consensus-aura] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "0.8.0-rc6" - -[dependencies.sc-executor] -features = ["wasmtime"] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "0.8.0-rc6" - -[dependencies.sc-finality-grandpa] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "0.8.0-rc6" - -[dependencies.sc-rpc] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sc-rpc-api] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "0.8.0-rc6" - -[dependencies.sc-service] -features = ["wasmtime"] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "0.8.0-rc6" - -[dependencies.sc-transaction-pool] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-api] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-block-builder] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-blockchain] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-consensus] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "0.8.0-rc6" - -[dependencies.sp-consensus-aura] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "0.8.0-rc6" - -[dependencies.sp-core] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-finality-grandpa] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-inherents] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-runtime] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-transaction-pool] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.substrate-frame-rpc-system] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" +name = "artemis" +path = "src/main.rs" [dependencies] -hex-literal = "0.3" -jsonrpc-core = "14.0.3" +codec = { package = "parity-scale-codec", version = "1.3.5" } +serde = { version = "1.0.102", features = ["derive"] } +futures = { version = "0.3.1", features = ["compat"] } +hex-literal = "0.3.1" +jsonrpc-core = "15.1.0" +jsonrpc-pubsub = "14.2.0" +log = "0.4.8" +rand = "0.7.2" structopt = "0.3.8" - -[build-dependencies.substrate-build-script-utils] -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" +tracing = "0.1.22" +parking_lot = "0.10.0" + +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-cli = { git = "https://github.com/paritytech/substrate.git", branch = "master", features = ["wasmtime"] } +sc-client-api = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-tracing = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-keystore = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-consensus = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-consensus-aura = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-executor = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-finality-grandpa = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-rpc = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-service = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate.git", branch = "master" } + +sp-api = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sp-block-builder = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sp-blockchain = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sp-consensus = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sp-inherents = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sp-timestamp = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sp-trie = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +frame-benchmarking-cli= { git = "https://github.com/paritytech/substrate.git", branch = "master" } + +cumulus-consensus = { git = "https://github.com/paritytech/cumulus.git", branch = "master" } +cumulus-collator = { git = "https://github.com/paritytech/cumulus.git", branch = "master" } +cumulus-network = { git = "https://github.com/paritytech/cumulus.git", branch = "master" } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus.git", branch = "master" } +cumulus-service = { git = "https://github.com/paritytech/cumulus.git", branch = "master" } + +polkadot-primitives = { git = "https://github.com/paritytech/polkadot.git", branch = "master" } +polkadot-service = { git = "https://github.com/paritytech/polkadot.git", branch = "master" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot.git", branch = "master" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot.git", branch = "master" } + +artemis-runtime = { path = "../runtime" } + +[build-dependencies] +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate.git", branch = "master" } diff --git a/parachain/node/src/chain_spec.rs b/parachain/node/src/chain_spec.rs index 8420a374a..e0b80f923 100644 --- a/parachain/node/src/chain_spec.rs +++ b/parachain/node/src/chain_spec.rs @@ -1,23 +1,22 @@ -use sp_core::{Pair, Public, sr25519}; +use cumulus_primitives::ParaId; use artemis_runtime::{ AccountId, EthereumHeader, - AuraConfig, BalancesConfig, GenesisConfig, GrandpaConfig, - SystemConfig, VerifierConfig, VerifierLightclientConfig, + BalancesConfig, GenesisConfig, + SystemConfig, VerifierLightclientConfig, ETHConfig, ERC20Config, + ParachainInfoConfig, WASM_BINARY, Signature, }; -use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_finality_grandpa::AuthorityId as GrandpaId; +use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; +use sc_service::{ChainType, Properties}; +use sp_core::{Pair, Public, sr25519}; use sp_runtime::traits::{Verify, IdentifyAccount}; -use sc_service::ChainType; +use serde::{Deserialize, Serialize}; use hex_literal::hex; -// The URL for the telemetry server. -// const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/"; - /// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec; /// Generate a crypto pair from seed. pub fn get_from_seed(seed: &str) -> ::Public { @@ -26,6 +25,23 @@ pub fn get_from_seed(seed: &str) -> ::Pu .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; /// Generate an account ID from seed. @@ -35,132 +51,64 @@ pub fn get_account_id_from_seed(seed: &str) -> AccountId where AccountPublic::from(get_from_seed::(seed)).into_account() } -/// Helper function to generate an authority key for Aura -pub fn authority_keys_from_seed(s: &str) -> (AuraId, GrandpaId) { - ( - get_from_seed::(s), - get_from_seed::(s), - ) -} - -pub fn development_config() -> Result { - let wasm_binary = WASM_BINARY.ok_or("Development wasm binary not available".to_string())?; +pub fn get_chain_spec(para_id: ParaId) -> ChainSpec { + let mut props = Properties::new(); + props.insert("tokenSymbol".into(), "DEV".into()); + props.insert("tokenDecimals".into(), 12.into()); - Ok(ChainSpec::from_genesis( - // Name - "Development", - // ID - "dev", - ChainType::Development, - move || testnet_genesis( - wasm_binary, - // Initial PoA authorities - vec![ - authority_keys_from_seed("Alice"), - ], - // Relay account - get_account_id_from_seed::("Relay"), - // Pre-funded accounts - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Relay"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Relay//stash"), - ], - true, - ), - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID - None, - // Properties - None, - // Extensions - None, - )) -} - -pub fn local_testnet_config() -> Result { - let wasm_binary = WASM_BINARY.ok_or("Development wasm binary not available".to_string())?; - - Ok(ChainSpec::from_genesis( - // Name - "Local Testnet", - // ID + ChainSpec::from_genesis( + "Artemis Local Testnet", "local_testnet", ChainType::Local, - move || testnet_genesis( - wasm_binary, - // Initial PoA authorities - vec![ - authority_keys_from_seed("Alice"), - authority_keys_from_seed("Bob"), - ], - // Relay Account - get_account_id_from_seed::("Relay"), - // Pre-funded accounts - 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::("Relay"), - 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"), - get_account_id_from_seed::("Relay//stash"), - ], - true, - ), - // Bootnodes + move || { + testnet_genesis( + 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::("Relay"), + 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"), + get_account_id_from_seed::("Relay//stash"), + ], + para_id + ) + }, vec![], - // Telemetry - None, - // Protocol ID None, - // Properties None, - // Extensions - None, - )) + Some(props), + Extensions { + relay_chain: "local_testnet".into(), + para_id: para_id.into(), + }, + ) } /// Configure initial storage state for FRAME modules. fn testnet_genesis( - wasm_binary: &[u8], - initial_authorities: Vec<(AuraId, GrandpaId)>, - relay_key: AccountId, endowed_accounts: Vec, - _enable_println: bool, + para_id: ParaId ) -> GenesisConfig { GenesisConfig { frame_system: Some(SystemConfig { // Add Wasm runtime to storage. - code: wasm_binary.to_vec(), + code: WASM_BINARY + .expect("WASM binary was not build, please build it!") + .to_vec(), changes_trie_config: Default::default(), }), pallet_balances: Some(BalancesConfig { // Configure endowed accounts with initial balance of 1 << 60. balances: endowed_accounts.iter().cloned().map(|k|(k, 1 << 60)).collect(), }), - pallet_aura: Some(AuraConfig { - authorities: initial_authorities.iter().map(|x| (x.0.clone())).collect(), - }), - pallet_grandpa: Some(GrandpaConfig { - authorities: initial_authorities.iter().map(|x| (x.1.clone(), 1)).collect(), - }), - verifier: Some(VerifierConfig { - key: relay_key, - }), verifier_lightclient: Some(VerifierLightclientConfig { initial_header: EthereumHeader { parent_hash: hex!("a0e69c4c28dffaf0b5819ba776a237ce1dcd589013e9665bb70852d81113b43e").into(), @@ -188,6 +136,7 @@ fn testnet_genesis( }), erc20_app: Some(ERC20Config { address: hex!["eda338e4dc46038493b885327842fd3e301cab39"].into() - }) + }), + parachain_info: Some(ParachainInfoConfig { parachain_id: para_id }), } } diff --git a/parachain/node/src/cli.rs b/parachain/node/src/cli.rs index 0091ef7d7..6740e7435 100644 --- a/parachain/node/src/cli.rs +++ b/parachain/node/src/cli.rs @@ -1,11 +1,142 @@ -use sc_cli::{RunCmd, Subcommand}; +use std::path::PathBuf; + +use sc_cli; use structopt::StructOpt; +/// Sub-commands supported by the collator. +#[derive(Debug, StructOpt)] +pub enum Subcommand { + /// Export the genesis state of the parachain. + #[structopt(name = "export-genesis-state")] + ExportGenesisState(ExportGenesisStateCommand), + + /// Export the genesis wasm of the parachain. + #[structopt(name = "export-genesis-wasm")] + ExportGenesisWasm(ExportGenesisWasmCommand), + + /// Build a chain specification. + BuildSpec(sc_cli::BuildSpecCmd), + + /// Validate blocks. + CheckBlock(sc_cli::CheckBlockCmd), + + /// Export blocks. + ExportBlocks(sc_cli::ExportBlocksCmd), + + /// Export the state of a given block into a chain spec. + ExportState(sc_cli::ExportStateCmd), + + /// Import blocks. + ImportBlocks(sc_cli::ImportBlocksCmd), + + /// Remove the whole chain. + PurgeChain(sc_cli::PurgeChainCmd), + + /// Revert the chain to a previous state. + Revert(sc_cli::RevertCmd), +} + +/// Command for exporting the genesis state of the parachain +#[derive(Debug, StructOpt)] +pub struct ExportGenesisStateCommand { + /// Output file name or stdout if unspecified. + #[structopt(parse(from_os_str))] + pub output: Option, + + /// Id of the parachain this state is for. + #[structopt(long, default_value = "100")] + pub parachain_id: u32, + + /// Write output in binary. Default is to write in hex. + #[structopt(short, long)] + pub raw: bool, + + /// The name of the chain for that the genesis state should be exported. + #[structopt(long)] + pub chain: Option, +} + +/// Command for exporting the genesis wasm file. #[derive(Debug, StructOpt)] +pub struct ExportGenesisWasmCommand { + /// Output file name or stdout if unspecified. + #[structopt(parse(from_os_str))] + pub output: Option, + + /// Write output in binary. Default is to write in hex. + #[structopt(short, long)] + pub raw: bool, + + /// The name of the chain for that the genesis wasm file should be exported. + #[structopt(long)] + pub chain: Option, +} + +#[derive(Debug, StructOpt)] +pub struct RunCmd { + #[structopt(flatten)] + pub base: sc_cli::RunCmd, + + /// Id of the parachain this collator collates for. + #[structopt(long)] + pub parachain_id: Option, +} + +impl std::ops::Deref for RunCmd { + type Target = sc_cli::RunCmd; + + fn deref(&self) -> &Self::Target { + &self.base + } +} + +#[derive(Debug, StructOpt)] +#[structopt(settings = &[ + structopt::clap::AppSettings::GlobalVersion, + structopt::clap::AppSettings::ArgsNegateSubcommands, + structopt::clap::AppSettings::SubcommandsNegateReqs, +])] pub struct Cli { #[structopt(subcommand)] pub subcommand: Option, #[structopt(flatten)] pub run: RunCmd, + + /// Run node as collator. + /// + /// Note that this is the same as running with `--validator`. + #[structopt(long, conflicts_with = "validator")] + pub collator: bool, + + /// Relaychain arguments + #[structopt(raw = true)] + pub relaychain_args: Vec, +} + +#[derive(Debug)] +pub struct RelayChainCli { + /// The actual relay chain cli object. + pub base: polkadot_cli::RunCmd, + + /// Optional chain id that should be passed to the relay chain. + pub chain_id: Option, + + /// The base path that should be used by the relay chain. + pub base_path: Option, +} + +impl RelayChainCli { + /// Create a new instance of `Self`. + pub fn new<'a>( + base_path: Option, + chain_id: Option, + relay_chain_args: impl Iterator, + ) -> Self { + Self { + base_path, + chain_id, + base: polkadot_cli::RunCmd::from_iter(relay_chain_args), + } + } } diff --git a/parachain/node/src/command.rs b/parachain/node/src/command.rs index 929418580..4c58fe20c 100644 --- a/parachain/node/src/command.rs +++ b/parachain/node/src/command.rs @@ -1,13 +1,37 @@ -use crate::chain_spec; -use crate::cli::Cli; -use crate::service; -use sc_cli::{SubstrateCli, RuntimeVersion, Role, ChainSpec}; -use sc_service::PartialComponents; -use crate::service::new_partial; +use crate::{ + chain_spec, + cli::{Cli, RelayChainCli, Subcommand}, +}; +use codec::Encode; +use cumulus_primitives::{genesis::generate_genesis_block, ParaId}; +use log::info; +use artemis_runtime::opaque::Block; +use polkadot_parachain::primitives::AccountIdConversion; +use sc_cli::{ + ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, InitLoggerParams, + KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, +}; +use sc_service::{ + config::{BasePath, PrometheusConfig}, + PartialComponents, +}; +use sp_core::hexdisplay::HexDisplay; +use sp_runtime::traits::Block as BlockT; +use std::{io::Write, net::SocketAddr}; + +fn load_spec( + id: &str, + para_id: ParaId, +) -> std::result::Result, String> { + match id { + "" => Ok(Box::new(chain_spec::get_chain_spec(para_id))), + path => Ok(Box::new(chain_spec::ChainSpec::from_json_file(path.into())?)), + } +} impl SubstrateCli for Cli { fn impl_name() -> String { - "Artemis Node".into() + "Artemis Collator".into() } fn impl_version() -> String { @@ -15,7 +39,13 @@ impl SubstrateCli for Cli { } fn description() -> String { - env!("CARGO_PKG_DESCRIPTION").into() + format!( + "Artemis test parachain collator\n\nThe command-line arguments provided first will be \ + passed to the parachain node, while the arguments provided after -- will be passed \ + to the relaychain node.\n\n\ + {} [parachain-args] -- [relaychain-args]", + Self::executable_name() + ) } fn author() -> String { @@ -23,21 +53,15 @@ impl SubstrateCli for Cli { } fn support_url() -> String { - "http://www.snowfork.com/".into() + "http://snowbridge.snowfork.com".into() } fn copyright_start_year() -> i32 { 2017 } - fn load_spec(&self, id: &str) -> Result, String> { - Ok(match id { - "dev" => Box::new(chain_spec::development_config()?), - "" | "local" => Box::new(chain_spec::local_testnet_config()?), - path => Box::new(chain_spec::ChainSpec::from_json_file( - std::path::PathBuf::from(path), - )?), - }) + fn load_spec(&self, id: &str) -> std::result::Result, String> { + load_spec(id, self.run.parachain_id.unwrap_or(100).into()) } fn native_runtime_version(_: &Box) -> &'static RuntimeVersion { @@ -45,25 +69,336 @@ impl SubstrateCli for Cli { } } -/// Parse and run command line arguments -pub fn run() -> sc_cli::Result<()> { +impl SubstrateCli for RelayChainCli { + fn impl_name() -> String { + "Artemis Collator".into() + } + + fn impl_version() -> String { + env!("SUBSTRATE_CLI_IMPL_VERSION").into() + } + + fn description() -> String { + "Cumulus test parachain collator\n\nThe command-line arguments provided first will be \ + passed to the parachain node, while the arguments provided after -- will be passed \ + to the relaychain node.\n\n\ + artemis-collator [parachain-args] -- [relaychain-args]" + .into() + } + + fn author() -> String { + env!("CARGO_PKG_AUTHORS").into() + } + + fn support_url() -> String { + "http://www.snowfork.com".into() + } + + fn copyright_start_year() -> i32 { + 2017 + } + + fn load_spec(&self, id: &str) -> std::result::Result, String> { + polkadot_cli::Cli::from_iter([RelayChainCli::executable_name().to_string()].iter()) + .load_spec(id) + } + + fn native_runtime_version(chain_spec: &Box) -> &'static RuntimeVersion { + polkadot_cli::Cli::native_runtime_version(chain_spec) + } +} + +fn extract_genesis_wasm(chain_spec: &Box) -> Result> { + let mut storage = chain_spec.build_storage()?; + + storage + .top + .remove(sp_core::storage::well_known_keys::CODE) + .ok_or_else(|| "Could not find wasm file in genesis state!".into()) +} + +/// Parse command line arguments into service configuration. +pub fn run() -> Result<()> { let cli = Cli::from_args(); - match cli.subcommand { - Some(ref subcommand) => { - let runner = cli.create_runner(subcommand)?; - runner.run_subcommand(subcommand, |config| { - let PartialComponents { client, backend, task_manager, import_queue, .. } - = new_partial(&config)?; - Ok((client, backend, import_queue, task_manager)) + match &cli.subcommand { + Some(Subcommand::BuildSpec(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|config| cmd.run(config.chain_spec, config.network)) + } + Some(Subcommand::CheckBlock(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + import_queue, + .. + } = crate::service::new_partial(&config)?; + Ok((cmd.run(client, import_queue), task_manager)) + }) + } + Some(Subcommand::ExportBlocks(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + .. + } = crate::service::new_partial(&config)?; + Ok((cmd.run(client, config.database), task_manager)) + }) + } + Some(Subcommand::ExportState(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + .. + } = crate::service::new_partial(&config)?; + Ok((cmd.run(client, config.chain_spec), task_manager)) }) } + Some(Subcommand::ImportBlocks(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + import_queue, + .. + } = crate::service::new_partial(&config)?; + Ok((cmd.run(client, import_queue), task_manager)) + }) + } + Some(Subcommand::PurgeChain(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|config| cmd.run(config.database)) + } + Some(Subcommand::Revert(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + backend, + .. + } = crate::service::new_partial(&config)?; + Ok((cmd.run(client, backend), task_manager)) + }) + } + Some(Subcommand::ExportGenesisState(params)) => { + sc_cli::init_logger(InitLoggerParams { + tracing_receiver: sc_tracing::TracingReceiver::Log, + ..Default::default() + })?; + + let block: Block = generate_genesis_block(&load_spec( + ¶ms.chain.clone().unwrap_or_default(), + params.parachain_id.into(), + )?)?; + let raw_header = block.header().encode(); + let output_buf = if params.raw { + raw_header + } else { + format!("0x{:?}", HexDisplay::from(&block.header().encode())).into_bytes() + }; + + if let Some(output) = ¶ms.output { + std::fs::write(output, output_buf)?; + } else { + std::io::stdout().write_all(&output_buf)?; + } + + Ok(()) + } + Some(Subcommand::ExportGenesisWasm(params)) => { + sc_cli::init_logger(InitLoggerParams { + tracing_receiver: sc_tracing::TracingReceiver::Log, + ..Default::default() + })?; + + let raw_wasm_blob = + extract_genesis_wasm(&cli.load_spec(¶ms.chain.clone().unwrap_or_default())?)?; + let output_buf = if params.raw { + raw_wasm_blob + } else { + format!("0x{:?}", HexDisplay::from(&raw_wasm_blob)).into_bytes() + }; + + if let Some(output) = ¶ms.output { + std::fs::write(output, output_buf)?; + } else { + std::io::stdout().write_all(&output_buf)?; + } + + Ok(()) + } None => { - let runner = cli.create_runner(&cli.run)?; - runner.run_node_until_exit(|config| match config.role { - Role::Light => service::new_light(config), - _ => service::new_full(config), + let runner = cli.create_runner(&*cli.run)?; + + runner.run_node_until_exit(|config| async move { + // TODO + let key = sp_core::Pair::generate().0; + + let extension = chain_spec::Extensions::try_get(&config.chain_spec); + let relay_chain_id = extension.map(|e| e.relay_chain.clone()); + let para_id = extension.map(|e| e.para_id); + + let polkadot_cli = RelayChainCli::new( + config.base_path.as_ref().map(|x| x.path().join("polkadot")), + relay_chain_id, + [RelayChainCli::executable_name().to_string()] + .iter() + .chain(cli.relaychain_args.iter()), + ); + + let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(100)); + + let parachain_account = + AccountIdConversion::::into_account(&id); + + 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(); + let polkadot_config = + SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, task_executor) + .map_err(|err| format!("Relay chain argument error: {}", err))?; + let collator = cli.run.base.validator || cli.collator; + + info!("Parachain id: {:?}", id); + info!("Parachain Account: {}", parachain_account); + info!("Parachain genesis state: {}", genesis_state); + info!("Is collating: {}", if collator { "yes" } else { "no" }); + + crate::service::start_node(config, key, polkadot_config, id, collator) + .await + .map(|r| r.0) }) } } } + +impl DefaultConfigurationValues for RelayChainCli { + fn p2p_listen_port() -> u16 { + 30334 + } + + fn rpc_ws_listen_port() -> u16 { + 9945 + } + + fn rpc_http_listen_port() -> u16 { + 9934 + } + + fn prometheus_listen_port() -> u16 { + 9616 + } +} + +impl CliConfiguration for RelayChainCli { + fn shared_params(&self) -> &SharedParams { + self.base.base.shared_params() + } + + fn import_params(&self) -> Option<&ImportParams> { + self.base.base.import_params() + } + + fn network_params(&self) -> Option<&NetworkParams> { + self.base.base.network_params() + } + + fn keystore_params(&self) -> Option<&KeystoreParams> { + self.base.base.keystore_params() + } + + fn base_path(&self) -> Result> { + Ok(self + .shared_params() + .base_path() + .or_else(|| self.base_path.clone().map(Into::into))) + } + + fn rpc_http(&self, default_listen_port: u16) -> Result> { + self.base.base.rpc_http(default_listen_port) + } + + fn rpc_ipc(&self) -> Result> { + self.base.base.rpc_ipc() + } + + fn rpc_ws(&self, default_listen_port: u16) -> Result> { + self.base.base.rpc_ws(default_listen_port) + } + + fn prometheus_config(&self, default_listen_port: u16) -> Result> { + self.base.base.prometheus_config(default_listen_port) + } + + fn init(&self) -> Result<()> { + unreachable!("PolkadotCli is never initialized; qed"); + } + + fn chain_id(&self, is_dev: bool) -> Result { + let chain_id = self.base.base.chain_id(is_dev)?; + + Ok(if chain_id.is_empty() { + self.chain_id.clone().unwrap_or_default() + } else { + chain_id + }) + } + + fn role(&self, is_dev: bool) -> Result { + self.base.base.role(is_dev) + } + + fn transaction_pool(&self) -> Result { + self.base.base.transaction_pool() + } + + fn state_cache_child_ratio(&self) -> Result> { + self.base.base.state_cache_child_ratio() + } + + fn rpc_methods(&self) -> Result { + self.base.base.rpc_methods() + } + + fn rpc_ws_max_connections(&self) -> Result> { + self.base.base.rpc_ws_max_connections() + } + + fn rpc_cors(&self, is_dev: bool) -> Result>> { + self.base.base.rpc_cors(is_dev) + } + + fn telemetry_external_transport(&self) -> Result> { + self.base.base.telemetry_external_transport() + } + + fn default_heap_pages(&self) -> Result> { + self.base.base.default_heap_pages() + } + + fn force_authoring(&self) -> Result { + self.base.base.force_authoring() + } + + fn disable_grandpa(&self) -> Result { + self.base.base.disable_grandpa() + } + + fn max_runtime_instances(&self) -> Result> { + self.base.base.max_runtime_instances() + } + + fn announce_block(&self) -> Result { + self.base.base.announce_block() + } +} diff --git a/parachain/node/src/lib.rs b/parachain/node/src/lib.rs deleted file mode 100644 index 450eb8f9b..000000000 --- a/parachain/node/src/lib.rs +++ /dev/null @@ -1,6 +0,0 @@ -#![allow(clippy::all)] - -pub mod chain_spec; -pub mod service; -pub mod rpc; - diff --git a/parachain/node/src/main.rs b/parachain/node/src/main.rs index 4449d28b9..4bbfd15ec 100644 --- a/parachain/node/src/main.rs +++ b/parachain/node/src/main.rs @@ -1,12 +1,16 @@ -//! Substrate Node Template CLI library. +// Copyright 2019-2020 Snowfork +// This file is part of Snowbridge + +//! Artemis parachain collator + #![warn(missing_docs)] +#![warn(unused_extern_crates)] mod chain_spec; #[macro_use] mod service; mod cli; mod command; -mod rpc; fn main() -> sc_cli::Result<()> { command::run() diff --git a/parachain/node/src/rpc.rs b/parachain/node/src/rpc.rs deleted file mode 100644 index 201173c16..000000000 --- a/parachain/node/src/rpc.rs +++ /dev/null @@ -1,64 +0,0 @@ -//! A collection of node-specific RPC methods. -//! Substrate provides the `sc-rpc` crate, which defines the core RPC layer -//! used by Substrate nodes. This file extends those RPC definitions with -//! capabilities that are specific to this project's runtime configuration. - -#![warn(missing_docs)] - -use std::sync::Arc; - -use artemis_runtime::{opaque::Block, AccountId, Balance, Index}; -use sp_api::ProvideRuntimeApi; -use sp_blockchain::{Error as BlockChainError, HeaderMetadata, HeaderBackend}; -use sp_block_builder::BlockBuilder; -pub use sc_rpc_api::DenyUnsafe; -use sp_transaction_pool::TransactionPool; - - -/// Full client dependencies. -pub struct FullDeps { - /// The client instance to use. - pub client: Arc, - /// Transaction pool instance. - pub pool: Arc

, - /// Whether to deny unsafe calls - pub deny_unsafe: DenyUnsafe, -} - -/// Instantiate all full RPC extensions. -pub fn create_full( - deps: FullDeps, -) -> jsonrpc_core::IoHandler where - C: ProvideRuntimeApi, - C: HeaderBackend + HeaderMetadata + 'static, - C: Send + Sync + 'static, - C::Api: substrate_frame_rpc_system::AccountNonceApi, - C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, - C::Api: BlockBuilder, - P: TransactionPool + 'static, -{ - use substrate_frame_rpc_system::{FullSystem, SystemApi}; - use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApi}; - - let mut io = jsonrpc_core::IoHandler::default(); - let FullDeps { - client, - pool, - deny_unsafe, - } = deps; - - io.extend_with( - SystemApi::to_delegate(FullSystem::new(client.clone(), pool, deny_unsafe)) - ); - - io.extend_with( - TransactionPaymentApi::to_delegate(TransactionPayment::new(client.clone())) - ); - - // Extend this RPC with a custom API by using the following syntax. - // `YourRpcStruct` should have a reference to a client, which is needed - // to call into the runtime. - // `io.extend_with(YourRpcTrait::to_delegate(YourRpcStruct::new(ReferenceToClient, ...)));` - - io -} diff --git a/parachain/node/src/service.rs b/parachain/node/src/service.rs index 238925429..9b4074882 100644 --- a/parachain/node/src/service.rs +++ b/parachain/node/src/service.rs @@ -1,43 +1,64 @@ -//! Service and ServiceFactory implementation. Specialized wrapper over substrate service. - -use std::sync::Arc; -use std::time::Duration; -use sc_client_api::{ExecutorProvider, RemoteBackend}; -use artemis_runtime::{self, opaque::Block, RuntimeApi}; -use sc_service::{error::Error as ServiceError, Configuration, TaskManager}; -use sp_inherents::InherentDataProviders; +// Copyright 2019-2020 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +use cumulus_network::build_block_announce_validator; +use cumulus_service::{ + prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, +}; +use polkadot_primitives::v0::CollatorPair; +use artemis_runtime::{RuntimeApi, opaque::Block}; use sc_executor::native_executor_instance; pub use sc_executor::NativeExecutor; -use sp_consensus_aura::sr25519::{AuthorityPair as AuraPair}; -use sc_finality_grandpa::{FinalityProofProvider as GrandpaFinalityProofProvider, SharedVoterState}; +use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager}; +use sp_core::Pair; +use sp_runtime::traits::BlakeTwo256; +use sp_trie::PrefixedMemoryDB; +use std::sync::Arc; -// Our native executor instance. +// Native executor instance. native_executor_instance!( pub Executor, artemis_runtime::api::dispatch, artemis_runtime::native_version, ); -type FullClient = sc_service::TFullClient; -type FullBackend = sc_service::TFullBackend; -type FullSelectChain = sc_consensus::LongestChain; - -pub fn new_partial(config: &Configuration) -> Result, - sc_transaction_pool::FullPool, - ( - sc_finality_grandpa::GrandpaBlockImport, - sc_finality_grandpa::LinkHalf - ) ->, ServiceError> { +/// 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: &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) = + let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::(&config)?; let client = Arc::new(client); - let select_chain = sc_consensus::LongestChain::new(backend.clone()); + let registry = config.prometheus_registry(); let transaction_pool = sc_transaction_pool::BasicPool::new_full( config.transaction_pool.clone(), @@ -46,252 +67,173 @@ pub fn new_partial(config: &Configuration) -> Result), select_chain.clone(), - )?; - - let aura_block_import = sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new( - grandpa_block_import.clone(), client.clone(), - ); - - let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>( - sc_consensus_aura::slot_duration(&*client)?, - aura_block_import, - Some(Box::new(grandpa_block_import.clone())), - None, + let import_queue = cumulus_consensus::import_queue::import_queue( + client.clone(), client.clone(), inherent_data_providers.clone(), &task_manager.spawn_handle(), - config.prometheus_registry(), - sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()), + registry.clone(), )?; - Ok(sc_service::PartialComponents { - client, backend, task_manager, import_queue, keystore, select_chain, transaction_pool, + let params = PartialComponents { + backend, + client, + import_queue, + keystore_container, + task_manager, + transaction_pool, inherent_data_providers, - other: (grandpa_block_import, grandpa_link), - }) + select_chain: (), + other: (), + }; + + Ok(params) } -/// Builds a new service for a full client. -pub fn new_full(config: Configuration) -> Result { - let sc_service::PartialComponents { - client, backend, mut task_manager, import_queue, keystore, select_chain, transaction_pool, - inherent_data_providers, - other: (block_import, grandpa_link), - } = new_partial(&config)?; +#[sc_cli::prefix_logs_with("Parachain")] +async fn start_node_impl( + parachain_config: Configuration, + collator_key: CollatorPair, + polkadot_config: Configuration, + id: polkadot_primitives::v0::Id, + validator: bool, + rpc_ext_builder: RB, +) -> sc_service::error::Result<(TaskManager, 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 finality_proof_provider = - GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone()); + let parachain_config = prepare_node_config(parachain_config); - let (network, network_status_sinks, system_rpc_tx, network_starter) = + let polkadot_full_node = + cumulus_service::build_polkadot_full_node(polkadot_config, collator_key.public()).map_err( + |e| match e { + polkadot_service::Error::Sub(x) => x, + s => format!("{}", s).into(), + }, + )?; + + let params = new_partial(¶chain_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 = build_block_announce_validator( + polkadot_full_node.client.clone(), + id, + Box::new(polkadot_full_node.network.clone()), + polkadot_full_node.backend.clone(), + ); + + 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: &config, + 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: None, - finality_proof_request_builder: None, - finality_proof_provider: Some(finality_proof_provider.clone()), + block_announce_validator_builder: Some(Box::new(|_| block_announce_validator)), })?; - if config.offchain_worker.enabled { - sc_service::build_offchain_workers( - &config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(), - ); - } - - let role = config.role.clone(); - let force_authoring = config.force_authoring; - let name = config.network.node_name.clone(); - let enable_grandpa = !config.disable_grandpa; - let prometheus_registry = config.prometheus_registry().cloned(); - let telemetry_connection_sinks = sc_service::TelemetryConnectionSinks::default(); - - let rpc_extensions_builder = { - let client = client.clone(); - let pool = transaction_pool.clone(); - - Box::new(move |deny_unsafe, _| { - let deps = crate::rpc::FullDeps { - client: client.clone(), - pool: pool.clone(), - deny_unsafe, - }; - - crate::rpc::create_full(deps) - }) - }; + let rpc_client = client.clone(); + let rpc_extensions_builder = Box::new(move |_, _| rpc_ext_builder(rpc_client.clone())); sc_service::spawn_tasks(sc_service::SpawnTasksParams { - network: network.clone(), - client: client.clone(), - keystore: keystore.clone(), - task_manager: &mut task_manager, - transaction_pool: transaction_pool.clone(), - telemetry_connection_sinks: telemetry_connection_sinks.clone(), - rpc_extensions_builder: rpc_extensions_builder, on_demand: None, remote_blockchain: None, - backend, network_status_sinks, system_rpc_tx, config, + 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_container.sync_keystore(), + backend: backend.clone(), + network: network.clone(), + network_status_sinks, + system_rpc_tx, })?; - if role.is_authority() { - let proposer = sc_basic_authorship::ProposerFactory::new( + 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( + task_manager.spawn_handle(), client.clone(), transaction_pool, prometheus_registry.as_ref(), ); + let spawner = task_manager.spawn_handle(); - let can_author_with = - sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()); + let polkadot_backend = polkadot_full_node.backend.clone(); - let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _>( - sc_consensus_aura::slot_duration(&*client)?, - client.clone(), - select_chain, - block_import, - proposer, - network.clone(), - inherent_data_providers.clone(), - force_authoring, - keystore.clone(), - can_author_with, - )?; - - // the AURA authoring task is considered essential, i.e. if it - // fails we take down the service with it. - task_manager.spawn_essential_handle().spawn_blocking("aura", aura); - } - - // if the node isn't actively participating in consensus then it doesn't - // need a keystore, regardless of which protocol we use below. - let keystore = if role.is_authority() { - Some(keystore as sp_core::traits::BareCryptoStorePtr) - } else { - None - }; - - let grandpa_config = sc_finality_grandpa::Config { - // FIXME #1578 make this available through chainspec - gossip_duration: Duration::from_millis(333), - justification_period: 512, - name: Some(name), - observer_enabled: false, - keystore, - is_authority: role.is_network_authority(), - }; - - if enable_grandpa { - // start the full GRANDPA voter - // NOTE: non-authorities could run the GRANDPA observer protocol, but at - // this point the full voter should provide better guarantees of block - // and vote data availability than the observer. The observer has not - // been tested extensively yet and having most nodes in a network run it - // could lead to finality stalls. - let grandpa_config = sc_finality_grandpa::GrandpaParams { - config: grandpa_config, - link: grandpa_link, - network, - inherent_data_providers, - telemetry_on_connect: Some(telemetry_connection_sinks.on_connect_stream()), - voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(), - prometheus_registry, - shared_voter_state: SharedVoterState::empty(), + let params = StartCollatorParams { + para_id: id, + block_import: client.clone(), + proposer_factory, + inherent_data_providers: params.inherent_data_providers, + block_status: client.clone(), + announce_block, + client: client.clone(), + task_manager: &mut task_manager, + collator_key, + polkadot_full_node, + spawner, + backend, + polkadot_backend, }; - // the GRANDPA voter task is considered infallible, i.e. - // if it fails we take down the service with it. - task_manager.spawn_essential_handle().spawn_blocking( - "grandpa-voter", - sc_finality_grandpa::run_grandpa_voter(grandpa_config)? - ); + start_collator(params).await?; } else { - sc_finality_grandpa::setup_disabled_grandpa( - client, - &inherent_data_providers, - network, - )?; - } - - network_starter.start_network(); - Ok(task_manager) -} - -/// Builds a new service for a light client. -pub fn new_light(config: Configuration) -> Result { - let (client, backend, keystore, mut task_manager, on_demand) = - sc_service::new_light_parts::(&config)?; - - let transaction_pool = Arc::new(sc_transaction_pool::BasicPool::new_light( - config.transaction_pool.clone(), - config.prometheus_registry(), - task_manager.spawn_handle(), - client.clone(), - on_demand.clone(), - )); - - let grandpa_block_import = sc_finality_grandpa::light_block_import( - client.clone(), backend.clone(), &(client.clone() as Arc<_>), - Arc::new(on_demand.checker().clone()) as Arc<_>, - )?; - let finality_proof_import = grandpa_block_import.clone(); - let finality_proof_request_builder = - finality_proof_import.create_finality_proof_request_builder(); - - let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>( - sc_consensus_aura::slot_duration(&*client)?, - grandpa_block_import, - None, - Some(Box::new(finality_proof_import)), - client.clone(), - InherentDataProviders::new(), - &task_manager.spawn_handle(), - config.prometheus_registry(), - sp_consensus::NeverCanAuthor, - )?; - - let finality_proof_provider = - GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone()); - - let (network, network_status_sinks, system_rpc_tx, network_starter) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: &config, + let params = StartFullNodeParams { client: client.clone(), - transaction_pool: transaction_pool.clone(), - spawn_handle: task_manager.spawn_handle(), - import_queue, - on_demand: Some(on_demand.clone()), - block_announce_validator_builder: None, - finality_proof_request_builder: Some(finality_proof_request_builder), - finality_proof_provider: Some(finality_proof_provider), - })?; + announce_block, + task_manager: &mut task_manager, + para_id: id, + polkadot_full_node, + }; - if config.offchain_worker.enabled { - sc_service::build_offchain_workers( - &config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(), - ); + start_full_node(params)?; } - sc_service::spawn_tasks(sc_service::SpawnTasksParams { - remote_blockchain: Some(backend.remote_blockchain()), - transaction_pool, - task_manager: &mut task_manager, - on_demand: Some(on_demand), - rpc_extensions_builder: Box::new(|_, _| ()), - telemetry_connection_sinks: sc_service::TelemetryConnectionSinks::default(), - config, - client, - keystore, - backend, - network, - network_status_sinks, - system_rpc_tx, - })?; - - network_starter.start_network(); + start_network.start_network(); - Ok(task_manager) + Ok((task_manager, client)) } + +/// Start a normal parachain node. +pub async fn start_node( + parachain_config: Configuration, + collator_key: CollatorPair, + polkadot_config: Configuration, + id: polkadot_primitives::v0::Id, + validator: bool, +) -> sc_service::error::Result<(TaskManager, Arc>)> { + start_node_impl( + parachain_config, + collator_key, + polkadot_config, + id, + validator, + |_| Default::default(), + ) + .await +} \ No newline at end of file diff --git a/parachain/pallets/assets/Cargo.toml b/parachain/pallets/assets/Cargo.toml index 2566110c3..f36b4fdd6 100644 --- a/parachain/pallets/assets/Cargo.toml +++ b/parachain/pallets/assets/Cargo.toml @@ -7,67 +7,28 @@ edition = "2018" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] -[dependencies.codec] -default-features = false -features = ["derive"] -package = "parity-scale-codec" -version = "1.3.4" +[dependencies] +codec = { version = "1.3.5", package = "parity-scale-codec", default-features = false, features = ["derive"] } +hex = { version = "2.1.0", package = "rustc-hex", default-features = false } +serde = { version = "1.0.101", optional = true } -[dependencies.serde] -package = "serde" -optional = true -version = "1.0.101" -features = ["derive"] +frame-support = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } -[dependencies.hex] -package = "rustc-hex" -default-features = false -version = "2.1.0" +artemis-core = { path = "../../primitives/core", default-features = false } -[dependencies.frame-support] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" - -[dependencies.frame-system] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" - -[dependencies.sp-core] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" - -[dependencies.sp-std] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" - -[dependencies.sp-io] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" - -[dependencies.sp-runtime] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" - -[dev-dependencies.sp-keyring] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" - -[dependencies.artemis-core] -default-features = false -path = "../../primitives/core" +[dev-dependencies] +sp-keyring = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } [features] default = ["std"] std = [ + "serde", "hex/std", - "serde/std", "codec/std", "frame-support/std", "frame-system/std", diff --git a/parachain/pallets/assets/src/lib.rs b/parachain/pallets/assets/src/lib.rs index 4c1e5ff15..e1bf692a6 100644 --- a/parachain/pallets/assets/src/lib.rs +++ b/parachain/pallets/assets/src/lib.rs @@ -2,7 +2,7 @@ //! //! The Assets module provides functionality for handling fungible assets. //! -//! - [`assets::Trait`](./trait.Trait.html) +//! - [`assets::Config`](./trait.Config.html) //! - [`Call`](./enum.Call.html) //! - [`Module`](./struct.Module.html) // @@ -34,6 +34,8 @@ use frame_support::{ dispatch::{DispatchResult, DispatchError}, }; +use sp_runtime::traits::StaticLookup; + use sp_core::{U256}; use artemis_core::assets::{AssetId, MultiAsset, SingleAsset}; @@ -45,12 +47,12 @@ mod mock; #[cfg(test)] mod tests; -pub trait Trait: system::Trait { - type Event: From> + Into<::Event>; +pub trait Config: system::Config { + type Event: From> + Into<::Event>; } decl_storage! { - trait Store for Module as Asset { + trait Store for Module as Asset { pub TotalIssuance get(fn total_issuance): map hasher(blake2_128_concat) AssetId => U256; pub Balances get(fn balances): double_map hasher(blake2_128_concat) AssetId, hasher(blake2_128_concat) T::AccountId => U256; } @@ -69,14 +71,14 @@ decl_storage! { decl_event!( pub enum Event where - ::AccountId, + ::AccountId, { Transferred(AssetId, AccountId, AccountId, U256), } ); decl_error! { - pub enum Error for Module { + pub enum Error for Module { TotalIssuanceOverflow, TotalIssuanceUnderflow, BalanceOverflow, @@ -86,7 +88,7 @@ decl_error! { decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::Origin { type Error = Error; @@ -97,16 +99,17 @@ decl_module! { #[weight = 10] pub fn transfer(origin, asset_id: AssetId, - dest: T::AccountId, + dest: ::Source, amount: U256) -> DispatchResult { let who = ensure_signed(origin)?; + let dest = T::Lookup::lookup(dest)?; >::transfer(asset_id, &who, &dest, amount) } } } -impl MultiAsset for Module { +impl MultiAsset for Module { fn total_issuance(asset_id: AssetId) -> U256 { Module::::total_issuance(asset_id) @@ -170,7 +173,7 @@ pub struct SingleAssetAdaptor(marker::PhantomData<(T, I)>); impl SingleAsset for SingleAssetAdaptor where - T: Trait, + T: Config, I: Get, { diff --git a/parachain/pallets/assets/src/mock.rs b/parachain/pallets/assets/src/mock.rs index 97a409314..5a3c9bf66 100644 --- a/parachain/pallets/assets/src/mock.rs +++ b/parachain/pallets/assets/src/mock.rs @@ -2,7 +2,7 @@ use super::*; -use crate::{Module, Trait}; +use crate::{Module, Config}; use sp_core::H256; use frame_support::{impl_outer_origin, impl_outer_event, parameter_types, weights::Weight}; use sp_runtime::{ @@ -40,8 +40,10 @@ parameter_types! { pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); } -impl system::Trait for MockRuntime { +impl system::Config for MockRuntime { type BaseCallFilter = (); + type BlockWeights = (); + type BlockLength = (); type Origin = Origin; type Call = (); type Index = u64; @@ -53,22 +55,17 @@ impl system::Trait for MockRuntime { type Header = Header; type Event = TestEvent; type BlockHashCount = BlockHashCount; - type MaximumBlockWeight = MaximumBlockWeight; type DbWeight = (); - type BlockExecutionWeight = (); - type ExtrinsicBaseWeight = (); - type MaximumExtrinsicWeight = MaximumBlockWeight; - type MaximumBlockLength = MaximumBlockLength; - type AvailableBlockRatio = AvailableBlockRatio; type Version = (); - type ModuleToIndex = (); + type PalletInfo = (); type AccountData = (); type OnNewAccount = (); type OnKilledAccount = (); type SystemWeightInfo = (); + type SS58Prefix = (); } -impl Trait for MockRuntime { +impl Config for MockRuntime { type Event = TestEvent; } diff --git a/parachain/pallets/bridge/Cargo.toml b/parachain/pallets/bridge/Cargo.toml index b95ac2797..ed57d678b 100644 --- a/parachain/pallets/bridge/Cargo.toml +++ b/parachain/pallets/bridge/Cargo.toml @@ -9,51 +9,17 @@ repository = "https://github.com/Snowfork/polkadot-ethereum" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] -[dependencies.codec] -default-features = false -features = ["derive"] -package = "parity-scale-codec" -version = "1.3.4" +[dependencies] +codec = { version = "1.3.5", package = "parity-scale-codec", default-features = false, features = ["derive"] } -[dependencies.frame-support] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" +frame-support = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } -[dependencies.frame-system] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-core] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-std] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-io] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-runtime] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.artemis-core] -default-features = false -path = "../../primitives/core" +artemis-core = { path = "../../primitives/core", default-features = false } [features] default = ["std"] diff --git a/parachain/pallets/bridge/src/lib.rs b/parachain/pallets/bridge/src/lib.rs index dcbb7aa17..d71c57b50 100644 --- a/parachain/pallets/bridge/src/lib.rs +++ b/parachain/pallets/bridge/src/lib.rs @@ -26,11 +26,11 @@ use sp_core::H160; use artemis_core::{AppId, Application, Message, Verifier}; -pub trait Trait: system::Trait { - type Event: From + Into<::Event>; +pub trait Config: system::Config { + type Event: From + Into<::Event>; /// The verifier module responsible for verifying submitted messages. - type Verifier: Verifier<::AccountId>; + type Verifier: Verifier<::AccountId>; /// ETH Application type AppETH: Application; @@ -40,7 +40,7 @@ pub trait Trait: system::Trait { } decl_storage! { - trait Store for Module as BridgeModule { + trait Store for Module as BridgeModule { } } @@ -52,14 +52,14 @@ decl_event!( ); decl_error! { - pub enum Error for Module { + pub enum Error for Module { /// Target application not found. AppNotFound } } decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::Origin { type Error = Error; @@ -78,7 +78,7 @@ decl_module! { } } -impl Module { +impl Module { fn dispatch(address: H160, message: &Message) -> DispatchResult { if address == T::AppETH::address() { T::AppETH::handle(message.payload.as_ref()) diff --git a/parachain/pallets/commitments/Cargo.toml b/parachain/pallets/commitments/Cargo.toml index 6bc35e946..eb1e2d709 100644 --- a/parachain/pallets/commitments/Cargo.toml +++ b/parachain/pallets/commitments/Cargo.toml @@ -8,56 +8,18 @@ edition = "2018" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] -[dependencies.codec] -default-features = false -features = ["derive"] -package = "parity-scale-codec" -version = "1.3.4" - -[dependencies.frame-support] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.frame-system] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-core] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-std] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-io] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-runtime] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.artemis-core] -default-features = false -path = "../../primitives/core" - -[dependencies.ethabi] -package = "ethabi-decode" -default-features = false -git = "https://github.com/Snowfork/ethabi-decode" +[dependencies] +codec = { version = "1.3.5", package = "parity-scale-codec", default-features = false, features = ["derive"] } + +frame-support = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } + +artemis-core = { path = "../../primitives/core", default-features = false } +ethabi = { git = "https://github.com/Snowfork/ethabi-decode.git", package = "ethabi-decode", branch = "master", default-features = false } [features] default = ["std"] diff --git a/parachain/pallets/commitments/src/lib.rs b/parachain/pallets/commitments/src/lib.rs index 87703e7f8..5e082668a 100644 --- a/parachain/pallets/commitments/src/lib.rs +++ b/parachain/pallets/commitments/src/lib.rs @@ -45,14 +45,14 @@ struct Message { nonce: u64, } -pub trait Trait: frame_system::Trait { - type Event: From + Into<::Event>; +pub trait Config: frame_system::Config { + type Event: From + Into<::Event>; type CommitInterval: Get; } decl_storage! { - trait Store for Module as Commitments { + trait Store for Module as Commitments { /// Nonce pub Nonce get(fn nonce): u64; @@ -71,11 +71,11 @@ decl_event! { } decl_error! { - pub enum Error for Module {} + pub enum Error for Module {} } decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::Origin { type Error = Error; fn deposit_event() = default; @@ -95,7 +95,7 @@ decl_module! { } } -impl Module { +impl Module { // Generate a message commitment // TODO: return proper weight @@ -131,7 +131,7 @@ impl Module { } -impl Commitments for Module { +impl Commitments for Module { // Add a message for eventual inclusion in a commitment // TODO: Number of messages per commitment should be bounded diff --git a/parachain/pallets/commitments/src/mock.rs b/parachain/pallets/commitments/src/mock.rs index 76fb2c9dc..5b8197900 100644 --- a/parachain/pallets/commitments/src/mock.rs +++ b/parachain/pallets/commitments/src/mock.rs @@ -1,5 +1,5 @@ // Copyright 2020 Parity Technologies (UK) Ltd. -use crate::{Module, Trait}; +use crate::{Module, Config}; use sp_core::H256; use frame_support::{impl_outer_origin, parameter_types, weights::Weight}; use sp_runtime::{ @@ -23,8 +23,10 @@ parameter_types! { pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); } -impl system::Trait for Test { +impl system::Config for Test { type BaseCallFilter = (); + type BlockWeights = (); + type BlockLength = (); type Origin = Origin; type Call = (); type Index = u64; @@ -36,26 +38,21 @@ impl system::Trait for Test { type Header = Header; type Event = (); type BlockHashCount = BlockHashCount; - type MaximumBlockWeight = MaximumBlockWeight; type DbWeight = (); - type BlockExecutionWeight = (); - type ExtrinsicBaseWeight = (); - type MaximumExtrinsicWeight = MaximumBlockWeight; - type MaximumBlockLength = MaximumBlockLength; - type AvailableBlockRatio = AvailableBlockRatio; type Version = (); - type ModuleToIndex = (); + type PalletInfo = (); type AccountData = (); type OnNewAccount = (); type OnKilledAccount = (); type SystemWeightInfo = (); + type SS58Prefix = (); } parameter_types! { pub const CommitInterval: u64 = 5; } -impl Trait for Test { +impl Config for Test { type Event = (); type CommitInterval = CommitInterval; diff --git a/parachain/pallets/erc20-app/Cargo.toml b/parachain/pallets/erc20-app/Cargo.toml index 6a0a75572..e0a79dfd8 100644 --- a/parachain/pallets/erc20-app/Cargo.toml +++ b/parachain/pallets/erc20-app/Cargo.toml @@ -8,90 +8,34 @@ edition = "2018" targets = ["x86_64-unknown-linux-gnu"] [dependencies] +serde = { version = "1.0.101", optional = true } +codec = { version = "1.3.5", package = "parity-scale-codec", default-features = false, features = ["derive"] } hex = { package = "rustc-hex", version = "2.1.0", default-features = false } -rlp = { version = "0.4", default-features = false } +rlp = { version = "0.5", default-features = false } hex-literal = { version = "0.3.1", default-features = false } -[dependencies.codec] -default-features = false -features = ["derive"] -package = "parity-scale-codec" -version = "1.3.4" +frame-support = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } -[dependencies.frame-support] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" +ethabi = { git = "https://github.com/Snowfork/ethabi-decode.git", package = "ethabi-decode", branch = "master", default-features = false } -[dependencies.frame-system] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" +artemis-core = { path = "../../primitives/core", default-features = false } +artemis-ethereum = { path = "../../primitives/ethereum", default-features = false } -[dependencies.sp-core] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-std] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-io] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-runtime] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dev-dependencies.sp-keyring] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.serde] -package = "serde" -optional = true -version = "1.0.101" -features = ["derive"] - -[dependencies.ethabi] -package = "ethabi-decode" -default-features = false -git = "https://github.com/Snowfork/ethabi-decode" - -[dependencies.artemis-core] -default-features = false -path = "../../primitives/core" - -[dependencies.artemis-ethereum] -default-features = false -path = "../../primitives/ethereum" - -[dependencies.artemis-assets] -default-features = false -path = "../../pallets/assets" - -[dependencies.artemis-commitments] -default-features = false -path = "../../pallets/commitments" +[dev-dependencies] +artemis-assets = { path = "../../pallets/assets", default-features = false } +artemis-commitments = { path = "../../pallets/commitments", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } [features] default = ["std"] std = [ + "serde", "hex/std", - "serde/std", "codec/std", "frame-support/std", "frame-system/std", @@ -101,8 +45,6 @@ std = [ "sp-runtime/std", "artemis-core/std", "artemis-ethereum/std", - "artemis-assets/std", - "artemis-commitments/std", "ethabi/std", "rlp/std" ] diff --git a/parachain/pallets/erc20-app/src/lib.rs b/parachain/pallets/erc20-app/src/lib.rs index af8d18a6b..61004b50e 100644 --- a/parachain/pallets/erc20-app/src/lib.rs +++ b/parachain/pallets/erc20-app/src/lib.rs @@ -39,16 +39,16 @@ mod mock; #[cfg(test)] mod tests; -pub trait Trait: system::Trait { - type Event: From> + Into<::Event>; +pub trait Config: system::Config { + type Event: From> + Into<::Event>; - type Assets: MultiAsset<::AccountId>; + type Assets: MultiAsset<::AccountId>; type Commitments: Commitments; } decl_storage! { - trait Store for Module as Erc20Module { + trait Store for Module as Erc20Module { Address get(fn address) config(): H160; } } @@ -57,7 +57,7 @@ decl_event! { /// Events for the ERC20 module. pub enum Event where - AccountId = ::AccountId, + AccountId = ::AccountId, { Burned(H160, AccountId, U256), Minted(H160, AccountId, U256), @@ -67,7 +67,7 @@ decl_event! { } decl_error! { - pub enum Error for Module { + pub enum Error for Module { /// The submitted payload could not be decoded. InvalidPayload, } @@ -75,7 +75,7 @@ decl_error! { decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::Origin { type Error = Error; @@ -107,7 +107,7 @@ decl_module! { } } -impl Module { +impl Module { fn handle_event(payload: InPayload) -> DispatchResult { T::Assets::deposit( @@ -126,7 +126,7 @@ impl Module { } -impl Application for Module { +impl Application for Module { fn handle(payload: &[u8]) -> DispatchResult { // Decode ethereum Log event from RLP-encoded data, and try to convert to InPayload let payload_decoded = rlp::decode::(payload) diff --git a/parachain/pallets/erc20-app/src/mock.rs b/parachain/pallets/erc20-app/src/mock.rs index 6f9680b0c..1b68e5b71 100644 --- a/parachain/pallets/erc20-app/src/mock.rs +++ b/parachain/pallets/erc20-app/src/mock.rs @@ -1,6 +1,6 @@ // Mock runtime -use crate::{Module, Trait}; +use crate::{Module, Config}; use sp_core::H256; use frame_support::{impl_outer_origin, impl_outer_event, parameter_types, weights::Weight}; use sp_runtime::{ @@ -40,8 +40,10 @@ parameter_types! { pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); } -impl system::Trait for MockRuntime { +impl system::Config for MockRuntime { type BaseCallFilter = (); + type BlockWeights = (); + type BlockLength = (); type Origin = Origin; type Call = (); type Index = u64; @@ -53,22 +55,17 @@ impl system::Trait for MockRuntime { type Header = Header; type Event = MockEvent; type BlockHashCount = BlockHashCount; - type MaximumBlockWeight = MaximumBlockWeight; type DbWeight = (); - type BlockExecutionWeight = (); - type ExtrinsicBaseWeight = (); - type MaximumExtrinsicWeight = MaximumBlockWeight; - type MaximumBlockLength = MaximumBlockLength; - type AvailableBlockRatio = AvailableBlockRatio; type Version = (); - type ModuleToIndex = (); + type PalletInfo = (); type AccountData = (); type OnNewAccount = (); type OnKilledAccount = (); type SystemWeightInfo = (); + type SS58Prefix = (); } -impl artemis_assets::Trait for MockRuntime { +impl artemis_assets::Config for MockRuntime { type Event = MockEvent; } @@ -76,12 +73,12 @@ parameter_types! { pub const CommitInterval: u64 = 20; } -impl artemis_commitments::Trait for MockRuntime { +impl artemis_commitments::Config for MockRuntime { type Event = MockEvent; type CommitInterval = CommitInterval; } -impl Trait for MockRuntime { +impl Config for MockRuntime { type Event = MockEvent; type Assets = Assets; type Commitments = Commitments; diff --git a/parachain/pallets/erc20-app/src/tests.rs b/parachain/pallets/erc20-app/src/tests.rs index d70aa3fc0..17dee1591 100644 --- a/parachain/pallets/erc20-app/src/tests.rs +++ b/parachain/pallets/erc20-app/src/tests.rs @@ -12,7 +12,7 @@ use crate::RawEvent; use crate::payload::InPayload; -type TestAccountId = ::AccountId; +type TestAccountId = ::AccountId; const RECIPIENT_ADDR_BYTES: [u8; 32] = hex!["8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48"]; diff --git a/parachain/pallets/eth-app/Cargo.toml b/parachain/pallets/eth-app/Cargo.toml index f9af4e165..36542dc76 100644 --- a/parachain/pallets/eth-app/Cargo.toml +++ b/parachain/pallets/eth-app/Cargo.toml @@ -8,90 +8,34 @@ edition = "2018" targets = ["x86_64-unknown-linux-gnu"] [dependencies] +serde = { version = "1.0.101", optional = true } +codec = { version = "1.3.5", package = "parity-scale-codec", default-features = false, features = ["derive"] } hex = { package = "rustc-hex", version = "2.1.0", default-features = false } +rlp = { version = "0.5", default-features = false } hex-literal = { version = "0.3.1", default-features = false } -rlp = { version = "0.4", default-features = false } -[dependencies.codec] -default-features = false -features = ["derive"] -package = "parity-scale-codec" -version = "1.3.4" +frame-support = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } -[dependencies.frame-support] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" +ethabi = { git = "https://github.com/Snowfork/ethabi-decode.git", package = "ethabi-decode", branch = "master", default-features = false } -[dependencies.frame-system] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" +artemis-core = { path = "../../primitives/core", default-features = false } +artemis-ethereum = { path = "../../primitives/ethereum", default-features = false } -[dependencies.sp-core] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-std] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-io] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-runtime] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dev-dependencies.sp-keyring] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.serde] -package = "serde" -optional = true -version = "1.0.101" -features = ["derive"] - -[dependencies.ethabi] -package = "ethabi-decode" -default-features = false -git = "https://github.com/Snowfork/ethabi-decode" - -[dependencies.artemis-core] -default-features = false -path = "../../primitives/core" - -[dependencies.artemis-ethereum] -default-features = false -path = "../../primitives/ethereum" - -[dependencies.artemis-assets] -default-features = false -path = "../../pallets/assets" - -[dependencies.artemis-commitments] -default-features = false -path = "../../pallets/commitments" +[dev-dependencies] +artemis-assets = { path = "../../pallets/assets", default-features = false } +artemis-commitments = { path = "../../pallets/commitments", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } [features] default = ["std"] std = [ + "serde", "hex/std", - "serde/std", "codec/std", "frame-support/std", "frame-system/std", @@ -101,8 +45,6 @@ std = [ "sp-runtime/std", "artemis-core/std", "artemis-ethereum/std", - "artemis-assets/std", - "artemis-commitments/std", "ethabi/std", "rlp/std" ] diff --git a/parachain/pallets/eth-app/src/lib.rs b/parachain/pallets/eth-app/src/lib.rs index cde77820c..fdda9e4d3 100644 --- a/parachain/pallets/eth-app/src/lib.rs +++ b/parachain/pallets/eth-app/src/lib.rs @@ -39,16 +39,16 @@ mod mock; #[cfg(test)] mod tests; -pub trait Trait: system::Trait { - type Event: From> + Into<::Event>; +pub trait Config: system::Config { + type Event: From> + Into<::Event>; - type Asset: SingleAsset<::AccountId>; + type Asset: SingleAsset<::AccountId>; type Commitments: Commitments; } decl_storage! { - trait Store for Module as EthModule { + trait Store for Module as EthModule { Address get(fn address) config(): H160; } } @@ -57,7 +57,7 @@ decl_event!( /// Events for the ETH module. pub enum Event where - AccountId = ::AccountId + AccountId = ::AccountId { Burned(AccountId, U256), Minted(AccountId, U256), @@ -68,7 +68,7 @@ decl_event!( ); decl_error! { - pub enum Error for Module { + pub enum Error for Module { /// The submitted payload could not be decoded. InvalidPayload, } @@ -76,7 +76,7 @@ decl_error! { decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::Origin { type Error = Error; @@ -108,7 +108,7 @@ decl_module! { } } -impl Module { +impl Module { fn handle_event(payload: InPayload) -> DispatchResult { T::Asset::deposit(&payload.recipient_addr, payload.amount)?; @@ -117,7 +117,7 @@ impl Module { } } -impl Application for Module { +impl Application for Module { fn handle(payload: &[u8]) -> DispatchResult { // Decode ethereum Log event from RLP-encoded data, and try to convert to InPayload let payload_decoded = rlp::decode::(payload) diff --git a/parachain/pallets/eth-app/src/mock.rs b/parachain/pallets/eth-app/src/mock.rs index d5bce8072..1277136f7 100644 --- a/parachain/pallets/eth-app/src/mock.rs +++ b/parachain/pallets/eth-app/src/mock.rs @@ -1,6 +1,6 @@ // Mock runtime -use crate::{Module, Trait}; +use crate::{Module, Config}; use sp_core::H256; use frame_support::{impl_outer_origin, impl_outer_event, parameter_types, weights::Weight}; use sp_runtime::{ @@ -42,8 +42,10 @@ parameter_types! { pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); } -impl system::Trait for MockRuntime { +impl system::Config for MockRuntime { type BaseCallFilter = (); + type BlockWeights = (); + type BlockLength = (); type Origin = Origin; type Call = (); type Index = u64; @@ -55,22 +57,17 @@ impl system::Trait for MockRuntime { type Header = Header; type Event = MockEvent; type BlockHashCount = BlockHashCount; - type MaximumBlockWeight = MaximumBlockWeight; type DbWeight = (); - type BlockExecutionWeight = (); - type ExtrinsicBaseWeight = (); - type MaximumExtrinsicWeight = MaximumBlockWeight; - type MaximumBlockLength = MaximumBlockLength; - type AvailableBlockRatio = AvailableBlockRatio; type Version = (); - type ModuleToIndex = (); + type PalletInfo = (); type AccountData = (); type OnNewAccount = (); type OnKilledAccount = (); type SystemWeightInfo = (); + type SS58Prefix = (); } -impl artemis_assets::Trait for MockRuntime { +impl artemis_assets::Config for MockRuntime { type Event = MockEvent; } @@ -78,7 +75,7 @@ parameter_types! { pub const CommitInterval: u64 = 20; } -impl artemis_commitments::Trait for MockRuntime { +impl artemis_commitments::Config for MockRuntime { type Event = MockEvent; type CommitInterval = CommitInterval; } @@ -87,7 +84,7 @@ parameter_types! { pub const EthAssetId: AssetId = AssetId::ETH; } -impl Trait for MockRuntime { +impl Config for MockRuntime { type Event = MockEvent; type Asset = Asset; type Commitments = Commitments; diff --git a/parachain/pallets/eth-app/src/tests.rs b/parachain/pallets/eth-app/src/tests.rs index 27963ff2c..91cb259cc 100644 --- a/parachain/pallets/eth-app/src/tests.rs +++ b/parachain/pallets/eth-app/src/tests.rs @@ -17,7 +17,7 @@ fn last_event() -> MockEvent { const RECIPIENT_ADDR_BYTES: [u8; 32] = hex!["8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48"]; -type TestAccountId = ::AccountId; +type TestAccountId = ::AccountId; #[test] fn mints_after_handling_ethereum_event() { diff --git a/parachain/pallets/token-dealer/Cargo.toml b/parachain/pallets/token-dealer/Cargo.toml new file mode 100644 index 000000000..1074f5dc9 --- /dev/null +++ b/parachain/pallets/token-dealer/Cargo.toml @@ -0,0 +1,39 @@ +[package] +name = "artemis-token-dealer" +description = "Artemis Token Dealer" +version = "0.1.1" +edition = "2018" +authors = ["Snowfork "] +repository = "https://github.com/Snowfork/polkadot-ethereum" + +[dependencies] +codec = { package = "parity-scale-codec", version = "1.3.5", default-features = false } + +frame-support = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } + +xcm = { git = "https://github.com/paritytech/polkadot.git", branch = "master", default-features = false } +xcm-executor = { git = "https://github.com/paritytech/polkadot.git", branch = "master", default-features = false } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus.git", branch = "master", default-features = false } + +artemis-core = { path = "../../primitives/core", default-features = false } + +[features] +default = ["std"] +std = [ + "codec/std", + "sp-runtime/std", + "sp-std/std", + "sp-io/std", + "sp-core/std", + "frame-support/std", + "frame-system/std", + "cumulus-primitives/std", + "xcm/std", + "xcm-executor/std", + "artemis-core/std", +] diff --git a/parachain/pallets/token-dealer/src/lib.rs b/parachain/pallets/token-dealer/src/lib.rs new file mode 100644 index 000000000..d7b357b4d --- /dev/null +++ b/parachain/pallets/token-dealer/src/lib.rs @@ -0,0 +1,270 @@ +#![cfg_attr(not(feature = "std"), no_std)] + +use codec::{Decode, Encode}; +use frame_support::{decl_event, decl_error, decl_module, decl_storage, + dispatch::DispatchResult, + traits::Get, Parameter, +}; +use frame_system::ensure_signed; +use sp_runtime::{ + traits::{AtLeast32BitUnsigned, Convert, MaybeSerializeDeserialize, Member}, + RuntimeDebug, +}; +use sp_std::convert::TryInto; +use sp_std::prelude::*; +use sp_std::vec; + +use cumulus_primitives::{relay_chain::Balance as RelayChainBalance, ParaId}; +use xcm::v0::{Junction, MultiAsset, MultiLocation, NetworkId, Order, Xcm, ExecuteXcm}; +use xcm::VersionedXcm; + +use xcm_executor::traits::LocationConversion; + +use artemis_core::AssetId; + +/// Global identifier for a bridged ethereum asset (Within a polkadot consensus system) +#[derive(Encode, Decode, Eq, PartialEq, Clone, RuntimeDebug)] +pub struct XAssetId { + /// The reserve chain of the asset. + pub reserve_chain: ParaId, + /// The identity of the asset. + pub asset: AssetId +} + +impl Into for XAssetId { + fn into(self) -> MultiLocation { + match self.asset { + AssetId::ETH => + MultiLocation::X2( + Junction::PalletInstance { id: 0 }, // fungible assets pallet + Junction::GeneralIndex { id: 0 }, // ETH + ), + AssetId::Token(key) => + MultiLocation::X3( + Junction::PalletInstance { id: 0 }, // fungible assets pallet + Junction::GeneralIndex { id: 1 }, // ERC20 token + Junction::GeneralKey(key.to_fixed_bytes().into()) // address + ) + } + } +} + +pub trait Config: frame_system::Config { + type Event: From> + Into<::Event>; + type Balance: Parameter + Member + AtLeast32BitUnsigned + Default + Copy + MaybeSerializeDeserialize + Into; + type ToRelayChainBalance: Convert; + type AccountIdConverter: LocationConversion; + type AccountId32Converter: Convert; + type RelayChainNetworkId: Get; + type ParaId: Get; + type XcmExecutor: ExecuteXcm; +} + +decl_storage! { + trait Store for Module as TokenDealer {} +} + +decl_event! { + pub enum Event where + ::AccountId, + ::Balance, + { + /// Transferred DOT to relay chain. [src, dest, amount] + TransferredToRelayChain(AccountId, AccountId, Balance), + + /// Transferred to parachain. [x_asset_id, src, para_id, dest, dest_network, amount] + TransferredToParachain(XAssetId, AccountId, ParaId, AccountId, NetworkId, Balance), + } +} + +decl_error! { + pub enum Error for Module { + /// Location given was invalid or unsupported. + BadLocation, + /// The XCM message version is not supported. + BadVersion, + /// XCM execution failed + ExecutionFailed, + } +} + +decl_module! { + pub struct Module for enum Call where origin: T::Origin { + fn deposit_event() = default; + + /// Transfer DOT upwards to relay chain. + #[weight = 10] + pub fn transfer_dot_to_relaychain(origin, dest: T::AccountId, amount: T::Balance) -> DispatchResult { + let who = ensure_signed(origin.clone())?; + let xcm = Self::make_xcm_upward_transfer(&dest, amount); + + Self::execute(&who, xcm.into())?; + + Self::deposit_event(Event::::TransferredToRelayChain(who, dest, amount)); + + Ok(()) + } + + /// Transfer bridged ethereum assets to a sibling parachain. + /// + /// Bridged assets can be either native or foreign to the sending parachain. + /// + /// # Arguments + /// + /// * `asset`: Global identifier for a bridged asset + /// * `para_id`: Destination parachain + /// * `network`: Network for destination account + /// * `account`: Destination account + /// * `amount`: Amount to transfer + #[weight = 10] + pub fn transfer_bridged_asset_to_parachain( + origin, + asset: XAssetId, + para_id: ParaId, + network: NetworkId, + account: T::AccountId, + amount: T::Balance + ) -> DispatchResult { + let who = ensure_signed(origin.clone())?; + + if para_id == T::ParaId::get() { + return Ok(()); + } + + let location: MultiLocation = asset.clone().into(); + + let xcm = if asset.reserve_chain == T::ParaId::get() { + Self::make_xcm_lateral_transfer_native( + location, + para_id, + &network, + &account, + amount) + } else { + Self::make_xcm_lateral_transfer_foreign( + asset.reserve_chain, + location, + para_id, + &network, + &account, + amount) + }; + + Self::execute(&who, xcm.into())?; + + Self::deposit_event( + Event::::TransferredToParachain(asset, who, para_id, account, network, amount), + ); + + Ok(()) + } + } +} + +impl Module { + + // Execute the XCM message + fn execute(who: &T::AccountId, xcm: VersionedXcm) -> DispatchResult { + let xcm_origin = T::AccountIdConverter::try_into_location(who.clone()) + .map_err(|_| Error::::BadLocation)?; + + let xcm: Xcm = xcm.try_into() + .map_err(|_| Error::::BadVersion)?; + + T::XcmExecutor::execute_xcm(xcm_origin, xcm) + .map_err(|_| Error::::ExecutionFailed.into()) + } + + // Transfer DOT upwards to relay chain + fn make_xcm_upward_transfer(dest: &T::AccountId, amount: T::Balance) -> Xcm { + Xcm::WithdrawAsset { + assets: vec![MultiAsset::ConcreteFungible { + id: MultiLocation::X1(Junction::Parent), + amount: T::ToRelayChainBalance::convert(amount).into(), + }], + effects: vec![Order::InitiateReserveWithdraw { + assets: vec![MultiAsset::All], + reserve: MultiLocation::X1(Junction::Parent), + effects: vec![Order::DepositAsset { + assets: vec![MultiAsset::All], + dest: MultiLocation::X1(Junction::AccountId32 { + network: T::RelayChainNetworkId::get(), + id: T::AccountId32Converter::convert(dest.clone()), + }), + }], + }], + } + } + + // Transfer bridged assets which are native to this parachain + fn make_xcm_lateral_transfer_native( + location: MultiLocation, + para_id: ParaId, + network: &NetworkId, + account: &T::AccountId, + amount: T::Balance, + ) -> Xcm { + Xcm::WithdrawAsset { + assets: vec![MultiAsset::ConcreteFungible { + id: location, + amount: amount.into(), + }], + effects: vec![Order::DepositReserveAsset { + assets: vec![MultiAsset::All], + dest: MultiLocation::X2(Junction::Parent, Junction::Parachain { id: para_id.into() }), + effects: vec![Order::DepositAsset { + assets: vec![MultiAsset::All], + dest: MultiLocation::X1(Junction::AccountId32 { + network: network.clone(), + id: T::AccountId32Converter::convert(account.clone()), + }), + }], + }], + } + } + + // Transfer bridged assets which are foreign to this parachain + fn make_xcm_lateral_transfer_foreign( + reserve_chain: ParaId, + location: MultiLocation, + para_id: ParaId, + network: &NetworkId, + account: &T::AccountId, + amount: T::Balance, + ) -> Xcm { + let deposit_to_dest = Order::DepositAsset { + assets: vec![MultiAsset::All], + dest: MultiLocation::X1(Junction::AccountId32 { + network: network.clone(), + id: T::AccountId32Converter::convert(account.clone()), + }), + }; + + let reserve_chain_order = if para_id == reserve_chain { + deposit_to_dest + } else { + Order::DepositReserveAsset { + assets: vec![MultiAsset::All], + dest: MultiLocation::X2(Junction::Parent, Junction::Parachain { id: para_id.into() }), + effects: vec![deposit_to_dest], + } + }; + + Xcm::WithdrawAsset { + assets: vec![MultiAsset::ConcreteFungible { + id: location, + amount: amount.into(), + }], + effects: vec![Order::InitiateReserveWithdraw { + assets: vec![MultiAsset::All], + reserve: MultiLocation::X2( + Junction::Parent, + Junction::Parachain { + id: reserve_chain.into(), + }, + ), + effects: vec![reserve_chain_order], + }], + } + } +} diff --git a/parachain/pallets/verifier-lightclient/Cargo.toml b/parachain/pallets/verifier-lightclient/Cargo.toml index d1e7f7fe0..6eb994395 100644 --- a/parachain/pallets/verifier-lightclient/Cargo.toml +++ b/parachain/pallets/verifier-lightclient/Cargo.toml @@ -10,86 +10,33 @@ repository = "https://github.com/Snowfork/polkadot-ethereum" targets = ["x86_64-unknown-linux-gnu"] [dependencies] +serde = { version = "1.0.101", optional = true } +codec = { version = "1.3.5", package = "parity-scale-codec", default-features = false, features = ["derive"] } hex = { package = "rustc-hex", version = "2.1.0", default-features = false } -rlp = { version = "0.4", default-features = false } +rlp = { version = "0.5", default-features = false } -[dev-dependencies] -hex-literal = { version = "0.3.1", default-features = false } -serde_json = "1.0" -artemis-testutils = { path = "../../primitives/testutils" } - -[dependencies.codec] -default-features = false -features = ["derive"] -package = "parity-scale-codec" -version = "1.3.4" - -[dependencies.ethash] -default-features = false -git = "https://github.com/nearprotocol/rust-ethash" -branch = "upgrade-eth-types" - -[dev-dependencies.sp-keyring] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.frame-support] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.frame-system] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" +frame-support = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } -[dependencies.sp-core] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" +artemis-core = { path = "../../primitives/core", default-features = false } +artemis-ethereum = { path = "../../primitives/ethereum", default-features = false } -[dependencies.sp-io] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-runtime] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-std] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.artemis-core] -default-features = false -path = "../../primitives/core" - -[dependencies.artemis-ethereum] -default-features = false -path = "../../primitives/ethereum" - -[dependencies.serde] -package = "serde" -optional = true -version = "1.0.101" -features = ["derive"] +ethash = { git = "https://github.com/Snowfork/ethash.git", branch = "master", default-features = false } +[dev-dependencies] +sp-keyring = { git = "https://github.com/paritytech/substrate.git", branch = "master" } +hex-literal = { version = "0.3.1" } +artemis-testutils = { path = "../../primitives/testutils" } +serde_json = "1.0" [features] default = ["std"] std = [ - "serde/std", + "serde", "codec/std", "ethash/std", "frame-support/std", diff --git a/parachain/pallets/verifier-lightclient/src/lib.rs b/parachain/pallets/verifier-lightclient/src/lib.rs index e6f070b46..4562e0568 100644 --- a/parachain/pallets/verifier-lightclient/src/lib.rs +++ b/parachain/pallets/verifier-lightclient/src/lib.rs @@ -52,8 +52,8 @@ struct PruningRange { pub oldest_block_to_keep: u64, } -pub trait Trait: system::Trait { - type Event: From + Into<::Event>; +pub trait Config: system::Config { + type Event: From + Into<::Event>; /// The number of descendants, in the highest difficulty chain, a block /// needs to have in order to be considered final. type DescendantsUntilFinalized: Get; @@ -63,7 +63,7 @@ pub trait Trait: system::Trait { } decl_storage! { - trait Store for Module as VerifierLightclient { + trait Store for Module as VerifierLightclient { /// Best known block. BestBlock: (EthereumHeaderId, U256); /// Range of blocks that we want to prune. @@ -120,7 +120,7 @@ decl_event!( ); decl_error! { - pub enum Error for Module { + pub enum Error for Module { /// Header is same height or older than finalized block (we don't support forks). AncientHeader, /// Header referenced in inclusion proof doesn't exist, e.g. because it's @@ -146,7 +146,7 @@ decl_error! { } decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::Origin { type Error = Error; fn deposit_event() = default; @@ -197,7 +197,7 @@ decl_module! { } } -impl Module { +impl Module { // Validate an Ethereum header for import fn validate_header_to_import(header: &EthereumHeader, proof: &[EthashProofData]) -> DispatchResult { let hash = header.compute_hash(); @@ -446,7 +446,7 @@ impl Module { } /// Return iterator over header ancestors, starting at given hash -fn ancestry(mut hash: H256) -> impl Iterator { +fn ancestry(mut hash: H256) -> impl Iterator { sp_std::iter::from_fn(move || { let header = Headers::::get(&hash)?.header; let current_hash = hash; @@ -455,7 +455,7 @@ fn ancestry(mut hash: H256) -> impl Iterator Verifier for Module { +impl Verifier for Module { fn verify(_: T::AccountId, _: AppId, message: &Message) -> DispatchResult { match message.verification { diff --git a/parachain/pallets/verifier-lightclient/src/mock.rs b/parachain/pallets/verifier-lightclient/src/mock.rs index 122dfeb07..bab4f586b 100644 --- a/parachain/pallets/verifier-lightclient/src/mock.rs +++ b/parachain/pallets/verifier-lightclient/src/mock.rs @@ -1,7 +1,7 @@ // Mock runtime use artemis_core::{Message, VerificationInput}; use artemis_testutils::BlockWithProofs; -use crate::{Module, EthashProofData, EthereumHeader, GenesisConfig, Trait}; +use crate::{Module, EthashProofData, EthereumHeader, GenesisConfig, Config}; use sp_core::H256; use frame_support::{impl_outer_origin, impl_outer_event, parameter_types, weights::Weight}; use sp_runtime::{ @@ -45,8 +45,10 @@ parameter_types! { pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); } -impl system::Trait for MockRuntime { +impl system::Config for MockRuntime { type BaseCallFilter = (); + type BlockWeights = (); + type BlockLength = (); type Origin = Origin; type Call = (); type Index = u64; @@ -58,23 +60,20 @@ impl system::Trait for MockRuntime { type Header = Header; type Event = MockEvent; type BlockHashCount = BlockHashCount; - type MaximumBlockWeight = MaximumBlockWeight; type DbWeight = (); - type BlockExecutionWeight = (); - type ExtrinsicBaseWeight = (); - type MaximumExtrinsicWeight = MaximumBlockWeight; - type MaximumBlockLength = MaximumBlockLength; - type AvailableBlockRatio = AvailableBlockRatio; type Version = (); - type ModuleToIndex = (); + type PalletInfo = (); type AccountData = (); type OnNewAccount = (); type OnKilledAccount = (); type SystemWeightInfo = (); + type SS58Prefix = (); } -impl system::Trait for MockRuntimeWithPoW { +impl system::Config for MockRuntimeWithPoW { type BaseCallFilter = (); + type BlockWeights = (); + type BlockLength = (); type Origin = Origin; type Call = (); type Index = u64; @@ -86,19 +85,14 @@ impl system::Trait for MockRuntimeWithPoW { type Header = Header; type Event = MockEvent; type BlockHashCount = BlockHashCount; - type MaximumBlockWeight = MaximumBlockWeight; type DbWeight = (); - type BlockExecutionWeight = (); - type ExtrinsicBaseWeight = (); - type MaximumExtrinsicWeight = MaximumBlockWeight; - type MaximumBlockLength = MaximumBlockLength; - type AvailableBlockRatio = AvailableBlockRatio; type Version = (); - type ModuleToIndex = (); + type PalletInfo = (); type AccountData = (); type OnNewAccount = (); type OnKilledAccount = (); type SystemWeightInfo = (); + type SS58Prefix = (); } parameter_types! { @@ -107,21 +101,21 @@ parameter_types! { pub const PowEnabled: bool = true; } -impl Trait for MockRuntime { +impl Config for MockRuntime { type Event = MockEvent; type DescendantsUntilFinalized = DescendantsUntilFinalized; type VerifyPoW = PowDisabled; } -impl Trait for MockRuntimeWithPoW { +impl Config for MockRuntimeWithPoW { type Event = MockEvent; type DescendantsUntilFinalized = DescendantsUntilFinalized; type VerifyPoW = PowEnabled; } pub type Verifier = Module; - pub type VerifierWithPoW = Module; +pub type System = system::Module; pub fn genesis_ethereum_header() -> EthereumHeader { Default::default() @@ -140,7 +134,7 @@ pub fn child_of_header(header: &EthereumHeader) -> EthereumHeader { child.difficulty = 1.into(); child.parent_hash = header.compute_hash(); child.number = header.number + 1; - child + child } fn fixture_path(name: &str) -> PathBuf { @@ -191,7 +185,7 @@ pub fn log_payload() -> Vec { 59f2488da000000000000000000000000000000000000000000000000003e973b5a5d1078e ").to_vec() } - + pub fn new_tester() -> sp_io::TestExternalities { new_tester_with_config::(GenesisConfig { initial_header: genesis_ethereum_header(), @@ -199,12 +193,12 @@ pub fn new_tester() -> sp_io::TestExternalities { }) } -pub fn new_tester_with_config(config: GenesisConfig) -> sp_io::TestExternalities { +pub fn new_tester_with_config(config: GenesisConfig) -> sp_io::TestExternalities { let mut storage = system::GenesisConfig::default().build_storage::().unwrap(); config.assimilate_storage::(&mut storage).unwrap(); let mut ext: sp_io::TestExternalities = storage.into(); - ext.execute_with(|| system::Module::::set_block_number(1.into())); + ext.execute_with(|| System::set_block_number(1)); ext } diff --git a/parachain/pallets/verifier-lightclient/src/tests.rs b/parachain/pallets/verifier-lightclient/src/tests.rs index 6f28359bb..f611eb34d 100644 --- a/parachain/pallets/verifier-lightclient/src/tests.rs +++ b/parachain/pallets/verifier-lightclient/src/tests.rs @@ -1,4 +1,4 @@ -use artemis_core::{Verifier as VerifierTrait}; +use artemis_core::{Verifier as VerifierConfig}; use crate::mock::{ child_of_genesis_ethereum_header, child_of_header, ethereum_header_from_file, ethereum_header_proof_from_file, genesis_ethereum_block_hash, log_payload, diff --git a/parachain/pallets/verifier/Cargo.toml b/parachain/pallets/verifier/Cargo.toml deleted file mode 100644 index 08d99e479..000000000 --- a/parachain/pallets/verifier/Cargo.toml +++ /dev/null @@ -1,91 +0,0 @@ -[package] -name = "pallet-verifier" -description = "Artemis Verifier Pallet" -version = "0.1.1" -edition = "2018" -authors = ["Snowfork "] -repository = "https://github.com/Snowfork/polkadot-ethereum" - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] - -[dependencies] -hex = { package = "rustc-hex", version = "2.1.0", default-features = false } - -[dependencies.codec] -default-features = false -features = ["derive"] -package = "parity-scale-codec" -version = "1.3.4" - -[dev-dependencies.sp-keyring] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.frame-support] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.frame-system] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-core] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-io] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-runtime] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-std] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.artemis-core] -default-features = false -path = "../../primitives/core" - -[dependencies.artemis-ethereum] -default-features = false -path = "../../primitives/ethereum" - -[dependencies.serde] -package = "serde" -optional = true -version = "1.0.101" -features = ["derive"] - - -[features] -default = ["std"] -std = [ - "serde/std", - "codec/std", - "frame-support/std", - "frame-system/std", - "sp-core/std", - "sp-io/std", - "sp-runtime/std", - "sp-std/std", - "artemis-core/std", - "artemis-ethereum/std", -] diff --git a/parachain/pallets/verifier/src/lib.rs b/parachain/pallets/verifier/src/lib.rs deleted file mode 100644 index 00c0fcecc..000000000 --- a/parachain/pallets/verifier/src/lib.rs +++ /dev/null @@ -1,108 +0,0 @@ -//! # Verifier -//! -//! The verifier module provides functionality for message verification. -//! -//! ## Overview -//! -//! This verifier performs the following verification routines on a message: -//! - Ensuring that the message sender is trusted -//! - Ensuring that messages are not replayed -//! -//! This verifier is intended to be swapped out for an Ethereum light-client solution at some point. -//! -//! ## Interface -//! -//! The verifier implements the [`Verifier`] trait and conforms to its interface. -//! -#![allow(unused_variables)] -#![cfg_attr(not(feature = "std"), no_std)] - -use frame_system as system; -use frame_support::{decl_module, decl_storage, decl_event, decl_error, - dispatch::DispatchResult}; -use sp_runtime::traits::Hash; -use sp_std::prelude::*; - -use artemis_core::{AppId, Message, Verifier, VerificationInput}; - -#[cfg(test)] -mod mock; - -#[cfg(test)] -mod tests; - -pub trait Trait: system::Trait { - type Event: From + Into<::Event>; -} - -decl_storage! { - trait Store for Module as VerifierModule { - /// The trusted [`AccountId`] of the external relayer service. - RelayKey get(fn key) config(): T::AccountId; - - /// Hashes of previously seen messages. Used to implement replay protection. - pub VerifiedPayloads: map hasher(blake2_128_concat) T::Hash => (); - } -} - -decl_event!( - pub enum Event { - - } -); - -decl_error! { - pub enum Error for Module { - /// Verification scheme is not supported. - NotSupported, - /// The message failed verification. - Invalid - } -} - -decl_module! { - pub struct Module for enum Call where origin: T::Origin { - type Error = Error; - - fn deposit_event() = default; - } -} - -impl Module { - - /// Verify a message - fn do_verify(sender: T::AccountId, app_id: AppId, message: &Message) -> DispatchResult { - Self::verify_sender(sender)?; - - // Hash all inputs together to produce a unique key for the message - let (block_no, event_idx) = match message.verification { - VerificationInput::Basic { block_number, event_index } => (block_number, event_index), - _ => return Err(Error::::NotSupported.into()) - }; - let key_input = (app_id, message.payload.clone(), block_no, event_idx); - let key = T::Hashing::hash_of(&key_input); - - // Verify that the message has not been seen before (replay protection) - if >::contains_key(key) { - return Err(Error::::Invalid.into()) - } else { - >::insert(key, ()); - } - - Ok(()) - } - - // Verify that the message sender matches the relayer account - fn verify_sender(sender: T::AccountId) -> DispatchResult { - if sender != RelayKey::::get() { - return Err(Error::::Invalid.into()) - } - Ok(()) - } -} - -impl Verifier for Module { - fn verify(sender: T::AccountId, app_id: AppId, message: &Message) -> DispatchResult { - Self::do_verify(sender, app_id, message) - } -} diff --git a/parachain/pallets/verifier/src/mock.rs b/parachain/pallets/verifier/src/mock.rs deleted file mode 100644 index 4e6c4c58b..000000000 --- a/parachain/pallets/verifier/src/mock.rs +++ /dev/null @@ -1,86 +0,0 @@ -// Mock runtime - -use crate::{Module, GenesisConfig, Trait}; -use sp_core::H256; -use frame_support::{impl_outer_origin, impl_outer_event, parameter_types, weights::Weight}; -use sp_runtime::{ - traits::{BlakeTwo256, IdentityLookup, IdentifyAccount, Verify}, testing::Header, Perbill, MultiSignature -}; -use frame_system as system; -use sp_keyring::AccountKeyring as Keyring; - -impl_outer_origin! { - pub enum Origin for MockRuntime {} -} - -mod test_events { - pub use crate::Event; -} - -impl_outer_event! { - pub enum MockEvent for MockRuntime { - system, - test_events, - } -} - -pub type Signature = MultiSignature; - -pub type AccountId = <::Signer as IdentifyAccount>::AccountId; - -#[derive(Clone, Eq, PartialEq)] -pub struct MockRuntime; - -parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const MaximumBlockWeight: Weight = 1024; - pub const MaximumBlockLength: u32 = 2 * 1024; - pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); -} - -impl system::Trait for MockRuntime { - type BaseCallFilter = (); - type Origin = Origin; - type Call = (); - type Index = u64; - type BlockNumber = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Header = Header; - type Event = MockEvent; - type BlockHashCount = BlockHashCount; - type MaximumBlockWeight = MaximumBlockWeight; - type DbWeight = (); - type BlockExecutionWeight = (); - type ExtrinsicBaseWeight = (); - type MaximumExtrinsicWeight = MaximumBlockWeight; - type MaximumBlockLength = MaximumBlockLength; - type AvailableBlockRatio = AvailableBlockRatio; - type Version = (); - type ModuleToIndex = (); - type AccountData = (); - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); -} - -impl Trait for MockRuntime { - type Event = MockEvent; -} - -pub type System = system::Module; -pub type Verifier = Module; - -pub fn new_tester() -> sp_io::TestExternalities { - let mut storage = system::GenesisConfig::default().build_storage::().unwrap(); - - GenesisConfig:: { - key: Keyring::Ferdie.into(), - }.assimilate_storage(&mut storage).unwrap(); - - let mut ext: sp_io::TestExternalities = storage.into(); - ext.execute_with(|| System::set_block_number(1)); - ext -} diff --git a/parachain/pallets/verifier/src/tests.rs b/parachain/pallets/verifier/src/tests.rs deleted file mode 100644 index 61d9574db..000000000 --- a/parachain/pallets/verifier/src/tests.rs +++ /dev/null @@ -1,66 +0,0 @@ -use crate::mock::{new_tester, AccountId, Verifier, MockRuntime}; -use frame_support::{assert_ok, assert_noop}; -use sp_keyring::AccountKeyring as Keyring; - -use artemis_core::{Message, VerificationInput}; - -use crate::Error; - -#[test] -fn it_verifies_different_messages() { - new_tester().execute_with(|| { - let ferdie: AccountId = Keyring::Ferdie.into(); - let app_id: [u8; 20] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - let message = Message { - payload: [0, 1, 3].to_vec(), - verification: VerificationInput::Basic {block_number: 938, event_index: 4} - }; - assert_ok!(Verifier::do_verify(ferdie.clone(), app_id, &message)); - - let message = Message { - payload: [0, 2, 3].to_vec(), - verification: VerificationInput::Basic {block_number: 970, event_index: 3} - }; - assert_ok!(Verifier::do_verify(ferdie.clone(), app_id, &message)); - - let message = Message { - payload: [7, 8, 9].to_vec(), - verification: VerificationInput::Basic {block_number: 981, event_index: 0} - }; - assert_ok!(Verifier::do_verify(ferdie, app_id, &message)); - }); -} - -#[test] -fn it_checks_unauthorized_sender() { - new_tester().execute_with(|| { - let bob: AccountId = Keyring::Bob.into(); - let app_id: [u8; 20] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - let message = Message { - payload: [0, 1, 3].to_vec(), - verification: VerificationInput::Basic {block_number: 938, event_index: 4} - }; - - assert_noop!( - Verifier::do_verify(bob, app_id, &message), - Error::::Invalid - ); - }); -} - -#[test] -fn it_checks_for_replayed_messages() { - new_tester().execute_with(|| { - let ferdie: AccountId = Keyring::Ferdie.into(); - let app_id: [u8; 20] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - let message = Message { - payload: [0, 1, 3].to_vec(), - verification: VerificationInput::Basic {block_number: 938, event_index: 4} - }; - assert_ok!(Verifier::do_verify(ferdie.clone(), app_id, &message)); - assert_noop!( - Verifier::do_verify(ferdie, app_id, &message), - Error::::Invalid - ); - }); -} diff --git a/parachain/primitives/core/Cargo.toml b/parachain/primitives/core/Cargo.toml index 94948b486..0aba8f022 100644 --- a/parachain/primitives/core/Cargo.toml +++ b/parachain/primitives/core/Cargo.toml @@ -5,44 +5,22 @@ authors = ["Snowfork "] edition = "2018" [dependencies] -codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false } +codec = { package = "parity-scale-codec", version = "1.3.5", default-features = false } -[dev-dependencies] -hex = { package = "rustc-hex", version = "2.1.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } -[build-dependencies] +[dev-dependencies] hex = { package = "rustc-hex", version = "2.1.0", default-features = false } -[dependencies.frame-support] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-runtime] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-std] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-core] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - [features] default = ["std"] std = [ + "codec/std", "frame-support/std", "sp-std/std", "sp-core/std", "sp-runtime/std", - "codec/std", ] diff --git a/parachain/primitives/ethereum/Cargo.toml b/parachain/primitives/ethereum/Cargo.toml index 54ec5fb9a..5ff0bf74c 100644 --- a/parachain/primitives/ethereum/Cargo.toml +++ b/parachain/primitives/ethereum/Cargo.toml @@ -5,56 +5,40 @@ authors = ["Snowfork "] edition = "2018" [dependencies] -codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false } -ethbloom = { version = "0.8", default-features = false } -ethereum-types = { version = "0.9.2", default-features = false, features = ["codec"] } +codec = { package = "parity-scale-codec", version = "1.3.5", default-features = false } +ethbloom = { version = "0.10.0", default-features = false } +ethereum-types = { version = "0.10.0", default-features = false, features = ["codec", "rlp"] } hex = { package = "rustc-hex", version = "2.1.0", default-features = false } hex-literal = { version = "0.3.1", default-features = false } libsecp256k1 = { version = "0.3", default-features = false } -parity-bytes = { version = "0.1", default-features = false } -rlp = { version = "0.4", default-features = false } -serde = { version = "1.0", optional = true } +parity-bytes = { version = "0.1.2", default-features = false } +rlp = { version = "0.5", default-features = false } +serde = { version = "1.0.101", optional = true } serde-big-array = { version = "0.2", optional = true } tiny-keccak = { version = "2.0.2" } +getrandom = { version = "0.2.1", features = ["js"] } -[dependencies.ethabi] -package = "ethabi-decode" -default-features = false -git = "https://github.com/Snowfork/ethabi-decode" +sp-io = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } -[dependencies.ethash] -default-features = false -git = "https://github.com/nearprotocol/rust-ethash" -branch = "upgrade-eth-types" +ethabi = { git = "https://github.com/Snowfork/ethabi-decode.git", branch = "master", package = "ethabi-decode", default-features = false } +ethash = { git = "https://github.com/Snowfork/ethash.git", branch = "master", default-features = false } -[dependencies.sp-std] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-core] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-io] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" +[dev-dependencies] +artemis-testutils = { path = "../../primitives/testutils" } +rand = "0.7.3" +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" -[dependencies.sp-runtime] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" [features] default = ["std"] expensive_tests = [] std = [ + "serde", + "serde-big-array", "codec/std", "ethabi/std", "ethash/std", @@ -64,16 +48,8 @@ std = [ "libsecp256k1/std", "parity-bytes/std", "rlp/std", - "serde", - "serde-big-array", "sp-core/std", "sp-io/std", "sp-runtime/std", "sp-std/std", ] - -[dev-dependencies] -artemis-testutils = { path = "../../primitives/testutils" } -rand = "0.7.3" -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" diff --git a/parachain/primitives/ethereum/src/lib.rs b/parachain/primitives/ethereum/src/lib.rs index b7a87759b..adce7ff7b 100644 --- a/parachain/primitives/ethereum/src/lib.rs +++ b/parachain/primitives/ethereum/src/lib.rs @@ -117,21 +117,21 @@ impl Header { None => return None, }; let item_to_prove: mpt::ShortNode = rlp::decode(first_bytes).ok()?; - + let final_hash: Option<[u8; 32]> = iter.fold(Some(keccak_256(first_bytes)), |maybe_hash, bytes| { let expected_hash = maybe_hash?; let node: mpt::FullNode = rlp::decode(bytes).ok()?; let found_hash = node.children.into_iter().find(|&hash| Some(expected_hash.into()) == hash); found_hash.map(|_| keccak_256(bytes)) }); - + final_hash.map(|hash| (hash.into(), item_to_prove.value)) } pub fn mix_hash(&self) -> Option { let bytes: Bytes = self.decoded_seal_field(0, 32)?; let size = bytes.len(); - let mut mix_hash = [0u8; 32]; + let mut mix_hash = [0u8; 32]; for i in 0..size { mix_hash[31 - i] = bytes[size - 1 - i]; } @@ -185,7 +185,7 @@ impl Header { } } - s.out() + s.out().to_vec() } } @@ -300,8 +300,8 @@ mod tests { gas_limit: 0xbe8c19.into(), difficulty: 0xbc140caa61087i64.into(), seal: vec![ - rlp::encode(&mix_hash), - rlp::encode(&nonce), + rlp::encode(&mix_hash).to_vec(), + rlp::encode(&nonce).to_vec(), ], }; assert_eq!( @@ -316,8 +316,8 @@ mod tests { let mix_hash: H256 = hex!("be3adfb0087be62b28b716e2cdf3c79329df5caa04c9eee035d35b5d52102815").into(); let mut header: Header = Default::default(); header.seal = vec![ - rlp::encode(&mix_hash.0.to_vec()), - rlp::encode(&nonce.0.to_vec()), + rlp::encode(&mix_hash.0.to_vec()).to_vec(), + rlp::encode(&nonce.0.to_vec()).to_vec(), ]; assert_eq!(header.nonce().unwrap(), nonce); assert_eq!(header.mix_hash().unwrap(), mix_hash); @@ -329,8 +329,8 @@ mod tests { let mix_hash = hex!("bebe3adfb0087be62b28b716e2cdf3c79329df5caa04c9eee035d35b5d52102815").to_vec(); let mut header: Header = Default::default(); header.seal = vec![ - rlp::encode(&mix_hash), - rlp::encode(&nonce), + rlp::encode(&mix_hash).to_vec(), + rlp::encode(&nonce).to_vec(), ]; assert_eq!(header.nonce(), None); assert_eq!(header.mix_hash(), None); @@ -344,7 +344,7 @@ mod tests { fn header_check_receipt_proof() { let mut header: Header = Default::default(); header.receipts_root = hex!("fd5e397a84884641f53c496804f24b5276cbb8c5c9cfc2342246be8e3ce5ad02").into(); - + // Valid proof let proof_receipt5 = vec!( hex!("f90131a0b5ba404eb5a6a88e56579f4d37ef9813b5ad7f86f0823ff3b407ac5a6bb465eca0398ead2655e78e03c127ce22c5830e90f18b1601ec055f938336c084feb915a9a026d322c26e46c50942c1aabde50e36df5cde572aed650ce73ea3182c6e90a02ca00600a356135f4db1db0d9842264cdff2652676f881669e91e316c0b6dd783011a0837f1deb4075336da320388c1edfffc56c448a43f4a5ba031300d32a7b509fc5a01c3ac82fd65b4aba7f9afaf604d9c82ec7e2deb573a091ae235751bc5c0c288da05d454159d9071b0f68b6e0503d290f23ac7602c1db0c569dee4605d8f5298f09a00bbed10350ec954448df795f6fd46e3faefc800ede061b3840eedc6e2b07a74da0acb02d26a3650f2064c14a435fdf1f668d8655daf455ebdf671713a7c089b3898080808080808080").to_vec(), diff --git a/parachain/primitives/testutils/Cargo.toml b/parachain/primitives/testutils/Cargo.toml index c86be6638..90a3d168a 100644 --- a/parachain/primitives/testutils/Cargo.toml +++ b/parachain/primitives/testutils/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Snowfork "] edition = "2018" [dependencies] -ethereum-types = { version = "0.9.2", default-features = false } +ethereum-types = { version = "0.10.0", default-features = false } hex = { package = "rustc-hex", version = "2.1.0", default-features = false } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/parachain/primitives/xcm-support/Cargo.toml b/parachain/primitives/xcm-support/Cargo.toml new file mode 100644 index 000000000..2e72c8c02 --- /dev/null +++ b/parachain/primitives/xcm-support/Cargo.toml @@ -0,0 +1,30 @@ +[package] +name = "artemis-xcm-support" +version = "0.1.0" +authors = ["Snowfork "] +edition = "2018" + +[dependencies] +codec = { package = "parity-scale-codec", version = "1.3.5", default-features = false } + +frame-support = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } + +xcm = { git = "https://github.com/paritytech/polkadot.git", branch = "master", default-features = false } +xcm-executor = { git = "https://github.com/paritytech/polkadot.git", branch = "master", default-features = false } + +artemis-core = { path = "../../primitives/core", default-features = false } + +[features] +default = ["std"] +std = [ + "codec/std", + "sp-std/std", + "sp-runtime/std", + "frame-support/std", + "xcm/std", + "xcm-executor/std", + "artemis-core/std" +] diff --git a/parachain/primitives/xcm-support/src/lib.rs b/parachain/primitives/xcm-support/src/lib.rs new file mode 100644 index 000000000..8ed4cb48e --- /dev/null +++ b/parachain/primitives/xcm-support/src/lib.rs @@ -0,0 +1,174 @@ +//! # XCMP Support +//! +//! Includes an implementation for the `TransactAsset` trait, thus enabling +//! withdrawals and deposits to assets via XCMP message execution. + +#![cfg_attr(not(feature = "std"), no_std)] + +use sp_core::U256; +use sp_std::{ + marker::PhantomData, + prelude::*, + convert::{TryFrom, TryInto} +}; + +use frame_support::traits::{Get, Currency, WithdrawReasons, ExistenceRequirement}; + +use xcm::v0::{ + Junction, + MultiAsset, + MultiLocation, + Result as XcmResult, + Error as XcmError, +}; + +use xcm_executor::traits::{NativeAsset, LocationConversion, FilterAssetLocation, TransactAsset}; + +use artemis_core::assets::{MultiAsset as ArtemisMultiAsset, AssetId}; + + +pub struct Transactor( + PhantomData<(DOT, BridgedAssets, AccountIdConverter, AccountId)>, +); + +impl< + DOT: Currency, + BridgedAssets: ArtemisMultiAsset, + AccountIdConverter: LocationConversion, + AccountId: sp_std::fmt::Debug + > TransactAsset + for Transactor +{ + fn deposit_asset(asset: &MultiAsset, location: &MultiLocation) -> XcmResult { + let who = AccountIdConverter::from_location(location).ok_or(())?; + if let MultiAsset::ConcreteFungible { id, amount } = asset { + Self::deposit(id, &who, *amount) + } else { + Err(XcmError::Undefined) + } + } + + fn withdraw_asset(asset: &MultiAsset, location: &MultiLocation) -> Result { + let who = AccountIdConverter::from_location(location).ok_or(())?; + if let MultiAsset::ConcreteFungible { id, amount } = asset { + Self::withdraw(id, &who, *amount).map(|_| asset.clone()) + } else { + Err(XcmError::Undefined) + } + } +} + + +impl< + DOT: Currency, + BridgedAssets: ArtemisMultiAsset, + AccountIdConverter: LocationConversion, + AccountId: sp_std::fmt::Debug + > Transactor +{ + fn deposit(id: &MultiLocation, who: &AccountId, amount: u128) -> XcmResult { + match id { + // Deposit DOT + MultiLocation::X1(Junction::Parent) => { + let value = <>::Balance as TryFrom>::try_from(amount) + .map_err(|_| ())?; + + let _ = DOT::deposit_creating(&who, value); + Ok(()) + }, + // Deposit ETH + MultiLocation::X2( + Junction::PalletInstance { id: 0 }, + Junction::GeneralIndex { id: 0 }, + ) => { + let value: U256 = amount.into(); + BridgedAssets::deposit(AssetId::ETH, &who, value).map_err(|_| XcmError::Undefined)?; + Ok(()) + }, + // Deposit ERC20 + MultiLocation::X3( + Junction::PalletInstance { id: 0 }, + Junction::GeneralIndex { id: 1 }, + Junction::GeneralKey(key) + ) => { + let value: U256 = amount.into(); + let key_fixed: [u8; 20] = key.clone().try_into().map_err(|_| XcmError::Undefined)?; + BridgedAssets::deposit(AssetId::Token(key_fixed.into()), &who, value).map_err(|_| XcmError::Undefined)?; + Ok(()) + }, + _ => { + Err(XcmError::Undefined) + } + } + } + + fn withdraw(id: &MultiLocation, who: &AccountId, amount: u128) -> XcmResult { + match id { + // Withdraw DOT + MultiLocation::X1(Junction::Parent) => { + let value = <>::Balance as TryFrom>::try_from(amount) + .map_err(|_| ())?; + + let _ = DOT::withdraw(&who, value, WithdrawReasons::TRANSFER, ExistenceRequirement::KeepAlive) + .map_err(|_| XcmError::Undefined)?; + Ok(()) + }, + // Withdraw ETH + MultiLocation::X2( + Junction::PalletInstance { id: 0 }, + Junction::GeneralIndex { id: 0 }, + ) => { + let value: U256 = amount.into(); + BridgedAssets::withdraw(AssetId::ETH, &who, value).map_err(|_| XcmError::Undefined)?; + Ok(()) + }, + // Deposit ERC20 + MultiLocation::X3( + Junction::PalletInstance { id: 0 }, + Junction::GeneralIndex { id: 1 }, + Junction::GeneralKey(key) + ) => { + let value: U256 = amount.into(); + let key_fixed: [u8; 20] = key.clone().try_into().map_err(|_| XcmError::Undefined)?; + BridgedAssets::withdraw(AssetId::Token(key_fixed.into()), &who, value).map_err(|_| XcmError::Undefined)?; + Ok(()) + }, + _ => { + Err(XcmError::Undefined) + } + } + } + +} + +pub struct TrustedReserveFilter(PhantomData); + +impl> FilterAssetLocation for TrustedReserveFilter { + fn filter_asset_location(asset: &MultiAsset, origin: &MultiLocation) -> bool { + if NativeAsset::filter_asset_location(asset, origin) { + return true; + } + + if let MultiAsset::ConcreteFungible { ref id, .. } = asset { + match id { + MultiLocation::X2( + Junction::PalletInstance { id: 0 }, + Junction::GeneralIndex { id: 0 } + ) => { + return *origin == T::get() + }, + MultiLocation::X3( + Junction::PalletInstance { id: 0 }, + Junction::GeneralIndex { id: 1 }, + Junction::GeneralKey(_) + ) => { + return *origin == T::get() + }, + _ => { + return false + } + } + } + false + } +} diff --git a/parachain/runtime/Cargo.toml b/parachain/runtime/Cargo.toml index 1bc33e847..938456951 100644 --- a/parachain/runtime/Cargo.toml +++ b/parachain/runtime/Cargo.toml @@ -9,26 +9,73 @@ repository = "https://github.com/Snowfork/polkadot-ethereum" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[dependencies] +serde = { version = "1.0.101", optional = true } +codec = { package = "parity-scale-codec", version = "1.3.5", features = ["derive"], default-features = false } +getrandom = { version = "0.2.1", features = ["js"] } +hex-literal = { version = "0.3.1", default-features = false } + +frame-executive = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-offchain = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } +sp-version = { git = "https://github.com/paritytech/substrate.git", branch = "master", default-features = false } + +cumulus-runtime = { git = "https://github.com/paritytech/cumulus.git", branch = "master", default-features = false } +cumulus-parachain-upgrade = { git = "https://github.com/paritytech/cumulus.git", branch = "master", default-features = false } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus.git", branch = "master", default-features = false } +cumulus-message-broker = { git = "https://github.com/paritytech/cumulus.git", branch = "master", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "master", default-features = false } + +xcm = { git = "https://github.com/paritytech/polkadot.git", branch = "master", default-features = false } +xcm-executor = { git = "https://github.com/paritytech/polkadot.git", branch = "master", default-features = false } +xcm-builder = { git = "https://github.com/paritytech/polkadot.git", branch = "master", default-features = false } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot.git", branch = "master", default-features = false } +xcm-handler = { git = "https://github.com/paritytech/cumulus.git", branch = "master", default-features = false } + +artemis-core = { path = "../primitives/core", default-features = false } +artemis-token-dealer = { path = "../pallets/token-dealer", default-features = false } +artemis-xcm-support = { path = "../primitives/xcm-support", default-features = false } +bridge = { path = "../pallets/bridge", package = "pallet-bridge", default-features = false } +verifier-lightclient = { path = "../pallets/verifier-lightclient", package = "pallet-verifier-lightclient", default-features = false } +assets = { path = "../pallets/assets", package = "artemis-assets", default-features = false } +eth-app = { path = "../pallets/eth-app", package = "artemis-eth-app", default-features = false } +erc20-app = { path = "../pallets/erc20-app", package = "artemis-erc20-app", default-features = false } +commitments = { path = "../pallets/commitments", package = "artemis-commitments", default-features = false } + +[build-dependencies] +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate.git", branch = "master", version = "3.0.0" } + [features] default = ["std"] std = [ + "serde", "codec/std", "frame-executive/std", "frame-support/std", "frame-system/std", "frame-system-rpc-runtime-api/std", - "pallet-aura/std", "pallet-balances/std", - "pallet-grandpa/std", "pallet-randomness-collective-flip/std", - "pallet-sudo/std", "pallet-timestamp/std", "pallet-transaction-payment/std", "pallet-transaction-payment-rpc-runtime-api/std", - "serde", "sp-api/std", "sp-block-builder/std", - "sp-consensus-aura/std", "sp-core/std", "sp-inherents/std", "sp-offchain/std", @@ -37,214 +84,22 @@ std = [ "sp-std/std", "sp-transaction-pool/std", "sp-version/std", + "cumulus-runtime/std", + "cumulus-parachain-upgrade/std", + "cumulus-primitives/std", + "cumulus-message-broker/std", + "parachain-info/std", + "xcm/std", + "xcm-executor/std", + "xcm-builder/std", + "xcm-handler/std", + "polkadot-parachain/std", "bridge/std", - "verifier/std", "verifier-lightclient/std", "assets/std", "eth-app/std", "erc20-app/std", + "commitments/std", + "artemis-token-dealer/std", + "artemis-xcm-support/std" ] - -[dependencies.codec] -default-features = false -features = ["derive"] -package = "parity-scale-codec" -version = "1.3.4" - -[dependencies.frame-executive] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.frame-support] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.frame-system] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.frame-system-rpc-runtime-api] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.pallet-aura] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.pallet-balances] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.pallet-grandpa] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.pallet-randomness-collective-flip] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.pallet-sudo] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.pallet-timestamp] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.pallet-transaction-payment] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.pallet-transaction-payment-rpc-runtime-api] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.serde] -features = ["derive"] -optional = true -version = "1.0.101" - -[dependencies.sp-api] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-block-builder] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-consensus-aura] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "0.8.0-rc6" - -[dependencies.sp-core] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-inherents] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-offchain] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-runtime] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-session] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-std] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-transaction-pool] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[dependencies.sp-version] -default-features = false -git = "https://github.com/paritytech/substrate.git" -tag = "v2.0.0-rc6" -version = "2.0.0-rc6" - -[build-dependencies.wasm-builder-runner] -git = "https://github.com/paritytech/substrate.git" -package = "substrate-wasm-builder-runner" -tag = "v2.0.0-rc6" -version = "1.0.5" - -# Our Pallets - -[dependencies.artemis-core] -default-features = false -package = "artemis-core" -path = "../primitives/core" -version = "0.1.1" - -[dependencies.bridge] -default-features = false -package = "pallet-bridge" -path = "../pallets/bridge" -version = "0.1.1" - -[dependencies.verifier] -default-features = false -package = "pallet-verifier" -path = "../pallets/verifier" -version = "0.1.1" - -[dependencies.verifier-lightclient] -default-features = false -package = "pallet-verifier-lightclient" -path = "../pallets/verifier-lightclient" -version = "0.1.1" - -[dependencies.assets] -default-features = false -package = "artemis-assets" -path = "../pallets/assets" -version = "0.1.1" - -[dependencies.eth-app] -default-features = false -package = "artemis-eth-app" -path = "../pallets/eth-app" -version = "0.1.1" - -[dependencies.erc20-app] -default-features = false -package = "artemis-erc20-app" -path = "../pallets/erc20-app" -version = "0.1.1" - -[dependencies.commitments] -default-features = false -package = "artemis-commitments" -path = "../pallets/commitments" diff --git a/parachain/runtime/build.rs b/parachain/runtime/build.rs index 52705043a..9b53d2457 100644 --- a/parachain/runtime/build.rs +++ b/parachain/runtime/build.rs @@ -1,9 +1,8 @@ -use wasm_builder_runner::WasmBuilder; +use substrate_wasm_builder::WasmBuilder; fn main() { WasmBuilder::new() .with_current_project() - .with_wasm_builder_from_crates("2.0.0") .export_heap_base() .import_memory() .build() diff --git a/parachain/runtime/src/lib.rs b/parachain/runtime/src/lib.rs index 4757dc95d..a8b7a237d 100644 --- a/parachain/runtime/src/lib.rs +++ b/parachain/runtime/src/lib.rs @@ -13,12 +13,9 @@ use sp_runtime::{ transaction_validity::{TransactionValidity, TransactionSource}, }; use sp_runtime::traits::{ - BlakeTwo256, Block as BlockT, IdentityLookup, Verify, IdentifyAccount, NumberFor, Saturating, + BlakeTwo256, Convert, Block as BlockT, AccountIdLookup, Verify, IdentifyAccount, }; use sp_api::impl_runtime_apis; -use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use pallet_grandpa::{AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList}; -use pallet_grandpa::fg_primitives; use sp_std::prelude::*; @@ -40,10 +37,21 @@ pub use frame_support::{ constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, }, }; +use pallet_transaction_payment::CurrencyAdapter; pub use artemis_core::AssetId; pub use verifier_lightclient::EthereumHeader; +use polkadot_parachain::primitives::Sibling; +use xcm::v0::{Junction, MultiLocation, NetworkId}; +use xcm_builder::{ + AccountId32Aliases, LocationInverter, ParentIsDefault, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SovereignSignedViaLocation, +}; +use xcm_executor::{Config, XcmExecutor}; +use cumulus_primitives::relay_chain::Balance as RelayChainBalance; + +use artemis_xcm_support::{Transactor, TrustedReserveFilter}; /// An index to a block. pub type BlockNumber = u32; @@ -88,10 +96,7 @@ pub mod opaque { pub type BlockId = generic::BlockId; impl_opaque_keys! { - pub struct SessionKeys { - pub aura: Aura, - pub grandpa: Grandpa, - } + pub struct SessionKeys {} } } @@ -110,7 +115,7 @@ pub const MILLISECS_PER_BLOCK: u64 = 6000; pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; -// These time units are defined in number of blocks. +// Time is measured by number of blocks. pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); pub const HOURS: BlockNumber = MINUTES * 60; pub const DAYS: BlockNumber = HOURS * 24; @@ -124,27 +129,34 @@ pub fn native_version() -> NativeVersion { } } +const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); + parameter_types! { + pub const Version: RuntimeVersion = VERSION; pub const BlockHashCount: BlockNumber = 2400; /// We allow for 2 seconds of compute with a 6 second average block time. - pub const MaximumBlockWeight: Weight = 2 * WEIGHT_PER_SECOND; - pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); - /// Assume 10% of weight for average on_initialize calls. - pub MaximumExtrinsicWeight: Weight = AvailableBlockRatio::get() - .saturating_sub(Perbill::from_percent(10)) * MaximumBlockWeight::get(); - pub const MaximumBlockLength: u32 = 5 * 1024 * 1024; - pub const Version: RuntimeVersion = VERSION; + pub BlockWeights: frame_system::limits::BlockWeights = frame_system::limits::BlockWeights + ::with_sensible_defaults(2 * WEIGHT_PER_SECOND, NORMAL_DISPATCH_RATIO); + pub BlockLength: frame_system::limits::BlockLength = frame_system::limits::BlockLength + ::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + pub const SS58Prefix: u8 = 42; } -impl frame_system::Trait for Runtime { +// Configure FRAME pallets to include in runtime. + +impl frame_system::Config for Runtime { /// The basic call filter to use in dispatchable. type BaseCallFilter = (); + /// Block & extrinsics weights: base values and limits. + type BlockWeights = BlockWeights; + /// The maximum length of a block (in bytes). + type BlockLength = BlockLength; /// 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; + type Lookup = AccountIdLookup; /// The index type for storing how many extrinsics an account has signed. type Index = Index; /// The index type for blocks. @@ -161,30 +173,14 @@ impl frame_system::Trait for Runtime { 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. - type MaximumBlockWeight = MaximumBlockWeight; /// The weight of database operations that the runtime can invoke. type DbWeight = RocksDbWeight; - /// The weight of the overhead invoked on the block import process, independent of the - /// extrinsics included in that block. - type BlockExecutionWeight = BlockExecutionWeight; - /// The base weight of any extrinsic processed by the runtime, independent of the - /// logic of that extrinsic. (Signature verification, nonce increment, fee, etc...) - type ExtrinsicBaseWeight = ExtrinsicBaseWeight; - /// The maximum weight that a single extrinsic of `Normal` dispatch class can have, - /// idependent of the logic of that extrinsics. (Roughly max block weight - average on - /// initialize cost). - type MaximumExtrinsicWeight = MaximumExtrinsicWeight; - /// 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; /// Version of the runtime. type Version = Version; /// Converts a module to the index of the module in `construct_runtime!`. /// /// This type is being generated by `construct_runtime!`. - type ModuleToIndex = ModuleToIndex; + type PalletInfo = PalletInfo; /// What to do if a new account is created. type OnNewAccount = (); /// What to do if an account is fully reaped from the system. @@ -193,46 +189,29 @@ impl frame_system::Trait for Runtime { type AccountData = pallet_balances::AccountData; /// Weight information for the extrinsics of this pallet. type SystemWeightInfo = (); -} - -impl pallet_aura::Trait for Runtime { - type AuthorityId = AuraId; -} - -impl pallet_grandpa::Trait for Runtime { - type Event = Event; - type Call = Call; - - type KeyOwnerProofSystem = (); - - type KeyOwnerProof = - >::Proof; - - type KeyOwnerIdentification = >::IdentificationTuple; - - type HandleEquivocation = (); + /// This is used as an identifier of the chain. 42 is the generic substrate prefix. + type SS58Prefix = SS58Prefix; } parameter_types! { pub const MinimumPeriod: u64 = SLOT_DURATION / 2; } -impl pallet_timestamp::Trait for Runtime { +impl pallet_timestamp::Config for Runtime { /// A timestamp: milliseconds since the unix epoch. type Moment = u64; - type OnTimestampSet = Aura; + type OnTimestampSet = (); type MinimumPeriod = MinimumPeriod; type WeightInfo = (); } parameter_types! { pub const ExistentialDeposit: u128 = 500; + pub const MaxLocks: u32 = 50; } -impl pallet_balances::Trait for Runtime { +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; /// The type for recording an account's balance. type Balance = Balance; /// The ubiquitous event type. @@ -240,40 +219,131 @@ impl pallet_balances::Trait for Runtime { type DustRemoval = (); type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; - type WeightInfo = (); + type WeightInfo = pallet_balances::weights::SubstrateWeight; } parameter_types! { pub const TransactionByteFee: Balance = 1; } -impl pallet_transaction_payment::Trait for Runtime { - type Currency = Balances; - type OnTransactionPayment = (); +impl pallet_transaction_payment::Config for Runtime { + type OnChargeTransaction = CurrencyAdapter; type TransactionByteFee = TransactionByteFee; type WeightToFee = IdentityFee; type FeeMultiplierUpdate = (); } +// Cumulus and XCMP + +impl cumulus_parachain_upgrade::Config for Runtime { + type Event = Event; + type OnValidationData = (); +} + +impl cumulus_message_broker::Config for Runtime { + type DownwardMessageHandlers = (); + type HrmpMessageHandlers = (); +} + +impl parachain_info::Config for Runtime {} + +pub struct RelayToNative; +impl Convert for RelayToNative { + fn convert(val: u128) -> Balance { + val + } +} + +pub struct NativeToRelay; +impl Convert for NativeToRelay { + fn convert(val: u128) -> Balance { + val + } +} + +parameter_types! { + pub const PolkadotNetworkId: NetworkId = NetworkId::Polkadot; +} + +pub struct AccountId32Converter; +impl Convert for AccountId32Converter { + fn convert(account_id: AccountId) -> [u8; 32] { + account_id.into() + } +} + +impl artemis_token_dealer::Config for Runtime { + type Event = Event; + type Balance = Balance; + type ToRelayChainBalance = NativeToRelay; + type AccountIdConverter = LocationConverter; + type AccountId32Converter = AccountId32Converter; + type RelayChainNetworkId = PolkadotNetworkId; + type ParaId = ParachainInfo; + type XcmExecutor = XcmExecutor; +} + +parameter_types! { + pub DotNetwork: NetworkId = NetworkId::Polkadot; + pub RelayChainOrigin: Origin = xcm_handler::Origin::Relay.into(); + pub Ancestry: MultiLocation = MultiLocation::X1(Junction::Parachain { + id: ParachainInfo::parachain_id().into(), + }); +} + +pub type LocationConverter = ( + ParentIsDefault, + SiblingParachainConvertsVia, + AccountId32Aliases, +); + +pub type LocalAssetTransactor = Transactor; + +pub type LocalOriginConverter = ( + SovereignSignedViaLocation, + RelayChainAsNative, + SiblingParachainAsNative, + SignedAccountId32AsNative, +); + + +parameter_types! { + pub ReserveAssetLocation: MultiLocation = MultiLocation::X2(Junction::Parent, Junction::Parachain { id: 1000 }); +} + +pub struct XcmConfig; +impl Config for XcmConfig { + type Call = Call; + type XcmSender = LocalXcmHandler; + type AssetTransactor = LocalAssetTransactor; + type OriginConverter = LocalOriginConverter; + type IsReserve = TrustedReserveFilter; + type IsTeleporter = (); + type LocationInverter = LocationInverter; +} + +impl xcm_handler::Config for Runtime { + type Event = Event; + type XcmExecutor = XcmExecutor; + type UpwardMessageSender = MessageBroker; + type HrmpMessageSender = MessageBroker; +} + // Our pallets -impl bridge::Trait for Runtime { +impl bridge::Config for Runtime { type Event = Event; type Verifier = verifier_lightclient::Module; type AppETH = eth_app::Module; type AppERC20 = erc20_app::Module; } -impl verifier::Trait for Runtime { - type Event = Event; -} - parameter_types! { pub const DescendantsUntilFinalized: u8 = 35; pub const VerifyPoW: bool = true; } -impl verifier_lightclient::Trait for Runtime { +impl verifier_lightclient::Config for Runtime { type Event = Event; type DescendantsUntilFinalized = DescendantsUntilFinalized; type VerifyPoW = VerifyPoW; @@ -283,15 +353,13 @@ parameter_types! { pub const CommitInterval: BlockNumber = 20; } -impl commitments::Trait for Runtime { +impl commitments::Config for Runtime { type Event = Event; type CommitInterval = CommitInterval; } - - -impl assets::Trait for Runtime { +impl assets::Config for Runtime { type Event = Event; } @@ -299,13 +367,13 @@ parameter_types! { pub const EthAssetId: AssetId = AssetId::ETH; } -impl eth_app::Trait for Runtime { +impl eth_app::Config for Runtime { type Event = Event; type Asset = assets::SingleAssetAdaptor; type Commitments = commitments::Module; } -impl erc20_app::Trait for Runtime { +impl erc20_app::Config for Runtime { type Event = Event; type Assets = assets::Module; type Commitments = commitments::Module; @@ -318,24 +386,29 @@ construct_runtime!( UncheckedExtrinsic = UncheckedExtrinsic { System: frame_system::{Module, Call, Config, Storage, Event}, - RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage}, Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent}, - Aura: pallet_aura::{Module, Config, Inherent}, - Grandpa: pallet_grandpa::{Module, Call, Storage, Config, Event}, Balances: pallet_balances::{Module, Call, Storage, Config, Event}, TransactionPayment: pallet_transaction_payment::{Module, Storage}, + RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage}, + + ParachainInfo: parachain_info::{Module, Storage, Config}, + ParachainUpgrade: cumulus_parachain_upgrade::{Module, Call, Storage, Inherent, Event}, + MessageBroker: cumulus_message_broker::{Module, Call, Inherent}, + Bridge: bridge::{Module, Call, Storage, Event}, Commitments: commitments::{Module, Call, Storage, Event}, - Verifier: verifier::{Module, Call, Storage, Event, Config}, VerifierLightclient: verifier_lightclient::{Module, Call, Storage, Event, Config}, Assets: assets::{Module, Call, Storage, Event}, ETH: eth_app::{Module, Call, Config, Storage, Event}, ERC20: erc20_app::{Module, Call, Config, Storage, Event}, + + LocalXcmHandler: xcm_handler::{Module, Event, Origin}, + TokenDealer: artemis_token_dealer::{Module, Storage, Call, Event}, } ); /// The address format for describing accounts. -pub type Address = AccountId; +pub type Address = sp_runtime::MultiAddress; /// Block header type as expected by this runtime. pub type Header = generic::Header; /// Block type as expected by this runtime. @@ -359,7 +432,13 @@ pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; /// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive, Runtime, AllModules>; +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllModules, +>; impl_runtime_apis! { impl sp_api::Core for Runtime { @@ -422,16 +501,6 @@ impl_runtime_apis! { } } - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> u64 { - Aura::slot_duration() - } - - fn authorities() -> Vec { - Aura::authorities() - } - } - impl sp_session::SessionKeys for Runtime { fn generate_session_keys(seed: Option>) -> Vec { opaque::SessionKeys::generate(seed) @@ -444,32 +513,6 @@ impl_runtime_apis! { } } - impl fg_primitives::GrandpaApi for Runtime { - fn grandpa_authorities() -> GrandpaAuthorityList { - Grandpa::grandpa_authorities() - } - - fn submit_report_equivocation_unsigned_extrinsic( - _equivocation_proof: fg_primitives::EquivocationProof< - ::Hash, - NumberFor, - >, - _key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof, - ) -> Option<()> { - None - } - - fn generate_key_ownership_proof( - _set_id: fg_primitives::SetId, - _authority_id: GrandpaId, - ) -> Option { - // NOTE: this is the only implementation possible since we've - // defined our key owner proof type as a bottom type (i.e. a type - // with no values). - None - } - } - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { fn account_nonce(account: AccountId) -> Index { System::account_nonce(account) @@ -486,3 +529,5 @@ impl_runtime_apis! { } } + +cumulus_runtime::register_validate_block!(Block, Executive); diff --git a/parachain/rust-toolchain b/parachain/rust-toolchain new file mode 100644 index 000000000..c9a18e464 --- /dev/null +++ b/parachain/rust-toolchain @@ -0,0 +1,3 @@ +[toolchain] +channel = "nightly-2021-01-10" +targets = [ "wasm32-unknown-unknown"]