From fe91730fe0c8814a97249ee3e1a8f2fa11f84769 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Tue, 15 Feb 2022 18:16:40 -0700 Subject: [PATCH 01/33] * add asset manager * naive test pass --- Cargo.lock | 11932 ---------------- pallets/asset-manager/Cargo.toml | 41 + pallets/asset-manager/src/lib.rs | 290 + runtime/calamari/Cargo.toml | 11 + runtime/calamari/tests/xcm_mock/mod.rs | 115 + runtime/calamari/tests/xcm_mock/parachain.rs | 365 + .../calamari/tests/xcm_mock/relay_chain.rs | 228 + runtime/calamari/tests/xcm_tests.rs | 234 + runtime/primitives/src/lib.rs | 3 + 9 files changed, 1287 insertions(+), 11932 deletions(-) delete mode 100644 Cargo.lock create mode 100644 pallets/asset-manager/Cargo.toml create mode 100644 pallets/asset-manager/src/lib.rs create mode 100644 runtime/calamari/tests/xcm_mock/mod.rs create mode 100644 runtime/calamari/tests/xcm_mock/parachain.rs create mode 100644 runtime/calamari/tests/xcm_mock/relay_chain.rs create mode 100644 runtime/calamari/tests/xcm_tests.rs diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index 3880a6f62..000000000 --- a/Cargo.lock +++ /dev/null @@ -1,11932 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - -[[package]] -name = "addr2line" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aead" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" -dependencies = [ - "generic-array 0.14.5", -] - -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if 1.0.0", - "cipher", - "cpufeatures 0.2.1", - "opaque-debug 0.3.0", -] - -[[package]] -name = "aes-gcm" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", -] - -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom 0.2.4", - "once_cell", - "version_check", -] - -[[package]] -name = "aho-corasick" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" -dependencies = [ - "memchr", -] - -[[package]] -name = "always-assert" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf688625d06217d5b1bb0ea9d9c44a1635fd0ee3534466388d18203174f4d11" - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "anyhow" -version = "1.0.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" - -[[package]] -name = "approx" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" -dependencies = [ - "num-traits", -] - -[[package]] -name = "arrayref" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" - -[[package]] -name = "arrayvec" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" -dependencies = [ - "nodrop", -] - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "arrayvec" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" - -[[package]] -name = "asn1_der" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" - -[[package]] -name = "assert_matches" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" - -[[package]] -name = "async-attributes" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "async-channel" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "async-executor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "once_cell", - "slab", -] - -[[package]] -name = "async-global-executor" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6" -dependencies = [ - "async-channel", - "async-executor", - "async-io", - "async-mutex", - "blocking", - "futures-lite", - "num_cpus", - "once_cell", -] - -[[package]] -name = "async-io" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" -dependencies = [ - "concurrent-queue", - "futures-lite", - "libc", - "log", - "once_cell", - "parking", - "polling", - "slab", - "socket2 0.4.4", - "waker-fn", - "winapi 0.3.9", -] - -[[package]] -name = "async-lock" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b" -dependencies = [ - "event-listener", -] - -[[package]] -name = "async-mutex" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" -dependencies = [ - "event-listener", -] - -[[package]] -name = "async-process" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83137067e3a2a6a06d67168e49e68a0957d215410473a740cea95a2425c0b7c6" -dependencies = [ - "async-io", - "blocking", - "cfg-if 1.0.0", - "event-listener", - "futures-lite", - "libc", - "once_cell", - "signal-hook", - "winapi 0.3.9", -] - -[[package]] -name = "async-std" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952" -dependencies = [ - "async-attributes", - "async-channel", - "async-global-executor", - "async-io", - "async-lock", - "async-process", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "num_cpus", - "once_cell", - "pin-project-lite 0.2.8", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-std-resolver" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf3e776afdf3a2477ef4854b85ba0dff3bd85792f685fb3c68948b4d304e4f0" -dependencies = [ - "async-std", - "async-trait", - "futures-io", - "futures-util", - "pin-utils", - "trust-dns-resolver", -] - -[[package]] -name = "async-task" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d306121baf53310a3fd342d88dc0824f6bbeace68347593658525565abee8" - -[[package]] -name = "async-trait" -version = "0.1.52" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "asynchronous-codec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb4401f0a3622dad2e0763fa79e0eb328bc70fb7dccfdd645341f00d671247d6" -dependencies = [ - "bytes 1.1.0", - "futures-sink", - "futures-util", - "memchr", - "pin-project-lite 0.2.8", -] - -[[package]] -name = "asynchronous-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690" -dependencies = [ - "bytes 1.1.0", - "futures-sink", - "futures-util", - "memchr", - "pin-project-lite 0.2.8", -] - -[[package]] -name = "atomic" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "atomic-waker" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "backtrace" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" -dependencies = [ - "addr2line", - "cc", - "cfg-if 1.0.0", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base-x" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" - -[[package]] -name = "base58" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" - -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - -[[package]] -name = "beef" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bed554bd50246729a1ec158d08aa3235d1b69d94ad120ebe187e28894787e736" -dependencies = [ - "serde", -] - -[[package]] -name = "beefy-gadget" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "beefy-primitives", - "fnv", - "futures 0.3.21", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-chain-spec", - "sc-client-api", - "sc-keystore", - "sc-network", - "sc-network-gossip", - "sc-utils", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", - "wasm-timer", -] - -[[package]] -name = "beefy-gadget-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "beefy-gadget", - "beefy-primitives", - "derive_more", - "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-pubsub", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-rpc", - "sc-utils", - "serde", - "sp-core", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "beefy-merkle-tree" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" - -[[package]] -name = "beefy-primitives" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bimap" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0455254eb5c6964c4545d8bac815e1a1be4f3afe0ae695ea539c12d728d44b" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bindgen" -version = "0.59.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8" -dependencies = [ - "bitflags", - "cexpr", - "clang-sys", - "lazy_static", - "lazycell", - "peeking_take_while", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitvec" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" -dependencies = [ - "crypto-mac 0.8.0", - "digest 0.9.0", - "opaque-debug 0.3.0", -] - -[[package]] -name = "blake2-rfc" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" -dependencies = [ - "arrayvec 0.4.12", - "constant_time_eq", -] - -[[package]] -name = "blake2b_simd" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "constant_time_eq", -] - -[[package]] -name = "blake2s_simd" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "constant_time_eq", -] - -[[package]] -name = "blake3" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "cc", - "cfg-if 0.1.10", - "constant_time_eq", - "crypto-mac 0.8.0", - "digest 0.9.0", -] - -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding 0.1.5", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding 0.2.1", - "generic-array 0.14.5", -] - -[[package]] -name = "block-buffer" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03588e54c62ae6d763e2a80090d50353b785795361b4ff5b3bf0a5097fc31c0b" -dependencies = [ - "generic-array 0.14.5", -] - -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", -] - -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "blocking" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046e47d4b2d391b1f6f8b407b1deb8dee56c1852ccd868becf2710f601b5f427" -dependencies = [ - "async-channel", - "async-task", - "atomic-waker", - "fastrand", - "futures-lite", - "once_cell", -] - -[[package]] -name = "bounded-vec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b47cca82fca99417fe405f09d93bb8fff90bdd03d13c631f18096ee123b4281c" -dependencies = [ - "thiserror", -] - -[[package]] -name = "bp-header-chain" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "finality-grandpa", - "frame-support", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-message-dispatch" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bp-runtime", - "frame-support", - "parity-scale-codec", - "scale-info", - "sp-std", -] - -[[package]] -name = "bp-messages" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bitvec", - "bp-runtime", - "frame-support", - "frame-system", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "serde", - "sp-std", -] - -[[package]] -name = "bp-polkadot-core" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bp-messages", - "bp-runtime", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-core", - "sp-runtime", - "sp-std", - "sp-version", -] - -[[package]] -name = "bp-rococo" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bp-messages", - "bp-polkadot-core", - "bp-runtime", - "frame-support", - "parity-scale-codec", - "smallvec", - "sp-api", - "sp-runtime", - "sp-std", - "sp-version", -] - -[[package]] -name = "bp-runtime" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "frame-support", - "hash-db", - "num-traits", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", -] - -[[package]] -name = "bp-test-utils" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bp-header-chain", - "ed25519-dalek", - "finality-grandpa", - "parity-scale-codec", - "sp-application-crypto", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-wococo" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bp-messages", - "bp-polkadot-core", - "bp-rococo", - "bp-runtime", - "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bridge-runtime-common" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bp-message-dispatch", - "bp-messages", - "bp-runtime", - "frame-support", - "hash-db", - "pallet-bridge-dispatch", - "pallet-bridge-grandpa", - "pallet-bridge-messages", - "pallet-transaction-payment", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", -] - -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" - -[[package]] -name = "bstr" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" -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.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" - -[[package]] -name = "byte-slice-cast" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d30c751592b77c499e7bce34d99d67c2c11bdc0574e9a488ddade14150a4698" - -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] - -[[package]] -name = "bytes" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" - -[[package]] -name = "cache-padded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" - -[[package]] -name = "calamari-runtime" -version = "3.1.4" -dependencies = [ - "calamari-vesting", - "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-timestamp", - "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "manta-collator-selection", - "manta-primitives", - "pallet-aura", - "pallet-authorship", - "pallet-balances", - "pallet-collective", - "pallet-democracy", - "pallet-membership", - "pallet-multisig", - "pallet-preimage", - "pallet-scheduler", - "pallet-session", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury", - "pallet-tx-pause", - "pallet-utility", - "pallet-xcm", - "parachain-info", - "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-runtime-common", - "reqwest", - "scale-info", - "serde", - "serde_json", - "smallvec", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", -] - -[[package]] -name = "calamari-vesting" -version = "3.1.4" -dependencies = [ - "chrono", - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-balances", - "pallet-timestamp", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "camino" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-platform" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ae6de944143141f6155a473a6b02f66c7c3f9f47316f802f80204ebfe6e12" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.5", - "serde", - "serde_json", -] - -[[package]] -name = "cc" -version = "1.0.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" -dependencies = [ - "jobserver", -] - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-if" -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 = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - -[[package]] -name = "chacha20" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee7ad89dc1128635074c268ee661f90c3f7e83d9fd12910608c36b47d6c3412" -dependencies = [ - "cfg-if 1.0.0", - "cipher", - "cpufeatures 0.1.5", - "zeroize", -] - -[[package]] -name = "chacha20poly1305" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580317203210c517b6d44794abfbe600698276db18127e37ad3e69bf5e848e5" -dependencies = [ - "aead", - "chacha20", - "cipher", - "poly1305", - "zeroize", -] - -[[package]] -name = "chrono" -version = "0.4.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" -dependencies = [ - "libc", - "num-integer", - "num-traits", - "time", - "winapi 0.3.9", -] - -[[package]] -name = "cid" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff0e3bc0b6446b3f9663c1a6aba6ef06c5aeaa1bc92bd18077be337198ab9768" -dependencies = [ - "multibase", - "multihash 0.13.2", - "unsigned-varint 0.5.1", -] - -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array 0.14.5", -] - -[[package]] -name = "ckb-merkle-mountain-range" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f061f97d64fd1822664bdfb722f7ae5469a97b77567390f7442be5b5dc82a5b" -dependencies = [ - "cfg-if 0.1.10", -] - -[[package]] -name = "clang-sys" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cc00842eed744b858222c4c9faf7243aafc6d33f92f96935263ef4d8a41ce21" -dependencies = [ - "glob", - "libc", - "libloading 0.7.3", -] - -[[package]] -name = "clap" -version = "2.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" -dependencies = [ - "ansi_term", - "atty", - "bitflags", - "strsim", - "textwrap", - "unicode-width", - "vec_map", -] - -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags", -] - -[[package]] -name = "concurrent-queue" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" -dependencies = [ - "cache-padded", -] - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "cpp_demangle" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "cpufeatures" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef" -dependencies = [ - "libc", -] - -[[package]] -name = "cpufeatures" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" -dependencies = [ - "libc", -] - -[[package]] -name = "cranelift-bforest" -version = "0.80.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9516ba6b2ba47b4cbf63b713f75b432fafa0a0e0464ec8381ec76e6efe931ab3" -dependencies = [ - "cranelift-entity", -] - -[[package]] -name = "cranelift-codegen" -version = "0.80.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489e5d0081f7edff6be12d71282a8bf387b5df64d5592454b75d662397f2d642" -dependencies = [ - "cranelift-bforest", - "cranelift-codegen-meta", - "cranelift-codegen-shared", - "cranelift-entity", - "gimli", - "log", - "regalloc", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-codegen-meta" -version = "0.80.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d36ee1140371bb0f69100e734b30400157a4adf7b86148dee8b0a438763ead48" -dependencies = [ - "cranelift-codegen-shared", -] - -[[package]] -name = "cranelift-codegen-shared" -version = "0.80.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "981da52d8f746af1feb96290c83977ff8d41071a7499e991d8abae0d4869f564" - -[[package]] -name = "cranelift-entity" -version = "0.80.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2906740053dd3bcf95ce53df0fd9b5649c68ae4bd9adada92b406f059eae461" -dependencies = [ - "serde", -] - -[[package]] -name = "cranelift-frontend" -version = "0.80.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cb156de1097f567d46bf57a0cd720a72c3e15e1a2bd8b1041ba2fc894471b7" -dependencies = [ - "cranelift-codegen", - "log", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-native" -version = "0.80.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "166028ca0343a6ee7bddac0e70084e142b23f99c701bd6f6ea9123afac1a7a46" -dependencies = [ - "cranelift-codegen", - "libc", - "target-lexicon", -] - -[[package]] -name = "cranelift-wasm" -version = "0.80.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5012a1cde0c8b3898770b711490d803018ae9bec2d60674ba0e5b2058a874f80" -dependencies = [ - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "itertools", - "log", - "smallvec", - "wasmparser", - "wasmtime-types", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils", - "lazy_static", - "memoffset", - "scopeguard", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" -dependencies = [ - "cfg-if 1.0.0", - "lazy_static", -] - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-common" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d6b536309245c849479fba3da410962a43ed8e51c26b729208ec0ac2798d0" -dependencies = [ - "generic-array 0.14.5", -] - -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array 0.14.5", - "subtle", -] - -[[package]] -name = "crypto-mac" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" -dependencies = [ - "generic-array 0.14.5", - "subtle", -] - -[[package]] -name = "ct-logs" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" -dependencies = [ - "sct", -] - -[[package]] -name = "ctor" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "ctr" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" -dependencies = [ - "cipher", -] - -[[package]] -name = "cuckoofilter" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18" -dependencies = [ - "byteorder", - "fnv", - "rand 0.7.3", -] - -[[package]] -name = "cumulus-client-cli" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "sc-cli", - "sc-service", - "structopt", -] - -[[package]] -name = "cumulus-client-collator" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "cumulus-client-consensus-common", - "cumulus-client-network", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures 0.3.21", - "parity-scale-codec", - "parking_lot 0.10.2", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", - "sc-client-api", - "sp-api", - "sp-consensus", - "sp-core", - "sp-runtime", - "tracing", -] - -[[package]] -name = "cumulus-client-consensus-aura" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "async-trait", - "cumulus-client-consensus-common", - "cumulus-primitives-core", - "futures 0.3.21", - "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sc-consensus-aura", - "sc-consensus-slots", - "sc-telemetry", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", - "tracing", -] - -[[package]] -name = "cumulus-client-consensus-common" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "async-trait", - "cumulus-relay-chain-interface", - "dyn-clone", - "futures 0.3.21", - "parity-scale-codec", - "polkadot-primitives", - "sc-client-api", - "sc-consensus", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-runtime", - "sp-trie", - "tracing", -] - -[[package]] -name = "cumulus-client-consensus-relay-chain" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "async-trait", - "cumulus-client-consensus-common", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures 0.3.21", - "parking_lot 0.10.2", - "sc-client-api", - "sc-consensus", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-inherents", - "sp-runtime", - "substrate-prometheus-endpoint", - "tracing", -] - -[[package]] -name = "cumulus-client-network" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "async-trait", - "cumulus-relay-chain-interface", - "derive_more", - "futures 0.3.21", - "futures-timer", - "parity-scale-codec", - "parking_lot 0.11.2", - "polkadot-node-primitives", - "polkadot-parachain", - "polkadot-primitives", - "sc-client-api", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", - "tracing", -] - -[[package]] -name = "cumulus-client-pov-recovery" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures 0.3.21", - "futures-timer", - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", - "rand 0.8.4", - "sc-client-api", - "sc-consensus", - "sp-api", - "sp-consensus", - "sp-maybe-compressed-blob", - "sp-runtime", - "tracing", -] - -[[package]] -name = "cumulus-client-service" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "cumulus-client-collator", - "cumulus-client-consensus-common", - "cumulus-client-pov-recovery", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "parity-scale-codec", - "parking_lot 0.10.2", - "polkadot-overseer", - "polkadot-primitives", - "sc-chain-spec", - "sc-client-api", - "sc-consensus", - "sc-consensus-babe", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "tracing", -] - -[[package]] -name = "cumulus-pallet-aura-ext" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "frame-executive", - "frame-support", - "frame-system", - "pallet-aura", - "parity-scale-codec", - "scale-info", - "serde", - "sp-application-crypto", - "sp-consensus-aura", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "cumulus-pallet-dmp-queue" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", - "xcm", - "xcm-executor", -] - -[[package]] -name = "cumulus-pallet-parachain-system" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "cumulus-pallet-parachain-system-proc-macro", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "environmental", - "frame-support", - "frame-system", - "impl-trait-for-tuples", - "log", - "pallet-balances", - "parity-scale-codec", - "polkadot-parachain", - "scale-info", - "serde", - "sp-core", - "sp-externalities", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", - "sp-version", - "xcm", -] - -[[package]] -name = "cumulus-pallet-parachain-system-proc-macro" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "cumulus-pallet-session-benchmarking" -version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-session", - "parity-scale-codec", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "cumulus-pallet-xcm" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "serde", - "sp-io", - "sp-runtime", - "sp-std", - "xcm", -] - -[[package]] -name = "cumulus-pallet-xcmp-queue" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "rand_chacha 0.3.1", - "scale-info", - "sp-runtime", - "sp-std", - "xcm", - "xcm-executor", -] - -[[package]] -name = "cumulus-primitives-core" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "frame-support", - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain", - "polkadot-primitives", - "sp-api", - "sp-runtime", - "sp-std", - "sp-trie", -] - -[[package]] -name = "cumulus-primitives-parachain-inherent" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "cumulus-test-relay-sproof-builder", - "parity-scale-codec", - "sc-client-api", - "scale-info", - "sp-api", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-storage", - "sp-trie", - "tracing", -] - -[[package]] -name = "cumulus-primitives-timestamp" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "cumulus-primitives-core", - "sp-inherents", - "sp-std", - "sp-timestamp", -] - -[[package]] -name = "cumulus-primitives-utility" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain", - "polkadot-primitives", - "sp-runtime", - "sp-std", - "sp-trie", - "xcm", -] - -[[package]] -name = "cumulus-relay-chain-interface" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "async-trait", - "cumulus-primitives-core", - "derive_more", - "futures 0.3.21", - "parking_lot 0.11.2", - "polkadot-overseer", - "sc-client-api", - "sc-service", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-runtime", - "sp-state-machine", - "thiserror", -] - -[[package]] -name = "cumulus-relay-chain-local" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures 0.3.21", - "futures-timer", - "parking_lot 0.11.2", - "polkadot-client", - "polkadot-service", - "sc-client-api", - "sc-consensus-babe", - "sc-network", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", - "tracing", -] - -[[package]] -name = "cumulus-test-relay-sproof-builder" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "cumulus-primitives-core", - "parity-scale-codec", - "polkadot-primitives", - "sp-runtime", - "sp-state-machine", - "sp-std", -] - -[[package]] -name = "curve25519-dalek" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" -dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle", - "zeroize", -] - -[[package]] -name = "data-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" - -[[package]] -name = "data-encoding-macro" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" -dependencies = [ - "data-encoding", - "data-encoding-macro-internal", -] - -[[package]] -name = "data-encoding-macro-internal" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" -dependencies = [ - "data-encoding", - "syn", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn", -] - -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.5", -] - -[[package]] -name = "digest" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b697d66081d42af4fba142d56918a3cb21dc8eb63372c6b85d14f44fb9c5979b" -dependencies = [ - "block-buffer 0.10.1", - "crypto-common", - "generic-array 0.14.5", -] - -[[package]] -name = "directories" -version = "4.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "directories-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" -dependencies = [ - "cfg-if 1.0.0", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780" -dependencies = [ - "libc", - "redox_users", - "winapi 0.3.9", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi 0.3.9", -] - -[[package]] -name = "dns-parser" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" -dependencies = [ - "byteorder", - "quick-error 1.2.3", -] - -[[package]] -name = "dolphin-runtime" -version = "3.1.4" -dependencies = [ - "calamari-vesting", - "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-timestamp", - "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "manta-collator-selection", - "manta-primitives", - "pallet-aura", - "pallet-authorship", - "pallet-balances", - "pallet-collective", - "pallet-democracy", - "pallet-membership", - "pallet-multisig", - "pallet-preimage", - "pallet-scheduler", - "pallet-session", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury", - "pallet-tx-pause", - "pallet-utility", - "pallet-xcm", - "parachain-info", - "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-runtime-common", - "scale-info", - "serde", - "smallvec", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", -] - -[[package]] -name = "downcast-rs" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" - -[[package]] -name = "dtoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" - -[[package]] -name = "dyn-clonable" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" -dependencies = [ - "dyn-clonable-impl", - "dyn-clone", -] - -[[package]] -name = "dyn-clonable-impl" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "dyn-clone" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" - -[[package]] -name = "ed25519" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74e1069e39f1454367eb2de793ed062fac4c35c2934b76a81d90dd9abcd28816" -dependencies = [ - "signature", -] - -[[package]] -name = "ed25519-dalek" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" -dependencies = [ - "curve25519-dalek 3.2.0", - "ed25519", - "rand 0.7.3", - "serde", - "sha2 0.9.9", - "zeroize", -] - -[[package]] -name = "either" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" - -[[package]] -name = "encoding_rs" -version = "0.8.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dc8abb250ffdda33912550faa54c88ec8b998dec0b2c55ab224921ce11df" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "enum-as-inner" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[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", - "quote", - "syn", -] - -[[package]] -name = "enumn" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e58b112d5099aa0857c5d05f0eacab86406dd8c0f85fe5d320a13256d29ecf4" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "env_logger" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "environmental" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b91989ae21441195d7d9b9993a2f9295c7e1a8c96255d8b729accddc124797" - -[[package]] -name = "errno" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "ethbloom" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb684ac8fa8f6c5759f788862bb22ec6fe3cb392f6bfd08e3c64b603661e3f8" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-rlp", - "impl-serde", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05136f7057fe789f06e6d41d07b34e6f70d8c86e5693b60f97aaa6553553bdaf" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-rlp", - "impl-serde", - "primitive-types", - "uint", -] - -[[package]] -name = "event-listener" -version = "2.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" - -[[package]] -name = "exit-future" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" -dependencies = [ - "futures 0.3.21", -] - -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - -[[package]] -name = "fastrand" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" -dependencies = [ - "instant", -] - -[[package]] -name = "fdlimit" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" -dependencies = [ - "libc", -] - -[[package]] -name = "file-per-thread-logger" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f" -dependencies = [ - "env_logger", - "log", -] - -[[package]] -name = "finality-grandpa" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5a" -dependencies = [ - "either", - "futures 0.3.21", - "futures-timer", - "log", - "num-traits", - "parity-scale-codec", - "parking_lot 0.11.2", - "scale-info", -] - -[[package]] -name = "fixed-hash" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" -dependencies = [ - "byteorder", - "rand 0.8.4", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fixedbitset" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e" - -[[package]] -name = "flate2" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" -dependencies = [ - "cfg-if 1.0.0", - "crc32fast", - "libc", - "libz-sys", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "fork-tree" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "form_urlencoded" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" -dependencies = [ - "matches", - "percent-encoding 2.1.0", -] - -[[package]] -name = "frame-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "linregress", - "log", - "parity-scale-codec", - "paste", - "scale-info", - "sp-api", - "sp-application-crypto", - "sp-io", - "sp-runtime", - "sp-runtime-interface", - "sp-std", - "sp-storage", -] - -[[package]] -name = "frame-benchmarking-cli" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "Inflector", - "chrono", - "frame-benchmarking", - "frame-support", - "handlebars", - "linked-hash-map", - "log", - "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-election-provider-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", - "sp-npos-elections", - "sp-std", -] - -[[package]] -name = "frame-executive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-tracing", -] - -[[package]] -name = "frame-metadata" -version = "14.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ed5e5c346de62ca5c184b4325a6600d1eaca210666e4606fe4e449574978d0" -dependencies = [ - "cfg-if 1.0.0", - "parity-scale-codec", - "scale-info", - "serde", -] - -[[package]] -name = "frame-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "bitflags", - "frame-metadata", - "frame-support-procedural", - "impl-trait-for-tuples", - "log", - "once_cell", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic", - "sp-core", - "sp-core-hashing-proc-macro", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-state-machine", - "sp-std", - "sp-tracing", - "tt-call", -] - -[[package]] -name = "frame-support-procedural" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "Inflector", - "frame-support-procedural-tools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "frame-support-procedural-tools" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support-procedural-tools-derive", - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "frame-support-procedural-tools-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "frame-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-version", -] - -[[package]] -name = "frame-system-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "frame-system-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "sp-api", -] - -[[package]] -name = "frame-try-runtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "sp-api", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "fs-err" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ebd3504ad6116843b8375ad70df74e7bfe83cac77a1f3fe73200c844d43bfe0" - -[[package]] -name = "fs-swap" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03d47dad3685eceed8488986cad3d5027165ea5edb164331770e2059555f10a5" -dependencies = [ - "lazy_static", - "libc", - "libloading 0.5.2", - "winapi 0.3.9", -] - -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - -[[package]] -name = "funty" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" - -[[package]] -name = "futures" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" - -[[package]] -name = "futures" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" - -[[package]] -name = "futures-executor" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", - "num_cpus", -] - -[[package]] -name = "futures-io" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" - -[[package]] -name = "futures-lite" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite 0.2.8", - "waker-fn", -] - -[[package]] -name = "futures-macro" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-rustls" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8b" -dependencies = [ - "futures-io", - "rustls", - "webpki", -] - -[[package]] -name = "futures-sink" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" - -[[package]] -name = "futures-task" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" - -[[package]] -name = "futures-timer" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" - -[[package]] -name = "futures-util" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" -dependencies = [ - "futures 0.1.31", - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite 0.2.8", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - -[[package]] -name = "generic-array" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", -] - -[[package]] -name = "ghash" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" -dependencies = [ - "opaque-debug 0.3.0", - "polyval", -] - -[[package]] -name = "gimli" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" -dependencies = [ - "fallible-iterator", - "indexmap", - "stable_deref_trait", -] - -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "globset" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" -dependencies = [ - "aho-corasick", - "bstr", - "fnv", - "log", - "regex", -] - -[[package]] -name = "gloo-timers" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d12a7f4e95cfe710f1d624fb1210b7d961a5fb05c4fd942f4feab06e61f590e" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "h2" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e" -dependencies = [ - "bytes 1.1.0", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "handlebars" -version = "4.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25546a65e5cf1f471f3438796fc634650b31d7fcde01d444c309aeb28b92e3a8" -dependencies = [ - "log", - "pest", - "pest_derive", - "quick-error 2.0.1", - "serde", - "serde_json", -] - -[[package]] -name = "hash-db" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" - -[[package]] -name = "hash256-std-hasher" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2" -dependencies = [ - "crunchy", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c21d40587b92fa6a6c6e3c1bdbf87d75511db5672f9c93175574b3a00df1758" -dependencies = [ - "ahash", -] - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hex-literal" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" - -[[package]] -name = "hex_fmt" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" - -[[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" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac 0.11.1", - "digest 0.9.0", -] - -[[package]] -name = "hmac-drbg" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" -dependencies = [ - "digest 0.9.0", - "generic-array 0.14.5", - "hmac 0.8.1", -] - -[[package]] -name = "hostname" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" -dependencies = [ - "libc", - "match_cfg", - "winapi 0.3.9", -] - -[[package]] -name = "http" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" -dependencies = [ - "bytes 1.1.0", - "fnv", - "itoa 1.0.1", -] - -[[package]] -name = "http-body" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" -dependencies = [ - "bytes 1.1.0", - "http", - "pin-project-lite 0.2.8", -] - -[[package]] -name = "httparse" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "0.14.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ec3e62bdc98a2f0393a5048e4c30ef659440ea6e0e572965103e72bd836f55" -dependencies = [ - "bytes 1.1.0", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa 0.4.8", - "pin-project-lite 0.2.8", - "socket2 0.4.4", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" -dependencies = [ - "ct-logs", - "futures-util", - "hyper", - "log", - "rustls", - "rustls-native-certs", - "tokio", - "tokio-rustls", - "webpki", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes 1.1.0", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "idna" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "idna" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "if-addrs" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2273e421f7c4f0fc99e1934fe4776f59d8df2972f4199d703fc0da9f2a9f73de" -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.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179" -dependencies = [ - "async-io", - "futures 0.3.21", - "futures-lite", - "if-addrs", - "ipnet", - "libc", - "log", - "winapi 0.3.9", -] - -[[package]] -name = "impl-codec" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" -dependencies = [ - "serde", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "indexmap" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" -dependencies = [ - "autocfg", - "hashbrown 0.11.2", - "serde", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "integer-encoding" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90c11140ffea82edce8dcd74137ce9324ec24b3cf0175fc9d7e29164da9915b8" - -[[package]] -name = "integer-sqrt" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" -dependencies = [ - "num-traits", -] - -[[package]] -name = "io-lifetimes" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ef6787e7f0faedc040f95716bdd0e62bcfcf4ba93da053b62dea2691c13864" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - -[[package]] -name = "ip_network" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" - -[[package]] -name = "ipconfig" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7" -dependencies = [ - "socket2 0.3.19", - "widestring", - "winapi 0.3.9", - "winreg 0.6.2", -] - -[[package]] -name = "ipnet" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" - -[[package]] -name = "itertools" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - -[[package]] -name = "itoa" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" - -[[package]] -name = "jobserver" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "jsonrpc-client-transports" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3a" -dependencies = [ - "derive_more", - "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-pubsub", - "log", - "serde", - "serde_json", - "url 1.7.2", -] - -[[package]] -name = "jsonrpc-core" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" -dependencies = [ - "futures 0.3.21", - "futures-executor", - "futures-util", - "log", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "jsonrpc-core-client" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0" -dependencies = [ - "futures 0.3.21", - "jsonrpc-client-transports", -] - -[[package]] -name = "jsonrpc-derive" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b939a78fa820cdfcb7ee7484466746a7377760970f6f9c6fe19f9edcc8a38d2" -dependencies = [ - "proc-macro-crate 0.1.5", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "jsonrpc-http-server" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ff" -dependencies = [ - "futures 0.3.21", - "hyper", - "jsonrpc-core", - "jsonrpc-server-utils", - "log", - "net2", - "parking_lot 0.11.2", - "unicase", -] - -[[package]] -name = "jsonrpc-ipc-server" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382bb0206323ca7cda3dcd7e245cea86d37d02457a02a975e3378fb149a48845" -dependencies = [ - "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-server-utils", - "log", - "parity-tokio-ipc", - "parking_lot 0.11.2", - "tower-service", -] - -[[package]] -name = "jsonrpc-pubsub" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011" -dependencies = [ - "futures 0.3.21", - "jsonrpc-core", - "lazy_static", - "log", - "parking_lot 0.11.2", - "rand 0.7.3", - "serde", -] - -[[package]] -name = "jsonrpc-server-utils" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4" -dependencies = [ - "bytes 1.1.0", - "futures 0.3.21", - "globset", - "jsonrpc-core", - "lazy_static", - "log", - "tokio", - "tokio-stream", - "tokio-util", - "unicase", -] - -[[package]] -name = "jsonrpc-ws-server" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f892c7d766369475ab7b0669f417906302d7c0fb521285c0a0c92e52e7c8e946" -dependencies = [ - "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-server-utils", - "log", - "parity-ws", - "parking_lot 0.11.2", - "slab", -] - -[[package]] -name = "jsonrpsee" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373a33d987866ccfe1af4bc11b089dce941764313f9fd8b7cf13fcb51b72dc5" -dependencies = [ - "jsonrpsee-proc-macros", - "jsonrpsee-types", - "jsonrpsee-utils", - "jsonrpsee-ws-client", -] - -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d802063f7a3c867456955f9d2f15eb3ee0edb5ec9ec2b5526324756759221c0f" -dependencies = [ - "log", - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f778cf245158fbd8f5d50823a2e9e4c708a40be164766bd35e9fb1d86715b2" -dependencies = [ - "anyhow", - "async-trait", - "beef", - "futures-channel", - "futures-util", - "hyper", - "log", - "serde", - "serde_json", - "soketto", - "thiserror", -] - -[[package]] -name = "jsonrpsee-utils" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0109c4f972058f3b1925b73a17210aff7b63b65967264d0045d15ee88fe84f0c" -dependencies = [ - "arrayvec 0.7.2", - "beef", - "jsonrpsee-types", -] - -[[package]] -name = "jsonrpsee-ws-client" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559aa56fc402af206c00fc913dc2be1d9d788dcde045d14df141a535245d35ef" -dependencies = [ - "arrayvec 0.7.2", - "async-trait", - "fnv", - "futures 0.3.21", - "http", - "jsonrpsee-types", - "log", - "pin-project 1.0.10", - "rustls-native-certs", - "serde", - "serde_json", - "soketto", - "thiserror", - "tokio", - "tokio-rustls", - "tokio-util", -] - -[[package]] -name = "keccak" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" - -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - -[[package]] -name = "kusama-runtime" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "beefy-primitives", - "bitvec", - "frame-benchmarking", - "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "kusama-runtime-constants", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-bounties", - "pallet-collective", - "pallet-democracy", - "pallet-election-provider-multi-phase", - "pallet-elections-phragmen", - "pallet-gilt", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-mmr-primitives", - "pallet-multisig", - "pallet-nicks", - "pallet-offences", - "pallet-offences-benchmarking", - "pallet-preimage", - "pallet-proxy", - "pallet-recovery", - "pallet-scheduler", - "pallet-session", - "pallet-session-benchmarking", - "pallet-society", - "pallet-staking", - "pallet-staking-reward-fn", - "pallet-timestamp", - "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury", - "pallet-utility", - "pallet-vesting", - "pallet-xcm", - "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "smallvec", - "sp-api", - "sp-arithmetic", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", - "sp-npos-elections", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", - "static_assertions", - "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", -] - -[[package]] -name = "kusama-runtime-constants" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "frame-support", - "polkadot-primitives", - "polkadot-runtime-common", - "smallvec", - "sp-runtime", -] - -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - -[[package]] -name = "kvdb" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a3f58dc069ec0e205a27f5b45920722a46faed802a0541538241af6228f512" -dependencies = [ - "parity-util-mem", - "smallvec", -] - -[[package]] -name = "kvdb-memorydb" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3b6b85fc643f5acd0bffb2cc8a6d150209379267af0d41db72170021841f9f5" -dependencies = [ - "kvdb", - "parity-util-mem", - "parking_lot 0.11.2", -] - -[[package]] -name = "kvdb-rocksdb" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1b6ea8f2536f504b645ad78419c8246550e19d2c3419a167080ce08edee35a" -dependencies = [ - "fs-swap", - "kvdb", - "log", - "num_cpus", - "owning_ref", - "parity-util-mem", - "parking_lot 0.11.2", - "regex", - "rocksdb", - "smallvec", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] -name = "libc" -version = "0.2.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c" - -[[package]] -name = "libloading" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" -dependencies = [ - "cc", - "winapi 0.3.9", -] - -[[package]] -name = "libloading" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" -dependencies = [ - "cfg-if 1.0.0", - "winapi 0.3.9", -] - -[[package]] -name = "libm" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" - -[[package]] -name = "libp2p" -version = "0.40.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bec54343492ba5940a6c555e512c6721139835d28c59bc22febece72dfd0d9d" -dependencies = [ - "atomic", - "bytes 1.1.0", - "futures 0.3.21", - "lazy_static", - "libp2p-core", - "libp2p-deflate", - "libp2p-dns", - "libp2p-floodsub", - "libp2p-gossipsub", - "libp2p-identify", - "libp2p-kad", - "libp2p-mdns", - "libp2p-metrics", - "libp2p-mplex", - "libp2p-noise", - "libp2p-ping", - "libp2p-plaintext", - "libp2p-pnet", - "libp2p-relay", - "libp2p-rendezvous", - "libp2p-request-response", - "libp2p-swarm", - "libp2p-swarm-derive", - "libp2p-tcp", - "libp2p-uds", - "libp2p-wasm-ext", - "libp2p-websocket", - "libp2p-yamux", - "multiaddr", - "parking_lot 0.11.2", - "pin-project 1.0.10", - "smallvec", - "wasm-timer", -] - -[[package]] -name = "libp2p-core" -version = "0.30.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86aad7d54df283db817becded03e611137698a6509d4237a96881976a162340c" -dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", - "either", - "fnv", - "futures 0.3.21", - "futures-timer", - "instant", - "lazy_static", - "libsecp256k1", - "log", - "multiaddr", - "multihash 0.14.0", - "multistream-select", - "parking_lot 0.11.2", - "pin-project 1.0.10", - "prost", - "prost-build", - "rand 0.8.4", - "ring", - "rw-stream-sink", - "sha2 0.9.9", - "smallvec", - "thiserror", - "unsigned-varint 0.7.1", - "void", - "zeroize", -] - -[[package]] -name = "libp2p-deflate" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51a800adb195f33de63f4b17b63fe64cfc23bf2c6a0d3d0d5321328664e65197" -dependencies = [ - "flate2", - "futures 0.3.21", - "libp2p-core", -] - -[[package]] -name = "libp2p-dns" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb8f89d15cb6e3c5bc22afff7513b11bab7856f2872d3cfba86f7f63a06bc498" -dependencies = [ - "async-std-resolver", - "futures 0.3.21", - "libp2p-core", - "log", - "smallvec", - "trust-dns-resolver", -] - -[[package]] -name = "libp2p-floodsub" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab3d7210901ea51b7bae2b581aa34521797af8c4ec738c980bda4a06434067f" -dependencies = [ - "cuckoofilter", - "fnv", - "futures 0.3.21", - "libp2p-core", - "libp2p-swarm", - "log", - "prost", - "prost-build", - "rand 0.7.3", - "smallvec", -] - -[[package]] -name = "libp2p-gossipsub" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfeead619eb5dac46e65acc78c535a60aaec803d1428cca6407c3a4fc74d698d" -dependencies = [ - "asynchronous-codec 0.6.0", - "base64", - "byteorder", - "bytes 1.1.0", - "fnv", - "futures 0.3.21", - "hex_fmt", - "libp2p-core", - "libp2p-swarm", - "log", - "prost", - "prost-build", - "rand 0.7.3", - "regex", - "sha2 0.9.9", - "smallvec", - "unsigned-varint 0.7.1", - "wasm-timer", -] - -[[package]] -name = "libp2p-identify" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cca1275574183f288ff8b72d535d5ffa5ea9292ef7829af8b47dcb197c7b0dcd" -dependencies = [ - "futures 0.3.21", - "libp2p-core", - "libp2p-swarm", - "log", - "lru 0.6.6", - "prost", - "prost-build", - "smallvec", - "wasm-timer", -] - -[[package]] -name = "libp2p-kad" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2297dc0ca285f3a09d1368bde02449e539b46f94d32d53233f53f6625bcd3ba" -dependencies = [ - "arrayvec 0.5.2", - "asynchronous-codec 0.6.0", - "bytes 1.1.0", - "either", - "fnv", - "futures 0.3.21", - "libp2p-core", - "libp2p-swarm", - "log", - "prost", - "prost-build", - "rand 0.7.3", - "sha2 0.9.9", - "smallvec", - "uint", - "unsigned-varint 0.7.1", - "void", - "wasm-timer", -] - -[[package]] -name = "libp2p-mdns" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c864b64bdc8a84ff3910a0df88e6535f256191a450870f1e7e10cbf8e64d45" -dependencies = [ - "async-io", - "data-encoding", - "dns-parser", - "futures 0.3.21", - "if-watch", - "lazy_static", - "libp2p-core", - "libp2p-swarm", - "log", - "rand 0.8.4", - "smallvec", - "socket2 0.4.4", - "void", -] - -[[package]] -name = "libp2p-metrics" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4af432fcdd2f8ba4579b846489f8f0812cfd738ced2c0af39df9b1c48bbb6ab2" -dependencies = [ - "libp2p-core", - "libp2p-identify", - "libp2p-kad", - "libp2p-ping", - "libp2p-swarm", - "open-metrics-client", -] - -[[package]] -name = "libp2p-mplex" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2cd64ef597f40e14bfce0497f50ecb63dd6d201c61796daeb4227078834fbf" -dependencies = [ - "asynchronous-codec 0.6.0", - "bytes 1.1.0", - "futures 0.3.21", - "libp2p-core", - "log", - "nohash-hasher", - "parking_lot 0.11.2", - "rand 0.7.3", - "smallvec", - "unsigned-varint 0.7.1", -] - -[[package]] -name = "libp2p-noise" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8772c7a99088221bb7ca9c5c0574bf55046a7ab4c319f3619b275f28c8fb87a" -dependencies = [ - "bytes 1.1.0", - "curve25519-dalek 3.2.0", - "futures 0.3.21", - "lazy_static", - "libp2p-core", - "log", - "prost", - "prost-build", - "rand 0.8.4", - "sha2 0.9.9", - "snow", - "static_assertions", - "x25519-dalek", - "zeroize", -] - -[[package]] -name = "libp2p-ping" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80ef7b0ec5cf06530d9eb6cf59ae49d46a2c45663bde31c25a12f682664adbcf" -dependencies = [ - "futures 0.3.21", - "libp2p-core", - "libp2p-swarm", - "log", - "rand 0.7.3", - "void", - "wasm-timer", -] - -[[package]] -name = "libp2p-plaintext" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fba1a6ff33e4a274c89a3b1d78b9f34f32af13265cc5c46c16938262d4e945a" -dependencies = [ - "asynchronous-codec 0.6.0", - "bytes 1.1.0", - "futures 0.3.21", - "libp2p-core", - "log", - "prost", - "prost-build", - "unsigned-varint 0.7.1", - "void", -] - -[[package]] -name = "libp2p-pnet" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f1a458bbda880107b5b36fcb9b5a1ef0c329685da0e203ed692a8ebe64cc92c" -dependencies = [ - "futures 0.3.21", - "log", - "pin-project 1.0.10", - "rand 0.7.3", - "salsa20", - "sha3", -] - -[[package]] -name = "libp2p-relay" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2852b61c90fa8ce3c8fcc2aba76e6cefc20d648f9df29157d6b3a916278ef3e3" -dependencies = [ - "asynchronous-codec 0.6.0", - "bytes 1.1.0", - "futures 0.3.21", - "futures-timer", - "libp2p-core", - "libp2p-swarm", - "log", - "pin-project 1.0.10", - "prost", - "prost-build", - "rand 0.7.3", - "smallvec", - "unsigned-varint 0.7.1", - "void", - "wasm-timer", -] - -[[package]] -name = "libp2p-rendezvous" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14a6d2b9e7677eff61dc3d2854876aaf3976d84a01ef6664b610c77a0c9407c5" -dependencies = [ - "asynchronous-codec 0.6.0", - "bimap", - "futures 0.3.21", - "libp2p-core", - "libp2p-swarm", - "log", - "prost", - "prost-build", - "rand 0.8.4", - "sha2 0.9.9", - "thiserror", - "unsigned-varint 0.7.1", - "void", - "wasm-timer", -] - -[[package]] -name = "libp2p-request-response" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a877a4ced6d46bf84677e1974e8cf61fb434af73b2e96fb48d6cb6223a4634d8" -dependencies = [ - "async-trait", - "bytes 1.1.0", - "futures 0.3.21", - "libp2p-core", - "libp2p-swarm", - "log", - "lru 0.7.2", - "rand 0.7.3", - "smallvec", - "unsigned-varint 0.7.1", - "wasm-timer", -] - -[[package]] -name = "libp2p-swarm" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f5184a508f223bc100a12665517773fb8730e9f36fc09eefb670bf01b107ae9" -dependencies = [ - "either", - "futures 0.3.21", - "libp2p-core", - "log", - "rand 0.7.3", - "smallvec", - "void", - "wasm-timer", -] - -[[package]] -name = "libp2p-swarm-derive" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "072c290f727d39bdc4e9d6d1c847978693d25a673bd757813681e33e5f6c00c2" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "libp2p-tcp" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7399c5b6361ef525d41c11fcf51635724f832baf5819b30d3d873eabb4fbae4b" -dependencies = [ - "async-io", - "futures 0.3.21", - "futures-timer", - "if-watch", - "ipnet", - "libc", - "libp2p-core", - "log", - "socket2 0.4.4", -] - -[[package]] -name = "libp2p-uds" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8b7563e46218165dfd60f64b96f7ce84590d75f53ecbdc74a7dd01450dc5973" -dependencies = [ - "async-std", - "futures 0.3.21", - "libp2p-core", - "log", -] - -[[package]] -name = "libp2p-wasm-ext" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1008a302b73c5020251f9708c653f5ed08368e530e247cc9cd2f109ff30042cf" -dependencies = [ - "futures 0.3.21", - "js-sys", - "libp2p-core", - "parity-send-wrapper", - "wasm-bindgen", - "wasm-bindgen-futures", -] - -[[package]] -name = "libp2p-websocket" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e12df82d1ed64969371a9e65ea92b91064658604cc2576c2757f18ead9a1cf" -dependencies = [ - "either", - "futures 0.3.21", - "futures-rustls", - "libp2p-core", - "log", - "quicksink", - "rw-stream-sink", - "soketto", - "url 2.2.2", - "webpki-roots", -] - -[[package]] -name = "libp2p-yamux" -version = "0.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7362abb8867d7187e7e93df17f460d554c997fc5c8ac57dc1259057f6889af" -dependencies = [ - "futures 0.3.21", - "libp2p-core", - "parking_lot 0.11.2", - "thiserror", - "yamux", -] - -[[package]] -name = "librocksdb-sys" -version = "6.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c309a9d2470844aceb9a4a098cf5286154d20596868b75a6b36357d2bb9ca25d" -dependencies = [ - "bindgen", - "cc", - "glob", - "libc", -] - -[[package]] -name = "libsecp256k1" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37" -dependencies = [ - "arrayref", - "base64", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.8.4", - "serde", - "sha2 0.9.9", - "typenum", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] - -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libz-sys" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" - -[[package]] -name = "linked_hash_set" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" -dependencies = [ - "linked-hash-map", -] - -[[package]] -name = "linregress" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c601a85f5ecd1aba625247bca0031585fb1c446461b142878a16f8245ddeb8" -dependencies = [ - "nalgebra", - "statrs", -] - -[[package]] -name = "linux-raw-sys" -version = "0.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a261afc61b7a5e323933b402ca6a1765183687c614789b1e4db7762ed4230bca" - -[[package]] -name = "lock_api" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "lock_api" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" -dependencies = [ - "cfg-if 1.0.0", - "value-bag", -] - -[[package]] -name = "lru" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ea2d928b485416e8908cff2d97d621db22b27f7b3b6729e438bcf42c671ba91" -dependencies = [ - "hashbrown 0.11.2", -] - -[[package]] -name = "lru" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "274353858935c992b13c0ca408752e2121da852d07dec7ce5f108c77dfa14d1f" -dependencies = [ - "hashbrown 0.11.2", -] - -[[package]] -name = "lru-cache" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" -dependencies = [ - "linked-hash-map", -] - -[[package]] -name = "lz4" -version = "1.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac20ed6991e01bf6a2e68cc73df2b389707403662a8ba89f68511fb340f724c" -dependencies = [ - "libc", - "lz4-sys", -] - -[[package]] -name = "lz4-sys" -version = "1.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca79aa95d8b3226213ad454d328369853be3a1382d89532a854f4d69640acae" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "mach" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" -dependencies = [ - "libc", -] - -[[package]] -name = "manta" -version = "3.1.4" -dependencies = [ - "async-trait", - "calamari-runtime", - "cfg-if 1.0.0", - "cumulus-client-cli", - "cumulus-client-consensus-aura", - "cumulus-client-consensus-common", - "cumulus-client-consensus-relay-chain", - "cumulus-client-network", - "cumulus-client-service", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-relay-chain-interface", - "cumulus-relay-chain-local", - "dolphin-runtime", - "frame-benchmarking", - "frame-benchmarking-cli", - "futures 0.3.21", - "hex-literal", - "jsonrpc-core", - "log", - "manta-primitives", - "manta-runtime", - "pallet-transaction-payment-rpc", - "parity-scale-codec", - "polkadot-cli", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-service", - "sc-basic-authorship", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-consensus", - "sc-executor", - "sc-keystore", - "sc-network", - "sc-rpc", - "sc-rpc-api", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "serde", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-timestamp", - "sp-transaction-pool", - "structopt", - "substrate-build-script-utils", - "substrate-frame-rpc-system", - "substrate-prometheus-endpoint", - "try-runtime-cli", - "xcm", -] - -[[package]] -name = "manta-collator-selection" -version = "3.1.4" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-aura", - "pallet-authorship", - "pallet-balances", - "pallet-session", - "pallet-timestamp", - "parity-scale-codec", - "rand 0.7.3", - "scale-info", - "serde", - "sp-consensus-aura", - "sp-core", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-std", - "sp-tracing", -] - -[[package]] -name = "manta-primitives" -version = "3.1.4" -dependencies = [ - "parity-scale-codec", - "smallvec", - "sp-consensus-aura", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "manta-runtime" -version = "3.1.4" -dependencies = [ - "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-timestamp", - "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "manta-primitives", - "pallet-aura", - "pallet-authorship", - "pallet-balances", - "pallet-collator-selection", - "pallet-multisig", - "pallet-preimage", - "pallet-scheduler", - "pallet-session", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-tx-pause", - "pallet-utility", - "pallet-xcm", - "parachain-info", - "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-runtime-common", - "scale-info", - "serde", - "smallvec", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", -] - -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "match_cfg" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" - -[[package]] -name = "matchers" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - -[[package]] -name = "matrixmultiply" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84" -dependencies = [ - "rawpointer", -] - -[[package]] -name = "memchr" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" - -[[package]] -name = "memmap2" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723e3ebdcdc5c023db1df315364573789f8857c11b631a2fdfad7c00f5c046b4" -dependencies = [ - "libc", -] - -[[package]] -name = "memmap2" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe3179b85e1fd8b14447cbebadb75e45a1002f541b925f0bfec366d56a81c56d" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memory-db" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d505169b746dacf02f7d14d8c80b34edfd8212159c63d23c977739a0d960c626" -dependencies = [ - "hash-db", - "hashbrown 0.11.2", - "parity-util-mem", -] - -[[package]] -name = "memory-lru" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beeb98b3d1ed2c0054bd81b5ba949a0243c3ccad751d45ea898fa8059fa2860a" -dependencies = [ - "lru 0.6.6", -] - -[[package]] -name = "memory_units" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" - -[[package]] -name = "merlin" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.5.1", - "zeroize", -] - -[[package]] -name = "metered-channel" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "derive_more", - "futures 0.3.21", - "futures-timer", - "thiserror", - "tracing", -] - -[[package]] -name = "mick-jaeger" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd2c2cc134e57461f0898b0e921f0a7819b5e3f3a4335b9aa390ce81a5f36fb9" -dependencies = [ - "futures 0.3.21", - "rand 0.8.4", - "thrift", -] - -[[package]] -name = "mime" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" -dependencies = [ - "adler", - "autocfg", -] - -[[package]] -name = "mio" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow 0.2.2", - "net2", - "slab", - "winapi 0.2.8", -] - -[[package]] -name = "mio" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" -dependencies = [ - "libc", - "log", - "miow 0.3.7", - "ntapi", - "winapi 0.3.9", -] - -[[package]] -name = "mio-extras" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" -dependencies = [ - "lazycell", - "log", - "mio 0.6.23", - "slab", -] - -[[package]] -name = "miow" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "more-asserts" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" - -[[package]] -name = "multiaddr" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48ee4ea82141951ac6379f964f71b20876d43712bea8faf6dd1a375e08a46499" -dependencies = [ - "arrayref", - "bs58", - "byteorder", - "data-encoding", - "multihash 0.14.0", - "percent-encoding 2.1.0", - "serde", - "static_assertions", - "unsigned-varint 0.7.1", - "url 2.2.2", -] - -[[package]] -name = "multibase" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b78c60039650ff12e140ae867ef5299a58e19dded4d334c849dc7177083667e2" -dependencies = [ - "base-x", - "data-encoding", - "data-encoding-macro", -] - -[[package]] -name = "multihash" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dac63698b887d2d929306ea48b63760431ff8a24fac40ddb22f9c7f49fb7cab" -dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", - "digest 0.9.0", - "generic-array 0.14.5", - "multihash-derive", - "sha2 0.9.9", - "sha3", - "unsigned-varint 0.5.1", -] - -[[package]] -name = "multihash" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "752a61cd890ff691b4411423d23816d5866dd5621e4d1c5687a53b94b5a979d8" -dependencies = [ - "digest 0.9.0", - "generic-array 0.14.5", - "multihash-derive", - "sha2 0.9.9", - "unsigned-varint 0.7.1", -] - -[[package]] -name = "multihash-derive" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - -[[package]] -name = "multistream-select" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56a336acba8bc87c8876f6425407dbbe6c417bf478b22015f8fb0994ef3bc0ab" -dependencies = [ - "bytes 1.1.0", - "futures 0.3.21", - "log", - "pin-project 1.0.10", - "smallvec", - "unsigned-varint 0.7.1", -] - -[[package]] -name = "nalgebra" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" -dependencies = [ - "approx", - "matrixmultiply", - "nalgebra-macros", - "num-complex", - "num-rational 0.4.0", - "num-traits", - "rand 0.8.4", - "rand_distr", - "simba", - "typenum", -] - -[[package]] -name = "nalgebra-macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "names" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a8690bf09abf659851e58cd666c3d37ac6af07c2bd7a9e332cfba471715775" -dependencies = [ - "rand 0.8.4", -] - -[[package]] -name = "native-tls" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "net2" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[package]] -name = "nohash-hasher" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" - -[[package]] -name = "nom" -version = "7.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d11e1ef389c76fe5b81bcaf2ea32cf88b62bc494e19f493d0b30e7a930109" -dependencies = [ - "memchr", - "minimal-lexical", - "version_check", -] - -[[package]] -name = "ntapi" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "num-bigint" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-integer" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" -dependencies = [ - "autocfg", - "num-bigint", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "object" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" -dependencies = [ - "crc32fast", - "indexmap", - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" - -[[package]] -name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "open-metrics-client" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7337d80c23c2d8b1349563981bc4fb531220733743ba8115454a67b181173f0d" -dependencies = [ - "dtoa", - "itoa 0.4.8", - "open-metrics-client-derive-text-encode", - "owning_ref", -] - -[[package]] -name = "open-metrics-client-derive-text-encode" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15c83b586f00268c619c1cb3340ec1a6f59dd9ba1d9833a273a68e6d5cd8ffc" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl" -version = "0.10.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" -dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "foreign-types", - "libc", - "once_cell", - "openssl-sys", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" -dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-float" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" -dependencies = [ - "num-traits", -] - -[[package]] -name = "owning_ref" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce" -dependencies = [ - "stable_deref_trait", -] - -[[package]] -name = "pallet-aura" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "pallet-timestamp", - "parity-scale-codec", - "scale-info", - "sp-application-crypto", - "sp-consensus-aura", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "pallet-session", - "parity-scale-codec", - "scale-info", - "sp-application-crypto", - "sp-authority-discovery", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "sp-authorship", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-babe" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "pallet-session", - "pallet-timestamp", - "parity-scale-codec", - "scale-info", - "sp-application-crypto", - "sp-consensus-babe", - "sp-consensus-vrf", - "sp-io", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", -] - -[[package]] -name = "pallet-bags-list" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", - "log", - "pallet-balances", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-tracing", -] - -[[package]] -name = "pallet-balances" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "beefy-primitives", - "frame-support", - "frame-system", - "pallet-session", - "parity-scale-codec", - "scale-info", - "serde", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-beefy-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "beefy-merkle-tree", - "beefy-primitives", - "frame-support", - "frame-system", - "hex", - "libsecp256k1", - "log", - "pallet-beefy", - "pallet-mmr", - "pallet-mmr-primitives", - "pallet-session", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-bounties" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-treasury", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-bridge-dispatch" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bp-message-dispatch", - "bp-runtime", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-bridge-grandpa" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bp-header-chain", - "bp-runtime", - "bp-test-utils", - "finality-grandpa", - "frame-support", - "frame-system", - "log", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", - "sp-trie", -] - -[[package]] -name = "pallet-bridge-messages" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bitvec", - "bp-message-dispatch", - "bp-messages", - "bp-runtime", - "frame-support", - "frame-system", - "log", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-collator-selection" -version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "pallet-session", - "parity-scale-codec", - "rand 0.7.3", - "scale-info", - "serde", - "sp-runtime", - "sp-staking", - "sp-std", -] - -[[package]] -name = "pallet-collective" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-democracy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "serde", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-election-provider-multi-phase" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "rand 0.7.3", - "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-npos-elections", - "sp-runtime", - "sp-std", - "static_assertions", - "strum 0.22.0", - "strum_macros 0.23.1", -] - -[[package]] -name = "pallet-elections-phragmen" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-npos-elections", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-gilt" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "pallet-session", - "parity-scale-codec", - "scale-info", - "sp-application-crypto", - "sp-core", - "sp-finality-grandpa", - "sp-io", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", -] - -[[package]] -name = "pallet-identity" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "enumflags2", - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-im-online" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "parity-scale-codec", - "scale-info", - "sp-application-crypto", - "sp-core", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-std", -] - -[[package]] -name = "pallet-indices" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-keyring", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-membership" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "ckb-merkle-mountain-range", - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-mmr-primitives", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-mmr-primitives" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "serde", - "sp-api", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-mmr-rpc" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "pallet-mmr-primitives", - "parity-scale-codec", - "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-runtime", -] - -[[package]] -name = "pallet-multisig" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-nicks" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-offences" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "log", - "pallet-balances", - "parity-scale-codec", - "scale-info", - "serde", - "sp-runtime", - "sp-staking", - "sp-std", -] - -[[package]] -name = "pallet-offences-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", - "pallet-babe", - "pallet-balances", - "pallet-grandpa", - "pallet-im-online", - "pallet-offences", - "pallet-session", - "pallet-staking", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-staking", - "sp-std", -] - -[[package]] -name = "pallet-preimage" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-proxy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-recovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-scheduler" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "impl-trait-for-tuples", - "log", - "pallet-timestamp", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-trie", -] - -[[package]] -name = "pallet-session-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-session", - "pallet-staking", - "rand 0.7.3", - "sp-runtime", - "sp-session", - "sp-std", -] - -[[package]] -name = "pallet-society" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "rand_chacha 0.2.2", - "scale-info", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-staking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "pallet-session", - "parity-scale-codec", - "rand_chacha 0.2.2", - "scale-info", - "serde", - "sp-application-crypto", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-std", -] - -[[package]] -name = "pallet-staking-reward-curve" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pallet-staking-reward-fn" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "log", - "sp-arithmetic", -] - -[[package]] -name = "pallet-sudo" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-std", - "sp-timestamp", -] - -[[package]] -name = "pallet-tips" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-treasury", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-transaction-payment" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-transaction-payment-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "pallet-transaction-payment-rpc-runtime-api", - "parity-scale-codec", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", -] - -[[package]] -name = "pallet-transaction-payment-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "pallet-transaction-payment", - "parity-scale-codec", - "sp-api", - "sp-runtime", -] - -[[package]] -name = "pallet-treasury" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "impl-trait-for-tuples", - "pallet-balances", - "parity-scale-codec", - "scale-info", - "serde", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-tx-pause" -version = "3.1.4" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "manta-primitives", - "pallet-balances", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-utility" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-vesting" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-xcm" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-runtime", - "sp-std", - "xcm", - "xcm-executor", -] - -[[package]] -name = "pallet-xcm-benchmarks" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-std", - "xcm", - "xcm-executor", -] - -[[package]] -name = "parachain-info" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "serde", -] - -[[package]] -name = "parity-db" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68de01cff53da5574397233383dd7f5c15ee958c348245765ea8cb09f2571e6b" -dependencies = [ - "blake2-rfc", - "crc32fast", - "fs2", - "hex", - "libc", - "log", - "lz4", - "memmap2 0.2.3", - "parking_lot 0.11.2", - "rand 0.8.4", - "snap", -] - -[[package]] -name = "parity-scale-codec" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" -dependencies = [ - "arrayvec 0.7.2", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[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.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" -dependencies = [ - "futures 0.3.21", - "libc", - "log", - "rand 0.7.3", - "tokio", - "winapi 0.3.9", -] - -[[package]] -name = "parity-util-mem" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f4cb4e169446179cbc6b8b6320cc9fca49bd2e94e8db25f25f200a8ea774770" -dependencies = [ - "cfg-if 1.0.0", - "ethereum-types", - "hashbrown 0.11.2", - "impl-trait-for-tuples", - "lru 0.6.6", - "parity-util-mem-derive", - "parking_lot 0.11.2", - "primitive-types", - "smallvec", - "winapi 0.3.9", -] - -[[package]] -name = "parity-util-mem-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" -dependencies = [ - "proc-macro2", - "syn", - "synstructure", -] - -[[package]] -name = "parity-wasm" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ad52817c4d343339b3bc2e26861bd21478eda0b7509acf83505727000512ac" -dependencies = [ - "byteorder", -] - -[[package]] -name = "parity-wasm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" - -[[package]] -name = "parity-ws" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5983d3929ad50f12c3eb9a6743f19d691866ecd44da74c0a3308c3f8a56df0c6" -dependencies = [ - "byteorder", - "bytes 0.4.12", - "httparse", - "log", - "mio 0.6.23", - "mio-extras", - "rand 0.7.3", - "sha-1 0.8.2", - "slab", - "url 2.2.2", -] - -[[package]] -name = "parking" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" - -[[package]] -name = "parking_lot" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" -dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.7.2", -] - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api 0.4.6", - "parking_lot_core 0.8.5", -] - -[[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 0.1.57", - "smallvec", - "winapi 0.3.9", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.10", - "smallvec", - "winapi 0.3.9", -] - -[[package]] -name = "paste" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" - -[[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 = "pbkdf2" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" -dependencies = [ - "crypto-mac 0.11.1", -] - -[[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", - "quote", - "syn", -] - -[[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.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f" -dependencies = [ - "fixedbitset", - "indexmap", -] - -[[package]] -name = "pin-project" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9615c18d31137579e9ff063499264ddc1278e7b1982757ebc111028c4d1dc909" -dependencies = [ - "pin-project-internal 0.4.29", -] - -[[package]] -name = "pin-project" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" -dependencies = [ - "pin-project-internal 1.0.10", -] - -[[package]] -name = "pin-project-internal" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "044964427019eed9d49d9d5bbce6047ef18f37100ea400912a9fa4a3523ab12a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" - -[[package]] -name = "pin-project-lite" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" - -[[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.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" - -[[package]] -name = "platforms" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" - -[[package]] -name = "polkadot-approval-distribution" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "tracing", -] - -[[package]] -name = "polkadot-availability-bitfield-distribution" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "tracing", -] - -[[package]] -name = "polkadot-availability-distribution" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "derive_more", - "futures 0.3.21", - "lru 0.7.2", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "rand 0.8.4", - "sp-core", - "sp-keystore", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-availability-recovery" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "lru 0.7.2", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "rand 0.8.4", - "sc-network", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-cli" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "frame-benchmarking-cli", - "futures 0.3.21", - "log", - "polkadot-node-core-pvf", - "polkadot-node-metrics", - "polkadot-performance-test", - "polkadot-service", - "sc-cli", - "sc-service", - "sc-tracing", - "sp-core", - "sp-trie", - "structopt", - "substrate-build-script-utils", - "thiserror", - "try-runtime-cli", -] - -[[package]] -name = "polkadot-client" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "beefy-primitives", - "frame-benchmarking", - "frame-system-rpc-runtime-api", - "pallet-mmr-primitives", - "pallet-transaction-payment-rpc-runtime-api", - "polkadot-primitives", - "polkadot-runtime", - "sc-client-api", - "sc-consensus", - "sc-executor", - "sc-service", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-finality-grandpa", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-storage", - "sp-transaction-pool", -] - -[[package]] -name = "polkadot-collator-protocol" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "always-assert", - "derive_more", - "futures 0.3.21", - "futures-timer", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-core", - "sp-keystore", - "sp-runtime", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-core-primitives" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "parity-scale-codec", - "parity-util-mem", - "scale-info", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "polkadot-dispute-distribution" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "derive_more", - "futures 0.3.21", - "lru 0.7.2", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sc-network", - "sp-application-crypto", - "sp-keystore", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-erasure-coding" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-primitives", - "reed-solomon-novelpoly", - "sp-core", - "sp-trie", - "thiserror", -] - -[[package]] -name = "polkadot-gossip-support" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "futures-timer", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "rand 0.8.4", - "rand_chacha 0.3.1", - "sc-network", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "tracing", -] - -[[package]] -name = "polkadot-network-bridge" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "async-trait", - "futures 0.3.21", - "parity-scale-codec", - "parking_lot 0.11.2", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "sc-network", - "sp-consensus", - "tracing", -] - -[[package]] -name = "polkadot-node-collation-generation" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-core", - "sp-maybe-compressed-blob", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-approval-voting" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bitvec", - "derive_more", - "futures 0.3.21", - "futures-timer", - "kvdb", - "lru 0.7.2", - "merlin", - "parity-scale-codec", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "sc-keystore", - "schnorrkel", - "sp-application-crypto", - "sp-consensus", - "sp-consensus-slots", - "sp-runtime", - "tracing", -] - -[[package]] -name = "polkadot-node-core-av-store" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bitvec", - "futures 0.3.21", - "futures-timer", - "kvdb", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-backing" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bitvec", - "futures 0.3.21", - "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "polkadot-statement-table", - "sp-keystore", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-bitfield-signing" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-keystore", - "thiserror", - "tracing", - "wasm-timer", -] - -[[package]] -name = "polkadot-node-core-candidate-validation" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "async-trait", - "futures 0.3.21", - "parity-scale-codec", - "polkadot-node-core-pvf", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-parachain", - "polkadot-primitives", - "sp-maybe-compressed-blob", - "tracing", -] - -[[package]] -name = "polkadot-node-core-chain-api" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sc-client-api", - "sc-consensus-babe", - "sp-blockchain", - "tracing", -] - -[[package]] -name = "polkadot-node-core-chain-selection" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "futures-timer", - "kvdb", - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-dispute-coordinator" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "kvdb", - "lru 0.7.2", - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sc-keystore", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-parachains-inherent" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "async-trait", - "futures 0.3.21", - "futures-timer", - "polkadot-node-subsystem", - "polkadot-primitives", - "sp-blockchain", - "sp-inherents", - "sp-runtime", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-provisioner" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bitvec", - "futures 0.3.21", - "futures-timer", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "rand 0.8.4", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-pvf" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "always-assert", - "assert_matches", - "async-process", - "async-std", - "futures 0.3.21", - "futures-timer", - "parity-scale-codec", - "pin-project 1.0.10", - "polkadot-core-primitives", - "polkadot-node-subsystem-util", - "polkadot-parachain", - "rand 0.8.4", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", - "slotmap", - "sp-core", - "sp-externalities", - "sp-io", - "sp-maybe-compressed-blob", - "sp-tracing", - "sp-wasm-interface", - "tracing", -] - -[[package]] -name = "polkadot-node-core-pvf-checker" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "sp-keystore", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-runtime-api" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "memory-lru", - "parity-util-mem", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-api", - "sp-authority-discovery", - "sp-consensus-babe", - "sp-core", - "tracing", -] - -[[package]] -name = "polkadot-node-jaeger" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "async-std", - "lazy_static", - "log", - "mick-jaeger", - "parity-scale-codec", - "parking_lot 0.11.2", - "polkadot-node-primitives", - "polkadot-primitives", - "sc-network", - "sp-core", - "thiserror", -] - -[[package]] -name = "polkadot-node-metrics" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bs58", - "futures 0.3.21", - "futures-timer", - "log", - "metered-channel", - "parity-scale-codec", - "polkadot-primitives", - "sc-cli", - "sc-service", - "sc-tracing", - "substrate-prometheus-endpoint", - "tracing", -] - -[[package]] -name = "polkadot-node-network-protocol" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "async-trait", - "derive_more", - "futures 0.3.21", - "parity-scale-codec", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-primitives", - "sc-authority-discovery", - "sc-network", - "strum 0.23.0", - "thiserror", -] - -[[package]] -name = "polkadot-node-primitives" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bounded-vec", - "futures 0.3.21", - "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", - "schnorrkel", - "serde", - "sp-application-crypto", - "sp-consensus-babe", - "sp-consensus-vrf", - "sp-core", - "sp-keystore", - "sp-maybe-compressed-blob", - "thiserror", - "zstd", -] - -[[package]] -name = "polkadot-node-subsystem" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "polkadot-node-jaeger", - "polkadot-node-subsystem-types", - "polkadot-overseer", -] - -[[package]] -name = "polkadot-node-subsystem-types" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "derive_more", - "futures 0.3.21", - "polkadot-node-jaeger", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-overseer-gen", - "polkadot-primitives", - "polkadot-statement-table", - "sc-network", - "smallvec", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "polkadot-node-subsystem-util" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "async-trait", - "derive_more", - "futures 0.3.21", - "itertools", - "lru 0.7.2", - "metered-channel", - "parity-scale-codec", - "pin-project 1.0.10", - "polkadot-node-jaeger", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", - "rand 0.8.4", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-overseer" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "futures 0.3.21", - "futures-timer", - "lru 0.7.2", - "parity-util-mem", - "parking_lot 0.11.2", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem-types", - "polkadot-overseer-gen", - "polkadot-primitives", - "sc-client-api", - "sp-api", - "tracing", -] - -[[package]] -name = "polkadot-overseer-gen" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "async-trait", - "futures 0.3.21", - "futures-timer", - "metered-channel", - "pin-project 1.0.10", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-overseer-gen-proc-macro", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-overseer-gen-proc-macro" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "polkadot-parachain" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "derive_more", - "frame-support", - "parity-scale-codec", - "parity-util-mem", - "polkadot-core-primitives", - "scale-info", - "serde", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "polkadot-performance-test" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "env_logger", - "kusama-runtime", - "log", - "polkadot-erasure-coding", - "polkadot-node-core-pvf", - "polkadot-node-primitives", - "quote", - "thiserror", -] - -[[package]] -name = "polkadot-primitives" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bitvec", - "frame-system", - "hex-literal", - "parity-scale-codec", - "parity-util-mem", - "polkadot-core-primitives", - "polkadot-parachain", - "scale-info", - "serde", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-authority-discovery", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-staking", - "sp-std", - "sp-trie", - "sp-version", -] - -[[package]] -name = "polkadot-rpc" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "beefy-gadget", - "beefy-gadget-rpc", - "jsonrpc-core", - "pallet-mmr-rpc", - "pallet-transaction-payment-rpc", - "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-rpc", - "sc-sync-state-rpc", - "sc-transaction-pool-api", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-keystore", - "sp-runtime", - "substrate-frame-rpc-system", -] - -[[package]] -name = "polkadot-runtime" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "beefy-primitives", - "bitvec", - "frame-benchmarking", - "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-bounties", - "pallet-collective", - "pallet-democracy", - "pallet-election-provider-multi-phase", - "pallet-elections-phragmen", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-mmr-primitives", - "pallet-multisig", - "pallet-nicks", - "pallet-offences", - "pallet-offences-benchmarking", - "pallet-preimage", - "pallet-proxy", - "pallet-scheduler", - "pallet-session", - "pallet-session-benchmarking", - "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", - "pallet-xcm", - "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-constants", - "polkadot-runtime-parachains", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "smallvec", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", - "sp-npos-elections", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", - "static_assertions", - "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", -] - -[[package]] -name = "polkadot-runtime-common" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "beefy-primitives", - "bitvec", - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", - "impl-trait-for-tuples", - "libsecp256k1", - "log", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-beefy-mmr", - "pallet-election-provider-multi-phase", - "pallet-session", - "pallet-staking", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-treasury", - "pallet-vesting", - "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime-parachains", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "slot-range-helper", - "sp-api", - "sp-core", - "sp-inherents", - "sp-io", - "sp-npos-elections", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "static_assertions", - "xcm", -] - -[[package]] -name = "polkadot-runtime-constants" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "frame-support", - "polkadot-primitives", - "polkadot-runtime-common", - "smallvec", - "sp-runtime", -] - -[[package]] -name = "polkadot-runtime-metrics" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bs58", - "parity-scale-codec", - "polkadot-primitives", - "sp-std", - "sp-tracing", -] - -[[package]] -name = "polkadot-runtime-parachains" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "bitflags", - "bitvec", - "derive_more", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-balances", - "pallet-session", - "pallet-staking", - "pallet-timestamp", - "pallet-vesting", - "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime-metrics", - "rand 0.8.4", - "rand_chacha 0.3.1", - "rustc-hex", - "scale-info", - "serde", - "sp-api", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "xcm", - "xcm-executor", -] - -[[package]] -name = "polkadot-service" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "async-trait", - "beefy-gadget", - "beefy-primitives", - "frame-system-rpc-runtime-api", - "futures 0.3.21", - "hex-literal", - "kusama-runtime", - "kvdb", - "kvdb-rocksdb", - "lru 0.7.2", - "pallet-babe", - "pallet-im-online", - "pallet-mmr-primitives", - "pallet-staking", - "pallet-transaction-payment-rpc-runtime-api", - "polkadot-approval-distribution", - "polkadot-availability-bitfield-distribution", - "polkadot-availability-distribution", - "polkadot-availability-recovery", - "polkadot-client", - "polkadot-collator-protocol", - "polkadot-dispute-distribution", - "polkadot-gossip-support", - "polkadot-network-bridge", - "polkadot-node-collation-generation", - "polkadot-node-core-approval-voting", - "polkadot-node-core-av-store", - "polkadot-node-core-backing", - "polkadot-node-core-bitfield-signing", - "polkadot-node-core-candidate-validation", - "polkadot-node-core-chain-api", - "polkadot-node-core-chain-selection", - "polkadot-node-core-dispute-coordinator", - "polkadot-node-core-parachains-inherent", - "polkadot-node-core-provisioner", - "polkadot-node-core-pvf-checker", - "polkadot-node-core-runtime-api", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-rpc", - "polkadot-runtime", - "polkadot-runtime-constants", - "polkadot-runtime-parachains", - "polkadot-statement-distribution", - "rococo-runtime", - "sc-authority-discovery", - "sc-basic-authorship", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-consensus-babe", - "sc-consensus-slots", - "sc-consensus-uncles", - "sc-executor", - "sc-finality-grandpa", - "sc-keystore", - "sc-network", - "sc-offchain", - "sc-service", - "sc-sync-state-rpc", - "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-timestamp", - "sp-transaction-pool", - "sp-trie", - "substrate-prometheus-endpoint", - "thiserror", - "tracing", - "westend-runtime", -] - -[[package]] -name = "polkadot-statement-distribution" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "arrayvec 0.5.2", - "derive_more", - "futures 0.3.21", - "indexmap", - "parity-scale-codec", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-keystore", - "sp-staking", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-statement-table" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "parity-scale-codec", - "polkadot-primitives", - "sp-core", -] - -[[package]] -name = "polling" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "log", - "wepoll-ffi", - "winapi 0.3.9", -] - -[[package]] -name = "poly1305" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" -dependencies = [ - "cpufeatures 0.2.1", - "opaque-debug 0.3.0", - "universal-hash", -] - -[[package]] -name = "polyval" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures 0.2.1", - "opaque-debug 0.3.0", - "universal-hash", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" - -[[package]] -name = "primitive-types" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml", -] - -[[package]] -name = "proc-macro-crate" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83" -dependencies = [ - "thiserror", - "toml", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" -dependencies = [ - "unicode-xid", -] - -[[package]] -name = "prometheus" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f64969ffd5dd8f39bd57a68ac53c163a095ed9d0fb707146da1b27025a3504" -dependencies = [ - "cfg-if 1.0.0", - "fnv", - "lazy_static", - "memchr", - "parking_lot 0.11.2", - "thiserror", -] - -[[package]] -name = "prost" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" -dependencies = [ - "bytes 1.1.0", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" -dependencies = [ - "bytes 1.1.0", - "heck", - "itertools", - "lazy_static", - "log", - "multimap", - "petgraph", - "prost", - "prost-types", - "regex", - "tempfile", - "which", -] - -[[package]] -name = "prost-derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "prost-types" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" -dependencies = [ - "bytes 1.1.0", - "prost", -] - -[[package]] -name = "psm" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd136ff4382c4753fc061cb9e4712ab2af263376b95bbd5bd8cd50c020b78e69" -dependencies = [ - "cc", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quick-error" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" - -[[package]] -name = "quicksink" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" -dependencies = [ - "futures-core", - "futures-sink", - "pin-project-lite 0.1.12", -] - -[[package]] -name = "quote" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc 0.2.0", - "rand_pcg", -] - -[[package]] -name = "rand" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.3", - "rand_hc 0.3.1", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.3", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" -dependencies = [ - "getrandom 0.2.4", -] - -[[package]] -name = "rand_distr" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" -dependencies = [ - "num-traits", - "rand 0.8.4", -] - -[[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_hc" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" -dependencies = [ - "rand_core 0.6.3", -] - -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rawpointer" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" - -[[package]] -name = "rayon" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" -dependencies = [ - "autocfg", - "crossbeam-deque", - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "lazy_static", - "num_cpus", -] - -[[package]] -name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - -[[package]] -name = "redox_syscall" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_users" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" -dependencies = [ - "getrandom 0.2.4", - "redox_syscall 0.2.10", -] - -[[package]] -name = "reed-solomon-novelpoly" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd8f48b2066e9f69ab192797d66da804d1935bf22763204ed3675740cb0f221" -dependencies = [ - "derive_more", - "fs-err", - "itertools", - "static_init", - "thiserror", -] - -[[package]] -name = "ref-cast" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541da" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "regalloc" -version = "0.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d808cff91dfca7b239d40b972ba628add94892b1d9e19a842aedc5cfae8ab1a" -dependencies = [ - "log", - "rustc-hash", - "smallvec", -] - -[[package]] -name = "regex" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.6.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" - -[[package]] -name = "region" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0" -dependencies = [ - "bitflags", - "libc", - "mach", - "winapi 0.3.9", -] - -[[package]] -name = "remote-externalities" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "env_logger", - "jsonrpsee", - "log", - "parity-scale-codec", - "serde", - "serde_json", - "sp-core", - "sp-io", - "sp-runtime", - "sp-version", -] - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "reqwest" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f242f1488a539a79bac6dbe7c8609ae43b7914b7736210f239a37cccb32525" -dependencies = [ - "base64", - "bytes 1.1.0", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "lazy_static", - "log", - "mime", - "native-tls", - "percent-encoding 2.1.0", - "pin-project-lite 0.2.8", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "url 2.2.2", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg 0.7.0", -] - -[[package]] -name = "resolv-conf" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" -dependencies = [ - "hostname", - "quick-error 1.2.3", -] - -[[package]] -name = "retain_mut" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51dd4445360338dab5116712bee1388dc727991d51969558a8882ab552e6db30" - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin", - "untrusted", - "web-sys", - "winapi 0.3.9", -] - -[[package]] -name = "rlp" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "999508abb0ae792aabed2460c45b89106d97fe4adac593bdaef433c2605847b5" -dependencies = [ - "bytes 1.1.0", - "rustc-hex", -] - -[[package]] -name = "rocksdb" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a62eca5cacf2c8261128631bed9f045598d40bfbe4b29f5163f0f802f8f44a7" -dependencies = [ - "libc", - "librocksdb-sys", -] - -[[package]] -name = "rococo-runtime" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "beefy-primitives", - "bp-messages", - "bp-rococo", - "bp-runtime", - "bp-wococo", - "bridge-runtime-common", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", - "hex-literal", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-balances", - "pallet-beefy", - "pallet-beefy-mmr", - "pallet-bridge-dispatch", - "pallet-bridge-grandpa", - "pallet-bridge-messages", - "pallet-collective", - "pallet-grandpa", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-mmr", - "pallet-mmr-primitives", - "pallet-multisig", - "pallet-offences", - "pallet-proxy", - "pallet-session", - "pallet-staking", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-utility", - "pallet-xcm", - "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "rococo-runtime-constants", - "scale-info", - "serde", - "serde_derive", - "smallvec", - "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", - "xcm", - "xcm-builder", - "xcm-executor", -] - -[[package]] -name = "rococo-runtime-constants" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "frame-support", - "polkadot-primitives", - "polkadot-runtime-common", - "smallvec", - "sp-runtime", -] - -[[package]] -name = "rpassword" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" -dependencies = [ - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.5", -] - -[[package]] -name = "rustix" -version = "0.31.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2dcfc2778a90e38f56a708bfc90572422e11d6c7ee233d053d1f782cf9df6d2" -dependencies = [ - "bitflags", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys", - "winapi 0.3.9", -] - -[[package]] -name = "rustls" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" -dependencies = [ - "base64", - "log", - "ring", - "sct", - "webpki", -] - -[[package]] -name = "rustls-native-certs" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" -dependencies = [ - "openssl-probe", - "rustls", - "schannel", - "security-framework", -] - -[[package]] -name = "rustversion" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" - -[[package]] -name = "rw-stream-sink" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" -dependencies = [ - "futures 0.3.21", - "pin-project 0.4.29", - "static_assertions", -] - -[[package]] -name = "ryu" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" - -[[package]] -name = "salsa20" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0fbb5f676da676c260ba276a8f43a8dc67cf02d1438423aeb1c677a7212686" -dependencies = [ - "cipher", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "sc-allocator" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "log", - "sp-core", - "sp-wasm-interface", - "thiserror", -] - -[[package]] -name = "sc-authority-discovery" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "derive_more", - "futures 0.3.21", - "futures-timer", - "ip_network", - "libp2p", - "log", - "parity-scale-codec", - "prost", - "prost-build", - "rand 0.7.3", - "sc-client-api", - "sc-network", - "sp-api", - "sp-authority-discovery", - "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-basic-authorship" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "futures 0.3.21", - "futures-timer", - "log", - "parity-scale-codec", - "sc-block-builder", - "sc-client-api", - "sc-proposer-metrics", - "sc-telemetry", - "sc-transaction-pool-api", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-inherents", - "sp-runtime", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-block-builder" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "sc-client-api", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", -] - -[[package]] -name = "sc-chain-spec" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "impl-trait-for-tuples", - "memmap2 0.5.2", - "parity-scale-codec", - "sc-chain-spec-derive", - "sc-network", - "sc-telemetry", - "serde", - "serde_json", - "sp-core", - "sp-runtime", -] - -[[package]] -name = "sc-chain-spec-derive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sc-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "chrono", - "fdlimit", - "futures 0.3.21", - "hex", - "libp2p", - "log", - "names", - "parity-scale-codec", - "rand 0.7.3", - "regex", - "rpassword", - "sc-client-api", - "sc-keystore", - "sc-network", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sc-utils", - "serde", - "serde_json", - "sp-blockchain", - "sp-core", - "sp-keyring", - "sp-keystore", - "sp-panic-handler", - "sp-runtime", - "sp-version", - "structopt", - "thiserror", - "tiny-bip39", - "tokio", -] - -[[package]] -name = "sc-client-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "fnv", - "futures 0.3.21", - "hash-db", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-executor", - "sc-transaction-pool-api", - "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-database", - "sp-externalities", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-storage", - "sp-trie", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-client-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "hash-db", - "kvdb", - "kvdb-memorydb", - "kvdb-rocksdb", - "linked-hash-map", - "log", - "parity-db", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-client-api", - "sc-state-db", - "sp-arithmetic", - "sp-blockchain", - "sp-core", - "sp-database", - "sp-runtime", - "sp-state-machine", - "sp-trie", -] - -[[package]] -name = "sc-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "futures 0.3.21", - "futures-timer", - "libp2p", - "log", - "parking_lot 0.11.2", - "sc-client-api", - "sc-utils", - "serde", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "derive_more", - "futures 0.3.21", - "log", - "parity-scale-codec", - "sc-block-builder", - "sc-client-api", - "sc-consensus", - "sc-consensus-slots", - "sc-telemetry", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "derive_more", - "fork-tree", - "futures 0.3.21", - "log", - "merlin", - "num-bigint", - "num-rational 0.2.4", - "num-traits", - "parity-scale-codec", - "parking_lot 0.11.2", - "rand 0.7.3", - "retain_mut", - "sc-client-api", - "sc-consensus", - "sc-consensus-epochs", - "sc-consensus-slots", - "sc-keystore", - "sc-telemetry", - "schnorrkel", - "serde", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-consensus-slots", - "sp-consensus-vrf", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-version", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-consensus-babe-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "derive_more", - "futures 0.3.21", - "jsonrpc-core", - "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.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "fork-tree", - "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sp-blockchain", - "sp-runtime", -] - -[[package]] -name = "sc-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "futures 0.3.21", - "futures-timer", - "log", - "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sc-telemetry", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-timestamp", - "thiserror", -] - -[[package]] -name = "sc-consensus-uncles" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "sc-client-api", - "sp-authorship", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "sc-executor" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "lazy_static", - "libsecp256k1", - "log", - "lru 0.6.6", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-executor-common", - "sc-executor-wasmi", - "sc-executor-wasmtime", - "sp-api", - "sp-core", - "sp-core-hashing-proc-macro", - "sp-externalities", - "sp-io", - "sp-panic-handler", - "sp-runtime-interface", - "sp-tasks", - "sp-trie", - "sp-version", - "sp-wasm-interface", - "wasmi", -] - -[[package]] -name = "sc-executor-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "derive_more", - "environmental", - "parity-scale-codec", - "sc-allocator", - "sp-core", - "sp-maybe-compressed-blob", - "sp-serializer", - "sp-wasm-interface", - "thiserror", - "wasm-instrument", - "wasmi", -] - -[[package]] -name = "sc-executor-wasmi" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "log", - "parity-scale-codec", - "sc-allocator", - "sc-executor-common", - "scoped-tls", - "sp-core", - "sp-runtime-interface", - "sp-wasm-interface", - "wasmi", -] - -[[package]] -name = "sc-executor-wasmtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "log", - "parity-scale-codec", - "parity-wasm 0.42.2", - "sc-allocator", - "sc-executor-common", - "sp-core", - "sp-runtime-interface", - "sp-wasm-interface", - "wasmtime", -] - -[[package]] -name = "sc-finality-grandpa" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "derive_more", - "dyn-clone", - "finality-grandpa", - "fork-tree", - "futures 0.3.21", - "futures-timer", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "rand 0.8.4", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-consensus", - "sc-keystore", - "sc-network", - "sc-network-gossip", - "sc-telemetry", - "sc-utils", - "serde_json", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-finality-grandpa", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-finality-grandpa-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "derive_more", - "finality-grandpa", - "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-pubsub", - "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.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "ansi_term", - "futures 0.3.21", - "futures-timer", - "log", - "parity-util-mem", - "sc-client-api", - "sc-network", - "sc-transaction-pool-api", - "sp-blockchain", - "sp-runtime", -] - -[[package]] -name = "sc-keystore" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "derive_more", - "hex", - "parking_lot 0.11.2", - "serde_json", - "sp-application-crypto", - "sp-core", - "sp-keystore", -] - -[[package]] -name = "sc-network" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-std", - "async-trait", - "asynchronous-codec 0.5.0", - "bitflags", - "bytes 1.1.0", - "cid", - "derive_more", - "either", - "fnv", - "fork-tree", - "futures 0.3.21", - "futures-timer", - "hex", - "ip_network", - "libp2p", - "linked-hash-map", - "linked_hash_set", - "log", - "lru 0.7.2", - "parity-scale-codec", - "parking_lot 0.11.2", - "pin-project 1.0.10", - "prost", - "prost-build", - "rand 0.7.3", - "sc-block-builder", - "sc-client-api", - "sc-consensus", - "sc-peerset", - "sc-utils", - "serde", - "serde_json", - "smallvec", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-finality-grandpa", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", - "unsigned-varint 0.6.0", - "void", - "zeroize", -] - -[[package]] -name = "sc-network-gossip" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "futures 0.3.21", - "futures-timer", - "libp2p", - "log", - "lru 0.7.2", - "sc-network", - "sp-runtime", - "substrate-prometheus-endpoint", - "tracing", -] - -[[package]] -name = "sc-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "bytes 1.1.0", - "fnv", - "futures 0.3.21", - "futures-timer", - "hex", - "hyper", - "hyper-rustls", - "num_cpus", - "once_cell", - "parity-scale-codec", - "parking_lot 0.11.2", - "rand 0.7.3", - "sc-client-api", - "sc-network", - "sc-utils", - "sp-api", - "sp-core", - "sp-offchain", - "sp-runtime", - "threadpool", - "tracing", -] - -[[package]] -name = "sc-peerset" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "futures 0.3.21", - "libp2p", - "log", - "sc-utils", - "serde_json", - "wasm-timer", -] - -[[package]] -name = "sc-proposer-metrics" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "log", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "futures 0.3.21", - "hash-db", - "jsonrpc-core", - "jsonrpc-pubsub", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-rpc-api", - "sc-tracing", - "sc-transaction-pool-api", - "sc-utils", - "serde_json", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-offchain", - "sp-rpc", - "sp-runtime", - "sp-session", - "sp-version", -] - -[[package]] -name = "sc-rpc-api" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-pubsub", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-chain-spec", - "sc-transaction-pool-api", - "serde", - "serde_json", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-tracing", - "sp-version", - "thiserror", -] - -[[package]] -name = "sc-rpc-server" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-http-server", - "jsonrpc-ipc-server", - "jsonrpc-pubsub", - "jsonrpc-ws-server", - "log", - "serde_json", - "substrate-prometheus-endpoint", - "tokio", -] - -[[package]] -name = "sc-service" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "directories", - "exit-future", - "futures 0.3.21", - "futures-timer", - "hash-db", - "jsonrpc-core", - "jsonrpc-pubsub", - "log", - "parity-scale-codec", - "parity-util-mem", - "parking_lot 0.11.2", - "pin-project 1.0.10", - "rand 0.7.3", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-executor", - "sc-informant", - "sc-keystore", - "sc-network", - "sc-offchain", - "sc-rpc", - "sc-rpc-server", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sc-utils", - "serde", - "serde_json", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-externalities", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "sp-session", - "sp-state-machine", - "sp-storage", - "sp-tracing", - "sp-transaction-pool", - "sp-transaction-storage-proof", - "sp-trie", - "sp-version", - "substrate-prometheus-endpoint", - "tempfile", - "thiserror", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "sc-state-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "log", - "parity-scale-codec", - "parity-util-mem", - "parity-util-mem-derive", - "parking_lot 0.11.2", - "sc-client-api", - "sp-core", -] - -[[package]] -name = "sc-sync-state-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "parity-scale-codec", - "sc-chain-spec", - "sc-client-api", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-finality-grandpa", - "sc-rpc-api", - "serde", - "serde_json", - "sp-blockchain", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "sc-telemetry" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "chrono", - "futures 0.3.21", - "libp2p", - "log", - "parking_lot 0.11.2", - "pin-project 1.0.10", - "rand 0.7.3", - "serde", - "serde_json", - "thiserror", - "wasm-timer", -] - -[[package]] -name = "sc-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "ansi_term", - "atty", - "chrono", - "lazy_static", - "libc", - "log", - "once_cell", - "parking_lot 0.11.2", - "regex", - "rustc-hash", - "sc-client-api", - "sc-rpc-server", - "sc-tracing-proc-macro", - "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-tracing", - "thiserror", - "tracing", - "tracing-log", - "tracing-subscriber", -] - -[[package]] -name = "sc-tracing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sc-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "futures 0.3.21", - "futures-timer", - "linked-hash-map", - "log", - "parity-scale-codec", - "parity-util-mem", - "parking_lot 0.11.2", - "retain_mut", - "sc-client-api", - "sc-transaction-pool-api", - "sc-utils", - "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-runtime", - "sp-tracing", - "sp-transaction-pool", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-transaction-pool-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "derive_more", - "futures 0.3.21", - "log", - "serde", - "sp-blockchain", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "sc-utils" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "futures 0.3.21", - "futures-timer", - "lazy_static", - "parking_lot 0.11.2", - "prometheus", -] - -[[package]] -name = "scale-info" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c55b744399c25532d63a0d2789b109df8d46fc93752d46b0782991a931a782f" -dependencies = [ - "bitvec", - "cfg-if 1.0.0", - "derive_more", - "parity-scale-codec", - "scale-info-derive", - "serde", -] - -[[package]] -name = "scale-info-derive" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baeb2780690380592f86205aa4ee49815feb2acad8c2f59e6dd207148c3f1fcd" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "schannel" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" -dependencies = [ - "lazy_static", - "winapi 0.3.9", -] - -[[package]] -name = "schnorrkel" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "curve25519-dalek 2.1.3", - "getrandom 0.1.16", - "merlin", - "rand 0.7.3", - "rand_core 0.5.1", - "sha2 0.8.2", - "subtle", - "zeroize", -] - -[[package]] -name = "scoped-tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "sct" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "secrecy" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" -dependencies = [ - "zeroize", -] - -[[package]] -name = "security-framework" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" -dependencies = [ - "core-foundation-sys", - "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.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser 0.10.2", -] - -[[package]] -name = "semver" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0486718e92ec9a68fbed73bb5ef687d71103b142595b406835649bebd33f72c7" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -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.136" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.136" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" -dependencies = [ - "itoa 1.0.1", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa 1.0.1", - "ryu", - "serde", -] - -[[package]] -name = "sha-1" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - -[[package]] -name = "sha-1" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures 0.2.1", - "digest 0.9.0", - "opaque-debug 0.3.0", -] - -[[package]] -name = "sha2" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures 0.2.1", - "digest 0.9.0", - "opaque-debug 0.3.0", -] - -[[package]] -name = "sha2" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99c3bd8169c58782adad9290a9af5939994036b76187f7b4f0e6de91dbbfc0ec" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures 0.2.1", - "digest 0.10.1", -] - -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "keccak", - "opaque-debug 0.3.0", -] - -[[package]] -name = "sharded-slab" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shlex" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" - -[[package]] -name = "signal-hook" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4" - -[[package]] -name = "simba" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" -dependencies = [ - "approx", - "num-complex", - "num-traits", - "paste", -] - -[[package]] -name = "slab" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" - -[[package]] -name = "slot-range-helper" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "enumn", - "parity-scale-codec", - "paste", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "slotmap" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" -dependencies = [ - "version_check", -] - -[[package]] -name = "smallvec" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" - -[[package]] -name = "snap" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451" - -[[package]] -name = "snow" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6142f7c25e94f6fd25a32c3348ec230df9109b463f59c8c7acc4bd34936babb7" -dependencies = [ - "aes-gcm", - "blake2", - "chacha20poly1305", - "rand 0.8.4", - "rand_core 0.6.3", - "ring", - "rustc_version 0.3.3", - "sha2 0.9.9", - "subtle", - "x25519-dalek", -] - -[[package]] -name = "socket2" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "socket2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" -dependencies = [ - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "soketto" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" -dependencies = [ - "base64", - "bytes 1.1.0", - "flate2", - "futures 0.3.21", - "httparse", - "log", - "rand 0.8.4", - "sha-1 0.9.8", -] - -[[package]] -name = "sp-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "sp-api-proc-macro", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-version", - "thiserror", -] - -[[package]] -name = "sp-api-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "blake2-rfc", - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-application-crypto" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-std", -] - -[[package]] -name = "sp-arithmetic" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "integer-sqrt", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-debug-derive", - "sp-std", - "static_assertions", -] - -[[package]] -name = "sp-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-application-crypto", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "parity-scale-codec", - "sp-inherents", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-block-builder" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "sp-api", - "sp-inherents", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-blockchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "futures 0.3.21", - "log", - "lru 0.7.2", - "parity-scale-codec", - "parking_lot 0.11.2", - "sp-api", - "sp-consensus", - "sp-database", - "sp-runtime", - "sp-state-machine", - "thiserror", -] - -[[package]] -name = "sp-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "futures 0.3.21", - "futures-timer", - "log", - "parity-scale-codec", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-version", - "thiserror", -] - -[[package]] -name = "sp-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-application-crypto", - "sp-consensus", - "sp-consensus-slots", - "sp-inherents", - "sp-runtime", - "sp-std", - "sp-timestamp", -] - -[[package]] -name = "sp-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "merlin", - "parity-scale-codec", - "scale-info", - "serde", - "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", -] - -[[package]] -name = "sp-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic", - "sp-runtime", -] - -[[package]] -name = "sp-consensus-vrf" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "schnorrkel", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-core" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "base58", - "bitflags", - "blake2-rfc", - "byteorder", - "dyn-clonable", - "ed25519-dalek", - "futures 0.3.21", - "hash-db", - "hash256-std-hasher", - "hex", - "impl-serde", - "lazy_static", - "libsecp256k1", - "log", - "merlin", - "num-traits", - "parity-scale-codec", - "parity-util-mem", - "parking_lot 0.11.2", - "primitive-types", - "rand 0.7.3", - "regex", - "scale-info", - "schnorrkel", - "secrecy", - "serde", - "sha2 0.10.1", - "sp-core-hashing", - "sp-debug-derive", - "sp-externalities", - "sp-runtime-interface", - "sp-std", - "sp-storage", - "ss58-registry", - "substrate-bip39", - "thiserror", - "tiny-bip39", - "tiny-keccak", - "twox-hash", - "wasmi", - "zeroize", -] - -[[package]] -name = "sp-core-hashing" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "blake2-rfc", - "byteorder", - "sha2 0.10.1", - "sp-std", - "tiny-keccak", - "twox-hash", -] - -[[package]] -name = "sp-core-hashing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "proc-macro2", - "quote", - "sp-core-hashing", - "syn", -] - -[[package]] -name = "sp-database" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "kvdb", - "parking_lot 0.11.2", -] - -[[package]] -name = "sp-debug-derive" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-externalities" -version = "0.10.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-std", - "sp-storage", -] - -[[package]] -name = "sp-finality-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "finality-grandpa", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-inherents" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "impl-trait-for-tuples", - "parity-scale-codec", - "sp-core", - "sp-runtime", - "sp-std", - "thiserror", -] - -[[package]] -name = "sp-io" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "futures 0.3.21", - "hash-db", - "libsecp256k1", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "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 = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "lazy_static", - "sp-core", - "sp-runtime", - "strum 0.22.0", -] - -[[package]] -name = "sp-keystore" -version = "0.10.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "derive_more", - "futures 0.3.21", - "merlin", - "parity-scale-codec", - "parking_lot 0.11.2", - "schnorrkel", - "serde", - "sp-core", - "sp-externalities", -] - -[[package]] -name = "sp-maybe-compressed-blob" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "zstd", -] - -[[package]] -name = "sp-npos-elections" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic", - "sp-core", - "sp-npos-elections-solution-type", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-npos-elections-solution-type" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "sp-api", - "sp-core", - "sp-runtime", -] - -[[package]] -name = "sp-panic-handler" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "backtrace", - "lazy_static", - "regex", -] - -[[package]] -name = "sp-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "rustc-hash", - "serde", - "sp-core", -] - -[[package]] -name = "sp-runtime" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "parity-util-mem", - "paste", - "rand 0.7.3", - "scale-info", - "serde", - "sp-application-crypto", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-std", -] - -[[package]] -name = "sp-runtime-interface" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "impl-trait-for-tuples", - "parity-scale-codec", - "primitive-types", - "sp-externalities", - "sp-runtime-interface-proc-macro", - "sp-std", - "sp-storage", - "sp-tracing", - "sp-wasm-interface", - "static_assertions", -] - -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "Inflector", - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-serializer" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "sp-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-core", - "sp-runtime", - "sp-staking", - "sp-std", -] - -[[package]] -name = "sp-staking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-state-machine" -version = "0.10.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "hash-db", - "log", - "num-traits", - "parity-scale-codec", - "parking_lot 0.11.2", - "rand 0.7.3", - "smallvec", - "sp-core", - "sp-externalities", - "sp-panic-handler", - "sp-std", - "sp-trie", - "thiserror", - "tracing", - "trie-db", - "trie-root", -] - -[[package]] -name = "sp-std" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" - -[[package]] -name = "sp-storage" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive", - "sp-std", -] - -[[package]] -name = "sp-tasks" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "log", - "sp-core", - "sp-externalities", - "sp-io", - "sp-runtime-interface", - "sp-std", -] - -[[package]] -name = "sp-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "futures-timer", - "log", - "parity-scale-codec", - "sp-api", - "sp-inherents", - "sp-runtime", - "sp-std", - "thiserror", -] - -[[package]] -name = "sp-tracing" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "sp-std", - "tracing", - "tracing-core", - "tracing-subscriber", -] - -[[package]] -name = "sp-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "sp-api", - "sp-runtime", -] - -[[package]] -name = "sp-transaction-storage-proof" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-trait", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-std", - "sp-trie", -] - -[[package]] -name = "sp-trie" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "hash-db", - "memory-db", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-std", - "trie-db", - "trie-root", -] - -[[package]] -name = "sp-version" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "parity-wasm 0.42.2", - "scale-info", - "serde", - "sp-core-hashing-proc-macro", - "sp-runtime", - "sp-std", - "sp-version-proc-macro", - "thiserror", -] - -[[package]] -name = "sp-version-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "parity-scale-codec", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-wasm-interface" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "sp-std", - "wasmi", - "wasmtime", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "ss58-registry" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8319f44e20b42e5c11b88b1ad4130c35fe2974665a007b08b02322070177136a" -dependencies = [ - "Inflector", - "proc-macro2", - "quote", - "serde", - "serde_json", - "unicode-xid", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "static_init" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11b73400442027c4adedda20a9f9b7945234a5bd8d5f7e86da22bd5d0622369c" -dependencies = [ - "cfg_aliases", - "libc", - "parking_lot 0.11.2", - "static_init_macro", -] - -[[package]] -name = "static_init_macro" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2261c91034a1edc3fc4d1b80e89d82714faede0515c14a75da10cb941546bbf" -dependencies = [ - "cfg_aliases", - "memchr", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "statrs" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" -dependencies = [ - "approx", - "lazy_static", - "nalgebra", - "num-traits", - "rand 0.8.4", -] - -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "structopt" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" -dependencies = [ - "clap", - "lazy_static", - "structopt-derive", -] - -[[package]] -name = "structopt-derive" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" -dependencies = [ - "heck", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "strum" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" -dependencies = [ - "strum_macros 0.22.0", -] - -[[package]] -name = "strum" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" -dependencies = [ - "strum_macros 0.23.1", -] - -[[package]] -name = "strum_macros" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "strum_macros" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn", -] - -[[package]] -name = "substrate-bip39" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eee6965196b32f882dd2ee85a92b1dbead41b04e53907f269de3b0dc04733c" -dependencies = [ - "hmac 0.11.0", - "pbkdf2 0.8.0", - "schnorrkel", - "sha2 0.9.9", - "zeroize", -] - -[[package]] -name = "substrate-build-script-utils" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "platforms", -] - -[[package]] -name = "substrate-frame-rpc-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "frame-system-rpc-runtime-api", - "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "log", - "parity-scale-codec", - "sc-client-api", - "sc-rpc-api", - "sc-transaction-pool-api", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-core", - "sp-runtime", -] - -[[package]] -name = "substrate-prometheus-endpoint" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "async-std", - "derive_more", - "futures-util", - "hyper", - "log", - "prometheus", - "tokio", -] - -[[package]] -name = "substrate-wasm-builder" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "ansi_term", - "build-helper", - "cargo_metadata", - "sp-maybe-compressed-blob", - "tempfile", - "toml", - "walkdir", - "wasm-gc-api", -] - -[[package]] -name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - -[[package]] -name = "syn" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "target-lexicon" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fa7e55043acb85fca6b3c01485a2eeb6b69c5d21002e273c79e465f43b7ac1" - -[[package]] -name = "tempfile" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" -dependencies = [ - "cfg-if 1.0.0", - "fastrand", - "libc", - "redox_syscall 0.2.10", - "remove_dir_all", - "winapi 0.3.9", -] - -[[package]] -name = "termcolor" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - -[[package]] -name = "thiserror" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thread_local" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" -dependencies = [ - "once_cell", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "thrift" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b82ca8f46f95b3ce96081fe3dd89160fdea970c254bb72925255d1b62aae692e" -dependencies = [ - "byteorder", - "integer-encoding", - "log", - "ordered-float", - "threadpool", -] - -[[package]] -name = "time" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi 0.3.9", -] - -[[package]] -name = "tiny-bip39" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" -dependencies = [ - "anyhow", - "hmac 0.8.1", - "once_cell", - "pbkdf2 0.4.0", - "rand 0.7.3", - "rustc-hash", - "sha2 0.9.9", - "thiserror", - "unicode-normalization", - "wasm-bindgen", - "zeroize", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinyvec" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" - -[[package]] -name = "tokio" -version = "1.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" -dependencies = [ - "bytes 1.1.0", - "libc", - "memchr", - "mio 0.7.14", - "num_cpus", - "once_cell", - "pin-project-lite 0.2.8", - "signal-hook-registry", - "tokio-macros", - "winapi 0.3.9", -] - -[[package]] -name = "tokio-macros" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" -dependencies = [ - "rustls", - "tokio", - "webpki", -] - -[[package]] -name = "tokio-stream" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" -dependencies = [ - "futures-core", - "pin-project-lite 0.2.8", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" -dependencies = [ - "bytes 1.1.0", - "futures-core", - "futures-io", - "futures-sink", - "log", - "pin-project-lite 0.2.8", - "tokio", -] - -[[package]] -name = "toml" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" -dependencies = [ - "serde", -] - -[[package]] -name = "tower-service" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" - -[[package]] -name = "tracing" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d8d93354fe2a8e50d5953f5ae2e47a3fc2ef03292e7ea46e3cc38f549525fb9" -dependencies = [ - "cfg-if 1.0.0", - "pin-project-lite 0.2.8", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23" -dependencies = [ - "lazy_static", - "valuable", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project 1.0.10", - "tracing", -] - -[[package]] -name = "tracing-log" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" -dependencies = [ - "lazy_static", - "log", - "tracing-core", -] - -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" -dependencies = [ - "ansi_term", - "chrono", - "lazy_static", - "matchers", - "parking_lot 0.11.2", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", - "tracing-serde", -] - -[[package]] -name = "trie-db" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32d034c0d3db64b43c31de38e945f15b40cd4ca6d2dcfc26d4798ce8de4ab83" -dependencies = [ - "hash-db", - "hashbrown 0.12.0", - "log", - "rustc-hex", - "smallvec", -] - -[[package]] -name = "trie-root" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a36c5ca3911ed3c9a5416ee6c679042064b93fc637ded67e25f92e68d783891" -dependencies = [ - "hash-db", -] - -[[package]] -name = "trust-dns-proto" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca94d4e9feb6a181c690c4040d7a24ef34018d8313ac5044a61d21222ae24e31" -dependencies = [ - "async-trait", - "cfg-if 1.0.0", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.2.3", - "ipnet", - "lazy_static", - "log", - "rand 0.8.4", - "smallvec", - "thiserror", - "tinyvec", - "url 2.2.2", -] - -[[package]] -name = "trust-dns-resolver" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecae383baad9995efaa34ce8e57d12c3f305e545887472a492b838f4b5cfb77a" -dependencies = [ - "cfg-if 1.0.0", - "futures-util", - "ipconfig", - "lazy_static", - "log", - "lru-cache", - "parking_lot 0.11.2", - "resolv-conf", - "smallvec", - "thiserror", - "trust-dns-proto", -] - -[[package]] -name = "try-lock" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" - -[[package]] -name = "try-runtime-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" -dependencies = [ - "jsonrpsee", - "log", - "parity-scale-codec", - "remote-externalities", - "sc-chain-spec", - "sc-cli", - "sc-executor", - "sc-service", - "serde", - "sp-core", - "sp-externalities", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-version", - "structopt", - "zstd", -] - -[[package]] -name = "tt-call" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e66dcbec4290c69dd03c57e76c2469ea5c7ce109c6dd4351c13055cf71ea055" - -[[package]] -name = "twox-hash" -version = "1.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee73e6e4924fe940354b8d4d98cad5231175d615cd855b758adc658c0aac6a0" -dependencies = [ - "cfg-if 1.0.0", - "rand 0.8.4", - "static_assertions", -] - -[[package]] -name = "typenum" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" - -[[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.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f03af7ccf01dd611cc450a0d10dbc9b745770d096473e2faf0ca6e2d66d1e0" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" - -[[package]] -name = "unicode-normalization" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" - -[[package]] -name = "unicode-width" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" - -[[package]] -name = "unicode-xid" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" - -[[package]] -name = "universal-hash" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" -dependencies = [ - "generic-array 0.14.5", - "subtle", -] - -[[package]] -name = "unsigned-varint" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35" - -[[package]] -name = "unsigned-varint" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35581ff83d4101e58b582e607120c7f5ffb17e632a980b1f38334d76b36908b2" -dependencies = [ - "asynchronous-codec 0.5.0", - "bytes 1.1.0", - "futures-io", - "futures-util", -] - -[[package]] -name = "unsigned-varint" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" -dependencies = [ - "asynchronous-codec 0.6.0", - "bytes 1.1.0", - "futures-io", - "futures-util", -] - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "url" -version = "1.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" -dependencies = [ - "idna 0.1.5", - "matches", - "percent-encoding 1.0.1", -] - -[[package]] -name = "url" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" -dependencies = [ - "form_urlencoded", - "idna 0.2.3", - "matches", - "percent-encoding 2.1.0", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "value-bag" -version = "1.0.0-alpha.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263f" -dependencies = [ - "ctor", - "version_check", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - -[[package]] -name = "waker-fn" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" - -[[package]] -name = "walkdir" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" -dependencies = [ - "same-file", - "winapi 0.3.9", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "wasm-bindgen" -version = "0.2.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" -dependencies = [ - "cfg-if 1.0.0", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" -dependencies = [ - "bumpalo", - "lazy_static", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb6ec270a31b1d3c7e266b999739109abce8b6c87e4b31fcfcd788b65267395" -dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" - -[[package]] -name = "wasm-gc-api" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c32691b6c7e6c14e7f8fd55361a9088b507aa49620fcd06c09b3a1082186b9" -dependencies = [ - "log", - "parity-wasm 0.32.0", - "rustc-demangle", -] - -[[package]] -name = "wasm-instrument" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "962e5b0401bbb6c887f54e69b8c496ea36f704df65db73e81fd5ff8dc3e63a9f" -dependencies = [ - "parity-wasm 0.42.2", -] - -[[package]] -name = "wasm-timer" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" -dependencies = [ - "futures 0.3.21", - "js-sys", - "parking_lot 0.11.2", - "pin-utils", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wasmi" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca00c5147c319a8ec91ec1a0edbec31e566ce2c9cc93b3f9bb86a9efd0eb795d" -dependencies = [ - "downcast-rs", - "libc", - "memory_units", - "num-rational 0.2.4", - "num-traits", - "parity-wasm 0.42.2", - "wasmi-validation", -] - -[[package]] -name = "wasmi-validation" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "165343ecd6c018fc09ebcae280752702c9a2ef3e6f8d02f1cfcbdb53ef6d7937" -dependencies = [ - "parity-wasm 0.42.2", -] - -[[package]] -name = "wasmparser" -version = "0.81.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98930446519f63d00a836efdc22f67766ceae8dbcc1571379f2bcabc6b2b9abc" - -[[package]] -name = "wasmtime" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "414be1bc5ca12e755ffd3ff7acc3a6d1979922f8237fc34068b2156cebcc3270" -dependencies = [ - "anyhow", - "backtrace", - "bincode", - "cfg-if 1.0.0", - "cpp_demangle", - "indexmap", - "lazy_static", - "libc", - "log", - "object", - "paste", - "psm", - "rayon", - "region", - "rustc-demangle", - "serde", - "target-lexicon", - "wasmparser", - "wasmtime-cache", - "wasmtime-cranelift", - "wasmtime-environ", - "wasmtime-jit", - "wasmtime-runtime", - "winapi 0.3.9", -] - -[[package]] -name = "wasmtime-cache" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9b4cd1949206fda9241faf8c460a7d797aa1692594d3dd6bc1cbfa57ee20d0" -dependencies = [ - "anyhow", - "base64", - "bincode", - "directories-next", - "file-per-thread-logger", - "log", - "rustix", - "serde", - "sha2 0.9.9", - "toml", - "winapi 0.3.9", - "zstd", -] - -[[package]] -name = "wasmtime-cranelift" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4693d33725773615a4c9957e4aa731af57b27dca579702d1d8ed5750760f1a9" -dependencies = [ - "anyhow", - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "cranelift-native", - "cranelift-wasm", - "gimli", - "log", - "more-asserts", - "object", - "target-lexicon", - "thiserror", - "wasmparser", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-environ" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b17e47116a078b9770e6fb86cff8b9a660826623cebcfff251b047c8d8993ef" -dependencies = [ - "anyhow", - "cranelift-entity", - "gimli", - "indexmap", - "log", - "more-asserts", - "object", - "serde", - "target-lexicon", - "thiserror", - "wasmparser", - "wasmtime-types", -] - -[[package]] -name = "wasmtime-jit" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60ea5b380bdf92e32911400375aeefb900ac9d3f8e350bb6ba555a39315f2ee7" -dependencies = [ - "addr2line", - "anyhow", - "bincode", - "cfg-if 1.0.0", - "gimli", - "object", - "region", - "rustix", - "serde", - "target-lexicon", - "thiserror", - "wasmtime-environ", - "wasmtime-runtime", - "winapi 0.3.9", -] - -[[package]] -name = "wasmtime-runtime" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc7cd79937edd6e238b337608ebbcaf9c086a8457f01dfd598324f7fa56d81a" -dependencies = [ - "anyhow", - "backtrace", - "cc", - "cfg-if 1.0.0", - "indexmap", - "lazy_static", - "libc", - "log", - "mach", - "memoffset", - "more-asserts", - "rand 0.8.4", - "region", - "rustix", - "thiserror", - "wasmtime-environ", - "winapi 0.3.9", -] - -[[package]] -name = "wasmtime-types" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9e5e51a461a2cf2b69e1fc48f325b17d78a8582816e18479e8ead58844b23f8" -dependencies = [ - "cranelift-entity", - "serde", - "thiserror", - "wasmparser", -] - -[[package]] -name = "web-sys" -version = "0.3.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-roots" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" -dependencies = [ - "webpki", -] - -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - -[[package]] -name = "westend-runtime" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "beefy-primitives", - "bitvec", - "frame-benchmarking", - "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-collective", - "pallet-democracy", - "pallet-election-provider-multi-phase", - "pallet-elections-phragmen", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-mmr-primitives", - "pallet-multisig", - "pallet-nicks", - "pallet-offences", - "pallet-offences-benchmarking", - "pallet-preimage", - "pallet-proxy", - "pallet-recovery", - "pallet-scheduler", - "pallet-session", - "pallet-session-benchmarking", - "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", - "pallet-xcm", - "pallet-xcm-benchmarks", - "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "smallvec", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", - "sp-npos-elections", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder", - "westend-runtime-constants", - "xcm", - "xcm-builder", - "xcm-executor", -] - -[[package]] -name = "westend-runtime-constants" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "frame-support", - "polkadot-primitives", - "polkadot-runtime-common", - "smallvec", - "sp-runtime", -] - -[[package]] -name = "which" -version = "4.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a5a7e487e921cf220206864a94a89b6c6905bfc19f1057fa26a4cb360e5c1d2" -dependencies = [ - "either", - "lazy_static", - "libc", -] - -[[package]] -name = "widestring" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" - -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "winreg" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "winreg" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - -[[package]] -name = "wyz" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" - -[[package]] -name = "x25519-dalek" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" -dependencies = [ - "curve25519-dalek 3.2.0", - "rand_core 0.5.1", - "zeroize", -] - -[[package]] -name = "xcm" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "derivative", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "scale-info", - "xcm-procedural", -] - -[[package]] -name = "xcm-builder" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "frame-support", - "frame-system", - "log", - "pallet-transaction-payment", - "parity-scale-codec", - "polkadot-parachain", - "scale-info", - "sp-arithmetic", - "sp-io", - "sp-runtime", - "sp-std", - "xcm", - "xcm-executor", -] - -[[package]] -name = "xcm-executor" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "frame-benchmarking", - "frame-support", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "xcm", -] - -[[package]] -name = "xcm-procedural" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" -dependencies = [ - "Inflector", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "yamux" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107" -dependencies = [ - "futures 0.3.21", - "log", - "nohash-hasher", - "parking_lot 0.11.2", - "rand 0.8.4", - "static_assertions", -] - -[[package]] -name = "zeroize" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c88870063c39ee00ec285a2f8d6a966e5b6fb2becc4e8dac77ed0d370ed6006" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e8f13fef10b63c06356d65d416b070798ddabcadc10d3ece0c5be9b3c7eddb" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zstd" -version = "0.9.2+zstd.1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2390ea1bf6c038c39674f22d95f0564725fc06034a47129179810b2fc58caa54" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "4.1.3+zstd.1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e99d81b99fb3c2c2c794e3fe56c305c63d5173a16a46b5850b07c935ffc7db79" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "1.6.2+zstd.1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2daf2f248d9ea44454bfcb2516534e8b8ad2fc91bf818a1885495fc42bc8ac9f" -dependencies = [ - "cc", - "libc", -] diff --git a/pallets/asset-manager/Cargo.toml b/pallets/asset-manager/Cargo.toml new file mode 100644 index 000000000..0335cbbb0 --- /dev/null +++ b/pallets/asset-manager/Cargo.toml @@ -0,0 +1,41 @@ +[package] +authors = ['Manta Network'] +name = "pallet-asset-manager" +version = "3.1.0" +edition = "2018" +homepage = 'https://manta.network' +license = 'GPL-3.0' +repository = 'https://github.com/Manta-Network/Manta/' + + +[dependencies] +codec = { package = "parity-scale-codec", version = "2.3.1", default-features = false } +scale-info = { version = "1.0", default-features = false, features = ["derive"] } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12", default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.12", default-features = false, optional = true } + +[dev-dependencies] +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } + +[features] +default = ["std"] +std = [ + "scale-info/std", + "sp-runtime/std", + "frame-support/std", + "frame-system/std", + "sp-std/std", +] +try-runtime = [ + "frame-support/try-runtime", +] + +runtime-benchmarks = [ + "frame-benchmarking", + 'frame-support/runtime-benchmarks', + 'frame-system/runtime-benchmarks', +] + diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs new file mode 100644 index 000000000..4d26e712e --- /dev/null +++ b/pallets/asset-manager/src/lib.rs @@ -0,0 +1,290 @@ +// Copyright 2020-2022 Manta Network. +// This file is part of Manta. +// +// Manta 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. +// +// Manta 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 Manta. If not, see . + +//! # Asset Manager Pallet +//! +//! A simple asset manager for native and cross-chain tokens +//! +//! ## Overview +//! +//! The Asset manager module provides functionality for registering cross chain assets +//! +//! TODO: detailed doc-string comment + +#![cfg_attr(not(feature = "std"), no_std)] + +#[frame_support::pallet] +pub mod pallet { + use super::*; + + use codec::{Codec, HasCompact}; + use frame_support::{pallet_prelude::*, transactional, PalletId}; + use frame_system::pallet_prelude::*; + use scale_info::TypeInfo; + use sp_runtime::{ + traits::{AccountIdConversion, AtLeast32BitUnsigned, Bounded, CheckedAdd, One}, + ArithmeticError, + }; + + #[pallet::pallet] + pub struct Pallet(PhantomData); + + /// The AssetManagers's pallet id + pub const PALLET_ID: PalletId = PalletId(*b"asstmngr"); + + /// The registrar trait: defines the interface of creating an asset in the asset implementation layer. + /// We may revisit this interface design (e.g. add change asset interface). However, change StorageMetadata + /// should be rare. + pub trait AssetRegistrar { + /// + /// * `asset_id`: the asset id to be created + /// * `min_balance`: the minimum balance to hold this asset + /// * `metadata`: the metadata that the implementation layer stores + /// * `is_sufficient`: Whether this asset needs users to have an existential deposit to hold + /// this asset. + fn create_asset( + asset_id: T::AssetId, + min_balance: T::Balance, + metadata: T::StorageMetadata, + is_sufficient: bool, + ) -> DispatchResult; + } + + /// The AssetMetadata trait: + pub trait AssetMetadata { + /// Returns the minimum balance to hold this asset + fn min_balance(&self) -> T::Balance; + + /// Returns a boolean value indicating whether this asset needs an existential deposit + fn is_sufficient(&self) -> bool; + } + + #[pallet::config] + pub trait Config: frame_system::Config { + /// The overarching event type. + type Event: From> + IsType<::Event>; + + /// The asset id type, this have to be consistent with pallet-manta-pay + type AssetId: Member + + Parameter + + Default + + Copy + + HasCompact + + CheckedAdd + + Bounded + + One + + AtLeast32BitUnsigned + + MaybeSerializeDeserialize + + MaxEncodedLen + + TypeInfo; + + /// The trait we use to register Assets + type AssetRegistrar: AssetRegistrar; + + /// The units in which we record balances. + type Balance: Member + Parameter + AtLeast32BitUnsigned + Default + Copy + MaxEncodedLen; + + /// Metadata type that required in token storage: e.g. AssetMetadata in Pallet-Assets. + type StorageMetadata: Member + Parameter + Default; + + /// The Asset Metadata type stored in this pallet. + type AssetRegistrarMetadata: Member + + Parameter + + Codec + + Default + + Into + + AssetMetadata; + + /// The AssetLocation type: could be just a thin wrapper of MultiLocation + type AssetLocation: Member + Parameter + Default; + + /// The origin which may forcibly create or destroy an asset or otherwise alter privileged + /// attributes. + type ForceOrigin: EnsureOrigin; + + /// The maximum number of assets this pallet can manage + #[pallet::constant] + type Capacity: Get; + } + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + /// A new asset registered. + AssetRegistered { + asset_id: T::AssetId, + asset_address: T::AssetLocation, + metadata: T::AssetRegistrarMetadata, + }, + /// An asset has been updated. + AssetUpdated { + asset_id: T::AssetId, + asset_address: T::AssetLocation, + metadata: T::AssetRegistrarMetadata, + }, + /// Asset frozen. + AssetFrozen { asset_id: T::AssetId }, + /// Asset unfrozen. + AssetUnfrozen { asset_id: T::AssetId }, + } + + /// Error. + #[pallet::error] + pub enum Error { + /// Location already exists. + LocationAlreadyExists, + /// Error creating asset, e.g. error returned from the implementation layer. + ErrorCreatingAsset, + /// Update a non-exist asset + UpdateNonExistAsset, + } + + /// AssetId to MultiLocation Map. + /// This is mostly useful when sending an asset to a foreign location. + #[pallet::storage] + #[pallet::getter(fn asset_id_location)] + pub(super) type AssetIdLocation = + StorageMap<_, Blake2_128Concat, T::AssetId, T::AssetLocation>; + + /// MultiLocation to AssetId Map. + /// This is mostly useful when receiving an asset from a foreign location. + #[pallet::storage] + #[pallet::getter(fn location_asset_id)] + pub(super) type LocationAssetId = + StorageMap<_, Blake2_128Concat, T::AssetLocation, T::AssetId>; + + /// AssetId to AssetRegistrar Map. + #[pallet::storage] + #[pallet::getter(fn asset_id_metadata)] + pub(super) type AssetIdMetadata = + StorageMap<_, Blake2_128Concat, T::AssetId, T::AssetRegistrarMetadata>; + + /// Get the next available AssetId. + #[pallet::storage] + #[pallet::getter(fn next_asset_id)] + pub type NextAssetId = StorageValue<_, T::AssetId, ValueQuery>; + + /// XCM transfer cost for different asset. + #[pallet::storage] + pub type AssetTransferCost = StorageMap<_, Blake2_128Concat, T::AssetId, T::Balance>; + + #[pallet::call] + impl Pallet { + /// Register a new asset in the asset manager. + /// + /// * `origin`: Caller of this extrinsic, the acess control is specfied by `ForceOrigin`. + /// * `location`: Location of the asset. + /// * `metadata`: Asset metadata. + /// * `min_balance`: Minimum balance to keep an account alive, used in conjunction with `is_sufficient`. + /// * `is_sufficient`: Whether this asset needs users to have an existential deposit to hold + /// this asset. + /// + /// # + /// TODO: get actual weight + /// # + #[pallet::weight(50_000_000)] + pub fn register_asset( + origin: OriginFor, + location: T::AssetLocation, + metadata: T::AssetRegistrarMetadata, + ) -> DispatchResult { + T::ForceOrigin::ensure_origin(origin)?; + ensure!( + LocationAssetId::::get(&location).is_none(), + Error::::LocationAlreadyExists + ); + let asset_id = Self::get_next_asset_id()?; + T::AssetRegistrar::create_asset( + asset_id, + metadata.min_balance(), + metadata.clone().into(), + metadata.is_sufficient(), + ) + .map_err(|_| Error::::ErrorCreatingAsset)?; + AssetIdLocation::::insert(&asset_id, &location); + AssetIdMetadata::::insert(&asset_id, &metadata.clone()); + LocationAssetId::::insert(&location, &asset_id); + Self::deposit_event(Event::::AssetRegistered { + asset_id, + asset_address: location, + metadata, + }); + Ok(()) + } + + /// Update an asset by its asset id in the asset manager. + /// + /// * `origin`: Caller of this extrinsic, the acess control is specfied by `ForceOrigin`. + /// * `asset_id`: AssetId to be updated. + /// * `metadata_option`: `Some(meta)` to update the metadata to `meta`, `None` means no update on metadata. + /// * `location_option`: `Some(location)` to update the asset location, `None` means no update on location. + /// + /// # + /// TODO: get actual weight + /// # + #[pallet::weight(50_000_000)] + #[transactional] + pub fn update_asset( + origin: OriginFor, + asset_id: T::AssetId, + location_option: Option, + metadata_option: Option, + ) -> DispatchResult { + // check validity. + T::ForceOrigin::ensure_origin(origin)?; + ensure!( + AssetIdLocation::::contains_key(&asset_id), + Error::::UpdateNonExistAsset + ); + if let Some(location) = location_option.clone() { + ensure!( + !LocationAssetId::::contains_key(&location), + Error::::LocationAlreadyExists + ) + } + // write to the ledger state. + if let Some(location) = location_option { + let old_location = + AssetIdLocation::::get(&asset_id).ok_or(Error::::UpdateNonExistAsset)?; + LocationAssetId::::remove(&old_location); + LocationAssetId::::insert(&location, &asset_id); + AssetIdLocation::::insert(&asset_id, &location); + } + if let Some(metadata) = metadata_option { + AssetIdMetadata::::insert(&asset_id, &metadata) + } + Ok(()) + } + } + + impl Pallet { + /// Get and increment the `NextAssetID` by one. + fn get_next_asset_id() -> Result { + NextAssetId::::try_mutate(|current| -> Result { + let id = *current; + *current = current + .checked_add(&One::one()) + .ok_or(ArithmeticError::Overflow)?; + Ok(id) + }) + } + + /// The account ID of AssetManager + pub fn account_id() -> T::AccountId { + PALLET_ID.into_account() + } + } +} diff --git a/runtime/calamari/Cargo.toml b/runtime/calamari/Cargo.toml index 87bead203..ed051c882 100644 --- a/runtime/calamari/Cargo.toml +++ b/runtime/calamari/Cargo.toml @@ -77,11 +77,19 @@ xcm-builder = { git = 'https://github.com/paritytech/polkadot.git', default-feat xcm-executor = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } pallet-xcm = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } +# Third party (vendored) dependencies +orml-xtokens = { git = "https://github.com/Manta-Network/open-runtime-module-library.git", default-features = false, branch = "polkadot-v0.9.12"} + # Self dependencies manta-primitives = { path = '../primitives', default-features = false } calamari-vesting = { path = '../../pallets/vesting', default-features = false } manta-collator-selection = { path = '../../pallets/collator-selection', default-features = false } pallet-tx-pause = { path = '../../pallets/pallet-tx-pause', default-features = false } +pallet-asset-manager = { path = '../../pallets/asset-manager', default-features = false } + +[dev-dependencies] +xcm-simulator = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.12"} +polkadot-runtime-parachains = { git = 'https://github.com/paritytech/polkadot.git', branch = "release-v0.9.12" } [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] @@ -145,6 +153,7 @@ std = [ 'frame-system/std', 'frame-system-rpc-runtime-api/std', 'frame-try-runtime/std', + 'pallet-asset-manager/std', 'pallet-authorship/std', 'pallet-balances/std', 'pallet-multisig/std', @@ -156,10 +165,12 @@ std = [ 'pallet-sudo/std', 'pallet-xcm/std', 'pallet-transaction-payment/std', + 'pallet-treasury/std', 'pallet-collective/std', 'pallet-democracy/std', 'pallet-scheduler/std', 'pallet-membership/std', + 'orml-xtokens/std', 'manta-primitives/std', 'parachain-info/std', "cumulus-pallet-aura-ext/std", diff --git a/runtime/calamari/tests/xcm_mock/mod.rs b/runtime/calamari/tests/xcm_mock/mod.rs new file mode 100644 index 000000000..0fa858ad4 --- /dev/null +++ b/runtime/calamari/tests/xcm_mock/mod.rs @@ -0,0 +1,115 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +pub mod parachain; +pub mod relay_chain; + +use polkadot_parachain::primitives::Id as ParaId; +use sp_runtime::traits::AccountIdConversion; +use xcm_simulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain}; + +pub const ALICE: sp_runtime::AccountId32 = sp_runtime::AccountId32::new([0u8; 32]); +pub const INITIAL_BALANCE: u128 = 1_000_000_000; + +decl_test_parachain! { + pub struct ParaA { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(1), + } +} + +decl_test_parachain! { + pub struct ParaB { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(2), + } +} + +decl_test_relay_chain! { + pub struct Relay { + Runtime = relay_chain::Runtime, + XcmConfig = relay_chain::XcmConfig, + new_ext = relay_ext(), + } +} + +decl_test_network! { + pub struct MockNet { + relay_chain = Relay, + parachains = vec![ + (1, ParaA), + (2, ParaB), + ], + } +} + +pub fn para_account_id(id: u32) -> relay_chain::AccountId { + ParaId::from(id).into_account() +} + +pub fn para_ext(para_id: u32) -> sp_io::TestExternalities { + use parachain::{MsgQueue, Runtime, System}; + + let mut t = frame_system::GenesisConfig::default() + .build_storage::() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![(ALICE, INITIAL_BALANCE)], + } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + MsgQueue::set_para_id(para_id.into()); + }); + ext +} + +pub fn relay_ext() -> sp_io::TestExternalities { + use relay_chain::{Runtime, System}; + + let mut t = frame_system::GenesisConfig::default() + .build_storage::() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![ + (ALICE, INITIAL_BALANCE), + (para_account_id(1), INITIAL_BALANCE), + ], + } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| System::set_block_number(1)); + ext +} + +pub type RelayChainPalletXcm = pallet_xcm::Pallet; +pub type ParachainPalletXcm = pallet_xcm::Pallet; + +#[cfg(test)] +mod tests { + use super::*; +} diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs new file mode 100644 index 000000000..1bf6161a3 --- /dev/null +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -0,0 +1,365 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Parachain runtime mock. + +use codec::{Decode, Encode}; +use frame_support::{ + construct_runtime, parameter_types, + traits::{Everything, Nothing}, + weights::{constants::WEIGHT_PER_SECOND, Weight}, +}; +use sp_core::H256; +use sp_runtime::{ + testing::Header, + traits::{Hash, IdentityLookup}, + AccountId32, +}; +use sp_std::{convert::TryFrom, prelude::*}; + +use pallet_xcm::XcmPassthrough; +use polkadot_core_primitives::BlockNumber as RelayBlockNumber; +use polkadot_parachain::primitives::{ + DmpMessageHandler, Id as ParaId, Sibling, XcmpMessageFormat, XcmpMessageHandler, +}; +use xcm::{latest::prelude::*, VersionedXcm}; +use xcm_builder::{ + AccountId32Aliases, AllowUnpaidExecutionFrom, CurrencyAdapter as XcmCurrencyAdapter, + EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, IsConcrete, LocationInverter, + NativeAsset, ParentIsDefault, SiblingParachainConvertsVia, SignedAccountId32AsNative, + SignedToAccountId32, SovereignSignedViaLocation, +}; +use xcm_executor::{Config, XcmExecutor}; + +pub type AccountId = AccountId32; +pub type Balance = u128; + +parameter_types! { + pub const BlockHashCount: u64 = 250; +} + +impl frame_system::Config for Runtime { + type Origin = Origin; + type Call = Call; + type Index = u64; + type BlockNumber = u64; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type Header = Header; + type Event = Event; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); +} + +parameter_types! { + pub ExistentialDeposit: Balance = 1; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type Event = Event; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = WEIGHT_PER_SECOND / 4; + pub const ReservedDmpWeight: Weight = WEIGHT_PER_SECOND / 4; +} + +parameter_types! { + pub const KsmLocation: MultiLocation = MultiLocation::parent(); + pub const RelayNetwork: NetworkId = NetworkId::Kusama; + pub Ancestry: MultiLocation = Parachain(MsgQueue::parachain_id().into()).into(); +} + +/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// when determining ownership of accounts for asset transacting and when attempting to use XCM +/// `Transact` in order to determine the dispatch Origin. +pub type LocationToAccountId = ( + // The parent (Relay-chain) origin converts to the default `AccountId`. + ParentIsDefault, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + AccountId32Aliases, +); + +/// This is the type to convert an (incoming) XCM origin into a local `Origin` instance, +/// ready for dispatching a transaction with Xcm's `Transact`. +/// It uses some Rust magic macro to do the pattern matching sequentially. +/// There is an `OriginKind` which can biases the kind of local `Origin` it will become. +pub type XcmOriginToCallOrigin = ( + // Sovereign account converter; this attempts to derive an `AccountId` from the origin location + // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for + // foreign chains who want to have a local sovereign account on this chain which they control. + SovereignSignedViaLocation, + // If the incoming XCM origin is of type `AccountId32` and the Network is Network::Any + // or `RelayNetwork`, convert it to a Native 32 byte account. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + XcmPassthrough, +); + +parameter_types! { + pub const UnitWeightCost: Weight = 1; + pub KsmPerSecond: (AssetId, u128) = (Concrete(Parent.into()), 1); + pub const MaxInstructions: u32 = 100; +} + +pub type LocalAssetTransactor = + XcmCurrencyAdapter, LocationToAccountId, AccountId, ()>; + +pub type XcmRouter = super::ParachainXcmRouter; +pub type Barrier = AllowUnpaidExecutionFrom; + +pub struct XcmConfig; +impl Config for XcmConfig { + type Call = Call; + type XcmSender = XcmRouter; + type AssetTransactor = LocalAssetTransactor; + type OriginConverter = XcmOriginToCallOrigin; + type IsReserve = NativeAsset; + type IsTeleporter = (); + type LocationInverter = LocationInverter; + type Barrier = Barrier; + type Weigher = FixedWeightBounds; + // Trader is the means to purchasing weight credit for XCM execution. + // We need customize this. + // + // Moonbase uses the following logic: + // When receiving the self-reserve asset, they use pallet-transaction-payment. + // When receiving a non-reserve asset, they use AssetManager to fetch how many + // units per second we should charge. + // + // type Trader = ( + // UsingComponents< + // IdentityFee, + // SelfReserve, + // AccountId, + // Balances, + // DealWithFees, + // >, + // FirstAssetTrader, + // ); + type Trader = FixedRateOfFungible; + type ResponseHandler = (); + type AssetTrap = (); + type AssetClaims = (); + type SubscriptionService = (); +} + +#[frame_support::pallet] +pub mod mock_msg_queue { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type Event: From> + IsType<::Event>; + type XcmExecutor: ExecuteXcm; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + #[pallet::generate_store(pub(super) trait Store)] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn parachain_id)] + pub(super) type ParachainId = StorageValue<_, ParaId, ValueQuery>; + + #[pallet::storage] + #[pallet::getter(fn received_dmp)] + /// A queue of received DMP messages + pub(super) type ReceivedDmp = StorageValue<_, Vec>, ValueQuery>; + + impl Get for Pallet { + fn get() -> ParaId { + Self::parachain_id() + } + } + + pub type MessageId = [u8; 32]; + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + Success(Option), + /// Some XCM failed. + Fail(Option, XcmError), + /// Bad XCM version used. + BadVersion(Option), + /// Bad XCM format used. + BadFormat(Option), + + // DMP + /// Downward message is invalid XCM. + InvalidFormat(MessageId), + /// Downward message is unsupported version of XCM. + UnsupportedVersion(MessageId), + /// Downward message executed with the given outcome. + ExecutedDownward(MessageId, Outcome), + } + + impl Pallet { + pub fn set_para_id(para_id: ParaId) { + ParachainId::::put(para_id); + } + + fn handle_xcmp_message( + sender: ParaId, + _sent_at: RelayBlockNumber, + xcm: VersionedXcm, + max_weight: Weight, + ) -> Result { + let hash = Encode::using_encoded(&xcm, T::Hashing::hash); + let (result, event) = match Xcm::::try_from(xcm) { + Ok(xcm) => { + let location = (1, Parachain(sender.into())); + match T::XcmExecutor::execute_xcm(location, xcm, max_weight) { + Outcome::Error(e) => (Err(e.clone()), Event::Fail(Some(hash), e)), + Outcome::Complete(w) => (Ok(w), Event::Success(Some(hash))), + // As far as the caller is concerned, this was dispatched without error, so + // we just report the weight used. + Outcome::Incomplete(w, e) => (Ok(w), Event::Fail(Some(hash), e)), + } + } + Err(()) => ( + Err(XcmError::UnhandledXcmVersion), + Event::BadVersion(Some(hash)), + ), + }; + Self::deposit_event(event); + result + } + } + + impl XcmpMessageHandler for Pallet { + fn handle_xcmp_messages<'a, I: Iterator>( + iter: I, + max_weight: Weight, + ) -> Weight { + for (sender, sent_at, data) in iter { + let mut data_ref = data; + let _ = XcmpMessageFormat::decode(&mut data_ref) + .expect("Simulator encodes with versioned xcm format; qed"); + + let mut remaining_fragments = &data_ref[..]; + while !remaining_fragments.is_empty() { + if let Ok(xcm) = VersionedXcm::::decode(&mut remaining_fragments) { + let _ = Self::handle_xcmp_message(sender, sent_at, xcm, max_weight); + } else { + debug_assert!(false, "Invalid incoming XCMP message data"); + } + } + } + max_weight + } + } + + impl DmpMessageHandler for Pallet { + fn handle_dmp_messages( + iter: impl Iterator)>, + limit: Weight, + ) -> Weight { + for (_i, (_sent_at, data)) in iter.enumerate() { + let id = sp_io::hashing::blake2_256(&data[..]); + let maybe_msg = + VersionedXcm::::decode(&mut &data[..]).map(Xcm::::try_from); + match maybe_msg { + Err(_) => { + Self::deposit_event(Event::InvalidFormat(id)); + } + Ok(Err(())) => { + Self::deposit_event(Event::UnsupportedVersion(id)); + } + Ok(Ok(x)) => { + let outcome = T::XcmExecutor::execute_xcm(Parent, x.clone(), limit); + >::append(x); + Self::deposit_event(Event::ExecutedDownward(id, outcome)); + } + } + } + limit + } + } +} + +impl mock_msg_queue::Config for Runtime { + type Event = Event; + type XcmExecutor = XcmExecutor; +} + +pub type LocalOriginToLocation = SignedToAccountId32; + +impl pallet_xcm::Config for Runtime { + type Event = Event; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = Everything; + type XcmExecutor = XcmExecutor; + // Do not allow teleports + type XcmTeleportFilter = Nothing; + type XcmReserveTransferFilter = Everything; + type Weigher = FixedWeightBounds; + type LocationInverter = LocationInverter; + type Origin = Origin; + type Call = Call; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + // May consider using a customized one like Moonbase to test runtime upgrades + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; +} + +type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; +type Block = frame_system::mocking::MockBlock; + +construct_runtime!( + pub enum Runtime where + Block = Block, + NodeBlock = Block, + UncheckedExtrinsic = UncheckedExtrinsic, + { + System: frame_system::{Pallet, Call, Storage, Config, Event}, + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, + MsgQueue: mock_msg_queue::{Pallet, Storage, Event}, + PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin}, + } +); diff --git a/runtime/calamari/tests/xcm_mock/relay_chain.rs b/runtime/calamari/tests/xcm_mock/relay_chain.rs new file mode 100644 index 000000000..3b561cea2 --- /dev/null +++ b/runtime/calamari/tests/xcm_mock/relay_chain.rs @@ -0,0 +1,228 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Relay chain runtime mock. + +use frame_support::{ + construct_runtime, parameter_types, + traits::{Everything, Nothing}, + weights::Weight, +}; +use sp_core::H256; +use sp_runtime::{testing::Header, traits::IdentityLookup, AccountId32}; + +use polkadot_parachain::primitives::Id as ParaId; +use polkadot_runtime_parachains::{configuration, origin, shared, ump}; +use xcm::latest::prelude::*; +use xcm_builder::{ + AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, ChildParachainAsNative, ChildParachainConvertsVia, + ChildSystemParachainAsSuperuser, CurrencyAdapter as XcmCurrencyAdapter, FixedRateOfFungible, + FixedWeightBounds, IsConcrete, LocationInverter, SignedAccountId32AsNative, + SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, +}; +use xcm_executor::{Config, XcmExecutor}; +pub type AccountId = AccountId32; +pub type Balance = u128; + +parameter_types! { + pub const BlockHashCount: u64 = 250; +} + +impl frame_system::Config for Runtime { + type Origin = Origin; + type Call = Call; + type Index = u64; + type BlockNumber = u64; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type Header = Header; + type Event = Event; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); +} + +parameter_types! { + pub ExistentialDeposit: Balance = 1; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type Event = Event; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; +} + +impl pallet_utility::Config for Runtime { + type Event = Event; + type Call = Call; + type WeightInfo = (); +} + +impl shared::Config for Runtime {} + +impl configuration::Config for Runtime { + type WeightInfo = configuration::TestWeightInfo; +} + +parameter_types! { + pub const KsmLocation: MultiLocation = Here.into(); + pub const KusamaNetwork: NetworkId = NetworkId::Kusama; + pub const AnyNetwork: NetworkId = NetworkId::Any; + pub Ancestry: MultiLocation = Here.into(); + pub UnitWeightCost: Weight = 1_000; +} + +pub type SovereignAccountOf = ( + ChildParachainConvertsVia, + AccountId32Aliases, +); + +pub type LocalAssetTransactor = + XcmCurrencyAdapter, SovereignAccountOf, AccountId, ()>; + +type LocalOriginConverter = ( + SovereignSignedViaLocation, + ChildParachainAsNative, + SignedAccountId32AsNative, + ChildSystemParachainAsSuperuser, +); + +parameter_types! { + pub const BaseXcmWeight: Weight = 1_000; + pub KsmPerSecond: (AssetId, u128) = (Concrete(KsmLocation::get()), 1); + pub const MaxInstructions: u32 = 100; +} + +pub type XcmRouter = super::RelayChainXcmRouter; +pub type Barrier = ( + TakeWeightCredit, + AllowTopLevelPaidExecutionFrom, + // Expected responses are OK. + AllowKnownQueryResponses, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, +); + +pub struct XcmConfig; +impl Config for XcmConfig { + type Call = Call; + type XcmSender = XcmRouter; + type AssetTransactor = LocalAssetTransactor; + type OriginConverter = LocalOriginConverter; + type IsReserve = (); + type IsTeleporter = (); + type LocationInverter = LocationInverter; + type Barrier = Barrier; + type Weigher = FixedWeightBounds; + type Trader = FixedRateOfFungible; + type ResponseHandler = XcmPallet; + type AssetTrap = XcmPallet; + type AssetClaims = XcmPallet; + type SubscriptionService = XcmPallet; +} + +pub type LocalOriginToLocation = SignedToAccountId32; + +impl pallet_xcm::Config for Runtime { + type Event = Event; + type SendXcmOrigin = xcm_builder::EnsureXcmOrigin; + type XcmRouter = XcmRouter; + // Anyone can execute XCM messages locally... + type ExecuteXcmOrigin = xcm_builder::EnsureXcmOrigin; + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Everything; + type Weigher = FixedWeightBounds; + type LocationInverter = LocationInverter; + type Origin = Origin; + type Call = Call; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; +} + +parameter_types! { + pub const FirstMessageFactorPercent: u64 = 100; +} + +impl ump::Config for Runtime { + type Event = Event; + type UmpSink = ump::XcmSink, Runtime>; + type FirstMessageFactorPercent = FirstMessageFactorPercent; + type ExecuteOverweightOrigin = frame_system::EnsureRoot; +} + +impl origin::Config for Runtime {} + +type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; +type Block = frame_system::mocking::MockBlock; + +construct_runtime!( + pub enum Runtime where + Block = Block, + NodeBlock = Block, + UncheckedExtrinsic = UncheckedExtrinsic, + { + System: frame_system::{Pallet, Call, Storage, Config, Event}, + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, + ParasOrigin: origin::{Pallet, Origin}, + ParasUmp: ump::{Pallet, Call, Storage, Event}, + XcmPallet: pallet_xcm::{Pallet, Call, Storage, Event, Origin}, + Utility: pallet_utility::{Pallet, Call, Event}, + } +); + +pub(crate) fn relay_events() -> Vec { + System::events() + .into_iter() + .map(|r| r.event) + .filter_map(|e| Some(e)) + .collect::>() +} + +use frame_support::traits::{OnFinalize, OnInitialize}; +pub(crate) fn relay_roll_to(n: u64) { + while System::block_number() < n { + XcmPallet::on_finalize(System::block_number()); + Balances::on_finalize(System::block_number()); + System::on_finalize(System::block_number()); + System::set_block_number(System::block_number() + 1); + System::on_initialize(System::block_number()); + Balances::on_initialize(System::block_number()); + XcmPallet::on_initialize(System::block_number()); + } +} diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs new file mode 100644 index 000000000..ba57ef7f0 --- /dev/null +++ b/runtime/calamari/tests/xcm_tests.rs @@ -0,0 +1,234 @@ +mod xcm_mock; + +use codec::Encode; +use frame_support::assert_ok; +use xcm::latest::prelude::*; +use xcm_mock::*; +use xcm_simulator::TestExt; + +// Helper function for forming buy execution message +fn buy_execution(fees: impl Into) -> Instruction { + BuyExecution { + fees: fees.into(), + weight_limit: Unlimited, + } +} + +#[test] +fn dmp() { + MockNet::reset(); + + let remark = parachain::Call::System( + frame_system::Call::::remark_with_event { + remark: vec![1, 2, 3], + }, + ); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::send_xcm( + Here, + Parachain(1), + Xcm(vec![Transact { + origin_type: OriginKind::SovereignAccount, + require_weight_at_most: INITIAL_BALANCE as u64, + call: remark.encode().into(), + }]), + )); + }); + + ParaA::execute_with(|| { + use parachain::{Event, System}; + assert!(System::events() + .iter() + .any(|r| matches!(r.event, Event::System(frame_system::Event::Remarked { .. })))); + }); +} + +#[test] +fn ump() { + MockNet::reset(); + + let remark = relay_chain::Call::System( + frame_system::Call::::remark_with_event { + remark: vec![1, 2, 3], + }, + ); + ParaA::execute_with(|| { + assert_ok!(ParachainPalletXcm::send_xcm( + Here, + Parent, + Xcm(vec![Transact { + origin_type: OriginKind::SovereignAccount, + require_weight_at_most: INITIAL_BALANCE as u64, + call: remark.encode().into(), + }]), + )); + }); + + Relay::execute_with(|| { + use relay_chain::{Event, System}; + assert!(System::events() + .iter() + .any(|r| matches!(r.event, Event::System(frame_system::Event::Remarked { .. })))); + }); +} + +#[test] +fn xcmp() { + MockNet::reset(); + + let remark = parachain::Call::System( + frame_system::Call::::remark_with_event { + remark: vec![1, 2, 3], + }, + ); + ParaA::execute_with(|| { + assert_ok!(ParachainPalletXcm::send_xcm( + Here, + (Parent, Parachain(2)), + Xcm(vec![Transact { + origin_type: OriginKind::SovereignAccount, + require_weight_at_most: INITIAL_BALANCE as u64, + call: remark.encode().into(), + }]), + )); + }); + + ParaB::execute_with(|| { + use parachain::{Event, System}; + assert!(System::events() + .iter() + .any(|r| matches!(r.event, Event::System(frame_system::Event::Remarked { .. })))); + }); +} + +#[test] +fn reserve_transfer() { + MockNet::reset(); + + let withdraw_amount = 123; + + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::Origin::signed(ALICE), + Box::new(X1(Parachain(1)).into().into()), + Box::new( + X1(AccountId32 { + network: Any, + id: ALICE.into() + }) + .into() + .into() + ), + Box::new((Here, withdraw_amount).into()), + 0, + )); + assert_eq!( + parachain::Balances::free_balance(¶_account_id(1)), + INITIAL_BALANCE + withdraw_amount + ); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!( + pallet_balances::Pallet::::free_balance(&ALICE), + INITIAL_BALANCE + withdraw_amount + ); + }); +} + +/// Scenario: +/// A parachain transfers funds on the relay chain to another parachain account. +/// +/// Asserts that the parachain accounts are updated as expected. +#[test] +fn withdraw_and_deposit() { + MockNet::reset(); + + let send_amount = 10; + + ParaA::execute_with(|| { + let message = Xcm(vec![ + WithdrawAsset((Here, send_amount).into()), + buy_execution((Here, send_amount)), + DepositAsset { + assets: All.into(), + max_assets: 1, + beneficiary: Parachain(2).into(), + }, + ]); + // Send withdraw and deposit + assert_ok!(ParachainPalletXcm::send_xcm(Here, Parent, message.clone())); + }); + + Relay::execute_with(|| { + assert_eq!( + relay_chain::Balances::free_balance(para_account_id(1)), + INITIAL_BALANCE - send_amount + ); + assert_eq!( + relay_chain::Balances::free_balance(para_account_id(2)), + send_amount + ); + }); +} + +/// Scenario: +/// A parachain wants to be notified that a transfer worked correctly. +/// It sends a `QueryHolding` after the deposit to get notified on success. +/// +/// Asserts that the balances are updated correctly and the expected XCM is sent. +#[test] +fn query_holding() { + MockNet::reset(); + + let send_amount = 10; + let query_id_set = 1234; + + // Send a message which fully succeeds on the relay chain + ParaA::execute_with(|| { + let message = Xcm(vec![ + WithdrawAsset((Here, send_amount).into()), + buy_execution((Here, send_amount)), + DepositAsset { + assets: All.into(), + max_assets: 1, + beneficiary: Parachain(2).into(), + }, + QueryHolding { + query_id: query_id_set, + dest: Parachain(1).into(), + assets: All.into(), + max_response_weight: 1_000_000_000, + }, + ]); + // Send withdraw and deposit with query holding + assert_ok!(ParachainPalletXcm::send_xcm(Here, Parent, message.clone(),)); + }); + + // Check that transfer was executed + Relay::execute_with(|| { + // Withdraw executed + assert_eq!( + relay_chain::Balances::free_balance(para_account_id(1)), + INITIAL_BALANCE - send_amount + ); + // Deposit executed + assert_eq!( + relay_chain::Balances::free_balance(para_account_id(2)), + send_amount + ); + }); + + // Check that QueryResponse message was received + ParaA::execute_with(|| { + assert_eq!( + parachain::MsgQueue::received_dmp(), + vec![Xcm(vec![QueryResponse { + query_id: query_id_set, + response: Response::Assets(MultiAssets::new()), + max_weight: 1_000_000_000, + }])], + ); + }); +} diff --git a/runtime/primitives/src/lib.rs b/runtime/primitives/src/lib.rs index f484d715a..a8b2db530 100644 --- a/runtime/primitives/src/lib.rs +++ b/runtime/primitives/src/lib.rs @@ -59,3 +59,6 @@ pub type AuraId = sp_consensus_aura::sr25519::AuthorityId; // Moment pub type Moment = u64; + +// AssetId +pub type AssetId = u32; From 45a79ca7fc2cc09661ec0772ccd3f22c2aeded99 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Tue, 15 Feb 2022 18:20:02 -0700 Subject: [PATCH 02/33] add MultiNativeAsset as FilterAssetLocation --- runtime/calamari/tests/xcm_mock/mod.rs | 5 -- runtime/calamari/tests/xcm_mock/parachain.rs | 38 +++++++++++-- runtime/primitives/Cargo.toml | 2 + runtime/primitives/src/lib.rs | 2 + runtime/primitives/src/xcm.rs | 60 ++++++++++++++++++++ 5 files changed, 98 insertions(+), 9 deletions(-) create mode 100644 runtime/primitives/src/xcm.rs diff --git a/runtime/calamari/tests/xcm_mock/mod.rs b/runtime/calamari/tests/xcm_mock/mod.rs index 0fa858ad4..7bcdb8e56 100644 --- a/runtime/calamari/tests/xcm_mock/mod.rs +++ b/runtime/calamari/tests/xcm_mock/mod.rs @@ -108,8 +108,3 @@ pub fn relay_ext() -> sp_io::TestExternalities { pub type RelayChainPalletXcm = pallet_xcm::Pallet; pub type ParachainPalletXcm = pallet_xcm::Pallet; - -#[cfg(test)] -mod tests { - use super::*; -} diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index 1bf6161a3..059136734 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -17,6 +17,7 @@ //! Parachain runtime mock. use codec::{Decode, Encode}; +use frame_system::EnsureRoot; use frame_support::{ construct_runtime, parameter_types, traits::{Everything, Nothing}, @@ -39,13 +40,15 @@ use xcm::{latest::prelude::*, VersionedXcm}; use xcm_builder::{ AccountId32Aliases, AllowUnpaidExecutionFrom, CurrencyAdapter as XcmCurrencyAdapter, EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, IsConcrete, LocationInverter, - NativeAsset, ParentIsDefault, SiblingParachainConvertsVia, SignedAccountId32AsNative, + ParentIsDefault, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, }; use xcm_executor::{Config, XcmExecutor}; +use manta_primitives::MultiNativeAsset; pub type AccountId = AccountId32; pub type Balance = u128; +pub type AssetId = u32; // Manta plans to use u32 as AssetId parameter_types! { pub const BlockHashCount: u64 = 250; @@ -106,6 +109,30 @@ parameter_types! { pub Ancestry: MultiLocation = Parachain(MsgQueue::parachain_id().into()).into(); } +parameter_types! { + pub const AssetDeposit: Balance = 0; // Does not really matter as this will be only called by root + pub const ApprovalDeposit: Balance = 0; + pub const AssetsStringLimit: u32 = 50; + pub const MetadataDepositBase: Balance = 0; + pub const MetadataDepositPerByte: Balance = 0; +} + +impl pallet_assets::Config for Runtime { + type Event = Event; + type Balance = Balance; + type AssetId = AssetId; + type Currency = Balances; + type ForceOrigin = EnsureRoot; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type WeightInfo = pallet_assets::weights::SubstrateWeight; +} + /// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used /// when determining ownership of accounts for asset transacting and when attempting to use XCM /// `Transact` in order to determine the dispatch Origin. @@ -135,7 +162,7 @@ pub type XcmOriginToCallOrigin = ( parameter_types! { pub const UnitWeightCost: Weight = 1; - pub KsmPerSecond: (AssetId, u128) = (Concrete(Parent.into()), 1); + pub KsmPerSecond: (xcm::v1::AssetId, u128) = (Concrete(Parent.into()), 1); pub const MaxInstructions: u32 = 100; } @@ -149,9 +176,11 @@ pub struct XcmConfig; impl Config for XcmConfig { type Call = Call; type XcmSender = XcmRouter; + // Defines how to withdraw and deposit an asset. type AssetTransactor = LocalAssetTransactor; type OriginConverter = XcmOriginToCallOrigin; - type IsReserve = NativeAsset; + // Combinations of (Location, Asset) pairs which we trust as reserves. + type IsReserve = MultiNativeAsset; type IsTeleporter = (); type LocationInverter = LocationInverter; type Barrier = Barrier; @@ -159,7 +188,7 @@ impl Config for XcmConfig { // Trader is the means to purchasing weight credit for XCM execution. // We need customize this. // - // Moonbase uses the following logic: + // Moonbase mock runtime uses the following logic: // When receiving the self-reserve asset, they use pallet-transaction-payment. // When receiving a non-reserve asset, they use AssetManager to fetch how many // units per second we should charge. @@ -358,6 +387,7 @@ construct_runtime!( UncheckedExtrinsic = UncheckedExtrinsic, { System: frame_system::{Pallet, Call, Storage, Config, Event}, + Assets: pallet_assets::{Pallet, Storage, Event}, Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, MsgQueue: mock_msg_queue::{Pallet, Storage, Event}, PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin}, diff --git a/runtime/primitives/Cargo.toml b/runtime/primitives/Cargo.toml index d128e5bc8..06d896533 100644 --- a/runtime/primitives/Cargo.toml +++ b/runtime/primitives/Cargo.toml @@ -20,6 +20,8 @@ sp-core = { git = 'https://github.com/paritytech/substrate.git', default-feature sp-std = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } sp-io = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } sp-runtime = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } +xcm-executor = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16"} +xcm = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } [features] default = ["std"] diff --git a/runtime/primitives/src/lib.rs b/runtime/primitives/src/lib.rs index a8b2db530..4d596f8cd 100644 --- a/runtime/primitives/src/lib.rs +++ b/runtime/primitives/src/lib.rs @@ -20,7 +20,9 @@ #![cfg_attr(not(feature = "std"), no_std)] pub mod constants; +mod xcm; pub use constants::time; +pub use crate::xcm::MultiNativeAsset; use sp_runtime::traits::{BlakeTwo256, IdentifyAccount, Verify}; diff --git a/runtime/primitives/src/xcm.rs b/runtime/primitives/src/xcm.rs new file mode 100644 index 000000000..9f86bdbb8 --- /dev/null +++ b/runtime/primitives/src/xcm.rs @@ -0,0 +1,60 @@ +// Copyright 2020-2021 Manta Network. +// This file is part of Manta. +// +// Manta 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. +// +// Manta 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 Manta. If not, see . + +use xcm_executor::traits::FilterAssetLocation; +use xcm::v1::{ + MultiAsset, MultiLocation, AssetId as xcmAssetId, + Junction::Parachain, + Junctions::* +}; + +pub trait Reserve { + /// Returns assets reserve location. + fn reserve(&self) -> Option; +} + +// Takes the chain part of a MultiAsset +impl Reserve for MultiAsset { + fn reserve(&self) -> Option { + // We only care about concrete location now. + if let xcmAssetId::Concrete(location) = self.id.clone() { + let first_interior = location.first_interior(); + let parents = location.parent_count(); + match (parents, first_interior.clone()) { + (0, Some(Parachain(id))) => Some(MultiLocation::new(0, X1(Parachain(id.clone())))), + (1, Some(Parachain(id))) => Some(MultiLocation::new(1, X1(Parachain(id.clone())))), + (1, _) => Some(MultiLocation::parent()), + _ => None, + } + } else { + None + } + } +} + +/// A `FilterAssetLocation` implementation. Filters multi native assets whose +/// reserve is same with `origin`. +pub struct MultiNativeAsset; +impl FilterAssetLocation for MultiNativeAsset { + fn filter_asset_location(asset: &MultiAsset, origin: &MultiLocation) -> bool { + if let Some(ref reserve) = asset.reserve() { + if reserve == origin { + return true; + } + } + false + } +} From 63c1859d7c24a65a07698d977d91ee995bd5ae13 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Thu, 27 Jan 2022 20:39:26 -0500 Subject: [PATCH 03/33] relay chain to parachain transfer works (without fee) --- pallets/asset-manager/Cargo.toml | 1 + pallets/asset-manager/src/lib.rs | 24 ++-- runtime/calamari/tests/xcm_mock/parachain.rs | 117 ++++++++++++++++-- .../calamari/tests/xcm_mock/relay_chain.rs | 2 +- runtime/calamari/tests/xcm_tests.rs | 29 ++++- runtime/primitives/Cargo.toml | 2 + runtime/primitives/src/assets.rs | 97 +++++++++++++++ runtime/primitives/src/lib.rs | 2 + 8 files changed, 256 insertions(+), 18 deletions(-) create mode 100644 runtime/primitives/src/assets.rs diff --git a/pallets/asset-manager/Cargo.toml b/pallets/asset-manager/Cargo.toml index 0335cbbb0..a2171bb86 100644 --- a/pallets/asset-manager/Cargo.toml +++ b/pallets/asset-manager/Cargo.toml @@ -16,6 +16,7 @@ frame-support = { git = "https://github.com/paritytech/substrate", branch = "pol frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12", default-features = false } sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12", default-features = false } frame-benchmarking = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.12", default-features = false, optional = true } +manta-primitives = { path = '../../runtime/primitives', default-features = false} [dev-dependencies] sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index 4d26e712e..2f977b53f 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -26,6 +26,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +pub use pallet::*; + #[frame_support::pallet] pub mod pallet { use super::*; @@ -38,6 +40,7 @@ pub mod pallet { traits::{AccountIdConversion, AtLeast32BitUnsigned, Bounded, CheckedAdd, One}, ArithmeticError, }; + use manta_primitives::AssetIdLocationGetter; #[pallet::pallet] pub struct Pallet(PhantomData); @@ -72,6 +75,17 @@ pub mod pallet { fn is_sufficient(&self) -> bool; } + /// Convert AssetId and AssetLocation + impl AssetIdLocationGetter for Pallet{ + fn get_asset_id(loc: T::AssetLocation) -> Option{ + LocationAssetId::::get(loc) + } + + fn get_asset_location(id: T::AssetId) -> Option{ + AssetIdLocation::::get(id) + } + } + #[pallet::config] pub trait Config: frame_system::Config { /// The overarching event type. @@ -113,11 +127,7 @@ pub mod pallet { /// The origin which may forcibly create or destroy an asset or otherwise alter privileged /// attributes. - type ForceOrigin: EnsureOrigin; - - /// The maximum number of assets this pallet can manage - #[pallet::constant] - type Capacity: Get; + type ModifierOrigin: EnsureOrigin; } #[pallet::event] @@ -201,7 +211,7 @@ pub mod pallet { location: T::AssetLocation, metadata: T::AssetRegistrarMetadata, ) -> DispatchResult { - T::ForceOrigin::ensure_origin(origin)?; + T::ModifierOrigin::ensure_origin(origin)?; ensure!( LocationAssetId::::get(&location).is_none(), Error::::LocationAlreadyExists @@ -244,7 +254,7 @@ pub mod pallet { metadata_option: Option, ) -> DispatchResult { // check validity. - T::ForceOrigin::ensure_origin(origin)?; + T::ModifierOrigin::ensure_origin(origin)?; ensure!( AssetIdLocation::::contains_key(&asset_id), Error::::UpdateNonExistAsset diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index 059136734..aed303aa4 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -23,13 +23,15 @@ use frame_support::{ traits::{Everything, Nothing}, weights::{constants::WEIGHT_PER_SECOND, Weight}, }; -use sp_core::H256; +use pallet_asset_manager::AssetMetadata; +use sp_core::{H256, H160}; use sp_runtime::{ testing::Header, traits::{Hash, IdentityLookup}, AccountId32, }; use sp_std::{convert::TryFrom, prelude::*}; +use scale_info::TypeInfo; use pallet_xcm::XcmPassthrough; use polkadot_core_primitives::BlockNumber as RelayBlockNumber; @@ -41,10 +43,10 @@ use xcm_builder::{ AccountId32Aliases, AllowUnpaidExecutionFrom, CurrencyAdapter as XcmCurrencyAdapter, EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, IsConcrete, LocationInverter, ParentIsDefault, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, + SignedToAccountId32, SovereignSignedViaLocation, ConvertedConcreteAssetId, FungiblesAdapter }; -use xcm_executor::{Config, XcmExecutor}; -use manta_primitives::MultiNativeAsset; +use xcm_executor::{Config, XcmExecutor, traits::JustTry}; +use manta_primitives::{MultiNativeAsset, AssetIdLocationConvert, AssetLocation}; pub type AccountId = AccountId32; pub type Balance = u128; @@ -166,8 +168,31 @@ parameter_types! { pub const MaxInstructions: u32 = 100; } -pub type LocalAssetTransactor = - XcmCurrencyAdapter, LocationToAccountId, AccountId, ()>; +// pub type LocalAssetTransactor = +// XcmCurrencyAdapter< +// // Transacting native currency, i.e. MANTA, KMA, DOL +// Balances, +// IsConcrete, +// LocationToAccountId, +// AccountId, +// ()>; + +pub type FungiblesTransactor = FungiblesAdapter< + Assets, + ConvertedConcreteAssetId< + AssetId, + Balance, + AssetIdLocationConvert, + JustTry + >, + // "default" implementation of converting a `MultiLocation` to an `AccountId` + LocationToAccountId, + AccountId, + // No teleport support. + Nothing, + // No teleport tracking. + () +>; pub type XcmRouter = super::ParachainXcmRouter; pub type Barrier = AllowUnpaidExecutionFrom; @@ -177,7 +202,7 @@ impl Config for XcmConfig { type Call = Call; type XcmSender = XcmRouter; // Defines how to withdraw and deposit an asset. - type AssetTransactor = LocalAssetTransactor; + type AssetTransactor = FungiblesTransactor; type OriginConverter = XcmOriginToCallOrigin; // Combinations of (Location, Asset) pairs which we trust as reserves. type IsReserve = MultiNativeAsset; @@ -377,6 +402,83 @@ impl pallet_xcm::Config for Runtime { type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; } +#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub struct AssetRegistarMetadata { + pub name: Vec, + pub symbol: Vec, + pub decimals: u8, + pub evm_address: Option, + pub is_frozen: bool, + pub min_balance: Balance, + pub is_sufficient: bool, +} + +impl AssetMetadata for AssetRegistarMetadata { + fn min_balance(&self) ->Balance{ + self.min_balance + } + + fn is_sufficient(&self) -> bool { + self.is_sufficient + } +} + +impl Into for AssetRegistarMetadata { + fn into(self) -> AssetStorageMetadata { + AssetStorageMetadata { + name: self.name, + symbol: self.symbol, + decimals: self.decimals, + is_frozen: self.is_frozen, + } + } +} + +#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub struct AssetStorageMetadata { + pub name: Vec, + pub symbol: Vec, + pub decimals: u8, + pub is_frozen: bool, +} + +pub struct AssetRegistrar; +use frame_support::pallet_prelude::DispatchResult; +impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { + fn create_asset( + asset_id:AssetId, + min_balance:Balance, + metadata: AssetStorageMetadata, + is_sufficient:bool) ->DispatchResult { + Assets::force_create( + Origin::root(), + asset_id, + AssetManager::account_id(), + is_sufficient, + min_balance, + )?; + + Assets::force_set_metadata( + Origin::root(), + asset_id, + metadata.name, + metadata.symbol, + metadata.decimals, + metadata.is_frozen, + ) + } +} +impl pallet_asset_manager::Config for Runtime { + type Event = Event; + type Balance = Balance; + type AssetId = AssetId; + type AssetRegistrarMetadata = AssetRegistarMetadata; + type StorageMetadata = AssetStorageMetadata; + type AssetLocation = AssetLocation; + type AssetRegistrar = AssetRegistrar; + type ModifierOrigin = EnsureRoot; +} + type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; @@ -388,6 +490,7 @@ construct_runtime!( { System: frame_system::{Pallet, Call, Storage, Config, Event}, Assets: pallet_assets::{Pallet, Storage, Event}, + AssetManager: pallet_asset_manager::{Pallet, Call, Storage, Event}, Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, MsgQueue: mock_msg_queue::{Pallet, Storage, Event}, PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin}, diff --git a/runtime/calamari/tests/xcm_mock/relay_chain.rs b/runtime/calamari/tests/xcm_mock/relay_chain.rs index 3b561cea2..651ee27b3 100644 --- a/runtime/calamari/tests/xcm_mock/relay_chain.rs +++ b/runtime/calamari/tests/xcm_mock/relay_chain.rs @@ -32,7 +32,7 @@ use xcm_builder::{ AllowTopLevelPaidExecutionFrom, ChildParachainAsNative, ChildParachainConvertsVia, ChildSystemParachainAsSuperuser, CurrencyAdapter as XcmCurrencyAdapter, FixedRateOfFungible, FixedWeightBounds, IsConcrete, LocationInverter, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, ConvertedConcreteAssetId, }; use xcm_executor::{Config, XcmExecutor}; pub type AccountId = AccountId32; diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index ba57ef7f0..e83c77271 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -5,6 +5,7 @@ use frame_support::assert_ok; use xcm::latest::prelude::*; use xcm_mock::*; use xcm_simulator::TestExt; +use manta_primitives::AssetLocation; // Helper function for forming buy execution message fn buy_execution(fees: impl Into) -> Instruction { @@ -102,9 +103,31 @@ fn xcmp() { } #[test] -fn reserve_transfer() { +fn reserve_transfer_relaychain_to_parachain_a() { MockNet::reset(); + let relay_asset_id: parachain::AssetId = 0; + let source_location = AssetLocation::Xcm(MultiLocation::parent()); + + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + + // Register relay chain asset in parachain A + ParaA::execute_with(|| { + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location, + asset_metadata + )); + }); + let withdraw_amount = 123; Relay::execute_with(|| { @@ -131,8 +154,8 @@ fn reserve_transfer() { ParaA::execute_with(|| { // free execution, full amount received assert_eq!( - pallet_balances::Pallet::::free_balance(&ALICE), - INITIAL_BALANCE + withdraw_amount + pallet_assets::Pallet::::balance(relay_asset_id, &ALICE.into()), + withdraw_amount ); }); } diff --git a/runtime/primitives/Cargo.toml b/runtime/primitives/Cargo.toml index 06d896533..c1a3872c9 100644 --- a/runtime/primitives/Cargo.toml +++ b/runtime/primitives/Cargo.toml @@ -12,6 +12,7 @@ targets = ['x86_64-unknown-linux-gnu'] [dependencies] codec = { package = "parity-scale-codec", version = "2.3.1", default-features = false } +scale-info = { version = "1.0", default-features = false, features = [ "derive" ] } smallvec = "1.6.1" # Substrate primitives @@ -28,6 +29,7 @@ default = ["std"] std = [ 'codec/std', 'sp-consensus-aura/std', + 'scale-info/std', 'sp-io/std', 'sp-std/std', ] diff --git a/runtime/primitives/src/assets.rs b/runtime/primitives/src/assets.rs new file mode 100644 index 000000000..53602e63a --- /dev/null +++ b/runtime/primitives/src/assets.rs @@ -0,0 +1,97 @@ +// Copyright 2020-2021 Manta Network. +// This file is part of Manta. +// +// Manta 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. +// +// Manta 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 Manta. If not, see . + +///! Manta/Calamari/Dolphin Asset + +use xcm::v1::{MultiLocation, Junctions}; +use codec::{Encode, Decode}; +use scale_info::TypeInfo; +use sp_std::{marker::PhantomData, borrow::Borrow}; + + +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum AssetLocation { + Native, // Native Currency, e.g KMA, MANTA, DOL + Xcm(MultiLocation), +} + +impl Default for AssetLocation { + fn default() -> Self { + Self::Native + } +} + +impl From for AssetLocation { + fn from(location: MultiLocation) -> Self { + match location { + MultiLocation {parents: 0, interior: Junctions::Here} => Self::Native, + _ => Self::Xcm(location) + } + } +} + +impl Into> for AssetLocation { + fn into(self: Self) -> Option { + match self { + Self::Xcm(location) => Some(location), + Self::Native => None + } + } +} + +/// Defines the trait to obtain a generic AssetId +pub trait AssetIdLocationGetter{ + // get AssetLocation from AssetId + fn get_asset_location(asset_id: AssetId) -> Option; + + // get AssetId from AssetLocation + fn get_asset_id(loc: AssetLocation) -> Option; +} + +/// Converter struct implementing `Convert`. +/// This enforce the `AssetInfoGetter` implements `AssetIdLocationGetter` +pub struct AssetIdLocationConvert( + PhantomData<(AssetId, AssetLocation, AssetInfoGetter)>, +); +impl xcm_executor::traits::Convert + for AssetIdLocationConvert +where + AssetId: Clone, + AssetLocation: From + Into> + Clone, + AssetInfoGetter: AssetIdLocationGetter, +{ + fn convert_ref(loc: impl Borrow) -> Result { + if let Some(asset_id) = AssetInfoGetter::get_asset_id(loc.borrow().clone().into()){ + Ok(asset_id) + } else { + Err(()) + } + } + + fn reverse_ref(id: impl Borrow) -> Result { + if let Some(asset_loc) = AssetInfoGetter::get_asset_location(id.borrow().clone()) { + if let Some(location) = asset_loc.into() { + Ok(location) + } else { + Err(()) + } + } else { + Err(()) + } + } +} + + diff --git a/runtime/primitives/src/lib.rs b/runtime/primitives/src/lib.rs index 4d596f8cd..cf8f18c5f 100644 --- a/runtime/primitives/src/lib.rs +++ b/runtime/primitives/src/lib.rs @@ -21,8 +21,10 @@ pub mod constants; mod xcm; +mod assets; pub use constants::time; pub use crate::xcm::MultiNativeAsset; +pub use crate::assets::{AssetLocation, AssetIdLocationConvert, AssetIdLocationGetter}; use sp_runtime::traits::{BlakeTwo256, IdentifyAccount, Verify}; From c4006ce3538b3105ffbcf8b2d44d53e410ff2a16 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sat, 29 Jan 2022 23:47:13 -0500 Subject: [PATCH 04/33] send asset back to relay chain --- pallets/asset-manager/src/lib.rs | 1 - runtime/calamari/tests/xcm_mock/mod.rs | 1 + runtime/calamari/tests/xcm_mock/parachain.rs | 49 ++++++++++ runtime/calamari/tests/xcm_tests.rs | 95 ++++++++++++++++++++ runtime/primitives/src/assets.rs | 4 + runtime/primitives/src/lib.rs | 2 +- runtime/primitives/src/xcm.rs | 26 +++++- 7 files changed, 172 insertions(+), 6 deletions(-) diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index 2f977b53f..3ea207dec 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -30,7 +30,6 @@ pub use pallet::*; #[frame_support::pallet] pub mod pallet { - use super::*; use codec::{Codec, HasCompact}; use frame_support::{pallet_prelude::*, transactional, PalletId}; diff --git a/runtime/calamari/tests/xcm_mock/mod.rs b/runtime/calamari/tests/xcm_mock/mod.rs index 7bcdb8e56..6e9cd18d8 100644 --- a/runtime/calamari/tests/xcm_mock/mod.rs +++ b/runtime/calamari/tests/xcm_mock/mod.rs @@ -107,4 +107,5 @@ pub fn relay_ext() -> sp_io::TestExternalities { } pub type RelayChainPalletXcm = pallet_xcm::Pallet; +pub type RelayBalances = pallet_balances::Pallet; pub type ParachainPalletXcm = pallet_xcm::Pallet; diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index aed303aa4..be57de624 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -479,6 +479,54 @@ impl pallet_asset_manager::Config for Runtime { type ModifierOrigin = EnsureRoot; } +// We wrap AssetId for XToken +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum CurrencyId { + MantaCurrency(AssetId), +} + +pub struct CurrencyIdtoMultiLocation(sp_std::marker::PhantomData); +impl sp_runtime::traits::Convert> + for CurrencyIdtoMultiLocation +where + AssetXConverter: xcm_executor::traits::Convert, +{ + fn convert(currency: CurrencyId) -> Option { + match currency { + CurrencyId::MantaCurrency(asset_id) => + match AssetXConverter::reverse_ref(&asset_id) { + Ok(location) => Some(location), + Err(_) => None + } + } + } +} + +parameter_types! { + pub const BaseXcmWeight: Weight = 100; + pub SelfLocation: MultiLocation = MultiLocation { + parents:1, + interior: Junctions::X1( + Parachain(MsgQueue::parachain_id().into()) + ) + }; +} + +// The XCM message wrapper wrapper +impl orml_xtokens::Config for Runtime { + type Event = Event; + type Balance = Balance; + type CurrencyId = CurrencyId; + type AccountIdToMultiLocation = manta_primitives::AccountIdToMultiLocation; + type CurrencyIdConvert = + CurrencyIdtoMultiLocation>; + type XcmExecutor = XcmExecutor; + type SelfLocation = SelfLocation; + type Weigher = xcm_builder::FixedWeightBounds; + type BaseXcmWeight = BaseXcmWeight; + type LocationInverter = LocationInverter; +} + type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; @@ -494,5 +542,6 @@ construct_runtime!( Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, MsgQueue: mock_msg_queue::{Pallet, Storage, Event}, PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin}, + XTokens: orml_xtokens::{Pallet, Call, Event, Storage}, } ); diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index e83c77271..fa85a6607 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -3,6 +3,7 @@ mod xcm_mock; use codec::Encode; use frame_support::assert_ok; use xcm::latest::prelude::*; +use xcm::VersionedMultiLocation; use xcm_mock::*; use xcm_simulator::TestExt; use manta_primitives::AssetLocation; @@ -160,6 +161,100 @@ fn reserve_transfer_relaychain_to_parachain_a() { }); } +#[test] +fn reserve_transfer_relaychain_to_parachain_a_then_back() { + MockNet::reset(); + + let relay_asset_id: parachain::AssetId = 0; + let source_location = AssetLocation::Xcm(MultiLocation::parent()); + + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + + // Register relay chain asset in parachain A + ParaA::execute_with(|| { + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location, + asset_metadata + )); + }); + + let withdraw_amount = 123; + + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::Origin::signed(ALICE), + Box::new(X1(Parachain(1)).into().into()), + Box::new( + X1(AccountId32 { + network: Any, + id: ALICE.into() + }) + .into() + .into() + ), + Box::new((Here, withdraw_amount).into()), + 0, + )); + assert_eq!( + parachain::Balances::free_balance(¶_account_id(1)), + INITIAL_BALANCE + withdraw_amount + ); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!( + pallet_assets::Pallet::::balance(relay_asset_id, &ALICE.into()), + withdraw_amount + ); + }); + + // Checking the balance of relay chain before sending token back + let mut balance_before_sending = 0; + Relay::execute_with(|| { + balance_before_sending = RelayBalances::free_balance(&ALICE); + }); + + let dest = MultiLocation { + parents: 1, + interior: X1(AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(relay_asset_id), + withdraw_amount, + Box::new(VersionedMultiLocation::V1(dest)), + 40000 + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(parachain::Assets::balance(relay_asset_id, &ALICE.into()), 0); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(&ALICE) > balance_before_sending); + }); + +} + /// Scenario: /// A parachain transfers funds on the relay chain to another parachain account. /// diff --git a/runtime/primitives/src/assets.rs b/runtime/primitives/src/assets.rs index 53602e63a..2169e362f 100644 --- a/runtime/primitives/src/assets.rs +++ b/runtime/primitives/src/assets.rs @@ -34,6 +34,8 @@ impl Default for AssetLocation { } } +/// Convert a `MultiLocaiton` to an `AssetLocation` +/// Note: This does not guaranttee the `AssetLocation` is registered (i.e. have an AssetId) impl From for AssetLocation { fn from(location: MultiLocation) -> Self { match location { @@ -43,6 +45,8 @@ impl From for AssetLocation { } } +/// Convert an `AssetLocation` to a MultiLocation +/// If Native, retrun none. impl Into> for AssetLocation { fn into(self: Self) -> Option { match self { diff --git a/runtime/primitives/src/lib.rs b/runtime/primitives/src/lib.rs index cf8f18c5f..bebef0658 100644 --- a/runtime/primitives/src/lib.rs +++ b/runtime/primitives/src/lib.rs @@ -23,7 +23,7 @@ pub mod constants; mod xcm; mod assets; pub use constants::time; -pub use crate::xcm::MultiNativeAsset; +pub use crate::xcm::{MultiNativeAsset, AccountIdToMultiLocation}; pub use crate::assets::{AssetLocation, AssetIdLocationConvert, AssetIdLocationGetter}; use sp_runtime::traits::{BlakeTwo256, IdentifyAccount, Verify}; diff --git a/runtime/primitives/src/xcm.rs b/runtime/primitives/src/xcm.rs index 9f86bdbb8..3d1c59e38 100644 --- a/runtime/primitives/src/xcm.rs +++ b/runtime/primitives/src/xcm.rs @@ -14,12 +14,16 @@ // You should have received a copy of the GNU General Public License // along with Manta. If not, see . +use sp_std::marker::PhantomData; + use xcm_executor::traits::FilterAssetLocation; -use xcm::v1::{ +use sp_runtime::traits::Convert; +use xcm::{v1::{ MultiAsset, MultiLocation, AssetId as xcmAssetId, - Junction::Parachain, - Junctions::* -}; + Junction::{Parachain, AccountId32}, + Junctions::*, + NetworkId, +}}; pub trait Reserve { /// Returns assets reserve location. @@ -58,3 +62,17 @@ impl FilterAssetLocation for MultiNativeAsset { false } } + +pub struct AccountIdToMultiLocation(PhantomData); +impl Convert for AccountIdToMultiLocation +where AccountId: Into<[u8; 32]> + Clone { + fn convert(account: AccountId) -> MultiLocation { + MultiLocation { + parents: 0, + interior: X1(AccountId32 { + network: NetworkId::Any, + id: account.into(), + }), + } + } +} From 79e9114da8a1777fe7627c4999cf74f6020cdc73 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sat, 29 Jan 2022 23:58:45 -0500 Subject: [PATCH 05/33] make the tests more precise --- runtime/calamari/tests/xcm_tests.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index fa85a6607..04d85dd58 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -187,7 +187,7 @@ fn reserve_transfer_relaychain_to_parachain_a_then_back() { )); }); - let withdraw_amount = 123; + let amount = 123; Relay::execute_with(|| { assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( @@ -201,12 +201,12 @@ fn reserve_transfer_relaychain_to_parachain_a_then_back() { .into() .into() ), - Box::new((Here, withdraw_amount).into()), + Box::new((Here, amount).into()), 0, )); assert_eq!( parachain::Balances::free_balance(¶_account_id(1)), - INITIAL_BALANCE + withdraw_amount + INITIAL_BALANCE + amount ); }); @@ -214,7 +214,7 @@ fn reserve_transfer_relaychain_to_parachain_a_then_back() { // free execution, full amount received assert_eq!( pallet_assets::Pallet::::balance(relay_asset_id, &ALICE.into()), - withdraw_amount + amount ); }); @@ -237,20 +237,21 @@ fn reserve_transfer_relaychain_to_parachain_a_then_back() { assert_ok!(parachain::XTokens::transfer( parachain::Origin::signed(ALICE.into()), parachain::CurrencyId::MantaCurrency(relay_asset_id), - withdraw_amount, + amount, Box::new(VersionedMultiLocation::V1(dest)), 40000 )); }); ParaA::execute_with(|| { - // free execution, full amount received + // free execution, this will drain the parachain asset account assert_eq!(parachain::Assets::balance(relay_asset_id, &ALICE.into()), 0); }); Relay::execute_with(|| { - // free execution,x full amount received - assert!(RelayBalances::free_balance(&ALICE) > balance_before_sending); + // free execution, full amount received + let relay_balance = RelayBalances::free_balance(&ALICE); + assert_eq!(RelayBalances::free_balance(&ALICE), balance_before_sending + amount); }); } From d35a8b828d8054d130c3ea3685a3c416e4ed91b8 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 30 Jan 2022 20:57:50 -0500 Subject: [PATCH 06/33] parachain self reserved transfer works --- runtime/calamari/Cargo.toml | 2 +- runtime/calamari/tests/xcm_mock/mod.rs | 2 +- runtime/calamari/tests/xcm_mock/parachain.rs | 70 +++++++++----- .../calamari/tests/xcm_mock/relay_chain.rs | 2 +- runtime/calamari/tests/xcm_tests.rs | 93 ++++++++++++++++++- runtime/primitives/src/assets.rs | 28 +++--- 6 files changed, 153 insertions(+), 44 deletions(-) diff --git a/runtime/calamari/Cargo.toml b/runtime/calamari/Cargo.toml index ed051c882..47f4484b4 100644 --- a/runtime/calamari/Cargo.toml +++ b/runtime/calamari/Cargo.toml @@ -78,7 +78,7 @@ xcm-executor = { git = 'https://github.com/paritytech/polkadot.git', default-fea pallet-xcm = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } # Third party (vendored) dependencies -orml-xtokens = { git = "https://github.com/Manta-Network/open-runtime-module-library.git", default-features = false, branch = "polkadot-v0.9.12"} +orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-library.git", default-features = false, branch = "polkadot-v0.9.12"} # Self dependencies manta-primitives = { path = '../primitives', default-features = false } diff --git a/runtime/calamari/tests/xcm_mock/mod.rs b/runtime/calamari/tests/xcm_mock/mod.rs index 6e9cd18d8..92ef8dcaf 100644 --- a/runtime/calamari/tests/xcm_mock/mod.rs +++ b/runtime/calamari/tests/xcm_mock/mod.rs @@ -22,7 +22,7 @@ use sp_runtime::traits::AccountIdConversion; use xcm_simulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain}; pub const ALICE: sp_runtime::AccountId32 = sp_runtime::AccountId32::new([0u8; 32]); -pub const INITIAL_BALANCE: u128 = 1_000_000_000; +pub const INITIAL_BALANCE: u128 = 10_000_000_000_000_000; decl_test_parachain! { pub struct ParaA { diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index be57de624..f626eeeb5 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -20,7 +20,7 @@ use codec::{Decode, Encode}; use frame_system::EnsureRoot; use frame_support::{ construct_runtime, parameter_types, - traits::{Everything, Nothing}, + traits::{Everything, Nothing, PalletInfo as PalletInfoTrait}, weights::{constants::WEIGHT_PER_SECOND, Weight}, }; use pallet_asset_manager::AssetMetadata; @@ -40,10 +40,11 @@ use polkadot_parachain::primitives::{ }; use xcm::{latest::prelude::*, VersionedXcm}; use xcm_builder::{ - AccountId32Aliases, AllowUnpaidExecutionFrom, CurrencyAdapter as XcmCurrencyAdapter, - EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, IsConcrete, LocationInverter, - ParentIsDefault, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, ConvertedConcreteAssetId, FungiblesAdapter + AccountId32Aliases, AllowUnpaidExecutionFrom, SiblingParachainAsNative, + EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, LocationInverter, + ParentIsDefault, SiblingParachainConvertsVia, SignedAccountId32AsNative, + SignedToAccountId32, SovereignSignedViaLocation, ConvertedConcreteAssetId, + FungiblesAdapter, CurrencyAdapter as XcmCurrencyAdapter, IsConcrete, }; use xcm_executor::{Config, XcmExecutor, traits::JustTry}; use manta_primitives::{MultiNativeAsset, AssetIdLocationConvert, AssetLocation}; @@ -109,6 +110,14 @@ parameter_types! { pub const KsmLocation: MultiLocation = MultiLocation::parent(); pub const RelayNetwork: NetworkId = NetworkId::Kusama; pub Ancestry: MultiLocation = Parachain(MsgQueue::parachain_id().into()).into(); + // This self reserve only works for pre-v0.9.16 + pub SelfReserve: MultiLocation = MultiLocation { + parents:1, + interior: Junctions::X2( + Parachain(MsgQueue::parachain_id().into()), + PalletInstance(::PalletInfo::index::().unwrap() as u8) + ) + }; } parameter_types! { @@ -158,6 +167,9 @@ pub type XcmOriginToCallOrigin = ( // If the incoming XCM origin is of type `AccountId32` and the Network is Network::Any // or `RelayNetwork`, convert it to a Native 32 byte account. SignedAccountId32AsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + SiblingParachainAsNative, // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. XcmPassthrough, ); @@ -168,15 +180,17 @@ parameter_types! { pub const MaxInstructions: u32 = 100; } -// pub type LocalAssetTransactor = -// XcmCurrencyAdapter< -// // Transacting native currency, i.e. MANTA, KMA, DOL -// Balances, -// IsConcrete, -// LocationToAccountId, -// AccountId, -// ()>; - +/// Transactor for native currency, i.e. implements `fungible` trait +pub type LocalAssetTransactor = + XcmCurrencyAdapter< + // Transacting native currency, i.e. MANTA, KMA, DOL + Balances, + IsConcrete, + LocationToAccountId, + AccountId, + ()>; + +/// Transactor for currency in pallet-assets, i.e. implements `fungibles` trait pub type FungiblesTransactor = FungiblesAdapter< Assets, ConvertedConcreteAssetId< @@ -201,8 +215,10 @@ pub struct XcmConfig; impl Config for XcmConfig { type Call = Call; type XcmSender = XcmRouter; - // Defines how to withdraw and deposit an asset. - type AssetTransactor = FungiblesTransactor; + // Defines how to Withdraw and Deposit instruction work + // Under the hood, substrate framework will do pattern matching in macro, + // as a result, the order of the following tuple matters. + type AssetTransactor = (LocalAssetTransactor, FungiblesTransactor); type OriginConverter = XcmOriginToCallOrigin; // Combinations of (Location, Asset) pairs which we trust as reserves. type IsReserve = MultiNativeAsset; @@ -479,6 +495,11 @@ impl pallet_asset_manager::Config for Runtime { type ModifierOrigin = EnsureRoot; } +impl cumulus_pallet_xcm::Config for Runtime { + type Event = Event; + type XcmExecutor = XcmExecutor; +} + // We wrap AssetId for XToken #[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] pub enum CurrencyId { @@ -536,12 +557,15 @@ construct_runtime!( NodeBlock = Block, UncheckedExtrinsic = UncheckedExtrinsic, { - System: frame_system::{Pallet, Call, Storage, Config, Event}, - Assets: pallet_assets::{Pallet, Storage, Event}, - AssetManager: pallet_asset_manager::{Pallet, Call, Storage, Event}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - MsgQueue: mock_msg_queue::{Pallet, Storage, Event}, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin}, - XTokens: orml_xtokens::{Pallet, Call, Event, Storage}, + System: frame_system::{Pallet, Call, Storage, Config, Event} = 0, + Assets: pallet_assets::{Pallet, Storage, Event} = 1, + AssetManager: pallet_asset_manager::{Pallet, Call, Storage, Event} = 2, + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 3, + MsgQueue: mock_msg_queue::{Pallet, Storage, Event} = 4, + PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin} = 5, + XTokens: orml_xtokens::{Pallet, Call, Event, Storage} = 6, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 7, } ); + +pub const PALLET_BALANCES_INDEX: u8 = 3u8; diff --git a/runtime/calamari/tests/xcm_mock/relay_chain.rs b/runtime/calamari/tests/xcm_mock/relay_chain.rs index 651ee27b3..3b561cea2 100644 --- a/runtime/calamari/tests/xcm_mock/relay_chain.rs +++ b/runtime/calamari/tests/xcm_mock/relay_chain.rs @@ -32,7 +32,7 @@ use xcm_builder::{ AllowTopLevelPaidExecutionFrom, ChildParachainAsNative, ChildParachainConvertsVia, ChildSystemParachainAsSuperuser, CurrencyAdapter as XcmCurrencyAdapter, FixedRateOfFungible, FixedWeightBounds, IsConcrete, LocationInverter, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, ConvertedConcreteAssetId, + SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, }; use xcm_executor::{Config, XcmExecutor}; pub type AccountId = AccountId32; diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index 04d85dd58..0dd247a29 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -8,6 +8,8 @@ use xcm_mock::*; use xcm_simulator::TestExt; use manta_primitives::AssetLocation; +use crate::xcm_mock::parachain::AssetManager; + // Helper function for forming buy execution message fn buy_execution(fees: impl Into) -> Instruction { BuyExecution { @@ -108,7 +110,7 @@ fn reserve_transfer_relaychain_to_parachain_a() { MockNet::reset(); let relay_asset_id: parachain::AssetId = 0; - let source_location = AssetLocation::Xcm(MultiLocation::parent()); + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); let asset_metadata = parachain::AssetRegistarMetadata { name: b"Kusama".to_vec(), @@ -166,7 +168,7 @@ fn reserve_transfer_relaychain_to_parachain_a_then_back() { MockNet::reset(); let relay_asset_id: parachain::AssetId = 0; - let source_location = AssetLocation::Xcm(MultiLocation::parent()); + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); let asset_metadata = parachain::AssetRegistarMetadata { name: b"Kusama".to_vec(), @@ -250,12 +252,97 @@ fn reserve_transfer_relaychain_to_parachain_a_then_back() { Relay::execute_with(|| { // free execution, full amount received - let relay_balance = RelayBalances::free_balance(&ALICE); assert_eq!(RelayBalances::free_balance(&ALICE), balance_before_sending + amount); }); } +#[test] +fn reserve_transfer_parachain_a_asset_a_to_b() { + MockNet::reset(); + + // ParaA balance location + let para_a_balance_loc = MultiLocation::new(1, X2(Parachain(1), PalletInstance(parachain::PALLET_BALANCES_INDEX))); + let a_currency_id_on_b = 0u32; + let a_currency_id_on_a = 0u32; + let amount = 100u128; + + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + evm_address: None, + min_balance: 1, + is_frozen: false, + is_sufficient: false, + }; + + // Register ParaA native asset in ParaB + ParaB::execute_with( || { + let a_loc = AssetLocation(VersionedMultiLocation::V1(para_a_balance_loc)); + assert_ok!(AssetManager::register_asset( + parachain::Origin::root(), + a_loc.clone(), + asset_metadata.clone() + )); + if let Some(id) = AssetManager::location_asset_id(a_loc) { + assert_eq!(a_currency_id_on_b, id); + } else { + assert!(false); + } + }); + + // Register ParaA native asset in ParaA + ParaA::execute_with(||{ + // we need to overwrite this over the default before v0.9.16 + let native_loc = AssetLocation(VersionedMultiLocation::V1(parachain::SelfReserve::get())); + assert_ok!(AssetManager::register_asset( + parachain::Origin::root(), + native_loc.clone(), + asset_metadata + )); + if let Some(id) = AssetManager::location_asset_id(native_loc) { + assert_eq!(a_currency_id_on_a, id); + } else { + assert!(false); + } + }); + + let dest = MultiLocation { + parents: 1, + interior: X2( + Parachain(2), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into() + } + ) + }; + + // Transfer ParaA balance to B + ParaA::execute_with(||{ + let alice_balance = parachain::Balances::free_balance(&ALICE.into()); + assert_ok!( + parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id_on_a), + amount, + Box::new(VersionedMultiLocation::V1(dest)), + 800000 + )); + assert_eq!( + parachain::Balances::free_balance(&ALICE.into()), + INITIAL_BALANCE - amount + ) + }); + + // Make sure B received the token + ParaB::execute_with(|| { + // free execution, full amount received + assert_eq!(parachain::Assets::balance(a_currency_id_on_b, &ALICE.into()), amount); + }); +} + /// Scenario: /// A parachain transfers funds on the relay chain to another parachain account. /// diff --git a/runtime/primitives/src/assets.rs b/runtime/primitives/src/assets.rs index 2169e362f..b66e57f55 100644 --- a/runtime/primitives/src/assets.rs +++ b/runtime/primitives/src/assets.rs @@ -16,21 +16,20 @@ ///! Manta/Calamari/Dolphin Asset -use xcm::v1::{MultiLocation, Junctions}; +use xcm::{v1::{MultiLocation, Junctions}, VersionedMultiLocation}; use codec::{Encode, Decode}; use scale_info::TypeInfo; use sp_std::{marker::PhantomData, borrow::Borrow}; -#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] -pub enum AssetLocation { - Native, // Native Currency, e.g KMA, MANTA, DOL - Xcm(MultiLocation), -} +#[derive(Clone, Eq, Debug, PartialEq, Encode, Decode, TypeInfo)] +pub struct AssetLocation(pub VersionedMultiLocation); +/// This cannot act as the default before v0.9.16 and need overwrite +/// https://docs.google.com/document/d/1W8y00IcJb0JXPBF59aP4nm-c7DY8Ld02-yIAO7UxR80 impl Default for AssetLocation { fn default() -> Self { - Self::Native + AssetLocation(VersionedMultiLocation::V1(MultiLocation {parents: 0, interior: Junctions::Here})) } } @@ -38,10 +37,7 @@ impl Default for AssetLocation { /// Note: This does not guaranttee the `AssetLocation` is registered (i.e. have an AssetId) impl From for AssetLocation { fn from(location: MultiLocation) -> Self { - match location { - MultiLocation {parents: 0, interior: Junctions::Here} => Self::Native, - _ => Self::Xcm(location) - } + AssetLocation(VersionedMultiLocation::V1(location)) } } @@ -49,10 +45,12 @@ impl From for AssetLocation { /// If Native, retrun none. impl Into> for AssetLocation { fn into(self: Self) -> Option { - match self { - Self::Xcm(location) => Some(location), - Self::Native => None - } + // only support specific version + if let AssetLocation(VersionedMultiLocation::V1(loc)) = self { + Some(loc) + } else { + None + } } } From b870cf40ea44075caaf26f7de6c789ea8a1e0eb5 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 30 Jan 2022 22:49:19 -0500 Subject: [PATCH 07/33] transfer token back and forth --- pallets/asset-manager/src/lib.rs | 8 +- runtime/calamari/tests/xcm_mock/mod.rs | 10 + runtime/calamari/tests/xcm_mock/parachain.rs | 104 ++++---- runtime/calamari/tests/xcm_tests.rs | 235 ++++++++++++++----- runtime/primitives/src/assets.rs | 96 ++++---- runtime/primitives/src/lib.rs | 8 +- runtime/primitives/src/xcm.rs | 20 +- 7 files changed, 310 insertions(+), 171 deletions(-) diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index 3ea207dec..e6e3b504d 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -34,12 +34,12 @@ pub mod pallet { use codec::{Codec, HasCompact}; use frame_support::{pallet_prelude::*, transactional, PalletId}; use frame_system::pallet_prelude::*; + use manta_primitives::AssetIdLocationGetter; use scale_info::TypeInfo; use sp_runtime::{ traits::{AccountIdConversion, AtLeast32BitUnsigned, Bounded, CheckedAdd, One}, ArithmeticError, }; - use manta_primitives::AssetIdLocationGetter; #[pallet::pallet] pub struct Pallet(PhantomData); @@ -75,12 +75,12 @@ pub mod pallet { } /// Convert AssetId and AssetLocation - impl AssetIdLocationGetter for Pallet{ - fn get_asset_id(loc: T::AssetLocation) -> Option{ + impl AssetIdLocationGetter for Pallet { + fn get_asset_id(loc: T::AssetLocation) -> Option { LocationAssetId::::get(loc) } - fn get_asset_location(id: T::AssetId) -> Option{ + fn get_asset_location(id: T::AssetId) -> Option { AssetIdLocation::::get(id) } } diff --git a/runtime/calamari/tests/xcm_mock/mod.rs b/runtime/calamari/tests/xcm_mock/mod.rs index 92ef8dcaf..3f647e41c 100644 --- a/runtime/calamari/tests/xcm_mock/mod.rs +++ b/runtime/calamari/tests/xcm_mock/mod.rs @@ -42,6 +42,15 @@ decl_test_parachain! { } } +decl_test_parachain! { + pub struct ParaC { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(3), + } +} + decl_test_relay_chain! { pub struct Relay { Runtime = relay_chain::Runtime, @@ -56,6 +65,7 @@ decl_test_network! { parachains = vec![ (1, ParaA), (2, ParaB), + (3, ParaC), ], } } diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index f626eeeb5..c9e7ce7dc 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -17,22 +17,23 @@ //! Parachain runtime mock. use codec::{Decode, Encode}; -use frame_system::EnsureRoot; use frame_support::{ construct_runtime, parameter_types, traits::{Everything, Nothing, PalletInfo as PalletInfoTrait}, weights::{constants::WEIGHT_PER_SECOND, Weight}, }; +use frame_system::EnsureRoot; use pallet_asset_manager::AssetMetadata; -use sp_core::{H256, H160}; +use scale_info::TypeInfo; +use sp_core::{H160, H256}; use sp_runtime::{ testing::Header, traits::{Hash, IdentityLookup}, AccountId32, }; use sp_std::{convert::TryFrom, prelude::*}; -use scale_info::TypeInfo; +use manta_primitives::{AssetIdLocationConvert, AssetLocation, MultiNativeAsset}; use pallet_xcm::XcmPassthrough; use polkadot_core_primitives::BlockNumber as RelayBlockNumber; use polkadot_parachain::primitives::{ @@ -40,14 +41,13 @@ use polkadot_parachain::primitives::{ }; use xcm::{latest::prelude::*, VersionedXcm}; use xcm_builder::{ - AccountId32Aliases, AllowUnpaidExecutionFrom, SiblingParachainAsNative, - EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, LocationInverter, - ParentIsDefault, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, ConvertedConcreteAssetId, - FungiblesAdapter, CurrencyAdapter as XcmCurrencyAdapter, IsConcrete, + AccountId32Aliases, AllowUnpaidExecutionFrom, ConvertedConcreteAssetId, + CurrencyAdapter as XcmCurrencyAdapter, EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, + FungiblesAdapter, IsConcrete, LocationInverter, ParentIsDefault, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, }; -use xcm_executor::{Config, XcmExecutor, traits::JustTry}; -use manta_primitives::{MultiNativeAsset, AssetIdLocationConvert, AssetLocation}; +use xcm_executor::{traits::JustTry, Config, XcmExecutor}; pub type AccountId = AccountId32; pub type Balance = u128; @@ -110,7 +110,7 @@ parameter_types! { pub const KsmLocation: MultiLocation = MultiLocation::parent(); pub const RelayNetwork: NetworkId = NetworkId::Kusama; pub Ancestry: MultiLocation = Parachain(MsgQueue::parachain_id().into()).into(); - // This self reserve only works for pre-v0.9.16 + // This self reserve only works for pre-v0.9.16 pub SelfReserve: MultiLocation = MultiLocation { parents:1, interior: Junctions::X2( @@ -164,8 +164,8 @@ pub type XcmOriginToCallOrigin = ( // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for // foreign chains who want to have a local sovereign account on this chain which they control. SovereignSignedViaLocation, - // If the incoming XCM origin is of type `AccountId32` and the Network is Network::Any - // or `RelayNetwork`, convert it to a Native 32 byte account. + // If the incoming XCM origin is of type `AccountId32` and the Network is Network::Any + // or `RelayNetwork`, convert it to a Native 32 byte account. SignedAccountId32AsNative, // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when // recognised. @@ -181,14 +181,14 @@ parameter_types! { } /// Transactor for native currency, i.e. implements `fungible` trait -pub type LocalAssetTransactor = - XcmCurrencyAdapter< - // Transacting native currency, i.e. MANTA, KMA, DOL - Balances, - IsConcrete, - LocationToAccountId, - AccountId, - ()>; +pub type LocalAssetTransactor = XcmCurrencyAdapter< + // Transacting native currency, i.e. MANTA, KMA, DOL + Balances, + IsConcrete, + LocationToAccountId, + AccountId, + (), +>; /// Transactor for currency in pallet-assets, i.e. implements `fungibles` trait pub type FungiblesTransactor = FungiblesAdapter< @@ -197,7 +197,7 @@ pub type FungiblesTransactor = FungiblesAdapter< AssetId, Balance, AssetIdLocationConvert, - JustTry + JustTry, >, // "default" implementation of converting a `MultiLocation` to an `AccountId` LocationToAccountId, @@ -205,7 +205,7 @@ pub type FungiblesTransactor = FungiblesAdapter< // No teleport support. Nothing, // No teleport tracking. - () + (), >; pub type XcmRouter = super::ParachainXcmRouter; @@ -216,7 +216,7 @@ impl Config for XcmConfig { type Call = Call; type XcmSender = XcmRouter; // Defines how to Withdraw and Deposit instruction work - // Under the hood, substrate framework will do pattern matching in macro, + // Under the hood, substrate framework will do pattern matching in macro, // as a result, the order of the following tuple matters. type AssetTransactor = (LocalAssetTransactor, FungiblesTransactor); type OriginConverter = XcmOriginToCallOrigin; @@ -228,7 +228,7 @@ impl Config for XcmConfig { type Weigher = FixedWeightBounds; // Trader is the means to purchasing weight credit for XCM execution. // We need customize this. - // + // // Moonbase mock runtime uses the following logic: // When receiving the self-reserve asset, they use pallet-transaction-payment. // When receiving a non-reserve asset, they use AssetManager to fetch how many @@ -430,7 +430,7 @@ pub struct AssetRegistarMetadata { } impl AssetMetadata for AssetRegistarMetadata { - fn min_balance(&self) ->Balance{ + fn min_balance(&self) -> Balance { self.min_balance } @@ -462,26 +462,27 @@ pub struct AssetRegistrar; use frame_support::pallet_prelude::DispatchResult; impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { fn create_asset( - asset_id:AssetId, - min_balance:Balance, - metadata: AssetStorageMetadata, - is_sufficient:bool) ->DispatchResult { - Assets::force_create( - Origin::root(), - asset_id, - AssetManager::account_id(), - is_sufficient, - min_balance, - )?; - - Assets::force_set_metadata( - Origin::root(), - asset_id, - metadata.name, - metadata.symbol, - metadata.decimals, - metadata.is_frozen, - ) + asset_id: AssetId, + min_balance: Balance, + metadata: AssetStorageMetadata, + is_sufficient: bool, + ) -> DispatchResult { + Assets::force_create( + Origin::root(), + asset_id, + AssetManager::account_id(), + is_sufficient, + min_balance, + )?; + + Assets::force_set_metadata( + Origin::root(), + asset_id, + metadata.name, + metadata.symbol, + metadata.decimals, + metadata.is_frozen, + ) } } impl pallet_asset_manager::Config for Runtime { @@ -514,11 +515,10 @@ where { fn convert(currency: CurrencyId) -> Option { match currency { - CurrencyId::MantaCurrency(asset_id) => - match AssetXConverter::reverse_ref(&asset_id) { - Ok(location) => Some(location), - Err(_) => None - } + CurrencyId::MantaCurrency(asset_id) => match AssetXConverter::reverse_ref(&asset_id) { + Ok(location) => Some(location), + Err(_) => None, + }, } } } @@ -539,7 +539,7 @@ impl orml_xtokens::Config for Runtime { type Balance = Balance; type CurrencyId = CurrencyId; type AccountIdToMultiLocation = manta_primitives::AccountIdToMultiLocation; - type CurrencyIdConvert = + type CurrencyIdConvert = CurrencyIdtoMultiLocation>; type XcmExecutor = XcmExecutor; type SelfLocation = SelfLocation; diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index 0dd247a29..90e843928 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -2,11 +2,10 @@ mod xcm_mock; use codec::Encode; use frame_support::assert_ok; -use xcm::latest::prelude::*; -use xcm::VersionedMultiLocation; -use xcm_mock::*; -use xcm_simulator::TestExt; use manta_primitives::AssetLocation; +use xcm::{latest::prelude::*, VersionedMultiLocation}; +use xcm_mock::{parachain::PALLET_BALANCES_INDEX, *}; +use xcm_simulator::TestExt; use crate::xcm_mock::parachain::AssetManager; @@ -47,6 +46,7 @@ fn dmp() { }); } +// TO BE FIXED: This test is known to fail. #[test] fn ump() { MockNet::reset(); @@ -227,44 +227,51 @@ fn reserve_transfer_relaychain_to_parachain_a_then_back() { }); let dest = MultiLocation { - parents: 1, - interior: X1(AccountId32 { - network: NetworkId::Any, - id: ALICE.into(), - }), + parents: 1, + interior: X1(AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }), }; ParaA::execute_with(|| { - // free execution, full amount received - assert_ok!(parachain::XTokens::transfer( - parachain::Origin::signed(ALICE.into()), - parachain::CurrencyId::MantaCurrency(relay_asset_id), - amount, - Box::new(VersionedMultiLocation::V1(dest)), - 40000 - )); + // free execution, full amount received + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(relay_asset_id), + amount, + Box::new(VersionedMultiLocation::V1(dest)), + 40000 + )); }); ParaA::execute_with(|| { - // free execution, this will drain the parachain asset account - assert_eq!(parachain::Assets::balance(relay_asset_id, &ALICE.into()), 0); + // free execution, this will drain the parachain asset account + assert_eq!(parachain::Assets::balance(relay_asset_id, &ALICE.into()), 0); }); Relay::execute_with(|| { - // free execution, full amount received - assert_eq!(RelayBalances::free_balance(&ALICE), balance_before_sending + amount); + // free execution, full amount received + assert_eq!( + RelayBalances::free_balance(&ALICE), + balance_before_sending + amount + ); }); - } #[test] -fn reserve_transfer_parachain_a_asset_a_to_b() { +fn send_para_a_asset_to_para_b() { MockNet::reset(); // ParaA balance location - let para_a_balance_loc = MultiLocation::new(1, X2(Parachain(1), PalletInstance(parachain::PALLET_BALANCES_INDEX))); - let a_currency_id_on_b = 0u32; - let a_currency_id_on_a = 0u32; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X2( + Parachain(1), + PalletInstance(parachain::PALLET_BALANCES_INDEX), + ), + ))); + let a_currency_id = 0u32; let amount = 100u128; let asset_metadata = parachain::AssetRegistarMetadata { @@ -278,34 +285,31 @@ fn reserve_transfer_parachain_a_asset_a_to_b() { }; // Register ParaA native asset in ParaB - ParaB::execute_with( || { - let a_loc = AssetLocation(VersionedMultiLocation::V1(para_a_balance_loc)); + ParaB::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - a_loc.clone(), + source_location.clone(), asset_metadata.clone() )); - if let Some(id) = AssetManager::location_asset_id(a_loc) { - assert_eq!(a_currency_id_on_b, id); - } else { - assert!(false); - } + assert_eq!( + Some(a_currency_id), + AssetManager::location_asset_id(source_location.clone()) + ); }); // Register ParaA native asset in ParaA - ParaA::execute_with(||{ - // we need to overwrite this over the default before v0.9.16 - let native_loc = AssetLocation(VersionedMultiLocation::V1(parachain::SelfReserve::get())); + ParaA::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - native_loc.clone(), + // This need to be changed starting from v0.9.16 + // need to use something like MultiLocation { parents: 0, interior: here} instead + source_location.clone(), asset_metadata )); - if let Some(id) = AssetManager::location_asset_id(native_loc) { - assert_eq!(a_currency_id_on_a, id); - } else { - assert!(false); - } + assert_eq!( + Some(a_currency_id), + AssetManager::location_asset_id(source_location) + ); }); let dest = MultiLocation { @@ -314,22 +318,103 @@ fn reserve_transfer_parachain_a_asset_a_to_b() { Parachain(2), AccountId32 { network: NetworkId::Any, - id: ALICE.into() - } - ) + id: ALICE.into(), + }, + ), }; // Transfer ParaA balance to B + ParaA::execute_with(|| { + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + amount, + Box::new(VersionedMultiLocation::V1(dest)), + 800000 + )); + assert_eq!( + parachain::Balances::free_balance(&ALICE.into()), + INITIAL_BALANCE - amount + ) + }); + + // Make sure B received the token + ParaB::execute_with(|| { + // free execution, full amount received + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + amount + ); + }); +} + +#[test] +fn send_para_a_asset_para_b_and_then_send_back() { + MockNet::reset(); + + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX)), + ))); + // a's currency id in para a, para b, and para c + let a_currency_id = 0u32; + let amount = 321u128; + + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + evm_address: None, + min_balance: 1, + is_frozen: false, + is_sufficient: false, + }; + + // register a_currency in ParaA, ParaB and ParaC + ParaA::execute_with(|| { + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + // we need to change this on/after v0.9.16 + source_location.clone(), + asset_metadata.clone() + )); + assert_eq!( + Some(a_currency_id), + parachain::AssetManager::location_asset_id(source_location.clone()) + ); + }); + + ParaB::execute_with(||{ + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + assert_eq!( + Some(a_currency_id), + parachain::AssetManager::location_asset_id(source_location.clone()) + ); + }); + + let alice_on_b = MultiLocation { + parents: 1, + interior: X2( + Parachain(2), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }, + ), + }; + ParaA::execute_with(||{ - let alice_balance = parachain::Balances::free_balance(&ALICE.into()); - assert_ok!( - parachain::XTokens::transfer( - parachain::Origin::signed(ALICE.into()), - parachain::CurrencyId::MantaCurrency(a_currency_id_on_a), - amount, - Box::new(VersionedMultiLocation::V1(dest)), - 800000 - )); + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + amount, + Box::new(VersionedMultiLocation::V1(alice_on_b)), + 800000 + )); assert_eq!( parachain::Balances::free_balance(&ALICE.into()), INITIAL_BALANCE - amount @@ -339,8 +424,46 @@ fn reserve_transfer_parachain_a_asset_a_to_b() { // Make sure B received the token ParaB::execute_with(|| { // free execution, full amount received - assert_eq!(parachain::Assets::balance(a_currency_id_on_b, &ALICE.into()), amount); + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + amount + ); + }); + + let alice_on_a = MultiLocation { + parents: 1, + interior: X2( + Parachain(1), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }, + ), + }; + + // Send wrapped a back to a + ParaB::execute_with(||{ + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + amount, + Box::new(VersionedMultiLocation::V1(alice_on_a)), + 800000 + )); + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + 0 + ); + }); + + // make sure that a received the token + ParaA::execute_with(||{ + assert_eq!( + parachain::Balances::free_balance(&ALICE.into()), + INITIAL_BALANCE + ) }); + } /// Scenario: diff --git a/runtime/primitives/src/assets.rs b/runtime/primitives/src/assets.rs index b66e57f55..d05a66abb 100644 --- a/runtime/primitives/src/assets.rs +++ b/runtime/primitives/src/assets.rs @@ -14,13 +14,14 @@ // You should have received a copy of the GNU General Public License // along with Manta. If not, see . -///! Manta/Calamari/Dolphin Asset - -use xcm::{v1::{MultiLocation, Junctions}, VersionedMultiLocation}; -use codec::{Encode, Decode}; +use codec::{Decode, Encode}; use scale_info::TypeInfo; -use sp_std::{marker::PhantomData, borrow::Borrow}; - +use sp_std::{borrow::Borrow, marker::PhantomData}; +///! Manta/Calamari/Dolphin Asset +use xcm::{ + v1::{Junctions, MultiLocation}, + VersionedMultiLocation, +}; #[derive(Clone, Eq, Debug, PartialEq, Encode, Decode, TypeInfo)] pub struct AssetLocation(pub VersionedMultiLocation); @@ -28,16 +29,19 @@ pub struct AssetLocation(pub VersionedMultiLocation); /// This cannot act as the default before v0.9.16 and need overwrite /// https://docs.google.com/document/d/1W8y00IcJb0JXPBF59aP4nm-c7DY8Ld02-yIAO7UxR80 impl Default for AssetLocation { - fn default() -> Self { - AssetLocation(VersionedMultiLocation::V1(MultiLocation {parents: 0, interior: Junctions::Here})) - } + fn default() -> Self { + AssetLocation(VersionedMultiLocation::V1(MultiLocation { + parents: 0, + interior: Junctions::Here, + })) + } } /// Convert a `MultiLocaiton` to an `AssetLocation` /// Note: This does not guaranttee the `AssetLocation` is registered (i.e. have an AssetId) impl From for AssetLocation { fn from(location: MultiLocation) -> Self { - AssetLocation(VersionedMultiLocation::V1(location)) + AssetLocation(VersionedMultiLocation::V1(location)) } } @@ -45,55 +49,53 @@ impl From for AssetLocation { /// If Native, retrun none. impl Into> for AssetLocation { fn into(self: Self) -> Option { - // only support specific version + // only support specific version if let AssetLocation(VersionedMultiLocation::V1(loc)) = self { - Some(loc) - } else { - None - } + Some(loc) + } else { + None + } } } /// Defines the trait to obtain a generic AssetId -pub trait AssetIdLocationGetter{ - // get AssetLocation from AssetId - fn get_asset_location(asset_id: AssetId) -> Option; +pub trait AssetIdLocationGetter { + // get AssetLocation from AssetId + fn get_asset_location(asset_id: AssetId) -> Option; - // get AssetId from AssetLocation - fn get_asset_id(loc: AssetLocation) -> Option; + // get AssetId from AssetLocation + fn get_asset_id(loc: AssetLocation) -> Option; } /// Converter struct implementing `Convert`. -/// This enforce the `AssetInfoGetter` implements `AssetIdLocationGetter` +/// This enforce the `AssetInfoGetter` implements `AssetIdLocationGetter` pub struct AssetIdLocationConvert( - PhantomData<(AssetId, AssetLocation, AssetInfoGetter)>, + PhantomData<(AssetId, AssetLocation, AssetInfoGetter)>, ); -impl xcm_executor::traits::Convert - for AssetIdLocationConvert +impl xcm_executor::traits::Convert + for AssetIdLocationConvert where - AssetId: Clone, - AssetLocation: From + Into> + Clone, - AssetInfoGetter: AssetIdLocationGetter, + AssetId: Clone, + AssetLocation: From + Into> + Clone, + AssetInfoGetter: AssetIdLocationGetter, { - fn convert_ref(loc: impl Borrow) -> Result { - if let Some(asset_id) = AssetInfoGetter::get_asset_id(loc.borrow().clone().into()){ - Ok(asset_id) - } else { - Err(()) - } - } + fn convert_ref(loc: impl Borrow) -> Result { + if let Some(asset_id) = AssetInfoGetter::get_asset_id(loc.borrow().clone().into()) { + Ok(asset_id) + } else { + Err(()) + } + } - fn reverse_ref(id: impl Borrow) -> Result { - if let Some(asset_loc) = AssetInfoGetter::get_asset_location(id.borrow().clone()) { - if let Some(location) = asset_loc.into() { - Ok(location) - } else { - Err(()) - } - } else { - Err(()) - } - } + fn reverse_ref(id: impl Borrow) -> Result { + if let Some(asset_loc) = AssetInfoGetter::get_asset_location(id.borrow().clone()) { + if let Some(location) = asset_loc.into() { + Ok(location) + } else { + Err(()) + } + } else { + Err(()) + } + } } - - diff --git a/runtime/primitives/src/lib.rs b/runtime/primitives/src/lib.rs index bebef0658..50974961b 100644 --- a/runtime/primitives/src/lib.rs +++ b/runtime/primitives/src/lib.rs @@ -19,12 +19,14 @@ #![allow(clippy::upper_case_acronyms)] #![cfg_attr(not(feature = "std"), no_std)] +mod assets; pub mod constants; mod xcm; -mod assets; +pub use crate::{ + assets::{AssetIdLocationConvert, AssetIdLocationGetter, AssetLocation}, + xcm::{AccountIdToMultiLocation, MultiNativeAsset}, +}; pub use constants::time; -pub use crate::xcm::{MultiNativeAsset, AccountIdToMultiLocation}; -pub use crate::assets::{AssetLocation, AssetIdLocationConvert, AssetIdLocationGetter}; use sp_runtime::traits::{BlakeTwo256, IdentifyAccount, Verify}; diff --git a/runtime/primitives/src/xcm.rs b/runtime/primitives/src/xcm.rs index 3d1c59e38..c258ec2f9 100644 --- a/runtime/primitives/src/xcm.rs +++ b/runtime/primitives/src/xcm.rs @@ -16,14 +16,14 @@ use sp_std::marker::PhantomData; -use xcm_executor::traits::FilterAssetLocation; use sp_runtime::traits::Convert; -use xcm::{v1::{ - MultiAsset, MultiLocation, AssetId as xcmAssetId, - Junction::{Parachain, AccountId32}, - Junctions::*, - NetworkId, -}}; +use xcm::v1::{ + AssetId as xcmAssetId, + Junction::{AccountId32, Parachain}, + Junctions::*, + MultiAsset, MultiLocation, NetworkId, +}; +use xcm_executor::traits::FilterAssetLocation; pub trait Reserve { /// Returns assets reserve location. @@ -33,7 +33,7 @@ pub trait Reserve { // Takes the chain part of a MultiAsset impl Reserve for MultiAsset { fn reserve(&self) -> Option { - // We only care about concrete location now. + // We only care about concrete location now. if let xcmAssetId::Concrete(location) = self.id.clone() { let first_interior = location.first_interior(); let parents = location.parent_count(); @@ -65,7 +65,9 @@ impl FilterAssetLocation for MultiNativeAsset { pub struct AccountIdToMultiLocation(PhantomData); impl Convert for AccountIdToMultiLocation -where AccountId: Into<[u8; 32]> + Clone { +where + AccountId: Into<[u8; 32]> + Clone, +{ fn convert(account: AccountId) -> MultiLocation { MultiLocation { parents: 0, From bb8703767db6c1f74f9be7ecfe264286c8ec4f7d Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 30 Jan 2022 23:16:35 -0500 Subject: [PATCH 08/33] send wrapped token to a third chain --- runtime/calamari/tests/xcm_tests.rs | 131 ++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index 90e843928..25c0a98ca 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -352,6 +352,7 @@ fn send_para_a_asset_to_para_b() { fn send_para_a_asset_para_b_and_then_send_back() { MockNet::reset(); + // para a asset location let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX)), @@ -466,6 +467,136 @@ fn send_para_a_asset_para_b_and_then_send_back() { } +#[test] +fn send_para_a_asset_from_para_b_to_para_c() { + MockNet::reset(); + + // source location of para a asset + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX)), + ))); + let a_currency_id = 0u32; + let amount = 888u128; + + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + evm_address: None, + min_balance: 1, + is_frozen: false, + is_sufficient: false, + }; + + // register a_currency in ParaA, ParaB and ParaC + ParaA::execute_with(|| { + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + // we need to change this on/after v0.9.16 + source_location.clone(), + asset_metadata.clone() + )); + assert_eq!( + Some(a_currency_id), + parachain::AssetManager::location_asset_id(source_location.clone()) + ); + }); + + ParaB::execute_with(||{ + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + assert_eq!( + Some(a_currency_id), + parachain::AssetManager::location_asset_id(source_location.clone()) + ); + }); + + ParaC::execute_with(||{ + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + assert_eq!( + Some(a_currency_id), + parachain::AssetManager::location_asset_id(source_location.clone()) + ); + }); + + // A send B some token + let alice_on_b = MultiLocation { + parents: 1, + interior: X2( + Parachain(2), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }, + ), + }; + + ParaA::execute_with(||{ + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + amount, + Box::new(VersionedMultiLocation::V1(alice_on_b.clone())), + 800000 + )); + assert_eq!( + parachain::Balances::free_balance(&ALICE.into()), + INITIAL_BALANCE - amount + ) + }); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + amount + ); + }); + + // B send C para A asset + let alice_on_c = MultiLocation { + parents: 1, + interior: X2( + Parachain(3), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }, + ), + }; + + ParaB::execute_with(||{ + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + amount, + Box::new(VersionedMultiLocation::V1(alice_on_c)), + 800000 + )); + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + 0 + ); + }); + + // Make sure C received the token + ParaC::execute_with(|| { + // free execution, full amount received + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + amount + ); + }); +} + /// Scenario: /// A parachain transfers funds on the relay chain to another parachain account. /// From 70401caece6d104eed59b31e73083338d7f748fc Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Tue, 15 Feb 2022 18:21:15 -0700 Subject: [PATCH 09/33] relay chain -> parachain transfer with fee charge --- pallets/asset-manager/src/lib.rs | 57 ++++++- runtime/calamari/tests/xcm_mock/parachain.rs | 27 +++- runtime/calamari/tests/xcm_tests.rs | 110 ++++++++++++- runtime/primitives/Cargo.toml | 3 + runtime/primitives/src/assets.rs | 9 +- runtime/primitives/src/lib.rs | 4 +- runtime/primitives/src/xcm.rs | 159 ++++++++++++++++++- 7 files changed, 353 insertions(+), 16 deletions(-) diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index e6e3b504d..994903645 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -34,7 +34,7 @@ pub mod pallet { use codec::{Codec, HasCompact}; use frame_support::{pallet_prelude::*, transactional, PalletId}; use frame_system::pallet_prelude::*; - use manta_primitives::AssetIdLocationGetter; + use manta_primitives::{AssetIdLocationGetter, UnitsToWeightRatio}; use scale_info::TypeInfo; use sp_runtime::{ traits::{AccountIdConversion, AtLeast32BitUnsigned, Bounded, CheckedAdd, One}, @@ -85,6 +85,13 @@ pub mod pallet { } } + /// Get unit per second from `AssetId` + impl UnitsToWeightRatio for Pallet { + fn get_units_per_second(id: T::AssetId) -> Option { + UnitsPerSecond::::get(id) + } + } + #[pallet::config] pub trait Config: frame_system::Config { /// The overarching event type. @@ -141,8 +148,13 @@ pub mod pallet { /// An asset has been updated. AssetUpdated { asset_id: T::AssetId, - asset_address: T::AssetLocation, - metadata: T::AssetRegistrarMetadata, + location: Option, + metadata: Option, + }, + /// Update units per second of an asset + UnitsPerSecondUpdated { + asset_id: T::AssetId, + units_per_second: u128 }, /// Asset frozen. AssetFrozen { asset_id: T::AssetId }, @@ -188,7 +200,7 @@ pub mod pallet { /// XCM transfer cost for different asset. #[pallet::storage] - pub type AssetTransferCost = StorageMap<_, Blake2_128Concat, T::AssetId, T::Balance>; + pub type UnitsPerSecond = StorageMap<_, Blake2_128Concat, T::AssetId, u128>; #[pallet::call] impl Pallet { @@ -265,16 +277,49 @@ pub mod pallet { ) } // write to the ledger state. - if let Some(location) = location_option { + if let Some(location) = location_option.clone() { let old_location = AssetIdLocation::::get(&asset_id).ok_or(Error::::UpdateNonExistAsset)?; LocationAssetId::::remove(&old_location); LocationAssetId::::insert(&location, &asset_id); AssetIdLocation::::insert(&asset_id, &location); } - if let Some(metadata) = metadata_option { + if let Some(metadata) = metadata_option.clone() { AssetIdMetadata::::insert(&asset_id, &metadata) } + Self::deposit_event(Event::::AssetUpdated{ + asset_id, + location: location_option, + metadata: metadata_option, + }); + Ok(()) + } + + /// Update an asset by its asset id in the asset manager. + /// + /// * `origin`: Caller of this extrinsic, the acess control is specfied by `ForceOrigin`. + /// * `asset_id`: AssetId to be updated. + /// * `units_per_second`: units per second for `asset_id` + /// # + /// TODO: get actual weight + /// # + #[pallet::weight(50_000_000)] + #[transactional] + pub fn set_units_per_second( + origin: OriginFor, + asset_id: T::AssetId, + units_per_second: u128, + ) -> DispatchResult { + T::ModifierOrigin::ensure_origin(origin)?; + ensure!( + AssetIdLocation::::contains_key(&asset_id), + Error::::UpdateNonExistAsset + ); + UnitsPerSecond::::insert(&asset_id, &units_per_second); + Self::deposit_event(Event::::UnitsPerSecondUpdated { + asset_id, + units_per_second + }); Ok(()) } } diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index c9e7ce7dc..4cc862668 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -33,7 +33,7 @@ use sp_runtime::{ }; use sp_std::{convert::TryFrom, prelude::*}; -use manta_primitives::{AssetIdLocationConvert, AssetLocation, MultiNativeAsset}; +use manta_primitives::{AssetIdLocationConvert, AssetLocation, FirstAssetTrader, MultiNativeAsset}; use pallet_xcm::XcmPassthrough; use polkadot_core_primitives::BlockNumber as RelayBlockNumber; use polkadot_parachain::primitives::{ @@ -176,7 +176,9 @@ pub type XcmOriginToCallOrigin = ( parameter_types! { pub const UnitWeightCost: Weight = 1; - pub KsmPerSecond: (xcm::v1::AssetId, u128) = (Concrete(Parent.into()), 1); + // Used in native traders + // This might be able to skipped. + pub ParaTokenPerSecond: (xcm::v1::AssetId, u128) = (Concrete(SelfReserve::get()), 1_000_000_000); pub const MaxInstructions: u32 = 100; } @@ -211,6 +213,23 @@ pub type FungiblesTransactor = FungiblesAdapter< pub type XcmRouter = super::ParachainXcmRouter; pub type Barrier = AllowUnpaidExecutionFrom; +parameter_types! { + /// Xcm fees will go to the asset manager (we don't implement treasury yet) + pub XcmFeesAccount: AccountId = AssetManager::account_id(); +} + +pub type XcmFeesToAccount = manta_primitives::XcmFeesToAccount< + Assets, + ConvertedConcreteAssetId< + AssetId, + Balance, + AssetIdLocationConvert, + JustTry, + >, + AccountId, + XcmFeesAccount, +>; + pub struct XcmConfig; impl Config for XcmConfig { type Call = Call; @@ -244,7 +263,9 @@ impl Config for XcmConfig { // >, // FirstAssetTrader, // ); - type Trader = FixedRateOfFungible; + type Trader = ( + FixedRateOfFungible, + FirstAssetTrader); type ResponseHandler = (); type AssetTrap = (); type AssetClaims = (); diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index 25c0a98ca..d3e8541d4 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -129,6 +129,11 @@ fn reserve_transfer_relaychain_to_parachain_a() { source_location, asset_metadata )); + // we don't charge anything during test + assert_ok!(parachain::AssetManager::set_units_per_second( + parachain::Origin::root(), + relay_asset_id, + 0u128)); }); let withdraw_amount = 123; @@ -149,7 +154,7 @@ fn reserve_transfer_relaychain_to_parachain_a() { 0, )); assert_eq!( - parachain::Balances::free_balance(¶_account_id(1)), + relay_chain::Balances::free_balance(¶_account_id(1)), INITIAL_BALANCE + withdraw_amount ); }); @@ -187,6 +192,11 @@ fn reserve_transfer_relaychain_to_parachain_a_then_back() { source_location, asset_metadata )); + // we don't charge anything + assert_ok!(parachain::AssetManager::set_units_per_second( + parachain::Origin::root(), + relay_asset_id, + 0u128)); }); let amount = 123; @@ -291,6 +301,10 @@ fn send_para_a_asset_to_para_b() { source_location.clone(), asset_metadata.clone() )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); assert_eq!( Some(a_currency_id), AssetManager::location_asset_id(source_location.clone()) @@ -306,6 +320,10 @@ fn send_para_a_asset_to_para_b() { source_location.clone(), asset_metadata )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); assert_eq!( Some(a_currency_id), AssetManager::location_asset_id(source_location) @@ -379,6 +397,10 @@ fn send_para_a_asset_para_b_and_then_send_back() { source_location.clone(), asset_metadata.clone() )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) @@ -391,6 +413,10 @@ fn send_para_a_asset_para_b_and_then_send_back() { source_location.clone(), asset_metadata.clone() )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) @@ -497,6 +523,10 @@ fn send_para_a_asset_from_para_b_to_para_c() { source_location.clone(), asset_metadata.clone() )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) @@ -509,6 +539,10 @@ fn send_para_a_asset_from_para_b_to_para_c() { source_location.clone(), asset_metadata.clone() )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) @@ -521,6 +555,10 @@ fn send_para_a_asset_from_para_b_to_para_c() { source_location.clone(), asset_metadata.clone() )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) @@ -597,6 +635,76 @@ fn send_para_a_asset_from_para_b_to_para_c() { }); } + +#[test] +fn receive_relay_asset_with_trader(){ + MockNet::reset(); + + let relay_asset_id: parachain::AssetId = 0; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + let amount = 666u128; + + ParaA::execute_with(||{ + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location, + asset_metadata + )); + // We charge 10^9 as units per second + assert_ok!(parachain::AssetManager::set_units_per_second( + parachain::Origin::root(), + relay_asset_id, + 1000_000_000u128)); + }); + + let dest: MultiLocation = AccountId32 { + network: Any, + id: ALICE.into() + }.into(); + + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::Origin::signed(ALICE), + Box::new(X1(Parachain(1)).into().into()), + Box::new(VersionedMultiLocation::V1(dest).clone().into()), + Box::new((Here, amount).into()), + 0, + )); + assert_eq!( + relay_chain::Balances::free_balance(¶_account_id(1)), + INITIAL_BALANCE + amount + ); + }); + + // `reserved_transfer_asset` contains the following 4 instructions + // 1. ReserveAssetDeposited(assets.clone()), + // 2. ClearOrigin, + // 3. BuyExecution { fees, weight_limit: Limited(0) }, + // 4. DepositAsset { assets: Wild(All), max_assets, beneficiary }, + // each instruction's weight is 1000, thus, the total charge is: + // 10^9 * 1^3 * 4 / 10^12 (WEIGHT_PER_SECOND defined by frame_support) = 4 + ParaA::execute_with(||{ + assert_eq!( + parachain::Assets::balance(relay_asset_id, &ALICE.into()), + amount - 4u128 + ); + assert_eq!( + parachain::Assets::balance(relay_asset_id, AssetManager::account_id()), + 4u128 + ); + }); + +} + /// Scenario: /// A parachain transfers funds on the relay chain to another parachain account. /// diff --git a/runtime/primitives/Cargo.toml b/runtime/primitives/Cargo.toml index c1a3872c9..f2865188f 100644 --- a/runtime/primitives/Cargo.toml +++ b/runtime/primitives/Cargo.toml @@ -14,6 +14,7 @@ targets = ['x86_64-unknown-linux-gnu'] codec = { package = "parity-scale-codec", version = "2.3.1", default-features = false } scale-info = { version = "1.0", default-features = false, features = [ "derive" ] } smallvec = "1.6.1" +log = "0.4.14" # Substrate primitives sp-consensus-aura = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } @@ -23,6 +24,7 @@ sp-io = { git = 'https://github.com/paritytech/substrate.git', default-features sp-runtime = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } xcm-executor = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16"} xcm = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } +xcm-builder = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16"} [features] default = ["std"] @@ -32,4 +34,5 @@ std = [ 'scale-info/std', 'sp-io/std', 'sp-std/std', + 'log/std', ] diff --git a/runtime/primitives/src/assets.rs b/runtime/primitives/src/assets.rs index d05a66abb..d57dd171d 100644 --- a/runtime/primitives/src/assets.rs +++ b/runtime/primitives/src/assets.rs @@ -46,7 +46,7 @@ impl From for AssetLocation { } /// Convert an `AssetLocation` to a MultiLocation -/// If Native, retrun none. +/// If Native, return none. impl Into> for AssetLocation { fn into(self: Self) -> Option { // only support specific version @@ -67,6 +67,13 @@ pub trait AssetIdLocationGetter { fn get_asset_id(loc: AssetLocation) -> Option; } +/// Defines the units per second charged given an `AssetId`. +pub trait UnitsToWeightRatio { + /// Get units per second from asset id + fn get_units_per_second(asset_id: AssetId) -> Option; +} + + /// Converter struct implementing `Convert`. /// This enforce the `AssetInfoGetter` implements `AssetIdLocationGetter` pub struct AssetIdLocationConvert( diff --git a/runtime/primitives/src/lib.rs b/runtime/primitives/src/lib.rs index 50974961b..a602023e3 100644 --- a/runtime/primitives/src/lib.rs +++ b/runtime/primitives/src/lib.rs @@ -23,8 +23,8 @@ mod assets; pub mod constants; mod xcm; pub use crate::{ - assets::{AssetIdLocationConvert, AssetIdLocationGetter, AssetLocation}, - xcm::{AccountIdToMultiLocation, MultiNativeAsset}, + assets::{AssetIdLocationConvert, AssetIdLocationGetter, AssetLocation, UnitsToWeightRatio}, + xcm::{AccountIdToMultiLocation, MultiNativeAsset, FirstAssetTrader, XcmFeesToAccount}, }; pub use constants::time; diff --git a/runtime/primitives/src/xcm.rs b/runtime/primitives/src/xcm.rs index c258ec2f9..06fd79723 100644 --- a/runtime/primitives/src/xcm.rs +++ b/runtime/primitives/src/xcm.rs @@ -15,15 +15,23 @@ // along with Manta. If not, see . use sp_std::marker::PhantomData; +use sp_runtime::traits::{Convert, Zero}; + +use frame_support::{weights::{Weight, constants::WEIGHT_PER_SECOND}}; +use frame_support::traits::fungibles::Mutate; +use frame_support::pallet_prelude::Get; -use sp_runtime::traits::Convert; use xcm::v1::{ AssetId as xcmAssetId, Junction::{AccountId32, Parachain}, Junctions::*, - MultiAsset, MultiLocation, NetworkId, + MultiAsset, MultiLocation, NetworkId, Fungibility }; -use xcm_executor::traits::FilterAssetLocation; +use xcm::latest::Error as XcmError; +use xcm_builder::TakeRevenue; +use xcm_executor::traits::{FilterAssetLocation, WeightTrader, MatchesFungibles}; +use crate::{UnitsToWeightRatio, AssetIdLocationGetter}; + pub trait Reserve { /// Returns assets reserve location. @@ -78,3 +86,148 @@ where } } } + +// This trader defines how to charge a XCM call. +// This takes the first fungible asset, and takes UnitPerSecondGetter that implements +// UnitToWeightRatio trait. +pub struct FirstAssetTrader< + AssetId: Clone, + AssetLocation: From + Clone, + AssetIdInfoGetter: UnitsToWeightRatio + AssetIdLocationGetter, + R: TakeRevenue, +>( + Weight, + Option<(MultiLocation, u128, u128)>, + sp_std::marker::PhantomData<(AssetId, AssetLocation, AssetIdInfoGetter, R)>); +impl < + AssetId: Clone, + AssetLocation: From + Clone, + AssetIdInfoGetter: UnitsToWeightRatio + AssetIdLocationGetter, + R: TakeRevenue, +> WeightTrader for FirstAssetTrader{ + fn new() -> Self { + FirstAssetTrader(Zero::zero(), None, sp_std::marker::PhantomData) + } + + /// buy weight for XCM execution. We always return `TooExpensive` error if this fails. + fn buy_weight(&mut self, weight: Weight, payment: xcm_executor::Assets) -> Result { + let first_asset = payment + .clone() + .fungible_assets_iter() + .next() + .ok_or(XcmError::TooExpensive)?; + + // Check the first asset + match (first_asset.id, first_asset.fun) { + (xcmAssetId::Concrete(id), Fungibility::Fungible(_)) => { + let asset_loc: AssetLocation = id.clone().into(); + let asset_id = AssetIdInfoGetter::get_asset_id(asset_loc).ok_or(XcmError::TooExpensive)?; + let units_per_second = AssetIdInfoGetter::get_units_per_second(asset_id).ok_or(XcmError::TooExpensive)?; + let amount = units_per_second * (weight as u128) / (WEIGHT_PER_SECOND as u128); + // we don't need to proceed if amount is zero. + // This is very useful in tests. + if amount.is_zero() { + return Ok(payment); + } + let required = MultiAsset { + fun: Fungibility::Fungible(amount.into()), + id: xcmAssetId::Concrete(id.clone()), + }; + let unused = payment + .checked_sub(required) + .map_err(|_| XcmError::TooExpensive)?; + self.0 = self.0.saturating_add(weight); + + // In case the asset matches the one the trader already stored before, add + // to later refund + + // Else we are always going to substract the weight if we can, but we latter do + // not refund it + + // In short, we only refund on the asset the trader first succesfully was able + // to pay for an execution + let new_asset = match self.1.clone() { + Some((prev_id, prev_amount, units_per_second)) => { + if prev_id == id.clone() { + Some((id, prev_amount.saturating_add(amount), units_per_second)) + } else { + None + } + } + None => Some((id, amount, units_per_second)), + }; + + // Due to the trait bound, we can only refund one asset. + if let Some(new_asset) = new_asset { + self.0 = self.0.saturating_add(weight); + self.1 = Some(new_asset); + }; + return Ok(unused); + } + _ => Err(XcmError::TooExpensive) + } + } + + fn refund_weight(&mut self, weight: Weight) -> Option { + if let Some((id, prev_amount, units_per_second)) = self.1.clone() { + let weight = weight.min(self.0); + self.0 -= weight; + let amount = units_per_second * (weight as u128) / (WEIGHT_PER_SECOND as u128); + self.1 = Some(( + id.clone(), + prev_amount.saturating_sub(amount), + units_per_second, + )); + Some(MultiAsset { + fun: Fungibility::Fungible(amount), + id: xcmAssetId::Concrete(id.clone()), + }) + } else { + None + } + } +} + +/// Handle spent fees, deposit them as defined by R +impl < + AssetId: Clone, + AssetLocation: From + Clone, + AssetIdInfoGetter: UnitsToWeightRatio + AssetIdLocationGetter, + R: TakeRevenue, +> Drop for FirstAssetTrader +{ + fn drop(&mut self) { + if let Some((id, amount, _)) = self.1.clone() { + R::take_revenue((id, amount).into()); + } + } +} + +/// XCM fee depositor to which we implement the TakeRevenue trait +/// It receives a fungibles::Mutate implemented argument, a matcher to convert MultiAsset into +/// AssetId and amount, and the fee receiver account +pub struct XcmFeesToAccount( + PhantomData<(Assets, Matcher, AccountId, ReceiverAccount)>, +); +impl< + Assets: Mutate, + Matcher: MatchesFungibles, + AccountId: Clone, + ReceiverAccount: Get, + > TakeRevenue for XcmFeesToAccount +{ + fn take_revenue(revenue: MultiAsset) { + match Matcher::matches_fungibles(&revenue) { + Ok((asset_id, amount)) => { + if !amount.is_zero() { + let ok = Assets::mint_into(asset_id, &ReceiverAccount::get(), amount).is_ok(); + debug_assert!(ok, "`mint_into` cannot generally fail; qed"); + } + } + Err(_) => log::debug!( + target: "xcm", + "take revenue failed matching fungible" + ), + } + } +} From c3f3c9843d3bc9c7c20bee9736e95c890567e9a7 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Fri, 4 Feb 2022 16:32:05 -0500 Subject: [PATCH 10/33] add cargo lock back --- Cargo.lock | 11626 +++++++++++++++++++++++++++++ pallets/asset-manager/Cargo.toml | 12 +- runtime/calamari/Cargo.toml | 6 +- 3 files changed, 11635 insertions(+), 9 deletions(-) create mode 100644 Cargo.lock diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 000000000..8867b087a --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,11626 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addr2line" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd" +dependencies = [ + "gimli 0.25.0", +] + +[[package]] +name = "addr2line" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +dependencies = [ + "gimli 0.26.1", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +dependencies = [ + "generic-array 0.14.5", +] + +[[package]] +name = "aes" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +dependencies = [ + "cfg-if 1.0.0", + "cipher", + "cpufeatures 0.2.1", + "opaque-debug 0.3.0", +] + +[[package]] +name = "aes-gcm" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.4", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +dependencies = [ + "memchr", +] + +[[package]] +name = "always-assert" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf688625d06217d5b1bb0ea9d9c44a1635fd0ee3534466388d18203174f4d11" + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "anyhow" +version = "1.0.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" + +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" +dependencies = [ + "nodrop", +] + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + +[[package]] +name = "asn1_der" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" + +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + +[[package]] +name = "async-attributes" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "async-channel" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-executor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "once_cell", + "slab", +] + +[[package]] +name = "async-global-executor" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6" +dependencies = [ + "async-channel", + "async-executor", + "async-io", + "async-mutex", + "blocking", + "futures-lite", + "num_cpus", + "once_cell", +] + +[[package]] +name = "async-io" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" +dependencies = [ + "concurrent-queue", + "futures-lite", + "libc", + "log", + "once_cell", + "parking", + "polling", + "slab", + "socket2 0.4.4", + "waker-fn", + "winapi 0.3.9", +] + +[[package]] +name = "async-lock" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-mutex" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-process" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83137067e3a2a6a06d67168e49e68a0957d215410473a740cea95a2425c0b7c6" +dependencies = [ + "async-io", + "blocking", + "cfg-if 1.0.0", + "event-listener", + "futures-lite", + "libc", + "once_cell", + "signal-hook", + "winapi 0.3.9", +] + +[[package]] +name = "async-std" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952" +dependencies = [ + "async-attributes", + "async-channel", + "async-global-executor", + "async-io", + "async-lock", + "async-process", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite", + "gloo-timers", + "kv-log-macro", + "log", + "memchr", + "num_cpus", + "once_cell", + "pin-project-lite 0.2.8", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + +[[package]] +name = "async-std-resolver" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf3e776afdf3a2477ef4854b85ba0dff3bd85792f685fb3c68948b4d304e4f0" +dependencies = [ + "async-std", + "async-trait", + "futures-io", + "futures-util", + "pin-utils", + "trust-dns-resolver", +] + +[[package]] +name = "async-task" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d306121baf53310a3fd342d88dc0824f6bbeace68347593658525565abee8" + +[[package]] +name = "async-trait" +version = "0.1.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "asynchronous-codec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb4401f0a3622dad2e0763fa79e0eb328bc70fb7dccfdd645341f00d671247d6" +dependencies = [ + "bytes 1.1.0", + "futures-sink", + "futures-util", + "memchr", + "pin-project-lite 0.2.8", +] + +[[package]] +name = "asynchronous-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690" +dependencies = [ + "bytes 1.1.0", + "futures-sink", + "futures-util", + "memchr", + "pin-project-lite 0.2.8", +] + +[[package]] +name = "atomic" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "atomic-waker" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "autocfg" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" + +[[package]] +name = "backtrace" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" +dependencies = [ + "addr2line 0.17.0", + "cc", + "cfg-if 1.0.0", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base-x" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" + +[[package]] +name = "base58" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "beef" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bed554bd50246729a1ec158d08aa3235d1b69d94ad120ebe187e28894787e736" +dependencies = [ + "serde", +] + +[[package]] +name = "beefy-gadget" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "beefy-primitives", + "fnv", + "futures 0.3.19", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-client-api", + "sc-keystore", + "sc-network", + "sc-network-gossip", + "sc-utils", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-core", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", + "wasm-timer", +] + +[[package]] +name = "beefy-gadget-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "beefy-gadget", + "beefy-primitives", + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "jsonrpc-pubsub", + "log", + "parity-scale-codec", + "sc-rpc", + "serde", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "beefy-merkle-tree" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" + +[[package]] +name = "beefy-primitives" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bimap" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0455254eb5c6964c4545d8bac815e1a1be4f3afe0ae695ea539c12d728d44b" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.59.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8" +dependencies = [ + "bitflags", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitvec" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" +dependencies = [ + "crypto-mac 0.8.0", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "blake2-rfc" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" +dependencies = [ + "arrayvec 0.4.12", + "constant_time_eq", +] + +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "constant_time_eq", +] + +[[package]] +name = "blake2s_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "cc", + "cfg-if 0.1.10", + "constant_time_eq", + "crypto-mac 0.8.0", + "digest 0.9.0", +] + +[[package]] +name = "block-buffer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +dependencies = [ + "block-padding 0.1.5", + "byte-tools", + "byteorder", + "generic-array 0.12.4", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding 0.2.1", + "generic-array 0.14.5", +] + +[[package]] +name = "block-padding" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +dependencies = [ + "byte-tools", +] + +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "blocking" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046e47d4b2d391b1f6f8b407b1deb8dee56c1852ccd868becf2710f601b5f427" +dependencies = [ + "async-channel", + "async-task", + "atomic-waker", + "fastrand", + "futures-lite", + "once_cell", +] + +[[package]] +name = "bounded-vec" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afdd1dffefe5fc66262a524b91087c43b16e478b2e3dc49eb11b0e2fd6b6ec90" +dependencies = [ + "thiserror", +] + +[[package]] +name = "bp-header-chain" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "finality-grandpa", + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-message-dispatch" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bp-runtime", + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-std", +] + +[[package]] +name = "bp-messages" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bitvec", + "bp-runtime", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "serde", + "sp-std", +] + +[[package]] +name = "bp-polkadot-core" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bp-messages", + "bp-runtime", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std", + "sp-version", +] + +[[package]] +name = "bp-rialto" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bp-messages", + "bp-runtime", + "frame-support", + "frame-system", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-rococo" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bp-messages", + "bp-polkadot-core", + "bp-runtime", + "frame-support", + "parity-scale-codec", + "smallvec", + "sp-api", + "sp-runtime", + "sp-std", + "sp-version", +] + +[[package]] +name = "bp-runtime" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "frame-support", + "hash-db", + "num-traits", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + +[[package]] +name = "bp-test-utils" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bp-header-chain", + "ed25519-dalek", + "finality-grandpa", + "parity-scale-codec", + "sp-application-crypto", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-wococo" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bp-messages", + "bp-polkadot-core", + "bp-rococo", + "bp-runtime", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bridge-runtime-common" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bp-message-dispatch", + "bp-messages", + "bp-runtime", + "frame-support", + "hash-db", + "pallet-bridge-dispatch", + "pallet-bridge-grandpa", + "pallet-bridge-messages", + "pallet-transaction-payment", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +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.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" + +[[package]] +name = "byte-slice-cast" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d30c751592b77c499e7bce34d99d67c2c11bdc0574e9a488ddade14150a4698" + +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +dependencies = [ + "byteorder", + "iovec", +] + +[[package]] +name = "bytes" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" + +[[package]] +name = "cache-padded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" + +[[package]] +name = "calamari-runtime" +version = "3.1.2" +dependencies = [ + "calamari-vesting", + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-timestamp", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "manta-collator-selection", + "manta-primitives", + "orml-xtokens", + "pallet-asset-manager", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collective", + "pallet-democracy", + "pallet-membership", + "pallet-multisig", + "pallet-scheduler", + "pallet-session", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-tx-pause", + "pallet-utility", + "pallet-xcm", + "parachain-info", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "scale-info", + "serde", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", + "xcm-simulator", +] + +[[package]] +name = "calamari-vesting" +version = "3.1.2" +dependencies = [ + "chrono", + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-balances", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "camino" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba2ae6de944143141f6155a473a6b02f66c7c3f9f47316f802f80204ebfe6e12" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.4", + "serde", + "serde_json", +] + +[[package]] +name = "cc" +version = "1.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +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 = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "chacha20" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee7ad89dc1128635074c268ee661f90c3f7e83d9fd12910608c36b47d6c3412" +dependencies = [ + "cfg-if 1.0.0", + "cipher", + "cpufeatures 0.1.5", + "zeroize", +] + +[[package]] +name = "chacha20poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1580317203210c517b6d44794abfbe600698276db18127e37ad3e69bf5e848e5" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "chrono" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +dependencies = [ + "libc", + "num-integer", + "num-traits", + "time", + "winapi 0.3.9", +] + +[[package]] +name = "cid" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff0e3bc0b6446b3f9663c1a6aba6ef06c5aeaa1bc92bd18077be337198ab9768" +dependencies = [ + "multibase", + "multihash 0.13.2", + "unsigned-varint 0.5.1", +] + +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array 0.14.5", +] + +[[package]] +name = "ckb-merkle-mountain-range" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f061f97d64fd1822664bdfb722f7ae5469a97b77567390f7442be5b5dc82a5b" +dependencies = [ + "cfg-if 0.1.10", +] + +[[package]] +name = "clang-sys" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cc00842eed744b858222c4c9faf7243aafc6d33f92f96935263ef4d8a41ce21" +dependencies = [ + "glob", + "libc", + "libloading 0.7.3", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "cloudabi" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +dependencies = [ + "bitflags", +] + +[[package]] +name = "concurrent-queue" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" +dependencies = [ + "cache-padded", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "cpp_demangle" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "cpufeatures" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef" +dependencies = [ + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-bforest" +version = "0.78.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc0cb7df82c8cf8f2e6a8dd394a0932a71369c160cc9b027dca414fced242513" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.78.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe4463c15fa42eee909e61e5eac4866b7c6d22d0d8c621e57a0c5380753bfa8c" +dependencies = [ + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "gimli 0.25.0", + "log", + "regalloc", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.78.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793f6a94a053a55404ea16e1700202a88101672b8cd6b4df63e13cde950852bf" +dependencies = [ + "cranelift-codegen-shared", + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.78.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44aa1846df275bce5eb30379d65964c7afc63c05a117076e62a119c25fe174be" + +[[package]] +name = "cranelift-entity" +version = "0.78.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3a45d8d6318bf8fc518154d9298eab2a8154ec068a8885ff113f6db8d69bb3a" +dependencies = [ + "serde", +] + +[[package]] +name = "cranelift-frontend" +version = "0.78.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e07339bd461766deb7605169de039e01954768ff730fa1254e149001884a8525" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-native" +version = "0.78.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03e2fca76ff57e0532936a71e3fc267eae6a19a86656716479c66e7f912e3d7b" +dependencies = [ + "cranelift-codegen", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-wasm" +version = "0.78.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f46fec547a1f8a32c54ea61c28be4f4ad234ad95342b718a9a9adcaadb0c778" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "itertools", + "log", + "smallvec", + "wasmparser", + "wasmtime-types", +] + +[[package]] +name = "crc32fast" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2209c310e29876f7f0b2721e7e26b84aff178aa3da5d091f9bfbf47669e60e3" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97242a70df9b89a65d0b6df3c4bf5b9ce03c5b7309019777fbde37e7537f8762" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", + "lazy_static", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120" +dependencies = [ + "cfg-if 1.0.0", + "lazy_static", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array 0.14.5", + "subtle", +] + +[[package]] +name = "crypto-mac" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +dependencies = [ + "generic-array 0.14.5", + "subtle", +] + +[[package]] +name = "ct-logs" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" +dependencies = [ + "sct", +] + +[[package]] +name = "ctor" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "ctr" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" +dependencies = [ + "cipher", +] + +[[package]] +name = "cuckoofilter" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18" +dependencies = [ + "byteorder", + "fnv", + "rand 0.7.3", +] + +[[package]] +name = "cumulus-client-cli" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "sc-cli", + "sc-service", + "structopt", +] + +[[package]] +name = "cumulus-client-collator" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "cumulus-client-consensus-common", + "cumulus-client-network", + "cumulus-primitives-core", + "futures 0.3.19", + "parity-scale-codec", + "parking_lot 0.10.2", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives", + "sc-client-api", + "sp-api", + "sp-consensus", + "sp-core", + "sp-runtime", + "tracing", +] + +[[package]] +name = "cumulus-client-consensus-aura" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "async-trait", + "cumulus-client-consensus-common", + "cumulus-primitives-core", + "futures 0.3.19", + "parity-scale-codec", + "polkadot-client", + "sc-client-api", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-slots", + "sc-telemetry", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", + "tracing", +] + +[[package]] +name = "cumulus-client-consensus-common" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "async-trait", + "dyn-clone", + "futures 0.3.19", + "parity-scale-codec", + "polkadot-primitives", + "sc-client-api", + "sc-consensus", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-runtime", + "sp-trie", + "tracing", +] + +[[package]] +name = "cumulus-client-consensus-relay-chain" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "async-trait", + "cumulus-client-consensus-common", + "cumulus-primitives-core", + "futures 0.3.19", + "parking_lot 0.10.2", + "polkadot-client", + "sc-client-api", + "sc-consensus", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "substrate-prometheus-endpoint", + "tracing", +] + +[[package]] +name = "cumulus-client-network" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "derive_more", + "futures 0.3.19", + "futures-timer 3.0.2", + "parity-scale-codec", + "parking_lot 0.10.2", + "polkadot-client", + "polkadot-node-primitives", + "polkadot-parachain", + "polkadot-primitives", + "sc-client-api", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "tracing", +] + +[[package]] +name = "cumulus-client-pov-recovery" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "cumulus-primitives-core", + "futures 0.3.19", + "futures-timer 3.0.2", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives", + "rand 0.8.4", + "sc-client-api", + "sc-consensus", + "sp-api", + "sp-consensus", + "sp-maybe-compressed-blob", + "sp-runtime", + "tracing", +] + +[[package]] +name = "cumulus-client-service" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "cumulus-client-collator", + "cumulus-client-consensus-common", + "cumulus-client-pov-recovery", + "cumulus-primitives-core", + "parity-scale-codec", + "parking_lot 0.10.2", + "polkadot-overseer", + "polkadot-primitives", + "polkadot-service", + "sc-chain-spec", + "sc-client-api", + "sc-consensus", + "sc-consensus-babe", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "tracing", +] + +[[package]] +name = "cumulus-pallet-aura-ext" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "frame-executive", + "frame-support", + "frame-system", + "pallet-aura", + "parity-scale-codec", + "scale-info", + "serde", + "sp-application-crypto", + "sp-consensus-aura", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "cumulus-pallet-dmp-queue" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "cumulus-pallet-parachain-system" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "cumulus-pallet-parachain-system-proc-macro", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "environmental", + "frame-support", + "frame-system", + "log", + "pallet-balances", + "parity-scale-codec", + "polkadot-parachain", + "scale-info", + "serde", + "sp-core", + "sp-externalities", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "sp-version", + "xcm", +] + +[[package]] +name = "cumulus-pallet-parachain-system-proc-macro" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "cumulus-pallet-session-benchmarking" +version = "3.0.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-session", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "cumulus-pallet-xcm" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", +] + +[[package]] +name = "cumulus-pallet-xcmp-queue" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "rand_chacha 0.3.1", + "scale-info", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "cumulus-primitives-core" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "frame-support", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain", + "polkadot-primitives", + "sp-api", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "cumulus-primitives-parachain-inherent" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-test-relay-sproof-builder", + "parity-scale-codec", + "polkadot-client", + "sc-client-api", + "scale-info", + "sp-api", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "tracing", +] + +[[package]] +name = "cumulus-primitives-timestamp" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "cumulus-primitives-core", + "sp-inherents", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "cumulus-primitives-utility" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain", + "polkadot-primitives", + "sp-runtime", + "sp-std", + "sp-trie", + "xcm", +] + +[[package]] +name = "cumulus-test-relay-sproof-builder" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "cumulus-primitives-core", + "parity-scale-codec", + "polkadot-primitives", + "sp-runtime", + "sp-state-machine", + "sp-std", +] + +[[package]] +name = "curve25519-dalek" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" +dependencies = [ + "byteorder", + "digest 0.8.1", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "data-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" + +[[package]] +name = "data-encoding-macro" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" +dependencies = [ + "data-encoding", + "syn", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn", +] + +[[package]] +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +dependencies = [ + "generic-array 0.12.4", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array 0.14.5", +] + +[[package]] +name = "directories" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "directories-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" +dependencies = [ + "cfg-if 1.0.0", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] + +[[package]] +name = "dns-parser" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" +dependencies = [ + "byteorder", + "quick-error 1.2.3", +] + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + +[[package]] +name = "dyn-clonable" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" +dependencies = [ + "dyn-clonable-impl", + "dyn-clone", +] + +[[package]] +name = "dyn-clonable-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dyn-clone" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" + +[[package]] +name = "ed25519" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74e1069e39f1454367eb2de793ed062fac4c35c2934b76a81d90dd9abcd28816" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek 3.2.0", + "ed25519", + "rand 0.7.3", + "serde", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "either" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" + +[[package]] +name = "enum-as-inner" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[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", + "quote", + "syn", +] + +[[package]] +name = "enumn" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e58b112d5099aa0857c5d05f0eacab86406dd8c0f85fe5d320a13256d29ecf4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "env_logger" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" +dependencies = [ + "atty", + "humantime 1.3.0", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "env_logger" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +dependencies = [ + "atty", + "humantime 2.1.0", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "environmental" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b91989ae21441195d7d9b9993a2f9295c7e1a8c96255d8b729accddc124797" + +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "ethbloom" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfb684ac8fa8f6c5759f788862bb22ec6fe3cb392f6bfd08e3c64b603661e3f8" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-rlp", + "impl-serde", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05136f7057fe789f06e6d41d07b34e6f70d8c86e5693b60f97aaa6553553bdaf" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-rlp", + "impl-serde", + "primitive-types", + "uint", +] + +[[package]] +name = "event-listener" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" + +[[package]] +name = "exit-future" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" +dependencies = [ + "futures 0.3.19", +] + +[[package]] +name = "fake-simd" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +dependencies = [ + "instant", +] + +[[package]] +name = "fdlimit" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" +dependencies = [ + "libc", +] + +[[package]] +name = "file-per-thread-logger" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126" +dependencies = [ + "env_logger 0.7.1", + "log", +] + +[[package]] +name = "finality-grandpa" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5a" +dependencies = [ + "either", + "futures 0.3.19", + "futures-timer 3.0.2", + "log", + "num-traits", + "parity-scale-codec", + "parking_lot 0.11.2", + "scale-info", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.4", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e" + +[[package]] +name = "flate2" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" +dependencies = [ + "cfg-if 1.0.0", + "crc32fast", + "libc", + "libz-sys", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "fork-tree" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding 2.1.0", +] + +[[package]] +name = "frame-benchmarking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "linregress", + "log", + "parity-scale-codec", + "paste", + "scale-info", + "sp-api", + "sp-io", + "sp-runtime", + "sp-runtime-interface", + "sp-std", + "sp-storage", +] + +[[package]] +name = "frame-benchmarking-cli" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "Inflector", + "chrono", + "frame-benchmarking", + "frame-support", + "handlebars", + "linked-hash-map", + "log", + "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-election-provider-support" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-npos-elections", + "sp-std", +] + +[[package]] +name = "frame-executive" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-tracing", +] + +[[package]] +name = "frame-metadata" +version = "14.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ed5e5c346de62ca5c184b4325a6600d1eaca210666e4606fe4e449574978d0" +dependencies = [ + "cfg-if 1.0.0", + "parity-scale-codec", + "scale-info", + "serde", +] + +[[package]] +name = "frame-support" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "bitflags", + "frame-metadata", + "frame-support-procedural", + "impl-trait-for-tuples", + "log", + "once_cell", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic", + "sp-core", + "sp-core-hashing-proc-macro", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-state-machine", + "sp-std", + "sp-tracing", + "tt-call", +] + +[[package]] +name = "frame-support-procedural" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "Inflector", + "frame-support-procedural-tools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "frame-support-procedural-tools" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support-procedural-tools-derive", + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "frame-support-procedural-tools-derive" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "frame-system" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-version", +] + +[[package]] +name = "frame-system-benchmarking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "frame-system-rpc-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "sp-api", +] + +[[package]] +name = "frame-try-runtime" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "fs-err" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ebd3504ad6116843b8375ad70df74e7bfe83cac77a1f3fe73200c844d43bfe0" + +[[package]] +name = "fs-swap" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03d47dad3685eceed8488986cad3d5027165ea5edb164331770e2059555f10a5" +dependencies = [ + "lazy_static", + "libc", + "libloading 0.5.2", + "winapi 0.3.9", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + +[[package]] +name = "futures" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" + +[[package]] +name = "futures" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28560757fe2bb34e79f907794bb6b22ae8b0e5c669b638a1132f2592b19035b4" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" + +[[package]] +name = "futures-executor" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", + "num_cpus", +] + +[[package]] +name = "futures-io" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" + +[[package]] +name = "futures-lite" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite 0.2.8", + "waker-fn", +] + +[[package]] +name = "futures-macro" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbd947adfffb0efc70599b3ddcf7b5597bb5fa9e245eb99f62b3a5f7bb8bd3c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-rustls" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8b" +dependencies = [ + "futures-io", + "rustls", + "webpki", +] + +[[package]] +name = "futures-sink" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508" + +[[package]] +name = "futures-task" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" + +[[package]] +name = "futures-timer" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1de7508b218029b0f01662ed8f61b1c964b3ae99d6f25462d0f55a595109df6" + +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" + +[[package]] +name = "futures-util" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" +dependencies = [ + "futures 0.1.31", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite 0.2.8", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] + +[[package]] +name = "generic-array" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", +] + +[[package]] +name = "ghash" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +dependencies = [ + "opaque-debug 0.3.0", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7" +dependencies = [ + "fallible-iterator", + "indexmap", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + +[[package]] +name = "globset" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "gloo-timers" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d12a7f4e95cfe710f1d624fb1210b7d961a5fb05c4fd942f4feab06e61f590e" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "h2" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e" +dependencies = [ + "bytes 1.1.0", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "handlebars" +version = "4.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25546a65e5cf1f471f3438796fc634650b31d7fcde01d444c309aeb28b92e3a8" +dependencies = [ + "log", + "pest", + "pest_derive", + "quick-error 2.0.1", + "serde", + "serde_json", +] + +[[package]] +name = "hash-db" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" + +[[package]] +name = "hash256-std-hasher" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2" +dependencies = [ + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-literal" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" + +[[package]] +name = "hex_fmt" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" + +[[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" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +dependencies = [ + "crypto-mac 0.11.1", + "digest 0.9.0", +] + +[[package]] +name = "hmac-drbg" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" +dependencies = [ + "digest 0.9.0", + "generic-array 0.14.5", + "hmac 0.8.1", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi 0.3.9", +] + +[[package]] +name = "http" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" +dependencies = [ + "bytes 1.1.0", + "fnv", + "itoa 1.0.1", +] + +[[package]] +name = "http-body" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +dependencies = [ + "bytes 1.1.0", + "http", + "pin-project-lite 0.2.8", +] + +[[package]] +name = "httparse" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "humantime" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" +dependencies = [ + "quick-error 1.2.3", +] + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ec3e62bdc98a2f0393a5048e4c30ef659440ea6e0e572965103e72bd836f55" +dependencies = [ + "bytes 1.1.0", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 0.4.8", + "pin-project-lite 0.2.8", + "socket2 0.4.4", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" +dependencies = [ + "ct-logs", + "futures-util", + "hyper", + "log", + "rustls", + "rustls-native-certs", + "tokio", + "tokio-rustls", + "webpki", +] + +[[package]] +name = "idna" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "if-addrs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2273e421f7c4f0fc99e1934fe4776f59d8df2972f4199d703fc0da9f2a9f73de" +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.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179" +dependencies = [ + "async-io", + "futures 0.3.19", + "futures-lite", + "if-addrs", + "ipnet", + "libc", + "log", + "winapi 0.3.9", +] + +[[package]] +name = "impl-codec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5dacb10c5b3bb92d46ba347505a9041e676bb20ad220101326bffb0c93031ee" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "indexmap" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" +dependencies = [ + "autocfg", + "hashbrown", + "serde", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "integer-encoding" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90c11140ffea82edce8dcd74137ce9324ec24b3cf0175fc9d7e29164da9915b8" + +[[package]] +name = "integer-sqrt" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" +dependencies = [ + "num-traits", +] + +[[package]] +name = "intervalier" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" +dependencies = [ + "futures 0.3.19", + "futures-timer 2.0.2", +] + +[[package]] +name = "io-lifetimes" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278e90d6f8a6c76a8334b336e306efa3c5f2b604048cbfd486d6f49878e3af14" +dependencies = [ + "rustc_version 0.4.0", + "winapi 0.3.9", +] + +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + +[[package]] +name = "ip_network" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" + +[[package]] +name = "ipconfig" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7" +dependencies = [ + "socket2 0.3.19", + "widestring", + "winapi 0.3.9", + "winreg", +] + +[[package]] +name = "ipnet" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" + +[[package]] +name = "itertools" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" + +[[package]] +name = "jobserver" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonrpc-client-transports" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3a" +dependencies = [ + "derive_more", + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-pubsub", + "log", + "serde", + "serde_json", + "url 1.7.2", +] + +[[package]] +name = "jsonrpc-core" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" +dependencies = [ + "futures 0.3.19", + "futures-executor", + "futures-util", + "log", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "jsonrpc-core-client" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0" +dependencies = [ + "futures 0.3.19", + "jsonrpc-client-transports", +] + +[[package]] +name = "jsonrpc-derive" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b939a78fa820cdfcb7ee7484466746a7377760970f6f9c6fe19f9edcc8a38d2" +dependencies = [ + "proc-macro-crate 0.1.5", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "jsonrpc-http-server" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ff" +dependencies = [ + "futures 0.3.19", + "hyper", + "jsonrpc-core", + "jsonrpc-server-utils", + "log", + "net2", + "parking_lot 0.11.2", + "unicase", +] + +[[package]] +name = "jsonrpc-ipc-server" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382bb0206323ca7cda3dcd7e245cea86d37d02457a02a975e3378fb149a48845" +dependencies = [ + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-server-utils", + "log", + "parity-tokio-ipc", + "parking_lot 0.11.2", + "tower-service", +] + +[[package]] +name = "jsonrpc-pubsub" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011" +dependencies = [ + "futures 0.3.19", + "jsonrpc-core", + "lazy_static", + "log", + "parking_lot 0.11.2", + "rand 0.7.3", + "serde", +] + +[[package]] +name = "jsonrpc-server-utils" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4" +dependencies = [ + "bytes 1.1.0", + "futures 0.3.19", + "globset", + "jsonrpc-core", + "lazy_static", + "log", + "tokio", + "tokio-stream", + "tokio-util", + "unicase", +] + +[[package]] +name = "jsonrpc-ws-server" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f892c7d766369475ab7b0669f417906302d7c0fb521285c0a0c92e52e7c8e946" +dependencies = [ + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-server-utils", + "log", + "parity-ws", + "parking_lot 0.11.2", + "slab", +] + +[[package]] +name = "jsonrpsee" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373a33d987866ccfe1af4bc11b089dce941764313f9fd8b7cf13fcb51b72dc5" +dependencies = [ + "jsonrpsee-proc-macros", + "jsonrpsee-types", + "jsonrpsee-utils", + "jsonrpsee-ws-client", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d802063f7a3c867456955f9d2f15eb3ee0edb5ec9ec2b5526324756759221c0f" +dependencies = [ + "log", + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f778cf245158fbd8f5d50823a2e9e4c708a40be164766bd35e9fb1d86715b2" +dependencies = [ + "anyhow", + "async-trait", + "beef", + "futures-channel", + "futures-util", + "hyper", + "log", + "serde", + "serde_json", + "soketto", + "thiserror", +] + +[[package]] +name = "jsonrpsee-utils" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0109c4f972058f3b1925b73a17210aff7b63b65967264d0045d15ee88fe84f0c" +dependencies = [ + "arrayvec 0.7.2", + "beef", + "jsonrpsee-types", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "559aa56fc402af206c00fc913dc2be1d9d788dcde045d14df141a535245d35ef" +dependencies = [ + "arrayvec 0.7.2", + "async-trait", + "fnv", + "futures 0.3.19", + "http", + "jsonrpsee-types", + "log", + "pin-project 1.0.10", + "rustls-native-certs", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tokio-rustls", + "tokio-util", +] + +[[package]] +name = "keccak" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "kusama-runtime" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "beefy-primitives", + "bitvec", + "frame-benchmarking", + "frame-election-provider-support", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-bags-list", + "pallet-balances", + "pallet-bounties", + "pallet-collective", + "pallet-democracy", + "pallet-election-provider-multi-phase", + "pallet-elections-phragmen", + "pallet-gilt", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-mmr-primitives", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-offences-benchmarking", + "pallet-proxy", + "pallet-recovery", + "pallet-scheduler", + "pallet-session", + "pallet-session-benchmarking", + "pallet-society", + "pallet-staking", + "pallet-staking-reward-fn", + "pallet-timestamp", + "pallet-tips", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "pallet-xcm", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "smallvec", + "sp-api", + "sp-arithmetic", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-npos-elections", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "static_assertions", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", +] + +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + +[[package]] +name = "kvdb" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a3f58dc069ec0e205a27f5b45920722a46faed802a0541538241af6228f512" +dependencies = [ + "parity-util-mem", + "smallvec", +] + +[[package]] +name = "kvdb-memorydb" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3b6b85fc643f5acd0bffb2cc8a6d150209379267af0d41db72170021841f9f5" +dependencies = [ + "kvdb", + "parity-util-mem", + "parking_lot 0.11.2", +] + +[[package]] +name = "kvdb-rocksdb" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b1b6ea8f2536f504b645ad78419c8246550e19d2c3419a167080ce08edee35a" +dependencies = [ + "fs-swap", + "kvdb", + "log", + "num_cpus", + "owning_ref", + "parity-util-mem", + "parking_lot 0.11.2", + "regex", + "rocksdb", + "smallvec", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c" + +[[package]] +name = "libloading" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" +dependencies = [ + "cc", + "winapi 0.3.9", +] + +[[package]] +name = "libloading" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" +dependencies = [ + "cfg-if 1.0.0", + "winapi 0.3.9", +] + +[[package]] +name = "libm" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" + +[[package]] +name = "libp2p" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bec54343492ba5940a6c555e512c6721139835d28c59bc22febece72dfd0d9d" +dependencies = [ + "atomic", + "bytes 1.1.0", + "futures 0.3.19", + "lazy_static", + "libp2p-core", + "libp2p-deflate", + "libp2p-dns", + "libp2p-floodsub", + "libp2p-gossipsub", + "libp2p-identify", + "libp2p-kad", + "libp2p-mdns", + "libp2p-metrics", + "libp2p-mplex", + "libp2p-noise", + "libp2p-ping", + "libp2p-plaintext", + "libp2p-pnet", + "libp2p-relay", + "libp2p-rendezvous", + "libp2p-request-response", + "libp2p-swarm", + "libp2p-swarm-derive", + "libp2p-tcp", + "libp2p-uds", + "libp2p-wasm-ext", + "libp2p-websocket", + "libp2p-yamux", + "multiaddr", + "parking_lot 0.11.2", + "pin-project 1.0.10", + "smallvec", + "wasm-timer", +] + +[[package]] +name = "libp2p-core" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef22d9bba1e8bcb7ec300073e6802943fe8abb8190431842262b5f1c30abba1" +dependencies = [ + "asn1_der", + "bs58", + "ed25519-dalek", + "either", + "fnv", + "futures 0.3.19", + "futures-timer 3.0.2", + "lazy_static", + "libsecp256k1", + "log", + "multiaddr", + "multihash 0.14.0", + "multistream-select", + "parking_lot 0.11.2", + "pin-project 1.0.10", + "prost", + "prost-build", + "rand 0.8.4", + "ring", + "rw-stream-sink", + "sha2 0.9.9", + "smallvec", + "thiserror", + "unsigned-varint 0.7.1", + "void", + "zeroize", +] + +[[package]] +name = "libp2p-deflate" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51a800adb195f33de63f4b17b63fe64cfc23bf2c6a0d3d0d5321328664e65197" +dependencies = [ + "flate2", + "futures 0.3.19", + "libp2p-core", +] + +[[package]] +name = "libp2p-dns" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb8f89d15cb6e3c5bc22afff7513b11bab7856f2872d3cfba86f7f63a06bc498" +dependencies = [ + "async-std-resolver", + "futures 0.3.19", + "libp2p-core", + "log", + "smallvec", + "trust-dns-resolver", +] + +[[package]] +name = "libp2p-floodsub" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aab3d7210901ea51b7bae2b581aa34521797af8c4ec738c980bda4a06434067f" +dependencies = [ + "cuckoofilter", + "fnv", + "futures 0.3.19", + "libp2p-core", + "libp2p-swarm", + "log", + "prost", + "prost-build", + "rand 0.7.3", + "smallvec", +] + +[[package]] +name = "libp2p-gossipsub" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfeead619eb5dac46e65acc78c535a60aaec803d1428cca6407c3a4fc74d698d" +dependencies = [ + "asynchronous-codec 0.6.0", + "base64", + "byteorder", + "bytes 1.1.0", + "fnv", + "futures 0.3.19", + "hex_fmt", + "libp2p-core", + "libp2p-swarm", + "log", + "prost", + "prost-build", + "rand 0.7.3", + "regex", + "sha2 0.9.9", + "smallvec", + "unsigned-varint 0.7.1", + "wasm-timer", +] + +[[package]] +name = "libp2p-identify" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cca1275574183f288ff8b72d535d5ffa5ea9292ef7829af8b47dcb197c7b0dcd" +dependencies = [ + "futures 0.3.19", + "libp2p-core", + "libp2p-swarm", + "log", + "lru 0.6.6", + "prost", + "prost-build", + "smallvec", + "wasm-timer", +] + +[[package]] +name = "libp2p-kad" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2297dc0ca285f3a09d1368bde02449e539b46f94d32d53233f53f6625bcd3ba" +dependencies = [ + "arrayvec 0.5.2", + "asynchronous-codec 0.6.0", + "bytes 1.1.0", + "either", + "fnv", + "futures 0.3.19", + "libp2p-core", + "libp2p-swarm", + "log", + "prost", + "prost-build", + "rand 0.7.3", + "sha2 0.9.9", + "smallvec", + "uint", + "unsigned-varint 0.7.1", + "void", + "wasm-timer", +] + +[[package]] +name = "libp2p-mdns" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c864b64bdc8a84ff3910a0df88e6535f256191a450870f1e7e10cbf8e64d45" +dependencies = [ + "async-io", + "data-encoding", + "dns-parser", + "futures 0.3.19", + "if-watch", + "lazy_static", + "libp2p-core", + "libp2p-swarm", + "log", + "rand 0.8.4", + "smallvec", + "socket2 0.4.4", + "void", +] + +[[package]] +name = "libp2p-metrics" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4af432fcdd2f8ba4579b846489f8f0812cfd738ced2c0af39df9b1c48bbb6ab2" +dependencies = [ + "libp2p-core", + "libp2p-identify", + "libp2p-kad", + "libp2p-ping", + "libp2p-swarm", + "open-metrics-client", +] + +[[package]] +name = "libp2p-mplex" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2cd64ef597f40e14bfce0497f50ecb63dd6d201c61796daeb4227078834fbf" +dependencies = [ + "asynchronous-codec 0.6.0", + "bytes 1.1.0", + "futures 0.3.19", + "libp2p-core", + "log", + "nohash-hasher", + "parking_lot 0.11.2", + "rand 0.7.3", + "smallvec", + "unsigned-varint 0.7.1", +] + +[[package]] +name = "libp2p-noise" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8772c7a99088221bb7ca9c5c0574bf55046a7ab4c319f3619b275f28c8fb87a" +dependencies = [ + "bytes 1.1.0", + "curve25519-dalek 3.2.0", + "futures 0.3.19", + "lazy_static", + "libp2p-core", + "log", + "prost", + "prost-build", + "rand 0.8.4", + "sha2 0.9.9", + "snow", + "static_assertions", + "x25519-dalek", + "zeroize", +] + +[[package]] +name = "libp2p-ping" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80ef7b0ec5cf06530d9eb6cf59ae49d46a2c45663bde31c25a12f682664adbcf" +dependencies = [ + "futures 0.3.19", + "libp2p-core", + "libp2p-swarm", + "log", + "rand 0.7.3", + "void", + "wasm-timer", +] + +[[package]] +name = "libp2p-plaintext" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fba1a6ff33e4a274c89a3b1d78b9f34f32af13265cc5c46c16938262d4e945a" +dependencies = [ + "asynchronous-codec 0.6.0", + "bytes 1.1.0", + "futures 0.3.19", + "libp2p-core", + "log", + "prost", + "prost-build", + "unsigned-varint 0.7.1", + "void", +] + +[[package]] +name = "libp2p-pnet" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f1a458bbda880107b5b36fcb9b5a1ef0c329685da0e203ed692a8ebe64cc92c" +dependencies = [ + "futures 0.3.19", + "log", + "pin-project 1.0.10", + "rand 0.7.3", + "salsa20", + "sha3", +] + +[[package]] +name = "libp2p-relay" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2852b61c90fa8ce3c8fcc2aba76e6cefc20d648f9df29157d6b3a916278ef3e3" +dependencies = [ + "asynchronous-codec 0.6.0", + "bytes 1.1.0", + "futures 0.3.19", + "futures-timer 3.0.2", + "libp2p-core", + "libp2p-swarm", + "log", + "pin-project 1.0.10", + "prost", + "prost-build", + "rand 0.7.3", + "smallvec", + "unsigned-varint 0.7.1", + "void", + "wasm-timer", +] + +[[package]] +name = "libp2p-rendezvous" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14a6d2b9e7677eff61dc3d2854876aaf3976d84a01ef6664b610c77a0c9407c5" +dependencies = [ + "asynchronous-codec 0.6.0", + "bimap", + "futures 0.3.19", + "libp2p-core", + "libp2p-swarm", + "log", + "prost", + "prost-build", + "rand 0.8.4", + "sha2 0.9.9", + "thiserror", + "unsigned-varint 0.7.1", + "void", + "wasm-timer", +] + +[[package]] +name = "libp2p-request-response" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a877a4ced6d46bf84677e1974e8cf61fb434af73b2e96fb48d6cb6223a4634d8" +dependencies = [ + "async-trait", + "bytes 1.1.0", + "futures 0.3.19", + "libp2p-core", + "libp2p-swarm", + "log", + "lru 0.7.2", + "rand 0.7.3", + "smallvec", + "unsigned-varint 0.7.1", + "wasm-timer", +] + +[[package]] +name = "libp2p-swarm" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f5184a508f223bc100a12665517773fb8730e9f36fc09eefb670bf01b107ae9" +dependencies = [ + "either", + "futures 0.3.19", + "libp2p-core", + "log", + "rand 0.7.3", + "smallvec", + "void", + "wasm-timer", +] + +[[package]] +name = "libp2p-swarm-derive" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "072c290f727d39bdc4e9d6d1c847978693d25a673bd757813681e33e5f6c00c2" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "libp2p-tcp" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7399c5b6361ef525d41c11fcf51635724f832baf5819b30d3d873eabb4fbae4b" +dependencies = [ + "async-io", + "futures 0.3.19", + "futures-timer 3.0.2", + "if-watch", + "ipnet", + "libc", + "libp2p-core", + "log", + "socket2 0.4.4", +] + +[[package]] +name = "libp2p-uds" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8b7563e46218165dfd60f64b96f7ce84590d75f53ecbdc74a7dd01450dc5973" +dependencies = [ + "async-std", + "futures 0.3.19", + "libp2p-core", + "log", +] + +[[package]] +name = "libp2p-wasm-ext" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1008a302b73c5020251f9708c653f5ed08368e530e247cc9cd2f109ff30042cf" +dependencies = [ + "futures 0.3.19", + "js-sys", + "libp2p-core", + "parity-send-wrapper", + "wasm-bindgen", + "wasm-bindgen-futures", +] + +[[package]] +name = "libp2p-websocket" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e12df82d1ed64969371a9e65ea92b91064658604cc2576c2757f18ead9a1cf" +dependencies = [ + "either", + "futures 0.3.19", + "futures-rustls", + "libp2p-core", + "log", + "quicksink", + "rw-stream-sink", + "soketto", + "url 2.2.2", + "webpki-roots", +] + +[[package]] +name = "libp2p-yamux" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7362abb8867d7187e7e93df17f460d554c997fc5c8ac57dc1259057f6889af" +dependencies = [ + "futures 0.3.19", + "libp2p-core", + "parking_lot 0.11.2", + "thiserror", + "yamux", +] + +[[package]] +name = "librocksdb-sys" +version = "6.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c309a9d2470844aceb9a4a098cf5286154d20596868b75a6b36357d2bb9ca25d" +dependencies = [ + "bindgen", + "cc", + "glob", + "libc", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37" +dependencies = [ + "arrayref", + "base64", + "digest 0.9.0", + "hmac-drbg", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand 0.8.4", + "serde", + "sha2 0.9.9", + "typenum", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libz-sys" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" + +[[package]] +name = "linked_hash_set" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "linregress" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c601a85f5ecd1aba625247bca0031585fb1c446461b142878a16f8245ddeb8" +dependencies = [ + "nalgebra", + "statrs", +] + +[[package]] +name = "linux-raw-sys" +version = "0.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "687387ff42ec7ea4f2149035a5675fedb675d26f98db90a1846ac63d3addb5f5" + +[[package]] +name = "lock_api" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "lock_api" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +dependencies = [ + "cfg-if 1.0.0", + "value-bag", +] + +[[package]] +name = "lru" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ea2d928b485416e8908cff2d97d621db22b27f7b3b6729e438bcf42c671ba91" +dependencies = [ + "hashbrown", +] + +[[package]] +name = "lru" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "274353858935c992b13c0ca408752e2121da852d07dec7ce5f108c77dfa14d1f" +dependencies = [ + "hashbrown", +] + +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "lz4" +version = "1.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac20ed6991e01bf6a2e68cc73df2b389707403662a8ba89f68511fb340f724c" +dependencies = [ + "libc", + "lz4-sys", +] + +[[package]] +name = "lz4-sys" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dca79aa95d8b3226213ad454d328369853be3a1382d89532a854f4d69640acae" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "manta" +version = "3.1.2" +dependencies = [ + "async-trait", + "calamari-runtime", + "cfg-if 1.0.0", + "cumulus-client-cli", + "cumulus-client-consensus-aura", + "cumulus-client-consensus-common", + "cumulus-client-consensus-relay-chain", + "cumulus-client-network", + "cumulus-client-service", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "frame-benchmarking", + "frame-benchmarking-cli", + "futures 0.3.19", + "hex-literal", + "jsonrpc-core", + "log", + "manta-primitives", + "manta-runtime", + "pallet-transaction-payment-rpc", + "parity-scale-codec", + "polkadot-cli", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-service", + "sc-basic-authorship", + "sc-chain-spec", + "sc-cli", + "sc-client-api", + "sc-consensus", + "sc-executor", + "sc-keystore", + "sc-network", + "sc-rpc", + "sc-rpc-api", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "serde", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-timestamp", + "sp-transaction-pool", + "structopt", + "substrate-build-script-utils", + "substrate-frame-rpc-system", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "manta-collator-selection" +version = "3.1.2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-session", + "pallet-timestamp", + "parity-scale-codec", + "rand 0.7.3", + "scale-info", + "serde", + "sp-consensus-aura", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", + "sp-tracing", +] + +[[package]] +name = "manta-primitives" +version = "3.1.2" +dependencies = [ + "frame-support", + "log", + "parity-scale-codec", + "scale-info", + "smallvec", + "sp-consensus-aura", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", + "xcm-builder", + "xcm-executor", +] + +[[package]] +name = "manta-runtime" +version = "3.1.2" +dependencies = [ + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-timestamp", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "manta-primitives", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-multisig", + "pallet-scheduler", + "pallet-session", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-tx-pause", + "pallet-utility", + "pallet-xcm", + "parachain-info", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "scale-info", + "serde", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "matchers" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "matrixmultiply" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84" +dependencies = [ + "rawpointer", +] + +[[package]] +name = "memchr" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" + +[[package]] +name = "memmap2" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723e3ebdcdc5c023db1df315364573789f8857c11b631a2fdfad7c00f5c046b4" +dependencies = [ + "libc", +] + +[[package]] +name = "memmap2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe3179b85e1fd8b14447cbebadb75e45a1002f541b925f0bfec366d56a81c56d" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memory-db" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de006e09d04fc301a5f7e817b75aa49801c4479a8af753764416b085337ddcc5" +dependencies = [ + "hash-db", + "hashbrown", + "parity-util-mem", +] + +[[package]] +name = "memory-lru" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beeb98b3d1ed2c0054bd81b5ba949a0243c3ccad751d45ea898fa8059fa2860a" +dependencies = [ + "lru 0.6.6", +] + +[[package]] +name = "memory_units" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" + +[[package]] +name = "merlin" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.5.1", + "zeroize", +] + +[[package]] +name = "metered-channel" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "derive_more", + "futures 0.3.19", + "futures-timer 3.0.2", + "thiserror", + "tracing", +] + +[[package]] +name = "mick-jaeger" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd2c2cc134e57461f0898b0e921f0a7819b5e3f3a4335b9aa390ce81a5f36fb9" +dependencies = [ + "futures 0.3.19", + "rand 0.8.4", + "thrift", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" +dependencies = [ + "adler", + "autocfg", +] + +[[package]] +name = "mio" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +dependencies = [ + "cfg-if 0.1.10", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow 0.2.2", + "net2", + "slab", + "winapi 0.2.8", +] + +[[package]] +name = "mio" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +dependencies = [ + "libc", + "log", + "miow 0.3.7", + "ntapi", + "winapi 0.3.9", +] + +[[package]] +name = "mio-extras" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" +dependencies = [ + "lazycell", + "log", + "mio 0.6.23", + "slab", +] + +[[package]] +name = "miow" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +dependencies = [ + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", +] + +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "more-asserts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" + +[[package]] +name = "multiaddr" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48ee4ea82141951ac6379f964f71b20876d43712bea8faf6dd1a375e08a46499" +dependencies = [ + "arrayref", + "bs58", + "byteorder", + "data-encoding", + "multihash 0.14.0", + "percent-encoding 2.1.0", + "serde", + "static_assertions", + "unsigned-varint 0.7.1", + "url 2.2.2", +] + +[[package]] +name = "multibase" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b78c60039650ff12e140ae867ef5299a58e19dded4d334c849dc7177083667e2" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dac63698b887d2d929306ea48b63760431ff8a24fac40ddb22f9c7f49fb7cab" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "digest 0.9.0", + "generic-array 0.14.5", + "multihash-derive", + "sha2 0.9.9", + "sha3", + "unsigned-varint 0.5.1", +] + +[[package]] +name = "multihash" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "752a61cd890ff691b4411423d23816d5866dd5621e4d1c5687a53b94b5a979d8" +dependencies = [ + "digest 0.9.0", + "generic-array 0.14.5", + "multihash-derive", + "sha2 0.9.9", + "unsigned-varint 0.7.1", +] + +[[package]] +name = "multihash-derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "multistream-select" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56a336acba8bc87c8876f6425407dbbe6c417bf478b22015f8fb0994ef3bc0ab" +dependencies = [ + "bytes 1.1.0", + "futures 0.3.19", + "log", + "pin-project 1.0.10", + "smallvec", + "unsigned-varint 0.7.1", +] + +[[package]] +name = "nalgebra" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational 0.4.0", + "num-traits", + "rand 0.8.4", + "rand_distr", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "names" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a8690bf09abf659851e58cd666c3d37ac6af07c2bd7a9e332cfba471715775" +dependencies = [ + "rand 0.8.4", +] + +[[package]] +name = "net2" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nom" +version = "7.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d11e1ef389c76fe5b81bcaf2ea32cf88b62bc494e19f493d0b30e7a930109" +dependencies = [ + "memchr", + "minimal-lexical", + "version_check", +] + +[[package]] +name = "ntapi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" +dependencies = [ + "crc32fast", + "indexmap", + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" + +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "open-metrics-client" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7337d80c23c2d8b1349563981bc4fb531220733743ba8115454a67b181173f0d" +dependencies = [ + "dtoa", + "itoa 0.4.8", + "open-metrics-client-derive-text-encode", + "owning_ref", +] + +[[package]] +name = "open-metrics-client-derive-text-encode" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15c83b586f00268c619c1cb3340ec1a6f59dd9ba1d9833a273a68e6d5cd8ffc" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "ordered-float" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" +dependencies = [ + "num-traits", +] + +[[package]] +name = "orml-traits" +version = "0.4.1-dev" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.13#1f520348f31b5e94b8a5dd7f8e6b8ec359df4177" +dependencies = [ + "frame-support", + "impl-trait-for-tuples", + "num-traits", + "orml-utilities", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", +] + +[[package]] +name = "orml-utilities" +version = "0.4.1-dev" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.13#1f520348f31b5e94b8a5dd7f8e6b8ec359df4177" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "orml-xcm-support" +version = "0.4.1-dev" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.13#1f520348f31b5e94b8a5dd7f8e6b8ec359df4177" +dependencies = [ + "frame-support", + "orml-traits", + "parity-scale-codec", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "orml-xtokens" +version = "0.4.1-dev" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.13#1f520348f31b5e94b8a5dd7f8e6b8ec359df4177" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "orml-traits", + "orml-xcm-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "owning_ref" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "pallet-asset-manager" +version = "3.1.0" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "manta-primitives", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-aura" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-consensus-aura", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-authority-discovery" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "pallet-session", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-authority-discovery", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-authorship" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-authorship", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-babe" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-consensus-babe", + "sp-consensus-vrf", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-bags-list" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "log", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-tracing", +] + +[[package]] +name = "pallet-balances" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-beefy" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "beefy-primitives", + "frame-support", + "frame-system", + "pallet-session", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-beefy-mmr" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "beefy-merkle-tree", + "beefy-primitives", + "frame-support", + "frame-system", + "hex", + "libsecp256k1", + "log", + "pallet-beefy", + "pallet-mmr", + "pallet-mmr-primitives", + "pallet-session", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-bounties" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-treasury", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-bridge-dispatch" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bp-message-dispatch", + "bp-runtime", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-bridge-grandpa" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bp-header-chain", + "bp-runtime", + "bp-test-utils", + "finality-grandpa", + "frame-support", + "frame-system", + "log", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "pallet-bridge-messages" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bitvec", + "bp-message-dispatch", + "bp-messages", + "bp-rialto", + "bp-runtime", + "frame-support", + "frame-system", + "log", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-collator-selection" +version = "3.0.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "rand 0.7.3", + "scale-info", + "serde", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-collective" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-democracy" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-election-provider-multi-phase" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "rand 0.7.3", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-std", + "static_assertions", + "strum", + "strum_macros", +] + +[[package]] +name = "pallet-elections-phragmen" +version = "5.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-gilt" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-grandpa" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-core", + "sp-finality-grandpa", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-identity" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "enumflags2", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-im-online" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-indices" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-keyring", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-membership" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-mmr" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "ckb-merkle-mountain-range", + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-mmr-primitives", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-mmr-primitives" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "serde", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-mmr-rpc" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "pallet-mmr-primitives", + "parity-scale-codec", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "pallet-multisig" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-nicks" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-offences" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "log", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-offences-benchmarking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "pallet-babe", + "pallet-balances", + "pallet-grandpa", + "pallet-im-online", + "pallet-offences", + "pallet-session", + "pallet-staking", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-proxy" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-recovery" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-scheduler" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-session" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-trie", +] + +[[package]] +name = "pallet-session-benchmarking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-session", + "pallet-staking", + "rand 0.7.3", + "sp-runtime", + "sp-session", + "sp-std", +] + +[[package]] +name = "pallet-society" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "rand_chacha 0.2.2", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-staking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "rand_chacha 0.2.2", + "scale-info", + "serde", + "sp-application-crypto", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-staking-reward-curve" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pallet-staking-reward-fn" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "log", + "sp-arithmetic", +] + +[[package]] +name = "pallet-sudo" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-timestamp" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "pallet-tips" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-treasury", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-transaction-payment" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-transaction-payment-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "pallet-transaction-payment-rpc-runtime-api", + "parity-scale-codec", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", +] + +[[package]] +name = "pallet-transaction-payment-rpc-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "pallet-transaction-payment", + "parity-scale-codec", + "sp-api", + "sp-runtime", +] + +[[package]] +name = "pallet-treasury" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-tx-pause" +version = "3.1.2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "manta-primitives", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-utility" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-vesting" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-xcm" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "pallet-xcm-benchmarks" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "parachain-info" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", +] + +[[package]] +name = "parity-db" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68de01cff53da5574397233383dd7f5c15ee958c348245765ea8cb09f2571e6b" +dependencies = [ + "blake2-rfc", + "crc32fast", + "fs2", + "hex", + "libc", + "log", + "lz4", + "memmap2 0.2.3", + "parking_lot 0.11.2", + "rand 0.8.4", + "snap", +] + +[[package]] +name = "parity-scale-codec" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +dependencies = [ + "arrayvec 0.7.2", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[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.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" +dependencies = [ + "futures 0.3.19", + "libc", + "log", + "rand 0.7.3", + "tokio", + "winapi 0.3.9", +] + +[[package]] +name = "parity-util-mem" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4cb4e169446179cbc6b8b6320cc9fca49bd2e94e8db25f25f200a8ea774770" +dependencies = [ + "cfg-if 1.0.0", + "ethereum-types", + "hashbrown", + "impl-trait-for-tuples", + "lru 0.6.6", + "parity-util-mem-derive", + "parking_lot 0.11.2", + "primitive-types", + "smallvec", + "winapi 0.3.9", +] + +[[package]] +name = "parity-util-mem-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" +dependencies = [ + "proc-macro2", + "syn", + "synstructure", +] + +[[package]] +name = "parity-wasm" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16ad52817c4d343339b3bc2e26861bd21478eda0b7509acf83505727000512ac" +dependencies = [ + "byteorder", +] + +[[package]] +name = "parity-wasm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" + +[[package]] +name = "parity-ws" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5983d3929ad50f12c3eb9a6743f19d691866ecd44da74c0a3308c3f8a56df0c6" +dependencies = [ + "byteorder", + "bytes 0.4.12", + "httparse", + "log", + "mio 0.6.23", + "mio-extras", + "rand 0.7.3", + "sha-1 0.8.2", + "slab", + "url 2.2.2", +] + +[[package]] +name = "parking" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" + +[[package]] +name = "parking_lot" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" +dependencies = [ + "lock_api 0.3.4", + "parking_lot_core 0.7.2", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api 0.4.6", + "parking_lot_core 0.8.5", +] + +[[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 0.1.57", + "smallvec", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall 0.2.10", + "smallvec", + "winapi 0.3.9", +] + +[[package]] +name = "paste" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" + +[[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 = "pbkdf2" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" +dependencies = [ + "crypto-mac 0.11.1", +] + +[[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", + "quote", + "syn", +] + +[[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.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pin-project" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9615c18d31137579e9ff063499264ddc1278e7b1982757ebc111028c4d1dc909" +dependencies = [ + "pin-project-internal 0.4.29", +] + +[[package]] +name = "pin-project" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +dependencies = [ + "pin-project-internal 1.0.10", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "044964427019eed9d49d9d5bbce6047ef18f37100ea400912a9fa4a3523ab12a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" + +[[package]] +name = "pin-project-lite" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" + +[[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.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" + +[[package]] +name = "platforms" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" + +[[package]] +name = "polkadot-approval-distribution" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "tracing", +] + +[[package]] +name = "polkadot-availability-bitfield-distribution" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "tracing", +] + +[[package]] +name = "polkadot-availability-distribution" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "derive_more", + "futures 0.3.19", + "lru 0.7.2", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "rand 0.8.4", + "sp-core", + "sp-keystore", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-availability-recovery" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "lru 0.7.2", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "rand 0.8.4", + "sc-network", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-cli" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "frame-benchmarking-cli", + "futures 0.3.19", + "log", + "polkadot-node-core-pvf", + "polkadot-service", + "sc-cli", + "sc-service", + "sp-core", + "sp-trie", + "structopt", + "substrate-build-script-utils", + "thiserror", + "try-runtime-cli", +] + +[[package]] +name = "polkadot-client" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "beefy-primitives", + "frame-benchmarking", + "frame-system-rpc-runtime-api", + "pallet-mmr-primitives", + "pallet-transaction-payment-rpc-runtime-api", + "polkadot-primitives", + "polkadot-runtime", + "sc-client-api", + "sc-consensus", + "sc-executor", + "sc-service", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-finality-grandpa", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-storage", + "sp-transaction-pool", +] + +[[package]] +name = "polkadot-collator-protocol" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "always-assert", + "derive_more", + "futures 0.3.19", + "futures-timer 3.0.2", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-core", + "sp-keystore", + "sp-runtime", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-core-primitives" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "parity-scale-codec", + "parity-util-mem", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "polkadot-dispute-distribution" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "derive_more", + "futures 0.3.19", + "lru 0.7.2", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sc-network", + "sp-application-crypto", + "sp-keystore", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-erasure-coding" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-primitives", + "reed-solomon-novelpoly", + "sp-core", + "sp-trie", + "thiserror", +] + +[[package]] +name = "polkadot-gossip-support" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "rand 0.8.4", + "rand_chacha 0.3.1", + "sc-network", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "tracing", +] + +[[package]] +name = "polkadot-network-bridge" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "async-trait", + "futures 0.3.19", + "parity-scale-codec", + "parking_lot 0.11.2", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "sc-network", + "sp-consensus", + "tracing", +] + +[[package]] +name = "polkadot-node-collation-generation" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-core", + "sp-maybe-compressed-blob", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-approval-voting" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bitvec", + "derive_more", + "futures 0.3.19", + "futures-timer 3.0.2", + "kvdb", + "lru 0.7.2", + "merlin", + "parity-scale-codec", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "sc-keystore", + "schnorrkel", + "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", + "sp-runtime", + "tracing", +] + +[[package]] +name = "polkadot-node-core-av-store" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bitvec", + "futures 0.3.19", + "futures-timer 3.0.2", + "kvdb", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-backing" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bitvec", + "futures 0.3.19", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "polkadot-statement-table", + "sp-keystore", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-bitfield-signing" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-keystore", + "thiserror", + "tracing", + "wasm-timer", +] + +[[package]] +name = "polkadot-node-core-candidate-validation" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "async-trait", + "futures 0.3.19", + "parity-scale-codec", + "polkadot-node-core-pvf", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-parachain", + "polkadot-primitives", + "sp-maybe-compressed-blob", + "tracing", +] + +[[package]] +name = "polkadot-node-core-chain-api" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sc-client-api", + "sc-consensus-babe", + "sp-blockchain", + "tracing", +] + +[[package]] +name = "polkadot-node-core-chain-selection" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "kvdb", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-dispute-coordinator" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bitvec", + "derive_more", + "futures 0.3.19", + "kvdb", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sc-keystore", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-dispute-participation" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-primitives", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-parachains-inherent" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "async-trait", + "futures 0.3.19", + "futures-timer 3.0.2", + "polkadot-node-subsystem", + "polkadot-primitives", + "sp-blockchain", + "sp-inherents", + "sp-runtime", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-provisioner" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bitvec", + "futures 0.3.19", + "futures-timer 3.0.2", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-pvf" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "always-assert", + "assert_matches", + "async-process", + "async-std", + "futures 0.3.19", + "futures-timer 3.0.2", + "libc", + "parity-scale-codec", + "pin-project 1.0.10", + "polkadot-core-primitives", + "polkadot-node-subsystem-util", + "polkadot-parachain", + "rand 0.8.4", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", + "slotmap", + "sp-core", + "sp-externalities", + "sp-io", + "sp-maybe-compressed-blob", + "sp-tracing", + "sp-wasm-interface", + "tracing", +] + +[[package]] +name = "polkadot-node-core-runtime-api" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "memory-lru", + "parity-util-mem", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-api", + "sp-authority-discovery", + "sp-consensus-babe", + "sp-core", + "tracing", +] + +[[package]] +name = "polkadot-node-jaeger" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "async-std", + "lazy_static", + "log", + "mick-jaeger", + "parity-scale-codec", + "parking_lot 0.11.2", + "polkadot-node-primitives", + "polkadot-primitives", + "sc-network", + "sp-core", + "thiserror", +] + +[[package]] +name = "polkadot-node-metrics" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "metered-channel", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "polkadot-node-network-protocol" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.19", + "parity-scale-codec", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-primitives", + "sc-authority-discovery", + "sc-network", + "strum", + "thiserror", +] + +[[package]] +name = "polkadot-node-primitives" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bounded-vec", + "futures 0.3.19", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "schnorrkel", + "serde", + "sp-application-crypto", + "sp-consensus-babe", + "sp-consensus-vrf", + "sp-core", + "sp-keystore", + "sp-maybe-compressed-blob", + "thiserror", + "zstd", +] + +[[package]] +name = "polkadot-node-subsystem" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "polkadot-node-jaeger", + "polkadot-node-subsystem-types", + "polkadot-overseer", +] + +[[package]] +name = "polkadot-node-subsystem-types" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "derive_more", + "futures 0.3.19", + "polkadot-node-jaeger", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-overseer-gen", + "polkadot-primitives", + "polkadot-statement-table", + "sc-network", + "smallvec", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "polkadot-node-subsystem-util" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.19", + "itertools", + "lru 0.7.2", + "metered-channel", + "parity-scale-codec", + "pin-project 1.0.10", + "polkadot-node-jaeger", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives", + "rand 0.8.4", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-overseer" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "lru 0.7.2", + "parity-util-mem", + "parking_lot 0.11.2", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem-types", + "polkadot-overseer-gen", + "polkadot-primitives", + "sc-client-api", + "sp-api", + "tracing", +] + +[[package]] +name = "polkadot-overseer-gen" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "async-trait", + "futures 0.3.19", + "futures-timer 3.0.2", + "metered-channel", + "pin-project 1.0.10", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-overseer-gen-proc-macro", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-overseer-gen-proc-macro" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "polkadot-parachain" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "derive_more", + "frame-support", + "parity-scale-codec", + "parity-util-mem", + "polkadot-core-primitives", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "polkadot-primitives" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bitvec", + "frame-system", + "hex-literal", + "parity-scale-codec", + "parity-util-mem", + "polkadot-core-primitives", + "polkadot-parachain", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-authority-discovery", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-staking", + "sp-std", + "sp-trie", + "sp-version", +] + +[[package]] +name = "polkadot-rpc" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "beefy-gadget", + "beefy-gadget-rpc", + "jsonrpc-core", + "pallet-mmr-rpc", + "pallet-transaction-payment-rpc", + "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-rpc", + "sc-sync-state-rpc", + "sc-transaction-pool-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-keystore", + "sp-runtime", + "substrate-frame-rpc-system", +] + +[[package]] +name = "polkadot-runtime" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "beefy-primitives", + "bitvec", + "frame-benchmarking", + "frame-election-provider-support", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-bags-list", + "pallet-balances", + "pallet-bounties", + "pallet-collective", + "pallet-democracy", + "pallet-election-provider-multi-phase", + "pallet-elections-phragmen", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-mmr-primitives", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-offences-benchmarking", + "pallet-proxy", + "pallet-scheduler", + "pallet-session", + "pallet-session-benchmarking", + "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", + "pallet-xcm", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "smallvec", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-npos-elections", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "static_assertions", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", +] + +[[package]] +name = "polkadot-runtime-common" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "beefy-primitives", + "bitvec", + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "libsecp256k1", + "log", + "pallet-authorship", + "pallet-babe", + "pallet-bags-list", + "pallet-balances", + "pallet-beefy-mmr", + "pallet-election-provider-multi-phase", + "pallet-session", + "pallet-staking", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-treasury", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-parachains", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "slot-range-helper", + "sp-api", + "sp-core", + "sp-inherents", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "static_assertions", + "xcm", +] + +[[package]] +name = "polkadot-runtime-parachains" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "bitflags", + "bitvec", + "derive_more", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-session", + "pallet-staking", + "pallet-timestamp", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "rand 0.8.4", + "rand_chacha 0.3.1", + "rustc-hex", + "scale-info", + "serde", + "sp-api", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "polkadot-service" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "async-trait", + "beefy-gadget", + "beefy-primitives", + "frame-system-rpc-runtime-api", + "futures 0.3.19", + "hex-literal", + "kusama-runtime", + "kvdb", + "kvdb-rocksdb", + "lru 0.7.2", + "pallet-babe", + "pallet-im-online", + "pallet-mmr-primitives", + "pallet-staking", + "pallet-transaction-payment-rpc-runtime-api", + "polkadot-approval-distribution", + "polkadot-availability-bitfield-distribution", + "polkadot-availability-distribution", + "polkadot-availability-recovery", + "polkadot-client", + "polkadot-collator-protocol", + "polkadot-dispute-distribution", + "polkadot-gossip-support", + "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-approval-voting", + "polkadot-node-core-av-store", + "polkadot-node-core-backing", + "polkadot-node-core-bitfield-signing", + "polkadot-node-core-candidate-validation", + "polkadot-node-core-chain-api", + "polkadot-node-core-chain-selection", + "polkadot-node-core-dispute-coordinator", + "polkadot-node-core-dispute-participation", + "polkadot-node-core-parachains-inherent", + "polkadot-node-core-provisioner", + "polkadot-node-core-runtime-api", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-rpc", + "polkadot-runtime", + "polkadot-runtime-parachains", + "polkadot-statement-distribution", + "rococo-runtime", + "sc-authority-discovery", + "sc-basic-authorship", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-consensus-babe", + "sc-consensus-slots", + "sc-consensus-uncles", + "sc-executor", + "sc-finality-grandpa", + "sc-keystore", + "sc-network", + "sc-offchain", + "sc-service", + "sc-sync-state-rpc", + "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-timestamp", + "sp-transaction-pool", + "sp-trie", + "substrate-prometheus-endpoint", + "thiserror", + "tracing", + "westend-runtime", +] + +[[package]] +name = "polkadot-statement-distribution" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "arrayvec 0.5.2", + "derive_more", + "futures 0.3.19", + "indexmap", + "parity-scale-codec", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-keystore", + "sp-staking", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-statement-table" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "parity-scale-codec", + "polkadot-primitives", + "sp-core", +] + +[[package]] +name = "polling" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "log", + "wepoll-ffi", + "winapi 0.3.9", +] + +[[package]] +name = "poly1305" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" +dependencies = [ + "cpufeatures 0.2.1", + "opaque-debug 0.3.0", + "universal-hash", +] + +[[package]] +name = "polyval" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures 0.2.1", + "opaque-debug 0.3.0", + "universal-hash", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83" +dependencies = [ + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "prometheus" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f64969ffd5dd8f39bd57a68ac53c163a095ed9d0fb707146da1b27025a3504" +dependencies = [ + "cfg-if 1.0.0", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.11.2", + "thiserror", +] + +[[package]] +name = "prost" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +dependencies = [ + "bytes 1.1.0", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +dependencies = [ + "bytes 1.1.0", + "heck", + "itertools", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost", + "prost-types", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "prost-types" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +dependencies = [ + "bytes 1.1.0", + "prost", +] + +[[package]] +name = "psm" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd136ff4382c4753fc061cb9e4712ab2af263376b95bbd5bd8cd50c020b78e69" +dependencies = [ + "cc", +] + +[[package]] +name = "pwasm-utils" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "880b3384fb00b8f6ecccd5d358b93bd2201900ae3daad213791d1864f6441f5c" +dependencies = [ + "byteorder", + "log", + "parity-wasm 0.42.2", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + +[[package]] +name = "quicksink" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" +dependencies = [ + "futures-core", + "futures-sink", + "pin-project-lite 0.1.12", +] + +[[package]] +name = "quote" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc 0.2.0", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.3", + "rand_hc 0.3.1", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.3", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom 0.2.4", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand 0.8.4", +] + +[[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_hc" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" +dependencies = [ + "rand_core 0.6.3", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "lazy_static", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + +[[package]] +name = "redox_syscall" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" +dependencies = [ + "getrandom 0.2.4", + "redox_syscall 0.2.10", +] + +[[package]] +name = "reed-solomon-novelpoly" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bd8f48b2066e9f69ab192797d66da804d1935bf22763204ed3675740cb0f221" +dependencies = [ + "derive_more", + "fs-err", + "itertools", + "static_init", + "thiserror", +] + +[[package]] +name = "ref-cast" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541da" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "regalloc" +version = "0.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6304468554ed921da3d32c355ea107b8d13d7b8996c3adfb7aab48d3bc321f4" +dependencies = [ + "log", + "rustc-hash", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" + +[[package]] +name = "region" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0" +dependencies = [ + "bitflags", + "libc", + "mach", + "winapi 0.3.9", +] + +[[package]] +name = "remote-externalities" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "env_logger 0.9.0", + "jsonrpsee", + "log", + "parity-scale-codec", + "serde", + "serde_json", + "sp-core", + "sp-io", + "sp-runtime", + "sp-version", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "resolv-conf" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +dependencies = [ + "hostname", + "quick-error 1.2.3", +] + +[[package]] +name = "retain_mut" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51dd4445360338dab5116712bee1388dc727991d51969558a8882ab552e6db30" + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi 0.3.9", +] + +[[package]] +name = "rlp" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "999508abb0ae792aabed2460c45b89106d97fe4adac593bdaef433c2605847b5" +dependencies = [ + "bytes 1.1.0", + "rustc-hex", +] + +[[package]] +name = "rocksdb" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a62eca5cacf2c8261128631bed9f045598d40bfbe4b29f5163f0f802f8f44a7" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "rococo-runtime" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "beefy-primitives", + "bp-messages", + "bp-rococo", + "bp-runtime", + "bp-wococo", + "bridge-runtime-common", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "hex-literal", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-beefy", + "pallet-beefy-mmr", + "pallet-bridge-dispatch", + "pallet-bridge-grandpa", + "pallet-bridge-messages", + "pallet-collective", + "pallet-grandpa", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-mmr", + "pallet-mmr-primitives", + "pallet-multisig", + "pallet-offences", + "pallet-proxy", + "pallet-session", + "pallet-staking", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-utility", + "pallet-xcm", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "scale-info", + "serde", + "serde_derive", + "smallvec", + "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", + "xcm", + "xcm-builder", + "xcm-executor", +] + +[[package]] +name = "rpassword" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "rsix" +version = "0.23.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f64c5788d5aab8b75441499d99576a24eb09f76fb267b36fec7e3d970c66431" +dependencies = [ + "bitflags", + "cc", + "errno", + "io-lifetimes", + "itoa 0.4.8", + "libc", + "linux-raw-sys", + "once_cell", + "rustc_version 0.4.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.4", +] + +[[package]] +name = "rustls" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +dependencies = [ + "base64", + "log", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "rustls-native-certs" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" +dependencies = [ + "openssl-probe", + "rustls", + "schannel", + "security-framework", +] + +[[package]] +name = "rw-stream-sink" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" +dependencies = [ + "futures 0.3.19", + "pin-project 0.4.29", + "static_assertions", +] + +[[package]] +name = "ryu" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" + +[[package]] +name = "salsa20" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0fbb5f676da676c260ba276a8f43a8dc67cf02d1438423aeb1c677a7212686" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "sc-allocator" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "log", + "sp-core", + "sp-wasm-interface", + "thiserror", +] + +[[package]] +name = "sc-authority-discovery" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.19", + "futures-timer 3.0.2", + "ip_network", + "libp2p", + "log", + "parity-scale-codec", + "prost", + "prost-build", + "rand 0.7.3", + "sc-client-api", + "sc-network", + "sp-api", + "sp-authority-discovery", + "sp-blockchain", + "sp-core", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-basic-authorship" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "sc-block-builder", + "sc-client-api", + "sc-proposer-metrics", + "sc-telemetry", + "sc-transaction-pool-api", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-block-builder" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "sc-client-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", +] + +[[package]] +name = "sc-chain-spec" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "impl-trait-for-tuples", + "memmap2 0.5.2", + "parity-scale-codec", + "sc-chain-spec-derive", + "sc-network", + "sc-telemetry", + "serde", + "serde_json", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "sc-chain-spec-derive" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sc-cli" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "chrono", + "fdlimit", + "futures 0.3.19", + "hex", + "libp2p", + "log", + "names", + "parity-scale-codec", + "rand 0.7.3", + "regex", + "rpassword", + "sc-client-api", + "sc-keystore", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sc-utils", + "serde", + "serde_json", + "sp-blockchain", + "sp-core", + "sp-keyring", + "sp-keystore", + "sp-panic-handler", + "sp-runtime", + "sp-version", + "structopt", + "thiserror", + "tiny-bip39", + "tokio", +] + +[[package]] +name = "sc-client-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "fnv", + "futures 0.3.19", + "hash-db", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-executor", + "sc-transaction-pool-api", + "sc-utils", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-database", + "sp-externalities", + "sp-keystore", + "sp-runtime", + "sp-state-machine", + "sp-storage", + "sp-trie", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-client-db" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "hash-db", + "kvdb", + "kvdb-memorydb", + "kvdb-rocksdb", + "linked-hash-map", + "log", + "parity-db", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-client-api", + "sc-state-db", + "sp-arithmetic", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-runtime", + "sp-state-machine", + "sp-trie", +] + +[[package]] +name = "sc-consensus" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "futures 0.3.19", + "futures-timer 3.0.2", + "libp2p", + "log", + "parking_lot 0.11.2", + "sc-client-api", + "sc-utils", + "serde", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-aura" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.19", + "log", + "parity-scale-codec", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-consensus-slots", + "sc-telemetry", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-consensus-babe" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "derive_more", + "fork-tree", + "futures 0.3.19", + "log", + "merlin", + "num-bigint", + "num-rational 0.2.4", + "num-traits", + "parity-scale-codec", + "parking_lot 0.11.2", + "rand 0.7.3", + "retain_mut", + "sc-client-api", + "sc-consensus", + "sc-consensus-epochs", + "sc-consensus-slots", + "sc-keystore", + "sc-telemetry", + "schnorrkel", + "serde", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-consensus-slots", + "sp-consensus-vrf", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-version", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-consensus-babe-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "derive_more", + "futures 0.3.19", + "jsonrpc-core", + "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.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "fork-tree", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sp-blockchain", + "sp-runtime", +] + +[[package]] +name = "sc-consensus-slots" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "futures 0.3.19", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sc-telemetry", + "sp-api", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-timestamp", + "thiserror", +] + +[[package]] +name = "sc-consensus-uncles" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "sc-client-api", + "sp-authorship", + "sp-runtime", + "thiserror", +] + +[[package]] +name = "sc-executor" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "lazy_static", + "libsecp256k1", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-executor-common", + "sc-executor-wasmi", + "sc-executor-wasmtime", + "sp-api", + "sp-core", + "sp-core-hashing-proc-macro", + "sp-externalities", + "sp-io", + "sp-panic-handler", + "sp-runtime-interface", + "sp-tasks", + "sp-trie", + "sp-version", + "sp-wasm-interface", + "wasmi", +] + +[[package]] +name = "sc-executor-common" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "derive_more", + "environmental", + "parity-scale-codec", + "pwasm-utils", + "sc-allocator", + "sp-core", + "sp-maybe-compressed-blob", + "sp-serializer", + "sp-wasm-interface", + "thiserror", + "wasmi", +] + +[[package]] +name = "sc-executor-wasmi" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "log", + "parity-scale-codec", + "sc-allocator", + "sc-executor-common", + "scoped-tls", + "sp-core", + "sp-runtime-interface", + "sp-wasm-interface", + "wasmi", +] + +[[package]] +name = "sc-executor-wasmtime" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "log", + "parity-scale-codec", + "parity-wasm 0.42.2", + "sc-allocator", + "sc-executor-common", + "sp-core", + "sp-runtime-interface", + "sp-wasm-interface", + "wasmtime", +] + +[[package]] +name = "sc-finality-grandpa" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "derive_more", + "dyn-clone", + "finality-grandpa", + "fork-tree", + "futures 0.3.19", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "rand 0.8.4", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-keystore", + "sc-network", + "sc-network-gossip", + "sc-telemetry", + "sc-utils", + "serde_json", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-finality-grandpa", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-finality-grandpa-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "derive_more", + "finality-grandpa", + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "jsonrpc-pubsub", + "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.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "ansi_term", + "futures 0.3.19", + "futures-timer 3.0.2", + "log", + "parity-util-mem", + "sc-client-api", + "sc-network", + "sc-transaction-pool-api", + "sp-blockchain", + "sp-runtime", +] + +[[package]] +name = "sc-keystore" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "derive_more", + "hex", + "parking_lot 0.11.2", + "serde_json", + "sp-application-crypto", + "sp-core", + "sp-keystore", +] + +[[package]] +name = "sc-network" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-std", + "async-trait", + "asynchronous-codec 0.5.0", + "bitflags", + "bytes 1.1.0", + "cid", + "derive_more", + "either", + "fnv", + "fork-tree", + "futures 0.3.19", + "futures-timer 3.0.2", + "hex", + "ip_network", + "libp2p", + "linked-hash-map", + "linked_hash_set", + "log", + "lru 0.7.2", + "parity-scale-codec", + "parking_lot 0.11.2", + "pin-project 1.0.10", + "prost", + "prost-build", + "rand 0.7.3", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-peerset", + "sc-utils", + "serde", + "serde_json", + "smallvec", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-finality-grandpa", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", + "unsigned-varint 0.6.0", + "void", + "zeroize", +] + +[[package]] +name = "sc-network-gossip" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "libp2p", + "log", + "lru 0.7.2", + "sc-network", + "sp-runtime", + "substrate-prometheus-endpoint", + "tracing", +] + +[[package]] +name = "sc-offchain" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "bytes 1.1.0", + "fnv", + "futures 0.3.19", + "futures-timer 3.0.2", + "hex", + "hyper", + "hyper-rustls", + "num_cpus", + "once_cell", + "parity-scale-codec", + "parking_lot 0.11.2", + "rand 0.7.3", + "sc-client-api", + "sc-network", + "sc-utils", + "sp-api", + "sp-core", + "sp-offchain", + "sp-runtime", + "threadpool", + "tracing", +] + +[[package]] +name = "sc-peerset" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "futures 0.3.19", + "libp2p", + "log", + "sc-utils", + "serde_json", + "wasm-timer", +] + +[[package]] +name = "sc-proposer-metrics" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "log", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "futures 0.3.19", + "hash-db", + "jsonrpc-core", + "jsonrpc-pubsub", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-rpc-api", + "sc-tracing", + "sc-transaction-pool-api", + "sc-utils", + "serde_json", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-keystore", + "sp-offchain", + "sp-rpc", + "sp-runtime", + "sp-session", + "sp-version", +] + +[[package]] +name = "sc-rpc-api" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "jsonrpc-pubsub", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-chain-spec", + "sc-transaction-pool-api", + "serde", + "serde_json", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-tracing", + "sp-version", + "thiserror", +] + +[[package]] +name = "sc-rpc-server" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-http-server", + "jsonrpc-ipc-server", + "jsonrpc-pubsub", + "jsonrpc-ws-server", + "log", + "serde_json", + "substrate-prometheus-endpoint", + "tokio", +] + +[[package]] +name = "sc-service" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "directories", + "exit-future", + "futures 0.3.19", + "futures-timer 3.0.2", + "hash-db", + "jsonrpc-core", + "jsonrpc-pubsub", + "log", + "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.11.2", + "pin-project 1.0.10", + "rand 0.7.3", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-executor", + "sc-informant", + "sc-keystore", + "sc-network", + "sc-offchain", + "sc-rpc", + "sc-rpc-server", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", + "serde", + "serde_json", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-externalities", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-session", + "sp-state-machine", + "sp-storage", + "sp-tracing", + "sp-transaction-pool", + "sp-transaction-storage-proof", + "sp-trie", + "sp-version", + "substrate-prometheus-endpoint", + "tempfile", + "thiserror", + "tokio", + "tracing", + "tracing-futures", +] + +[[package]] +name = "sc-state-db" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "log", + "parity-scale-codec", + "parity-util-mem", + "parity-util-mem-derive", + "parking_lot 0.11.2", + "sc-client-api", + "sp-core", +] + +[[package]] +name = "sc-sync-state-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "parity-scale-codec", + "sc-chain-spec", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-finality-grandpa", + "sc-rpc-api", + "serde", + "serde_json", + "sp-blockchain", + "sp-runtime", + "thiserror", +] + +[[package]] +name = "sc-telemetry" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "chrono", + "futures 0.3.19", + "libp2p", + "log", + "parking_lot 0.11.2", + "pin-project 1.0.10", + "rand 0.7.3", + "serde", + "serde_json", + "thiserror", + "wasm-timer", +] + +[[package]] +name = "sc-tracing" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "ansi_term", + "atty", + "chrono", + "lazy_static", + "libc", + "log", + "once_cell", + "parking_lot 0.11.2", + "regex", + "rustc-hash", + "sc-client-api", + "sc-rpc-server", + "sc-tracing-proc-macro", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-tracing", + "thiserror", + "tracing", + "tracing-log", + "tracing-subscriber", +] + +[[package]] +name = "sc-tracing-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sc-transaction-pool" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "futures 0.3.19", + "intervalier", + "linked-hash-map", + "log", + "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.11.2", + "retain_mut", + "sc-client-api", + "sc-transaction-pool-api", + "sc-utils", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-tracing", + "sp-transaction-pool", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-transaction-pool-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "derive_more", + "futures 0.3.19", + "log", + "serde", + "sp-blockchain", + "sp-runtime", + "thiserror", +] + +[[package]] +name = "sc-utils" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "lazy_static", + "prometheus", +] + +[[package]] +name = "scale-info" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c55b744399c25532d63a0d2789b109df8d46fc93752d46b0782991a931a782f" +dependencies = [ + "bitvec", + "cfg-if 1.0.0", + "derive_more", + "parity-scale-codec", + "scale-info-derive", + "serde", +] + +[[package]] +name = "scale-info-derive" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baeb2780690380592f86205aa4ee49815feb2acad8c2f59e6dd207148c3f1fcd" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi 0.3.9", +] + +[[package]] +name = "schnorrkel" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "curve25519-dalek 2.1.3", + "getrandom 0.1.16", + "merlin", + "rand 0.7.3", + "rand_core 0.5.1", + "sha2 0.8.2", + "subtle", + "zeroize", +] + +[[package]] +name = "scoped-tls" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "sct" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fed7948b6c68acbb6e20c334f55ad635dc0f75506963de4464289fbd3b051ac" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a57321bf8bc2362081b2599912d2961fe899c0efadf1b4b2f8d48b3e253bb96c" +dependencies = [ + "core-foundation-sys", + "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.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser 0.10.2", +] + +[[package]] +name = "semver" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +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.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" +dependencies = [ + "itoa 1.0.1", + "ryu", + "serde", +] + +[[package]] +name = "sha-1" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "fake-simd", + "opaque-debug 0.2.3", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures 0.2.1", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "sha2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "fake-simd", + "opaque-debug 0.2.3", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures 0.2.1", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug 0.3.0", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" + +[[package]] +name = "signal-hook" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4" + +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", +] + +[[package]] +name = "slab" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" + +[[package]] +name = "slot-range-helper" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "enumn", + "parity-scale-codec", + "paste", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "slotmap" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" + +[[package]] +name = "snap" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451" + +[[package]] +name = "snow" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6142f7c25e94f6fd25a32c3348ec230df9109b463f59c8c7acc4bd34936babb7" +dependencies = [ + "aes-gcm", + "blake2", + "chacha20poly1305", + "rand 0.8.4", + "rand_core 0.6.3", + "ring", + "rustc_version 0.3.3", + "sha2 0.9.9", + "subtle", + "x25519-dalek", +] + +[[package]] +name = "socket2" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "socket2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64", + "bytes 1.1.0", + "flate2", + "futures 0.3.19", + "httparse", + "log", + "rand 0.8.4", + "sha-1 0.9.8", +] + +[[package]] +name = "sp-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "sp-api-proc-macro", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-version", + "thiserror", +] + +[[package]] +name = "sp-api-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "blake2-rfc", + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-application-crypto" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-std", +] + +[[package]] +name = "sp-arithmetic" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-debug-derive", + "sp-std", + "static_assertions", +] + +[[package]] +name = "sp-authority-discovery" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-authorship" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "parity-scale-codec", + "sp-inherents", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-block-builder" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "sp-api", + "sp-inherents", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-blockchain" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "futures 0.3.19", + "log", + "lru 0.7.2", + "parity-scale-codec", + "parking_lot 0.11.2", + "sp-api", + "sp-consensus", + "sp-database", + "sp-runtime", + "sp-state-machine", + "thiserror", +] + +[[package]] +name = "sp-consensus" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "futures 0.3.19", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-version", + "thiserror", +] + +[[package]] +name = "sp-consensus-aura" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "sp-consensus-babe" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "merlin", + "parity-scale-codec", + "scale-info", + "serde", + "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", +] + +[[package]] +name = "sp-consensus-slots" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic", + "sp-runtime", +] + +[[package]] +name = "sp-consensus-vrf" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "schnorrkel", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-core" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "base58", + "bitflags", + "blake2-rfc", + "byteorder", + "dyn-clonable", + "ed25519-dalek", + "futures 0.3.19", + "hash-db", + "hash256-std-hasher", + "hex", + "impl-serde", + "lazy_static", + "libsecp256k1", + "log", + "merlin", + "num-traits", + "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.11.2", + "primitive-types", + "rand 0.7.3", + "regex", + "scale-info", + "schnorrkel", + "secrecy", + "serde", + "sha2 0.9.9", + "sp-core-hashing", + "sp-debug-derive", + "sp-externalities", + "sp-runtime-interface", + "sp-std", + "sp-storage", + "ss58-registry", + "substrate-bip39", + "thiserror", + "tiny-bip39", + "tiny-keccak", + "twox-hash", + "wasmi", + "zeroize", +] + +[[package]] +name = "sp-core-hashing" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "blake2-rfc", + "byteorder", + "sha2 0.9.9", + "sp-std", + "tiny-keccak", + "twox-hash", +] + +[[package]] +name = "sp-core-hashing-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "proc-macro2", + "quote", + "sp-core-hashing", + "syn", +] + +[[package]] +name = "sp-database" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "kvdb", + "parking_lot 0.11.2", +] + +[[package]] +name = "sp-debug-derive" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-externalities" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-std", + "sp-storage", +] + +[[package]] +name = "sp-finality-grandpa" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "finality-grandpa", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-inherents" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std", + "thiserror", +] + +[[package]] +name = "sp-io" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "futures 0.3.19", + "hash-db", + "libsecp256k1", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "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 = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "lazy_static", + "sp-core", + "sp-runtime", + "strum", +] + +[[package]] +name = "sp-keystore" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.19", + "merlin", + "parity-scale-codec", + "parking_lot 0.11.2", + "schnorrkel", + "serde", + "sp-core", + "sp-externalities", +] + +[[package]] +name = "sp-maybe-compressed-blob" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "zstd", +] + +[[package]] +name = "sp-npos-elections" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic", + "sp-core", + "sp-npos-elections-solution-type", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-npos-elections-solution-type" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-offchain" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "sp-api", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "sp-panic-handler" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "backtrace", + "lazy_static", + "regex", +] + +[[package]] +name = "sp-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "rustc-hash", + "serde", + "sp-core", +] + +[[package]] +name = "sp-runtime" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "parity-util-mem", + "paste", + "rand 0.7.3", + "scale-info", + "serde", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-std", +] + +[[package]] +name = "sp-runtime-interface" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "primitive-types", + "sp-externalities", + "sp-runtime-interface-proc-macro", + "sp-std", + "sp-storage", + "sp-tracing", + "sp-wasm-interface", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "Inflector", + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-serializer" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "sp-session" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "sp-staking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-state-machine" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "hash-db", + "log", + "num-traits", + "parity-scale-codec", + "parking_lot 0.11.2", + "rand 0.7.3", + "smallvec", + "sp-core", + "sp-externalities", + "sp-panic-handler", + "sp-std", + "sp-trie", + "thiserror", + "tracing", + "trie-db", + "trie-root", +] + +[[package]] +name = "sp-std" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" + +[[package]] +name = "sp-storage" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive", + "sp-std", +] + +[[package]] +name = "sp-tasks" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "log", + "sp-core", + "sp-externalities", + "sp-io", + "sp-runtime-interface", + "sp-std", +] + +[[package]] +name = "sp-timestamp" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "sp-api", + "sp-inherents", + "sp-runtime", + "sp-std", + "thiserror", +] + +[[package]] +name = "sp-tracing" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "sp-std", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "sp-transaction-pool" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "sp-api", + "sp-runtime", +] + +[[package]] +name = "sp-transaction-storage-proof" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-trait", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "sp-trie" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "hash-db", + "memory-db", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-std", + "trie-db", + "trie-root", +] + +[[package]] +name = "sp-version" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "parity-wasm 0.42.2", + "scale-info", + "serde", + "sp-runtime", + "sp-std", + "sp-version-proc-macro", + "thiserror", +] + +[[package]] +name = "sp-version-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "parity-scale-codec", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-wasm-interface" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "sp-std", + "wasmi", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "ss58-registry" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8319f44e20b42e5c11b88b1ad4130c35fe2974665a007b08b02322070177136a" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "serde", + "serde_json", + "unicode-xid", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "static_init" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11b73400442027c4adedda20a9f9b7945234a5bd8d5f7e86da22bd5d0622369c" +dependencies = [ + "cfg_aliases", + "libc", + "parking_lot 0.11.2", + "static_init_macro", +] + +[[package]] +name = "static_init_macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2261c91034a1edc3fc4d1b80e89d82714faede0515c14a75da10cb941546bbf" +dependencies = [ + "cfg_aliases", + "memchr", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "statrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +dependencies = [ + "approx", + "lazy_static", + "nalgebra", + "num-traits", + "rand 0.8.4", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "strum" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "substrate-bip39" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49eee6965196b32f882dd2ee85a92b1dbead41b04e53907f269de3b0dc04733c" +dependencies = [ + "hmac 0.11.0", + "pbkdf2 0.8.0", + "schnorrkel", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "substrate-build-script-utils" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "platforms", +] + +[[package]] +name = "substrate-frame-rpc-system" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "frame-system-rpc-runtime-api", + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-rpc-api", + "sc-transaction-pool-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "substrate-prometheus-endpoint" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "async-std", + "derive_more", + "futures-util", + "hyper", + "log", + "prometheus", + "tokio", +] + +[[package]] +name = "substrate-wasm-builder" +version = "5.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "ansi_term", + "build-helper", + "cargo_metadata", + "sp-maybe-compressed-blob", + "tempfile", + "toml", + "walkdir", + "wasm-gc-api", +] + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "target-lexicon" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7fa7e55043acb85fca6b3c01485a2eeb6b69c5d21002e273c79e465f43b7ac1" + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if 1.0.0", + "fastrand", + "libc", + "redox_syscall 0.2.10", + "remove_dir_all", + "winapi 0.3.9", +] + +[[package]] +name = "termcolor" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "thrift" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b82ca8f46f95b3ce96081fe3dd89160fdea970c254bb72925255d1b62aae692e" +dependencies = [ + "byteorder", + "integer-encoding", + "log", + "ordered-float", + "threadpool", +] + +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi 0.3.9", +] + +[[package]] +name = "tiny-bip39" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" +dependencies = [ + "anyhow", + "hmac 0.8.1", + "once_cell", + "pbkdf2 0.4.0", + "rand 0.7.3", + "rustc-hash", + "sha2 0.9.9", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" +dependencies = [ + "bytes 1.1.0", + "libc", + "memchr", + "mio 0.7.14", + "num_cpus", + "once_cell", + "pin-project-lite 0.2.8", + "signal-hook-registry", + "tokio-macros", + "winapi 0.3.9", +] + +[[package]] +name = "tokio-macros" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-rustls" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +dependencies = [ + "rustls", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-stream" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" +dependencies = [ + "futures-core", + "pin-project-lite 0.2.8", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" +dependencies = [ + "bytes 1.1.0", + "futures-core", + "futures-io", + "futures-sink", + "log", + "pin-project-lite 0.2.8", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +dependencies = [ + "serde", +] + +[[package]] +name = "tower-service" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" + +[[package]] +name = "tracing" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d8d93354fe2a8e50d5953f5ae2e47a3fc2ef03292e7ea46e3cc38f549525fb9" +dependencies = [ + "cfg-if 1.0.0", + "pin-project-lite 0.2.8", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23" +dependencies = [ + "lazy_static", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project 1.0.10", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "ansi_term", + "chrono", + "lazy_static", + "matchers", + "parking_lot 0.11.2", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", + "tracing-serde", +] + +[[package]] +name = "trie-db" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eac131e334e81b6b3be07399482042838adcd7957aa0010231d0813e39e02fa" +dependencies = [ + "hash-db", + "hashbrown", + "log", + "rustc-hex", + "smallvec", +] + +[[package]] +name = "trie-root" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "652931506d2c1244d7217a70b99f56718a7b4161b37f04e7cd868072a99f68cd" +dependencies = [ + "hash-db", +] + +[[package]] +name = "trust-dns-proto" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca94d4e9feb6a181c690c4040d7a24ef34018d8313ac5044a61d21222ae24e31" +dependencies = [ + "async-trait", + "cfg-if 1.0.0", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.2.3", + "ipnet", + "lazy_static", + "log", + "rand 0.8.4", + "smallvec", + "thiserror", + "tinyvec", + "url 2.2.2", +] + +[[package]] +name = "trust-dns-resolver" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecae383baad9995efaa34ce8e57d12c3f305e545887472a492b838f4b5cfb77a" +dependencies = [ + "cfg-if 1.0.0", + "futures-util", + "ipconfig", + "lazy_static", + "log", + "lru-cache", + "parking_lot 0.11.2", + "resolv-conf", + "smallvec", + "thiserror", + "trust-dns-proto", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "try-runtime-cli" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +dependencies = [ + "jsonrpsee", + "log", + "parity-scale-codec", + "remote-externalities", + "sc-chain-spec", + "sc-cli", + "sc-executor", + "sc-service", + "serde", + "sp-core", + "sp-externalities", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-state-machine", + "sp-version", + "structopt", +] + +[[package]] +name = "tt-call" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e66dcbec4290c69dd03c57e76c2469ea5c7ce109c6dd4351c13055cf71ea055" + +[[package]] +name = "twox-hash" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee73e6e4924fe940354b8d4d98cad5231175d615cd855b758adc658c0aac6a0" +dependencies = [ + "cfg-if 1.0.0", + "rand 0.8.4", + "static_assertions", +] + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[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.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f03af7ccf01dd611cc450a0d10dbc9b745770d096473e2faf0ca6e2d66d1e0" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" + +[[package]] +name = "unicode-normalization" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" + +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unicode-xid" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" + +[[package]] +name = "universal-hash" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" +dependencies = [ + "generic-array 0.14.5", + "subtle", +] + +[[package]] +name = "unsigned-varint" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35" + +[[package]] +name = "unsigned-varint" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35581ff83d4101e58b582e607120c7f5ffb17e632a980b1f38334d76b36908b2" +dependencies = [ + "asynchronous-codec 0.5.0", + "bytes 1.1.0", + "futures-io", + "futures-util", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" +dependencies = [ + "asynchronous-codec 0.6.0", + "bytes 1.1.0", + "futures-io", + "futures-util", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "url" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +dependencies = [ + "idna 0.1.5", + "matches", + "percent-encoding 1.0.1", +] + +[[package]] +name = "url" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +dependencies = [ + "form_urlencoded", + "idna 0.2.3", + "matches", + "percent-encoding 2.1.0", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "value-bag" +version = "1.0.0-alpha.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263f" +dependencies = [ + "ctor", + "version_check", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi 0.3.9", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasm-bindgen" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb6ec270a31b1d3c7e266b999739109abce8b6c87e4b31fcfcd788b65267395" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" + +[[package]] +name = "wasm-gc-api" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0c32691b6c7e6c14e7f8fd55361a9088b507aa49620fcd06c09b3a1082186b9" +dependencies = [ + "log", + "parity-wasm 0.32.0", + "rustc-demangle", +] + +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" +dependencies = [ + "futures 0.3.19", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca00c5147c319a8ec91ec1a0edbec31e566ce2c9cc93b3f9bb86a9efd0eb795d" +dependencies = [ + "downcast-rs", + "libc", + "memory_units", + "num-rational 0.2.4", + "num-traits", + "parity-wasm 0.42.2", + "wasmi-validation", +] + +[[package]] +name = "wasmi-validation" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "165343ecd6c018fc09ebcae280752702c9a2ef3e6f8d02f1cfcbdb53ef6d7937" +dependencies = [ + "parity-wasm 0.42.2", +] + +[[package]] +name = "wasmparser" +version = "0.81.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98930446519f63d00a836efdc22f67766ceae8dbcc1571379f2bcabc6b2b9abc" + +[[package]] +name = "wasmtime" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "311d06b0c49346d1fbf48a17052e844036b95a7753c1afb34e8c0af3f6b5bb13" +dependencies = [ + "anyhow", + "backtrace", + "bincode", + "cfg-if 1.0.0", + "cpp_demangle", + "indexmap", + "lazy_static", + "libc", + "log", + "object", + "paste", + "psm", + "rayon", + "region", + "rustc-demangle", + "serde", + "target-lexicon", + "wasmparser", + "wasmtime-cache", + "wasmtime-cranelift", + "wasmtime-environ", + "wasmtime-jit", + "wasmtime-runtime", + "winapi 0.3.9", +] + +[[package]] +name = "wasmtime-cache" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36147930a4995137dc096e5b17a573b446799be2bbaea433e821ce6a80abe2c5" +dependencies = [ + "anyhow", + "base64", + "bincode", + "directories-next", + "file-per-thread-logger", + "log", + "rsix", + "serde", + "sha2 0.9.9", + "toml", + "winapi 0.3.9", + "zstd", +] + +[[package]] +name = "wasmtime-cranelift" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3083a47e1ede38aac06a1d9831640d673f9aeda0b82a64e4ce002f3432e2e7" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", + "gimli 0.25.0", + "log", + "more-asserts", + "object", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-environ" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c2d194b655321053bc4111a1aa4ead552655c8a17d17264bc97766e70073510" +dependencies = [ + "anyhow", + "cfg-if 1.0.0", + "cranelift-entity", + "gimli 0.25.0", + "indexmap", + "log", + "more-asserts", + "object", + "serde", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-types", +] + +[[package]] +name = "wasmtime-jit" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "864ac8dfe4ce310ac59f16fdbd560c257389cb009ee5d030ac6e30523b023d11" +dependencies = [ + "addr2line 0.16.0", + "anyhow", + "bincode", + "cfg-if 1.0.0", + "gimli 0.25.0", + "log", + "more-asserts", + "object", + "region", + "rsix", + "serde", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-environ", + "wasmtime-runtime", + "winapi 0.3.9", +] + +[[package]] +name = "wasmtime-runtime" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab97da813a26b98c9abfd3b0c2d99e42f6b78b749c0646344e2e262d212d8c8b" +dependencies = [ + "anyhow", + "backtrace", + "cc", + "cfg-if 1.0.0", + "indexmap", + "lazy_static", + "libc", + "log", + "mach", + "memoffset", + "more-asserts", + "rand 0.8.4", + "region", + "rsix", + "thiserror", + "wasmtime-environ", + "winapi 0.3.9", +] + +[[package]] +name = "wasmtime-types" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff94409cc3557bfbbcce6b14520ccd6bd3727e965c0fe68d63ef2c185bf379c6" +dependencies = [ + "cranelift-entity", + "serde", + "thiserror", + "wasmparser", +] + +[[package]] +name = "web-sys" +version = "0.3.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +dependencies = [ + "webpki", +] + +[[package]] +name = "wepoll-ffi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" +dependencies = [ + "cc", +] + +[[package]] +name = "westend-runtime" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "beefy-primitives", + "bitvec", + "frame-benchmarking", + "frame-election-provider-support", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-bags-list", + "pallet-balances", + "pallet-collective", + "pallet-democracy", + "pallet-election-provider-multi-phase", + "pallet-elections-phragmen", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-mmr-primitives", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-offences-benchmarking", + "pallet-proxy", + "pallet-recovery", + "pallet-scheduler", + "pallet-session", + "pallet-session-benchmarking", + "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", + "pallet-xcm", + "pallet-xcm-benchmarks", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "smallvec", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-npos-elections", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", +] + +[[package]] +name = "which" +version = "4.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a5a7e487e921cf220206864a94a89b6c6905bfc19f1057fa26a4cb360e5c1d2" +dependencies = [ + "either", + "lazy_static", + "libc", +] + +[[package]] +name = "widestring" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "winreg" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] +name = "x25519-dalek" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" +dependencies = [ + "curve25519-dalek 3.2.0", + "rand_core 0.5.1", + "zeroize", +] + +[[package]] +name = "xcm" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "derivative", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "xcm-procedural", +] + +[[package]] +name = "xcm-builder" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "frame-support", + "frame-system", + "log", + "pallet-transaction-payment", + "parity-scale-codec", + "polkadot-parachain", + "scale-info", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "xcm-executor" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "frame-benchmarking", + "frame-support", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", +] + +[[package]] +name = "xcm-procedural" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "xcm-simulator" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "frame-support", + "parity-scale-codec", + "paste", + "polkadot-core-primitives", + "polkadot-parachain", + "polkadot-runtime-parachains", + "sp-io", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "yamux" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107" +dependencies = [ + "futures 0.3.19", + "log", + "nohash-hasher", + "parking_lot 0.11.2", + "rand 0.8.4", + "static_assertions", +] + +[[package]] +name = "zeroize" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c88870063c39ee00ec285a2f8d6a966e5b6fb2becc4e8dac77ed0d370ed6006" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e8f13fef10b63c06356d65d416b070798ddabcadc10d3ece0c5be9b3c7eddb" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zstd" +version = "0.9.2+zstd.1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2390ea1bf6c038c39674f22d95f0564725fc06034a47129179810b2fc58caa54" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "4.1.3+zstd.1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e99d81b99fb3c2c2c794e3fe56c305c63d5173a16a46b5850b07c935ffc7db79" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "1.6.2+zstd.1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2daf2f248d9ea44454bfcb2516534e8b8ad2fc91bf818a1885495fc42bc8ac9f" +dependencies = [ + "cc", + "libc", +] diff --git a/pallets/asset-manager/Cargo.toml b/pallets/asset-manager/Cargo.toml index a2171bb86..a8ae28e57 100644 --- a/pallets/asset-manager/Cargo.toml +++ b/pallets/asset-manager/Cargo.toml @@ -11,15 +11,15 @@ repository = 'https://github.com/Manta-Network/Manta/' [dependencies] codec = { package = "parity-scale-codec", version = "2.3.1", default-features = false } scale-info = { version = "1.0", default-features = false, features = ["derive"] } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12", default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.12", default-features = false, optional = true } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.13", default-features = false, optional = true } manta-primitives = { path = '../../runtime/primitives', default-features = false} [dev-dependencies] -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } [features] default = ["std"] diff --git a/runtime/calamari/Cargo.toml b/runtime/calamari/Cargo.toml index 47f4484b4..f3deab19d 100644 --- a/runtime/calamari/Cargo.toml +++ b/runtime/calamari/Cargo.toml @@ -78,7 +78,7 @@ xcm-executor = { git = 'https://github.com/paritytech/polkadot.git', default-fea pallet-xcm = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } # Third party (vendored) dependencies -orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-library.git", default-features = false, branch = "polkadot-v0.9.12"} +orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-library.git", default-features = false, branch = "polkadot-v0.9.13"} # Self dependencies manta-primitives = { path = '../primitives', default-features = false } @@ -88,8 +88,8 @@ pallet-tx-pause = { path = '../../pallets/pallet-tx-pause', default-features = f pallet-asset-manager = { path = '../../pallets/asset-manager', default-features = false } [dev-dependencies] -xcm-simulator = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.12"} -polkadot-runtime-parachains = { git = 'https://github.com/paritytech/polkadot.git', branch = "release-v0.9.12" } +xcm-simulator = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.13"} +polkadot-runtime-parachains = { git = 'https://github.com/paritytech/polkadot.git', branch = "release-v0.9.13" } [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] From 5efa32604a904ee5dc5ec00cfa86b939ef5a7575 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Tue, 15 Feb 2022 18:23:14 -0700 Subject: [PATCH 11/33] update to v0.9.15 --- Cargo.lock | 790 +++++++++++------- pallets/asset-manager/Cargo.toml | 12 +- runtime/calamari/Cargo.toml | 31 +- .../calamari/tests/xcm_mock/relay_chain.rs | 1 + runtime/primitives/Cargo.toml | 1 + 5 files changed, 514 insertions(+), 321 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8867b087a..8dd969bad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -428,7 +428,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "beefy-primitives", "fnv", @@ -456,7 +456,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -476,12 +476,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -665,7 +665,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "finality-grandpa", "frame-support", @@ -681,7 +681,7 @@ dependencies = [ [[package]] name = "bp-message-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bp-runtime", "frame-support", @@ -693,7 +693,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", "bp-runtime", @@ -709,7 +709,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bp-messages", "bp-runtime", @@ -727,7 +727,7 @@ dependencies = [ [[package]] name = "bp-rialto" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bp-messages", "bp-runtime", @@ -742,7 +742,7 @@ dependencies = [ [[package]] name = "bp-rococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -759,7 +759,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "frame-support", "hash-db", @@ -777,7 +777,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bp-header-chain", "ed25519-dalek", @@ -792,7 +792,7 @@ dependencies = [ [[package]] name = "bp-wococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -807,7 +807,7 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bp-message-dispatch", "bp-messages", @@ -924,6 +924,7 @@ dependencies = [ "manta-primitives", "orml-xtokens", "pallet-asset-manager", + "pallet-assets", "pallet-aura", "pallet-authorship", "pallet-balances", @@ -943,12 +944,15 @@ dependencies = [ "pallet-xcm", "parachain-info", "parity-scale-codec", + "polkadot-core-primitives", "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", + "reqwest", "scale-info", "serde", + "serde_json", "smallvec", "sp-api", "sp-block-builder", @@ -1431,7 +1435,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "sc-cli", "sc-service", @@ -1441,7 +1445,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1464,7 +1468,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1494,7 +1498,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "async-trait", "dyn-clone", @@ -1514,7 +1518,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-relay-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1538,7 +1542,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "derive_more", "futures 0.3.19", @@ -1561,7 +1565,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "futures 0.3.19", @@ -1584,7 +1588,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1613,7 +1617,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "frame-executive", "frame-support", @@ -1631,7 +1635,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1649,7 +1653,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1678,7 +1682,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -1689,7 +1693,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "frame-benchmarking", "frame-support", @@ -1702,7 +1706,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1719,7 +1723,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1737,7 +1741,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1754,7 +1758,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1776,7 +1780,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1787,7 +1791,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1804,7 +1808,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2027,6 +2031,15 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +[[package]] +name = "encoding_rs" +version = "0.8.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dc8abb250ffdda33912550faa54c88ec8b998dec0b2c55ab224921ce11df" +dependencies = [ + "cfg-if 1.0.0", +] + [[package]] name = "enum-as-inner" version = "0.3.3" @@ -2258,10 +2271,25 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", ] @@ -2279,7 +2307,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -2299,7 +2327,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "Inflector", "chrono", @@ -2325,7 +2353,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -2339,7 +2367,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -2367,7 +2395,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "bitflags", "frame-metadata", @@ -2396,7 +2424,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2408,7 +2436,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.0", @@ -2420,7 +2448,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro2", "quote", @@ -2430,7 +2458,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "log", @@ -2447,7 +2475,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -2462,7 +2490,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "sp-api", @@ -2471,7 +2499,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "sp-api", @@ -2990,6 +3018,19 @@ dependencies = [ "webpki", ] +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes 1.1.0", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + [[package]] name = "idna" version = "0.1.5" @@ -3166,7 +3207,7 @@ dependencies = [ "socket2 0.3.19", "widestring", "winapi 0.3.9", - "winreg", + "winreg 0.6.2", ] [[package]] @@ -3443,8 +3484,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "beefy-primitives", "bitvec", @@ -4558,8 +4599,8 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derive_more", "futures 0.3.19", @@ -4579,6 +4620,12 @@ dependencies = [ "thrift", ] +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -4797,6 +4844,24 @@ dependencies = [ "rand 0.8.4", ] +[[package]] +name = "native-tls" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "net2" version = "0.2.37" @@ -4965,12 +5030,39 @@ dependencies = [ "syn", ] +[[package]] +name = "openssl" +version = "0.10.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-sys", +] + [[package]] name = "openssl-probe" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "openssl-sys" +version = "0.9.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "ordered-float" version = "1.1.1" @@ -4983,7 +5075,7 @@ dependencies = [ [[package]] name = "orml-traits" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.13#1f520348f31b5e94b8a5dd7f8e6b8ec359df4177" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.15#598afc4a64a9892209a780f0aad2ba0bd2ccb704" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -5001,7 +5093,7 @@ dependencies = [ [[package]] name = "orml-utilities" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.13#1f520348f31b5e94b8a5dd7f8e6b8ec359df4177" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.15#598afc4a64a9892209a780f0aad2ba0bd2ccb704" dependencies = [ "frame-support", "parity-scale-codec", @@ -5015,7 +5107,7 @@ dependencies = [ [[package]] name = "orml-xcm-support" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.13#1f520348f31b5e94b8a5dd7f8e6b8ec359df4177" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.15#598afc4a64a9892209a780f0aad2ba0bd2ccb704" dependencies = [ "frame-support", "orml-traits", @@ -5029,7 +5121,7 @@ dependencies = [ [[package]] name = "orml-xtokens" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.13#1f520348f31b5e94b8a5dd7f8e6b8ec359df4177" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.15#598afc4a64a9892209a780f0aad2ba0bd2ccb704" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5070,10 +5162,23 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-assets" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5089,7 +5194,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5105,7 +5210,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5120,7 +5225,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5144,7 +5249,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5164,7 +5269,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5179,7 +5284,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "beefy-primitives", "frame-support", @@ -5195,7 +5300,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -5220,7 +5325,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5238,7 +5343,7 @@ dependencies = [ [[package]] name = "pallet-bridge-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bp-message-dispatch", "bp-runtime", @@ -5255,7 +5360,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bp-header-chain", "bp-runtime", @@ -5277,7 +5382,7 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", "bp-message-dispatch", @@ -5299,7 +5404,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "frame-benchmarking", "frame-support", @@ -5319,7 +5424,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5336,7 +5441,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5352,7 +5457,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5376,7 +5481,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5394,7 +5499,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5409,7 +5514,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5432,7 +5537,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5448,7 +5553,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5468,7 +5573,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5485,7 +5590,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5502,7 +5607,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5520,7 +5625,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5536,7 +5641,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5553,7 +5658,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5568,7 +5673,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5582,7 +5687,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5599,7 +5704,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5622,7 +5727,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5637,7 +5742,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5651,7 +5756,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5667,7 +5772,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5688,7 +5793,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5704,7 +5809,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5718,7 +5823,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5741,7 +5846,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -5752,7 +5857,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", "sp-arithmetic", @@ -5761,7 +5866,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5775,7 +5880,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5793,7 +5898,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5812,7 +5917,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5829,7 +5934,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5846,7 +5951,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5857,7 +5962,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5891,7 +5996,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5907,7 +6012,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5921,8 +6026,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "frame-support", "frame-system", @@ -5940,7 +6045,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5957,7 +6062,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.13#05cc5f0e2acacc18796f45ffa3c7b4626fd1046d" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6316,8 +6421,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "polkadot-node-network-protocol", @@ -6330,8 +6435,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "polkadot-node-network-protocol", @@ -6343,8 +6448,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derive_more", "futures 0.3.19", @@ -6365,8 +6470,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "lru 0.7.2", @@ -6385,8 +6490,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "frame-benchmarking-cli", "futures 0.3.19", @@ -6405,8 +6510,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6435,8 +6540,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "always-assert", "derive_more", @@ -6456,8 +6561,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6469,8 +6574,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derive_more", "futures 0.3.19", @@ -6491,8 +6596,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6505,8 +6610,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "futures-timer 3.0.2", @@ -6525,8 +6630,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", "futures 0.3.19", @@ -6544,8 +6649,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "parity-scale-codec", @@ -6562,8 +6667,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", "derive_more", @@ -6590,8 +6695,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", "futures 0.3.19", @@ -6610,8 +6715,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", "futures 0.3.19", @@ -6628,8 +6733,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "polkadot-node-subsystem", @@ -6643,8 +6748,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", "futures 0.3.19", @@ -6661,8 +6766,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "polkadot-node-subsystem", @@ -6676,8 +6781,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "futures-timer 3.0.2", @@ -6693,8 +6798,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", "derive_more", @@ -6712,8 +6817,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-participation" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.14" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "polkadot-node-primitives", @@ -6725,8 +6830,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", "futures 0.3.19", @@ -6742,8 +6847,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", "futures 0.3.19", @@ -6757,8 +6862,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "always-assert", "assert_matches", @@ -6788,8 +6893,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "memory-lru", @@ -6806,8 +6911,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-std", "lazy_static", @@ -6824,8 +6929,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "futures-timer 3.0.2", @@ -6835,8 +6940,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", "derive_more", @@ -6853,8 +6958,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bounded-vec", "futures 0.3.19", @@ -6875,8 +6980,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6885,8 +6990,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derive_more", "futures 0.3.19", @@ -6904,8 +7009,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", "derive_more", @@ -6931,8 +7036,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", "futures-timer 3.0.2", @@ -6952,8 +7057,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", "futures 0.3.19", @@ -6969,8 +7074,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -6980,8 +7085,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derive_more", "frame-support", @@ -6997,8 +7102,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", "frame-system", @@ -7027,8 +7132,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -7058,8 +7163,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "beefy-primitives", "bitvec", @@ -7140,8 +7245,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "beefy-primitives", "bitvec", @@ -7187,8 +7292,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitflags", "bitvec", @@ -7227,8 +7332,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", "beefy-gadget", @@ -7326,8 +7431,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "arrayvec 0.5.2", "derive_more", @@ -7347,8 +7452,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7830,7 +7935,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "env_logger 0.9.0", "jsonrpsee", @@ -7853,6 +7958,42 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "reqwest" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f242f1488a539a79bac6dbe7c8609ae43b7914b7736210f239a37cccb32525" +dependencies = [ + "base64", + "bytes 1.1.0", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "lazy_static", + "log", + "mime", + "native-tls", + "percent-encoding 2.1.0", + "pin-project-lite 0.2.8", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "url 2.2.2", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg 0.7.0", +] + [[package]] name = "resolv-conf" version = "0.7.0" @@ -7906,8 +8047,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "beefy-primitives", "bp-messages", @@ -8104,7 +8245,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", "sp-core", @@ -8115,7 +8256,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", @@ -8142,7 +8283,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "futures 0.3.19", "futures-timer 3.0.2", @@ -8165,7 +8306,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8181,7 +8322,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.2", @@ -8198,7 +8339,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -8209,7 +8350,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "chrono", "fdlimit", @@ -8247,7 +8388,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "fnv", "futures 0.3.19", @@ -8275,7 +8416,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "hash-db", "kvdb", @@ -8300,7 +8441,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "futures 0.3.19", @@ -8324,7 +8465,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", @@ -8353,7 +8494,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", @@ -8396,7 +8537,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "derive_more", "futures 0.3.19", @@ -8420,7 +8561,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8433,7 +8574,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "futures 0.3.19", @@ -8459,7 +8600,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "sc-client-api", "sp-authorship", @@ -8470,7 +8611,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "lazy_static", "libsecp256k1", @@ -8497,7 +8638,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "derive_more", "environmental", @@ -8515,7 +8656,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", "parity-scale-codec", @@ -8531,7 +8672,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8549,7 +8690,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", @@ -8586,7 +8727,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "derive_more", "finality-grandpa", @@ -8610,7 +8751,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "ansi_term", "futures 0.3.19", @@ -8627,7 +8768,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", @@ -8642,7 +8783,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-std", "async-trait", @@ -8693,7 +8834,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "futures 0.3.19", "futures-timer 3.0.2", @@ -8709,7 +8850,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "bytes 1.1.0", "fnv", @@ -8737,7 +8878,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "futures 0.3.19", "libp2p", @@ -8750,7 +8891,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8759,7 +8900,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "futures 0.3.19", "hash-db", @@ -8790,7 +8931,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "futures 0.3.19", "jsonrpc-core", @@ -8815,7 +8956,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "futures 0.3.19", "jsonrpc-core", @@ -8832,7 +8973,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "directories", @@ -8896,7 +9037,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", "parity-scale-codec", @@ -8910,7 +9051,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8932,7 +9073,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "chrono", "futures 0.3.19", @@ -8950,7 +9091,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "ansi_term", "atty", @@ -8981,7 +9122,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -8992,7 +9133,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "futures 0.3.19", "intervalier", @@ -9019,7 +9160,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "derive_more", "futures 0.3.19", @@ -9033,7 +9174,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "futures 0.3.19", "futures-timer 3.0.2", @@ -9222,6 +9363,18 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.1", + "ryu", + "serde", +] + [[package]] name = "sha-1" version = "0.8.2" @@ -9344,8 +9497,8 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slot-range-helper" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "enumn", "parity-scale-codec", @@ -9433,7 +9586,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "hash-db", "log", @@ -9450,7 +9603,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "blake2-rfc", "proc-macro-crate 1.1.0", @@ -9462,7 +9615,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9475,7 +9628,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "integer-sqrt", "num-traits", @@ -9490,7 +9643,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9503,7 +9656,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "parity-scale-codec", @@ -9515,7 +9668,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "sp-api", @@ -9527,7 +9680,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "futures 0.3.19", "log", @@ -9545,7 +9698,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "futures 0.3.19", @@ -9564,7 +9717,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "parity-scale-codec", @@ -9582,7 +9735,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "merlin", @@ -9605,7 +9758,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9617,7 +9770,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9629,7 +9782,7 @@ dependencies = [ [[package]] name = "sp-core" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "base58", "bitflags", @@ -9677,7 +9830,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "blake2-rfc", "byteorder", @@ -9690,7 +9843,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro2", "quote", @@ -9701,7 +9854,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "kvdb", "parking_lot 0.11.2", @@ -9710,7 +9863,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro2", "quote", @@ -9720,7 +9873,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "environmental", "parity-scale-codec", @@ -9731,7 +9884,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "finality-grandpa", "log", @@ -9749,7 +9902,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9763,7 +9916,7 @@ dependencies = [ [[package]] name = "sp-io" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "futures 0.3.19", "hash-db", @@ -9787,7 +9940,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "lazy_static", "sp-core", @@ -9798,7 +9951,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", @@ -9815,7 +9968,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "zstd", ] @@ -9823,7 +9976,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9838,7 +9991,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -9849,7 +10002,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "sp-api", "sp-core", @@ -9859,7 +10012,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "backtrace", "lazy_static", @@ -9869,7 +10022,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "rustc-hash", "serde", @@ -9879,7 +10032,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "either", "hash256-std-hasher", @@ -9901,7 +10054,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9918,7 +10071,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "Inflector", "proc-macro-crate 1.1.0", @@ -9930,7 +10083,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "serde", "serde_json", @@ -9939,7 +10092,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9953,7 +10106,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9964,7 +10117,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "hash-db", "log", @@ -9987,12 +10140,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" [[package]] name = "sp-storage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10005,7 +10158,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", "sp-core", @@ -10018,7 +10171,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -10034,7 +10187,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "sp-std", @@ -10046,7 +10199,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "sp-api", "sp-runtime", @@ -10055,7 +10208,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "log", @@ -10071,7 +10224,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "hash-db", "memory-db", @@ -10086,7 +10239,7 @@ dependencies = [ [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10102,7 +10255,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10113,7 +10266,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10258,7 +10411,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "platforms", ] @@ -10266,7 +10419,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.19", @@ -10288,7 +10441,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-std", "derive_more", @@ -10302,7 +10455,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "ansi_term", "build-helper", @@ -10521,6 +10674,16 @@ dependencies = [ "syn", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.22.0" @@ -10647,7 +10810,7 @@ dependencies = [ "chrono", "lazy_static", "matchers", - "parking_lot 0.11.2", + "parking_lot 0.10.2", "regex", "serde", "serde_json", @@ -10734,7 +10897,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.13#afb74de23dfe2994e7ce38c0870efb9734e966f7" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "jsonrpsee", "log", @@ -11305,8 +11468,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "beefy-primitives", "bitvec", @@ -11456,6 +11619,15 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "winreg" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +dependencies = [ + "winapi 0.3.9", +] + [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -11485,8 +11657,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11498,8 +11670,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "frame-support", "frame-system", @@ -11518,8 +11690,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "frame-benchmarking", "frame-support", @@ -11537,7 +11709,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "proc-macro2", "quote", @@ -11546,8 +11718,8 @@ dependencies = [ [[package]] name = "xcm-simulator" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "frame-support", "parity-scale-codec", diff --git a/pallets/asset-manager/Cargo.toml b/pallets/asset-manager/Cargo.toml index a8ae28e57..654846dcd 100644 --- a/pallets/asset-manager/Cargo.toml +++ b/pallets/asset-manager/Cargo.toml @@ -11,15 +11,15 @@ repository = 'https://github.com/Manta-Network/Manta/' [dependencies] codec = { package = "parity-scale-codec", version = "2.3.1", default-features = false } scale-info = { version = "1.0", default-features = false, features = ["derive"] } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13", default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.13", default-features = false, optional = true } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15", default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.15", default-features = false, optional = true } manta-primitives = { path = '../../runtime/primitives', default-features = false} [dev-dependencies] -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } [features] default = ["std"] diff --git a/runtime/calamari/Cargo.toml b/runtime/calamari/Cargo.toml index f3deab19d..9800e1de7 100644 --- a/runtime/calamari/Cargo.toml +++ b/runtime/calamari/Cargo.toml @@ -39,6 +39,7 @@ frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate. frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.16" } # Substrate pallets +<<<<<<< HEAD pallet-aura = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } pallet-authorship = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } pallet-balances = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } @@ -55,6 +56,24 @@ pallet-democracy = { git = "https://github.com/paritytech/substrate.git", defaul pallet-scheduler = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.16" } pallet-membership = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.16" } pallet-treasury = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.16" } +======= +pallet-assets = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } +pallet-aura = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } +pallet-authorship = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } +pallet-balances = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } +pallet-multisig = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } +pallet-session = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } +pallet-sudo = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } +pallet-timestamp = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } +pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } +pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } +pallet-utility = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } +pallet-collective = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.15" } +pallet-democracy = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.15" } +pallet-scheduler = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.15" } +pallet-membership = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.15" } +pallet-treasury = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.15" } +>>>>>>> a703f7d (update to v0.9.15) # Cumulus dependencies cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus.git', default-features = false, branch = "polkadot-v0.9.16" } @@ -70,6 +89,7 @@ parachain-info = { git = 'https://github.com/paritytech/cumulus.git', default-fe # Polkadot dependencies polkadot-primitives = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } +polkadot-core-primitives = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } polkadot-runtime-common = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } polkadot-parachain = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } xcm = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } @@ -78,7 +98,7 @@ xcm-executor = { git = 'https://github.com/paritytech/polkadot.git', default-fea pallet-xcm = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } # Third party (vendored) dependencies -orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-library.git", default-features = false, branch = "polkadot-v0.9.13"} +orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-library.git", default-features = false, branch = "polkadot-v0.9.15"} # Self dependencies manta-primitives = { path = '../primitives', default-features = false } @@ -88,8 +108,10 @@ pallet-tx-pause = { path = '../../pallets/pallet-tx-pause', default-features = f pallet-asset-manager = { path = '../../pallets/asset-manager', default-features = false } [dev-dependencies] -xcm-simulator = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.13"} -polkadot-runtime-parachains = { git = 'https://github.com/paritytech/polkadot.git', branch = "release-v0.9.13" } +xcm-simulator = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.15"} +polkadot-runtime-parachains = { git = 'https://github.com/paritytech/polkadot.git', branch = "release-v0.9.15" } +serde_json = "1.0" +reqwest = { version = "0.11", features = ["blocking"] } [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] @@ -97,9 +119,6 @@ targets = ['x86_64-unknown-linux-gnu'] [build-dependencies] substrate-wasm-builder = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.16" } -[dev-dependencies] -serde_json = "1.0" -reqwest = { version = "0.11", features = ["blocking"] } [features] default = ['std'] diff --git a/runtime/calamari/tests/xcm_mock/relay_chain.rs b/runtime/calamari/tests/xcm_mock/relay_chain.rs index 3b561cea2..4c5fd22c8 100644 --- a/runtime/calamari/tests/xcm_mock/relay_chain.rs +++ b/runtime/calamari/tests/xcm_mock/relay_chain.rs @@ -90,6 +90,7 @@ impl pallet_utility::Config for Runtime { type Event = Event; type Call = Call; type WeightInfo = (); + type PalletsOrigin = OriginCaller; } impl shared::Config for Runtime {} diff --git a/runtime/primitives/Cargo.toml b/runtime/primitives/Cargo.toml index f2865188f..7f76c2331 100644 --- a/runtime/primitives/Cargo.toml +++ b/runtime/primitives/Cargo.toml @@ -17,6 +17,7 @@ smallvec = "1.6.1" log = "0.4.14" # Substrate primitives +frame-support = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } sp-consensus-aura = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } sp-core = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } sp-std = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } From df159a8cb026afef81f1400f633292767392eb2a Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sat, 5 Feb 2022 19:19:49 -0500 Subject: [PATCH 12/33] parachain transfer with trader and fee --- runtime/calamari/tests/xcm_mock/parachain.rs | 2 + runtime/calamari/tests/xcm_tests.rs | 91 +++++++++++++++++++- 2 files changed, 92 insertions(+), 1 deletion(-) diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index 4cc862668..9ab75ebdd 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -447,6 +447,8 @@ pub struct AssetRegistarMetadata { pub evm_address: Option, pub is_frozen: bool, pub min_balance: Balance, + /// true means existential deposit (`min_balance`) is not required, + /// false means existential deposit is required. pub is_sufficient: bool, } diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index d3e8541d4..a884aa234 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -635,7 +635,6 @@ fn send_para_a_asset_from_para_b_to_para_c() { }); } - #[test] fn receive_relay_asset_with_trader(){ MockNet::reset(); @@ -705,6 +704,96 @@ fn receive_relay_asset_with_trader(){ } +#[test] +fn send_para_a_asset_to_para_b_with_trader_and_fee() { + MockNet::reset(); + + let para_a_balances = MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); + let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); + let a_currency_id = 0u32; + let amount = 222u128; + let fee = 1u128; + + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + evm_address: None, + min_balance: 1, + is_frozen: false, + is_sufficient: true, + }; + + // Register ParaA native asset in ParaA + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_asset( + parachain::Origin::root(), + // This need to be changed starting from v0.9.16 + // need to use something like MultiLocation { parents: 0, interior: here} instead + source_location.clone(), + asset_metadata.clone() + )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); + assert_eq!( + Some(a_currency_id), + AssetManager::location_asset_id(source_location.clone()) + ); + }); + + // Register ParaA native asset in ParaB + // We set the units_per_second 1_250_000, then the total fee would be + // 1_250_000 * 800_000 (weight) / 10^12 (WEIGHT_PER_SECOND) = 1 + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_asset( + parachain::Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 1_250_000u128)); + assert_eq!( + Some(a_currency_id), + AssetManager::location_asset_id(source_location.clone()) + ); + }); + + let dest = MultiLocation { + parents: 1, + interior: X2( + Parachain(2), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }, + ), + }; + + // Transfer ParaA balance to B + ParaA::execute_with(|| { + assert_ok!(parachain::XTokens::transfer_with_fee( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + amount, + 1, + Box::new(VersionedMultiLocation::V1(dest)), + 800000 + )); + assert_eq!( + parachain::Balances::free_balance(&ALICE.into()), + INITIAL_BALANCE - amount - fee + ) + }); + + ParaB::execute_with(|| { + assert_eq!(parachain::Assets::balance(a_currency_id, &ALICE.into()), amount); + }); +} + /// Scenario: /// A parachain transfers funds on the relay chain to another parachain account. /// From 15f948b04da835bb10b3ea5f287e3e2e479fdf92 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sat, 5 Feb 2022 20:06:43 -0500 Subject: [PATCH 13/33] abstrate fee calc logic, reserve transfer on 3 chains --- runtime/calamari/tests/xcm_tests.rs | 195 +++++++++++++++++++++++++--- 1 file changed, 176 insertions(+), 19 deletions(-) diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index a884aa234..0a126f2ff 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -1,7 +1,7 @@ mod xcm_mock; use codec::Encode; -use frame_support::assert_ok; +use frame_support::{assert_ok, weights::constants::WEIGHT_PER_SECOND}; use manta_primitives::AssetLocation; use xcm::{latest::prelude::*, VersionedMultiLocation}; use xcm_mock::{parachain::PALLET_BALANCES_INDEX, *}; @@ -9,6 +9,18 @@ use xcm_simulator::TestExt; use crate::xcm_mock::parachain::AssetManager; +// `reserved_transfer_asset` contains the following 4 instructions +// 1. ReserveAssetDeposited(assets.clone()), +// 2. ClearOrigin, +// 3. BuyExecution { fees, weight_limit: Limited(0) }, +// 4. DepositAsset { assets: Wild(All), max_assets, beneficiary }, +// each instruction's weight is 1000, thus, the total weight is 4000 +const RESERVE_TRANSFER_WEIGHT: u64 = 4000; + +fn calculate_fee(units_per_seconds: u128, weight: u64) -> u128 { + units_per_seconds * (weight as u128) / (WEIGHT_PER_SECOND as u128) +} + // Helper function for forming buy execution message fn buy_execution(fees: impl Into) -> Instruction { BuyExecution { @@ -651,6 +663,9 @@ fn receive_relay_asset_with_trader(){ is_sufficient: true, }; let amount = 666u128; + let units_per_second = 1_000_000_000u128; + // We charge 10^9 as units per second on ParaA + let fee = calculate_fee(units_per_second, RESERVE_TRANSFER_WEIGHT); ParaA::execute_with(||{ assert_ok!(parachain::AssetManager::register_asset( @@ -658,11 +673,10 @@ fn receive_relay_asset_with_trader(){ source_location, asset_metadata )); - // We charge 10^9 as units per second assert_ok!(parachain::AssetManager::set_units_per_second( parachain::Origin::root(), relay_asset_id, - 1000_000_000u128)); + units_per_second)); }); let dest: MultiLocation = AccountId32 { @@ -683,22 +697,17 @@ fn receive_relay_asset_with_trader(){ INITIAL_BALANCE + amount ); }); - - // `reserved_transfer_asset` contains the following 4 instructions - // 1. ReserveAssetDeposited(assets.clone()), - // 2. ClearOrigin, - // 3. BuyExecution { fees, weight_limit: Limited(0) }, - // 4. DepositAsset { assets: Wild(All), max_assets, beneficiary }, - // each instruction's weight is 1000, thus, the total charge is: - // 10^9 * 1^3 * 4 / 10^12 (WEIGHT_PER_SECOND defined by frame_support) = 4 + ParaA::execute_with(||{ + // ALICE gets amount - fee assert_eq!( parachain::Assets::balance(relay_asset_id, &ALICE.into()), - amount - 4u128 + amount - fee ); + // Fee sink gets fee assert_eq!( parachain::Assets::balance(relay_asset_id, AssetManager::account_id()), - 4u128 + fee ); }); @@ -712,7 +721,9 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); let a_currency_id = 0u32; let amount = 222u128; - let fee = 1u128; + let units_per_second = 1_250_000u128; + let dest_weight = 800_000u64; + let fee = calculate_fee(units_per_second, dest_weight); let asset_metadata = parachain::AssetRegistarMetadata { name: b"ParaAToken".to_vec(), @@ -743,9 +754,6 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { ); }); - // Register ParaA native asset in ParaB - // We set the units_per_second 1_250_000, then the total fee would be - // 1_250_000 * 800_000 (weight) / 10^12 (WEIGHT_PER_SECOND) = 1 ParaB::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), @@ -755,7 +763,7 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { assert_ok!(AssetManager::set_units_per_second( parachain::Origin::root(), a_currency_id, - 1_250_000u128)); + units_per_second)); assert_eq!( Some(a_currency_id), AssetManager::location_asset_id(source_location.clone()) @@ -781,7 +789,7 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { amount, 1, Box::new(VersionedMultiLocation::V1(dest)), - 800000 + dest_weight, )); assert_eq!( parachain::Balances::free_balance(&ALICE.into()), @@ -794,6 +802,155 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { }); } +#[test] +fn send_para_a_asset_from_para_b_to_para_c_with_trader() { + MockNet::reset(); + + // source location of para a asset + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX)), + ))); + let a_currency_id = 0u32; + let mut amount = 888u128; + let units_per_second = 1_250_000u128; + let dest_weight = 800_000u64; + let fee = calculate_fee(units_per_second, dest_weight); + + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + evm_address: None, + min_balance: 1, + is_frozen: false, + is_sufficient: true, + }; + + // register a_currency in ParaA, ParaB and ParaC + + // we don't charge any fee in A + ParaA::execute_with(|| { + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + // we need to change this on/after v0.9.16 + source_location.clone(), + asset_metadata.clone() + )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); + assert_eq!( + Some(a_currency_id), + parachain::AssetManager::location_asset_id(source_location.clone()) + ); + }); + + // We set units_per_seconds on ParaB to 1_250_000, + ParaB::execute_with(||{ + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + units_per_second)); + assert_eq!( + Some(a_currency_id), + parachain::AssetManager::location_asset_id(source_location.clone()) + ); + }); + + ParaC::execute_with(||{ + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + units_per_second)); + assert_eq!( + Some(a_currency_id), + parachain::AssetManager::location_asset_id(source_location.clone()) + ); + }); + + // A send B some token + let alice_on_b = MultiLocation { + parents: 1, + interior: X2( + Parachain(2), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }, + ), + }; + + ParaA::execute_with(||{ + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + amount, + Box::new(VersionedMultiLocation::V1(alice_on_b.clone())), + dest_weight + )); + assert_eq!( + parachain::Balances::free_balance(&ALICE.into()), + INITIAL_BALANCE - amount + ) + }); + + ParaB::execute_with(|| { + amount = amount - fee; + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + amount + ); + }); + + // B send C para A asset + let alice_on_c = MultiLocation { + parents: 1, + interior: X2( + Parachain(3), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }, + ), + }; + + ParaB::execute_with(||{ + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + amount, + Box::new(VersionedMultiLocation::V1(alice_on_c)), + dest_weight + )); + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + 0 + ); + }); + + // Make sure C received the token + ParaC::execute_with(|| { + amount = amount - fee; + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + amount + ); + }); +} + + /// Scenario: /// A parachain transfers funds on the relay chain to another parachain account. /// From 23ac6d25c3328254a5c598f45260a914d50ac35f Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sat, 5 Feb 2022 20:56:47 -0500 Subject: [PATCH 14/33] fix ump test by change relaychain barrier setting --- runtime/calamari/tests/xcm_mock/parachain.rs | 22 +++++-------------- .../calamari/tests/xcm_mock/relay_chain.rs | 4 +++- runtime/calamari/tests/xcm_tests.rs | 1 - 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index 9ab75ebdd..c8c8a9a33 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -246,23 +246,11 @@ impl Config for XcmConfig { type Barrier = Barrier; type Weigher = FixedWeightBounds; // Trader is the means to purchasing weight credit for XCM execution. - // We need customize this. - // - // Moonbase mock runtime uses the following logic: - // When receiving the self-reserve asset, they use pallet-transaction-payment. - // When receiving a non-reserve asset, they use AssetManager to fetch how many - // units per second we should charge. - // - // type Trader = ( - // UsingComponents< - // IdentityFee, - // SelfReserve, - // AccountId, - // Balances, - // DealWithFees, - // >, - // FirstAssetTrader, - // ); + // We define two traders: + // The first one will charge parachain's native currency, who's `MultiLocation` + // is defined in `SelfReserve`. + // The second one will charge the first asset in the MultiAssets with pre-defined rate + // i.e. units_per_second in `AssetManager` type Trader = ( FixedRateOfFungible, FirstAssetTrader); diff --git a/runtime/calamari/tests/xcm_mock/relay_chain.rs b/runtime/calamari/tests/xcm_mock/relay_chain.rs index 4c5fd22c8..cbd4308fd 100644 --- a/runtime/calamari/tests/xcm_mock/relay_chain.rs +++ b/runtime/calamari/tests/xcm_mock/relay_chain.rs @@ -28,7 +28,7 @@ use polkadot_parachain::primitives::Id as ParaId; use polkadot_runtime_parachains::{configuration, origin, shared, ump}; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, ChildParachainAsNative, ChildParachainConvertsVia, ChildSystemParachainAsSuperuser, CurrencyAdapter as XcmCurrencyAdapter, FixedRateOfFungible, FixedWeightBounds, IsConcrete, LocationInverter, SignedAccountId32AsNative, @@ -136,6 +136,8 @@ pub type Barrier = ( AllowKnownQueryResponses, // Subscriptions for version tracking are OK. AllowSubscriptionsFrom, + // The following is purely for testing ump + AllowUnpaidExecutionFrom, ); pub struct XcmConfig; diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index 0a126f2ff..a98d2717c 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -58,7 +58,6 @@ fn dmp() { }); } -// TO BE FIXED: This test is known to fail. #[test] fn ump() { MockNet::reset(); From a253d66eed517712338aa9f5b3ff423b5fd80998 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 6 Feb 2022 18:03:12 -0500 Subject: [PATCH 15/33] test error paths and xcm version upgrade --- runtime/calamari/tests/xcm_mock/mod.rs | 2 +- runtime/calamari/tests/xcm_mock/parachain.rs | 100 +++- .../calamari/tests/xcm_mock/relay_chain.rs | 8 +- runtime/calamari/tests/xcm_tests.rs | 438 +++++++++++++++++- 4 files changed, 528 insertions(+), 20 deletions(-) diff --git a/runtime/calamari/tests/xcm_mock/mod.rs b/runtime/calamari/tests/xcm_mock/mod.rs index 3f647e41c..008ba578d 100644 --- a/runtime/calamari/tests/xcm_mock/mod.rs +++ b/runtime/calamari/tests/xcm_mock/mod.rs @@ -54,7 +54,7 @@ decl_test_parachain! { decl_test_relay_chain! { pub struct Relay { Runtime = relay_chain::Runtime, - XcmConfig = relay_chain::XcmConfig, + XcmConfig = relay_chain::XcmExecutorConfig, new_ext = relay_ext(), } } diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index c8c8a9a33..a663042d6 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -39,7 +39,7 @@ use polkadot_core_primitives::BlockNumber as RelayBlockNumber; use polkadot_parachain::primitives::{ DmpMessageHandler, Id as ParaId, Sibling, XcmpMessageFormat, XcmpMessageHandler, }; -use xcm::{latest::prelude::*, VersionedXcm}; +use xcm::{latest::prelude::*, VersionedXcm, Version as XcmVersion}; use xcm_builder::{ AccountId32Aliases, AllowUnpaidExecutionFrom, ConvertedConcreteAssetId, CurrencyAdapter as XcmCurrencyAdapter, EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, @@ -230,8 +230,8 @@ pub type XcmFeesToAccount = manta_primitives::XcmFeesToAccount< XcmFeesAccount, >; -pub struct XcmConfig; -impl Config for XcmConfig { +pub struct XcmExecutorConfig; +impl Config for XcmExecutorConfig { type Call = Call; type XcmSender = XcmRouter; // Defines how to Withdraw and Deposit instruction work @@ -254,10 +254,55 @@ impl Config for XcmConfig { type Trader = ( FixedRateOfFungible, FirstAssetTrader); - type ResponseHandler = (); - type AssetTrap = (); - type AssetClaims = (); - type SubscriptionService = (); + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + // This is needed for the version change notifier work + type SubscriptionService = PolkadotXcm; +} + +// Pallet to provide the version, used to test runtime upgrade version changes +#[frame_support::pallet] +pub mod mock_version_changer { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type Event: From> + IsType<::Event>; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + #[pallet::generate_store(pub(super) trait Store)] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn current_version)] + pub(super) type CurrentVersion = StorageValue<_, XcmVersion, ValueQuery>; + + impl Get for Pallet { + fn get() -> XcmVersion { + Self::current_version() + } + } + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + VersionChanged(XcmVersion), + } + + impl Pallet { + pub fn set_version(version: XcmVersion) { + CurrentVersion::::put(version); + Self::deposit_event(Event::VersionChanged(version)); + } + } } #[frame_support::pallet] @@ -403,7 +448,11 @@ pub mod mock_msg_queue { impl mock_msg_queue::Config for Runtime { type Event = Event; - type XcmExecutor = XcmExecutor; + type XcmExecutor = XcmExecutor; +} + +impl mock_version_changer::Config for Runtime { + type Event = Event; } pub type LocalOriginToLocation = SignedToAccountId32; @@ -414,7 +463,7 @@ impl pallet_xcm::Config for Runtime { type XcmRouter = XcmRouter; type ExecuteXcmOrigin = EnsureXcmOrigin; type XcmExecuteFilter = Everything; - type XcmExecutor = XcmExecutor; + type XcmExecutor = XcmExecutor; // Do not allow teleports type XcmTeleportFilter = Nothing; type XcmReserveTransferFilter = Everything; @@ -423,8 +472,7 @@ impl pallet_xcm::Config for Runtime { type Origin = Origin; type Call = Call; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; - // May consider using a customized one like Moonbase to test runtime upgrades - type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type AdvertisedXcmVersion = XcmVersioner; } #[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] @@ -509,7 +557,7 @@ impl pallet_asset_manager::Config for Runtime { impl cumulus_pallet_xcm::Config for Runtime { type Event = Event; - type XcmExecutor = XcmExecutor; + type XcmExecutor = XcmExecutor; } // We wrap AssetId for XToken @@ -552,7 +600,7 @@ impl orml_xtokens::Config for Runtime { type AccountIdToMultiLocation = manta_primitives::AccountIdToMultiLocation; type CurrencyIdConvert = CurrencyIdtoMultiLocation>; - type XcmExecutor = XcmExecutor; + type XcmExecutor = XcmExecutor; type SelfLocation = SelfLocation; type Weigher = xcm_builder::FixedWeightBounds; type BaseXcmWeight = BaseXcmWeight; @@ -576,7 +624,33 @@ construct_runtime!( PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin} = 5, XTokens: orml_xtokens::{Pallet, Call, Event, Storage} = 6, CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 7, + XcmVersioner: mock_version_changer::{Pallet, Storage, Event} = 8, } ); pub const PALLET_BALANCES_INDEX: u8 = 3u8; + +pub(crate) fn para_events() -> Vec { + System::events() + .into_iter() + .map(|r| r.event) + .filter_map(|e| Some(e)) + .collect::>() +} + +use frame_support::traits::{OnFinalize, OnInitialize, OnRuntimeUpgrade}; +pub(crate) fn on_runtime_upgrade() { + PolkadotXcm::on_runtime_upgrade(); +} + +pub(crate) fn para_roll_to(n: u64) { + while System::block_number() < n { + PolkadotXcm::on_finalize(System::block_number()); + Balances::on_finalize(System::block_number()); + System::on_finalize(System::block_number()); + System::set_block_number(System::block_number() + 1); + System::on_initialize(System::block_number()); + Balances::on_initialize(System::block_number()); + PolkadotXcm::on_initialize(System::block_number()); + } +} \ No newline at end of file diff --git a/runtime/calamari/tests/xcm_mock/relay_chain.rs b/runtime/calamari/tests/xcm_mock/relay_chain.rs index cbd4308fd..9f4165fef 100644 --- a/runtime/calamari/tests/xcm_mock/relay_chain.rs +++ b/runtime/calamari/tests/xcm_mock/relay_chain.rs @@ -140,8 +140,8 @@ pub type Barrier = ( AllowUnpaidExecutionFrom, ); -pub struct XcmConfig; -impl Config for XcmConfig { +pub struct XcmExecutorConfig; +impl Config for XcmExecutorConfig { type Call = Call; type XcmSender = XcmRouter; type AssetTransactor = LocalAssetTransactor; @@ -167,7 +167,7 @@ impl pallet_xcm::Config for Runtime { // Anyone can execute XCM messages locally... type ExecuteXcmOrigin = xcm_builder::EnsureXcmOrigin; type XcmExecuteFilter = Nothing; - type XcmExecutor = XcmExecutor; + type XcmExecutor = XcmExecutor; type XcmTeleportFilter = Everything; type XcmReserveTransferFilter = Everything; type Weigher = FixedWeightBounds; @@ -184,7 +184,7 @@ parameter_types! { impl ump::Config for Runtime { type Event = Event; - type UmpSink = ump::XcmSink, Runtime>; + type UmpSink = ump::XcmSink, Runtime>; type FirstMessageFactorPercent = FirstMessageFactorPercent; type ExecuteOverweightOrigin = frame_system::EnsureRoot; } diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index a98d2717c..3bb06b5e9 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -3,7 +3,8 @@ mod xcm_mock; use codec::Encode; use frame_support::{assert_ok, weights::constants::WEIGHT_PER_SECOND}; use manta_primitives::AssetLocation; -use xcm::{latest::prelude::*, VersionedMultiLocation}; +use xcm::{latest::prelude::*, VersionedMultiLocation, WrapVersion}; +use xcm::v2::Response; use xcm_mock::{parachain::PALLET_BALANCES_INDEX, *}; use xcm_simulator::TestExt; @@ -662,9 +663,10 @@ fn receive_relay_asset_with_trader(){ is_sufficient: true, }; let amount = 666u128; - let units_per_second = 1_000_000_000u128; // We charge 10^9 as units per second on ParaA + let units_per_second = 1_000_000_000u128; let fee = calculate_fee(units_per_second, RESERVE_TRANSFER_WEIGHT); + assert!(fee > 0); ParaA::execute_with(||{ assert_ok!(parachain::AssetManager::register_asset( @@ -949,6 +951,304 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { }); } +#[test] +fn receive_relay_with_insufficient_fee_payment() { + MockNet::reset(); + + let relay_asset_id: parachain::AssetId = 0; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + let amount = 20u128; + // We charge 2 x 10^10 as units per second on ParaA + let units_per_second = 20_000_000_000u128; + let fee = calculate_fee(units_per_second, RESERVE_TRANSFER_WEIGHT); + assert!(fee > amount); + + ParaA::execute_with(||{ + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location, + asset_metadata + )); + assert_ok!(parachain::AssetManager::set_units_per_second( + parachain::Origin::root(), + relay_asset_id, + units_per_second)); + }); + + let dest: MultiLocation = AccountId32 { + network: Any, + id: ALICE.into() + }.into(); + + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::Origin::signed(ALICE), + Box::new(X1(Parachain(1)).into().into()), + Box::new(VersionedMultiLocation::V1(dest).clone().into()), + Box::new((Here, amount).into()), + 0, + )); + assert_eq!( + relay_chain::Balances::free_balance(¶_account_id(1)), + INITIAL_BALANCE + amount + ); + }); + + ParaA::execute_with(||{ + // ALICE gets nothing + assert_eq!( + parachain::Assets::balance(relay_asset_id, &ALICE.into()), + 0 + ); + // Asset manager gets nothing, all balance stucks + assert_eq!( + parachain::Assets::balance(relay_asset_id, AssetManager::account_id()), + 0 + ); + }); +} + +#[test] +fn receive_relay_should_fail_without_specifying_units_per_second() { + MockNet::reset(); + + let relay_asset_id: parachain::AssetId = 0; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + let amount = 333u128; + + ParaA::execute_with(||{ + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location, + asset_metadata + )); + }); + + let dest: MultiLocation = AccountId32 { + network: Any, + id: ALICE.into() + }.into(); + + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::Origin::signed(ALICE), + Box::new(X1(Parachain(1)).into().into()), + Box::new(VersionedMultiLocation::V1(dest).clone().into()), + Box::new((Here, amount).into()), + 0, + )); + assert_eq!( + relay_chain::Balances::free_balance(¶_account_id(1)), + INITIAL_BALANCE + amount + ); + }); + + ParaA::execute_with(||{ + // ALICE gets nothing + assert_eq!( + parachain::Assets::balance(relay_asset_id, &ALICE.into()), + 0 + ); + // Asset manager gets nothing, all balance stucks + assert_eq!( + parachain::Assets::balance(relay_asset_id, AssetManager::account_id()), + 0 + ); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_with_insufficient_fee() { + MockNet::reset(); + + let para_a_balances = MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); + let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); + let a_currency_id = 0u32; + let amount = 15u128; + let units_per_second = 20_000_000u128; + let dest_weight = 800_000u64; + let fee = calculate_fee(units_per_second, dest_weight); + assert!(fee > amount); + + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + evm_address: None, + min_balance: 1, + is_frozen: false, + is_sufficient: true, + }; + + // Register ParaA native asset in ParaA + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_asset( + parachain::Origin::root(), + // This need to be changed starting from v0.9.16 + // need to use something like MultiLocation { parents: 0, interior: here} instead + source_location.clone(), + asset_metadata.clone() + )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); + assert_eq!( + Some(a_currency_id), + AssetManager::location_asset_id(source_location.clone()) + ); + }); + + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_asset( + parachain::Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + units_per_second)); + assert_eq!( + Some(a_currency_id), + AssetManager::location_asset_id(source_location.clone()) + ); + }); + + let dest = MultiLocation { + parents: 1, + interior: X2( + Parachain(2), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }, + ), + }; + + // Transfer ParaA balance to B + ParaA::execute_with(|| { + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + amount, + Box::new(VersionedMultiLocation::V1(dest)), + dest_weight, + )); + assert_eq!( + parachain::Balances::free_balance(&ALICE.into()), + INITIAL_BALANCE - amount + ) + }); + + // Alice on B should receive nothing since the fee is insufficient + ParaB::execute_with(|| { + assert_eq!(parachain::Assets::balance(a_currency_id, &ALICE.into()), 0); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_without_specifying_units_per_second() { + MockNet::reset(); + + let para_a_balances = MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); + let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); + let a_currency_id = 0u32; + let amount = 567u128; + let dest_weight = 800_000u64; + + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + evm_address: None, + min_balance: 1, + is_frozen: false, + is_sufficient: true, + }; + + // Register ParaA native asset in ParaA + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_asset( + parachain::Origin::root(), + // This need to be changed starting from v0.9.16 + // need to use something like MultiLocation { parents: 0, interior: here} instead + source_location.clone(), + asset_metadata.clone() + )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); + assert_eq!( + Some(a_currency_id), + AssetManager::location_asset_id(source_location.clone()) + ); + }); + + // We don't specify units_per_second on B + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_asset( + parachain::Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + assert_eq!( + Some(a_currency_id), + AssetManager::location_asset_id(source_location.clone()) + ); + }); + + let dest = MultiLocation { + parents: 1, + interior: X2( + Parachain(2), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }, + ), + }; + + // Transfer ParaA balance to B + ParaA::execute_with(|| { + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + amount, + Box::new(VersionedMultiLocation::V1(dest)), + dest_weight, + )); + assert_eq!( + parachain::Balances::free_balance(&ALICE.into()), + INITIAL_BALANCE - amount + ) + }); + + // Alice on B should receive nothing since we didn't specify the unit per second + ParaB::execute_with(|| { + assert_eq!(parachain::Assets::balance(a_currency_id, &ALICE.into()), 0); + }); +} + /// Scenario: /// A parachain transfers funds on the relay chain to another parachain account. @@ -1045,3 +1345,137 @@ fn query_holding() { ); }); } + +#[test] +fn test_versioning_on_runtime_upgrade_with_relay(){ + MockNet::reset(); + + let relay_asset_id: parachain::AssetId = 0; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + + // register relay asset in parachain A (XCM version 1) + ParaA::execute_with(|| { + parachain::XcmVersioner::set_version(1); + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location, + asset_metadata + )); + // we don't charge anything during test + assert_ok!(parachain::AssetManager::set_units_per_second( + parachain::Origin::root(), + relay_asset_id, + 0u128)); + }); + + let response = Response::Version(2); + + // This is irrelevant, nothing will be done with this message, + // but we need to pass a message as an argument to trigger the storage change + let mock_message: Xcm<()> = Xcm(vec![QueryResponse { + query_id: 0, + response, + max_weight: 0, + }]); + + let dest: MultiLocation = AccountId32 { + network: Any, + id: ALICE.into() + }.into(); + + Relay::execute_with(|| { + // This sets the default version, for not known destinations + assert_ok!(RelayChainPalletXcm::force_default_xcm_version( + relay_chain::Origin::root(), + Some(2) + )); + + // Wrap version, which sets VersionedStorage + // This is necessary because the mock router does not use wrap_version, but + // this is not necessary in prod. + // more specifically, this will trigger `note_unknown_version` to put the + // version to `VersionDiscoveryQueue` on relay-chain's pallet-xcm + assert_ok!(::wrap_version( + &Parachain(1).into(), + mock_message + )); + + // Transfer assets. Since it is an unknown destination, it will query for version + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::Origin::signed(ALICE), + Box::new(Parachain(1).into().into()), + Box::new(VersionedMultiLocation::V1(dest).clone().into()), + Box::new((Here, 123).into()), + 0, + )); + + // Let's advance the relay. This should trigger the subscription message + relay_chain::relay_roll_to(2); + + // queries should have been updated + assert!(RelayChainPalletXcm::query(0).is_some()); + }); + + let expected_supported_version: relay_chain::Event = + pallet_xcm::Event::SupportedVersionChanged( + MultiLocation { + parents: 0, + interior: X1(Parachain(1)), + }, + 1, + ) + .into(); + + Relay::execute_with(|| { + // Assert that the events vector contains the version change + assert!(relay_chain::relay_events().contains(&expected_supported_version)); + }); + + let expected_version_notified: parachain::Event = pallet_xcm::Event::VersionChangeNotified( + MultiLocation { + parents: 1, + interior: Here, + }, + 2, + ) + .into(); + + // ParaA changes version to 2, and calls on_runtime_upgrade. This should notify the targets + // of the new version change + ParaA::execute_with(|| { + // Set version + parachain::XcmVersioner::set_version(2); + // Do runtime upgrade + parachain::on_runtime_upgrade(); + // Initialize block, to call on_initialize and notify targets + parachain::para_roll_to(2); + // Expect the event in the parachain + assert!(parachain::para_events().contains(&expected_version_notified)); + }); + + // This event should have been seen in the relay + let expected_supported_version_2: relay_chain::Event = + pallet_xcm::Event::SupportedVersionChanged( + MultiLocation { + parents: 0, + interior: X1(Parachain(1)), + }, + 2, + ) + .into(); + + Relay::execute_with(|| { + // Assert that the events vector contains the new version change + assert!(relay_chain::relay_events().contains(&expected_supported_version_2)); + }); + +} \ No newline at end of file From 90b1085efdca27ea5767f55bac149b5cef56b6da Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Mon, 7 Feb 2022 01:08:50 -0500 Subject: [PATCH 16/33] finish xcm tests --- runtime/calamari/tests/xcm_mock/parachain.rs | 8 +- runtime/calamari/tests/xcm_tests.rs | 312 ++++++++++++++++++- 2 files changed, 317 insertions(+), 3 deletions(-) diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index a663042d6..258075a5b 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -483,8 +483,12 @@ pub struct AssetRegistarMetadata { pub evm_address: Option, pub is_frozen: bool, pub min_balance: Balance, - /// true means existential deposit (`min_balance`) is not required, - /// false means existential deposit is required. + /// `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient + /// value to account for the state bloat associated with its balance storage. If set to + /// `true`, then non-zero balances may be stored without a `consumer` reference (and thus + /// an ED in the Balances pallet or whatever else is used to control user-account state + /// growth). + /// For example, if is_sufficient set to `false`, a fresh account cannot receive XCM tokens. pub is_sufficient: bool, } diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index 3bb06b5e9..347015966 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -1249,6 +1249,148 @@ fn send_para_a_asset_to_para_b_without_specifying_units_per_second() { }); } +#[test] +fn receive_asset_with_is_sufficient_false(){ + MockNet::reset(); + + let new_account = [5u8; 32]; + let relay_asset_id = 0u32; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: false, + }; + let amount = 123u128; + + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location, + asset_metadata + )); + // we don't charge anything during test + assert_ok!(parachain::AssetManager::set_units_per_second( + parachain::Origin::root(), + relay_asset_id, + 0u128)); + }); + + let dest: MultiLocation = AccountId32 { + network: Any, + id: new_account.into() + }.into(); + + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::Origin::signed(ALICE), + Box::new(X1(Parachain(1)).into().into()), + Box::new(VersionedMultiLocation::V1(dest.clone()).clone().into()), + Box::new((Here, amount).into()), + 0, + )); + assert_eq!( + relay_chain::Balances::free_balance(¶_account_id(1)), + INITIAL_BALANCE + amount + ); + }); + + // parachain should not have received assets + ParaA::execute_with(|| { + assert_eq!(parachain::Assets::balance(relay_asset_id, &new_account.into()), 0); + }); + + // Send native token to fresh_account + ParaA::execute_with(|| { + assert_ok!(parachain::Balances::transfer( + parachain::Origin::signed(ALICE.into()), + new_account.into(), + 100 + )); + }); + + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::Origin::signed(ALICE), + Box::new(X1(Parachain(1)).into().into()), + Box::new(VersionedMultiLocation::V1(dest).clone().into()), + Box::new((Here, amount).into()), + 0, + )); + assert_eq!( + relay_chain::Balances::free_balance(¶_account_id(1)), + INITIAL_BALANCE + amount + amount + ); + }); + + // parachain should not have received assets + ParaA::execute_with(|| { + println!("fresh account bal: {}", parachain::Assets::balance(relay_asset_id, &new_account.into())); + }); + +} + +#[test] +fn receive_asset_with_is_sufficient_true(){ + MockNet::reset(); + + let new_account = [5u8; 32]; + let relay_asset_id = 0u32; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + let amount = 123u128; + + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location, + asset_metadata + )); + // we don't charge anything during test + assert_ok!(parachain::AssetManager::set_units_per_second( + parachain::Origin::root(), + relay_asset_id, + 0u128)); + }); + + let dest: MultiLocation = AccountId32 { + network: Any, + id: new_account.into() + }.into(); + + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::Origin::signed(ALICE), + Box::new(X1(Parachain(1)).into().into()), + Box::new(VersionedMultiLocation::V1(dest.clone()).clone().into()), + Box::new((Here, amount).into()), + 0, + )); + assert_eq!( + relay_chain::Balances::free_balance(¶_account_id(1)), + INITIAL_BALANCE + amount + ); + }); + + // parachain should have received assets + ParaA::execute_with(|| { + assert_eq!(parachain::Assets::balance(relay_asset_id, &new_account.into()), amount); + }); +} /// Scenario: /// A parachain transfers funds on the relay chain to another parachain account. @@ -1477,5 +1619,173 @@ fn test_versioning_on_runtime_upgrade_with_relay(){ // Assert that the events vector contains the new version change assert!(relay_chain::relay_events().contains(&expected_supported_version_2)); }); +} + +#[test] +fn test_automatic_versioning_on_runtime_upgrade_with_para_b() { + MockNet::reset(); + + let para_a_balances = MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); + let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); + let a_currency_id = 0u32; + + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + evm_address: None, + min_balance: 1, + is_frozen: false, + is_sufficient: true, + }; + let response = Response::Version(2); + + // This is irrelevant, nothing will be done with this message, + // but we need to pass a message as an argument to trigger the storage change + let mock_message: Xcm<()> = Xcm(vec![QueryResponse { + query_id: 0, + response, + max_weight: 0, + }]); + + ParaA::execute_with(|| { + // advertised version + parachain::XcmVersioner::set_version(2); + // Register ParaA native asset in ParaA + assert_ok!(AssetManager::register_asset( + parachain::Origin::root(), + // This need to be changed starting from v0.9.16 + // need to use something like MultiLocation { parents: 0, interior: here} instead + source_location.clone(), + asset_metadata.clone() + )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128)); + assert_eq!( + Some(a_currency_id), + AssetManager::location_asset_id(source_location.clone()) + ); + }); + + ParaB::execute_with(|| { + // Let's try with v0 + parachain::XcmVersioner::set_version(0); + + assert_ok!(AssetManager::register_asset( + parachain::Origin::root(), + source_location, + asset_metadata + )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128 + )); + }); + + ParaA::execute_with(|| { + // This sets the default version, for not known destinations + assert_ok!(ParachainPalletXcm::force_default_xcm_version( + parachain::Origin::root(), + Some(2) + )); + // Wrap version, which sets VersionedStorage + assert_ok!(::wrap_version( + &MultiLocation::new(1, X1(Parachain(2))).into(), + mock_message + )); + + parachain::para_roll_to(2); + + // queries should have been updated + assert!(ParachainPalletXcm::query(0).is_some()); + }); -} \ No newline at end of file + let expected_supported_version: parachain::Event = pallet_xcm::Event::SupportedVersionChanged( + MultiLocation { + parents: 1, + interior: X1(Parachain(2)), + }, + 0, + ) + .into(); + + ParaA::execute_with(|| { + // Assert that the events vector contains the version change + assert!(parachain::para_events().contains(&expected_supported_version)); + }); + + // Let's ensure talking in v0 works + let dest = MultiLocation { + parents: 1, + interior: X2( + Parachain(2), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }, + ), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + 100, + Box::new(VersionedMultiLocation::V1(dest)), + 80 + )); + // free execution, full amount received + assert_eq!( + parachain::Balances::free_balance(&ALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_eq!(parachain::Assets::balance(a_currency_id, &ALICE.into()), 100); + }); + + let expected_version_notified: parachain::Event = pallet_xcm::Event::VersionChangeNotified( + MultiLocation { + parents: 1, + interior: X1(Parachain(1)), + }, + 2, + ) + .into(); + + // ParaB changes version to 2, and calls on_runtime_upgrade. This should notify the targets + // of the new version change + ParaB::execute_with(|| { + // Set version + parachain::XcmVersioner::set_version(2); + // Do runtime upgrade + parachain::on_runtime_upgrade(); + // Initialize block, to call on_initialize and notify targets + parachain::para_roll_to(2); + // Expect the event in the parachain + assert!(parachain::para_events().contains(&expected_version_notified)); + }); + + // This event should have been seen in para A + let expected_supported_version_2: parachain::Event = + pallet_xcm::Event::SupportedVersionChanged( + MultiLocation { + parents: 1, + interior: X1(Parachain(2)), + }, + 2, + ) + .into(); + + // Para A should have received the version change + ParaA::execute_with(|| { + // Assert that the events vector contains the new version change + assert!(parachain::para_events().contains(&expected_supported_version_2)); + }); +} From 24fa2ec0a1f9e234036da370e9d01853767de0c5 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sat, 12 Feb 2022 11:10:33 -0700 Subject: [PATCH 17/33] rebase with manta branch --- Cargo.lock | 83 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 76 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8dd969bad..31e3e5612 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -899,7 +899,7 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" [[package]] name = "calamari-runtime" -version = "3.1.2" +version = "3.1.3" dependencies = [ "calamari-vesting", "cumulus-pallet-aura-ext", @@ -975,7 +975,7 @@ dependencies = [ [[package]] name = "calamari-vesting" -version = "3.1.2" +version = "3.1.3" dependencies = [ "chrono", "frame-benchmarking", @@ -1963,6 +1963,74 @@ dependencies = [ "quick-error 1.2.3", ] +[[package]] +name = "dolphin-runtime" +version = "3.1.3" +dependencies = [ + "calamari-vesting", + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-timestamp", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "manta-collator-selection", + "manta-primitives", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collective", + "pallet-democracy", + "pallet-membership", + "pallet-multisig", + "pallet-scheduler", + "pallet-session", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-tx-pause", + "pallet-utility", + "pallet-xcm", + "parachain-info", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "scale-info", + "serde", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", +] + [[package]] name = "downcast-rs" version = "1.2.0" @@ -4320,7 +4388,7 @@ dependencies = [ [[package]] name = "manta" -version = "3.1.2" +version = "3.1.3" dependencies = [ "async-trait", "calamari-runtime", @@ -4333,6 +4401,7 @@ dependencies = [ "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", + "dolphin-runtime", "frame-benchmarking", "frame-benchmarking-cli", "futures 0.3.19", @@ -4385,7 +4454,7 @@ dependencies = [ [[package]] name = "manta-collator-selection" -version = "3.1.2" +version = "3.1.3" dependencies = [ "frame-benchmarking", "frame-support", @@ -4411,7 +4480,7 @@ dependencies = [ [[package]] name = "manta-primitives" -version = "3.1.2" +version = "3.1.3" dependencies = [ "frame-support", "log", @@ -4430,7 +4499,7 @@ dependencies = [ [[package]] name = "manta-runtime" -version = "3.1.2" +version = "3.1.3" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", @@ -5978,7 +6047,7 @@ dependencies = [ [[package]] name = "pallet-tx-pause" -version = "3.1.2" +version = "3.1.3" dependencies = [ "frame-benchmarking", "frame-support", From 6aad5812b26eb09a6482b2f9e65b701f8dffeaf2 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 13 Feb 2022 06:48:58 -0700 Subject: [PATCH 18/33] address comments, rename pallet-tx-pause to tx-pause --- Cargo.lock | 5 +- pallets/asset-manager/Cargo.toml | 8 +- pallets/asset-manager/src/lib.rs | 112 +++--- .../{pallet-tx-pause => tx-pause}/Cargo.toml | 0 .../{pallet-tx-pause => tx-pause}/README.md | 0 .../src/benchmarking.rs | 0 .../{pallet-tx-pause => tx-pause}/src/lib.rs | 0 .../{pallet-tx-pause => tx-pause}/src/mock.rs | 0 .../src/tests.rs | 0 .../src/weights.rs | 0 runtime/calamari/Cargo.toml | 2 +- runtime/calamari/tests/xcm_mock/parachain.rs | 9 +- .../calamari/tests/xcm_mock/relay_chain.rs | 11 +- runtime/calamari/tests/xcm_tests.rs | 327 ++++++++++-------- runtime/dolphin/Cargo.toml | 5 +- runtime/manta/Cargo.toml | 2 +- runtime/primitives/src/assets.rs | 37 +- runtime/primitives/src/lib.rs | 2 +- runtime/primitives/src/xcm.rs | 130 +++---- 19 files changed, 345 insertions(+), 305 deletions(-) rename pallets/{pallet-tx-pause => tx-pause}/Cargo.toml (100%) rename pallets/{pallet-tx-pause => tx-pause}/README.md (100%) rename pallets/{pallet-tx-pause => tx-pause}/src/benchmarking.rs (100%) rename pallets/{pallet-tx-pause => tx-pause}/src/lib.rs (100%) rename pallets/{pallet-tx-pause => tx-pause}/src/mock.rs (100%) rename pallets/{pallet-tx-pause => tx-pause}/src/tests.rs (100%) rename pallets/{pallet-tx-pause => tx-pause}/src/weights.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index 31e3e5612..137047e6d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1967,7 +1967,6 @@ dependencies = [ name = "dolphin-runtime" version = "3.1.3" dependencies = [ - "calamari-vesting", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", @@ -5218,7 +5217,7 @@ dependencies = [ [[package]] name = "pallet-asset-manager" -version = "3.1.0" +version = "3.1.3" dependencies = [ "frame-benchmarking", "frame-support", @@ -10879,7 +10878,7 @@ dependencies = [ "chrono", "lazy_static", "matchers", - "parking_lot 0.10.2", + "parking_lot 0.11.2", "regex", "serde", "serde_json", diff --git a/pallets/asset-manager/Cargo.toml b/pallets/asset-manager/Cargo.toml index 654846dcd..0aa7be880 100644 --- a/pallets/asset-manager/Cargo.toml +++ b/pallets/asset-manager/Cargo.toml @@ -1,15 +1,17 @@ [package] authors = ['Manta Network'] name = "pallet-asset-manager" -version = "3.1.0" -edition = "2018" +version = "3.1.3" +edition = "2021" homepage = 'https://manta.network' license = 'GPL-3.0' repository = 'https://github.com/Manta-Network/Manta/' [dependencies] -codec = { package = "parity-scale-codec", version = "2.3.1", default-features = false } +# codec has to be 2.0.0 for now +codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false } +# scale-info has to be 1.0 for now scale-info = { version = "1.0", default-features = false, features = ["derive"] } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15", default-features = false } frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15", default-features = false } diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index 994903645..a32e26392 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -31,18 +31,19 @@ pub use pallet::*; #[frame_support::pallet] pub mod pallet { - use codec::{Codec, HasCompact}; + use codec::{Codec}; use frame_support::{pallet_prelude::*, transactional, PalletId}; use frame_system::pallet_prelude::*; use manta_primitives::{AssetIdLocationGetter, UnitsToWeightRatio}; use scale_info::TypeInfo; use sp_runtime::{ - traits::{AccountIdConversion, AtLeast32BitUnsigned, Bounded, CheckedAdd, One}, + traits::{AccountIdConversion, AtLeast32BitUnsigned, CheckedAdd, One}, ArithmeticError, }; #[pallet::pallet] - pub struct Pallet(PhantomData); + #[pallet::generate_store(pub(super) trait Store)] + pub struct Pallet(_); /// The AssetManagers's pallet id pub const PALLET_ID: PalletId = PalletId(*b"asstmngr"); @@ -55,8 +56,8 @@ pub mod pallet { /// * `asset_id`: the asset id to be created /// * `min_balance`: the minimum balance to hold this asset /// * `metadata`: the metadata that the implementation layer stores - /// * `is_sufficient`: Whether this asset needs users to have an existential deposit to hold - /// this asset. + /// * `is_sufficient`: whether this asset can be used as reserve asset, + /// to the first approximation fn create_asset( asset_id: T::AssetId, min_balance: T::Balance, @@ -76,7 +77,7 @@ pub mod pallet { /// Convert AssetId and AssetLocation impl AssetIdLocationGetter for Pallet { - fn get_asset_id(loc: T::AssetLocation) -> Option { + fn get_asset_id(loc: &T::AssetLocation) -> Option { LocationAssetId::::get(loc) } @@ -102,10 +103,6 @@ pub mod pallet { + Parameter + Default + Copy - + HasCompact - + CheckedAdd - + Bounded - + One + AtLeast32BitUnsigned + MaybeSerializeDeserialize + MaxEncodedLen @@ -129,7 +126,7 @@ pub mod pallet { + AssetMetadata; /// The AssetLocation type: could be just a thin wrapper of MultiLocation - type AssetLocation: Member + Parameter + Default; + type AssetLocation: Member + Parameter + Default + TypeInfo; /// The origin which may forcibly create or destroy an asset or otherwise alter privileged /// attributes. @@ -145,16 +142,20 @@ pub mod pallet { asset_address: T::AssetLocation, metadata: T::AssetRegistrarMetadata, }, - /// An asset has been updated. - AssetUpdated { + /// An asset's location has been updated. + AssetLocationUpdated { asset_id: T::AssetId, - location: Option, - metadata: Option, + location: T::AssetLocation, + }, + /// An asset;s metadata has been updated. + AssetMetadataUpdated { + asset_id: T::AssetId, + metadata: T::AssetRegistrarMetadata, }, /// Update units per second of an asset UnitsPerSecondUpdated { - asset_id: T::AssetId, - units_per_second: u128 + asset_id: T::AssetId, + units_per_second: u128, }, /// Asset frozen. AssetFrozen { asset_id: T::AssetId }, @@ -171,6 +172,8 @@ pub mod pallet { ErrorCreatingAsset, /// Update a non-exist asset UpdateNonExistAsset, + /// Asset already registered. + AssetAlreadyRegistered, } /// AssetId to MultiLocation Map. @@ -217,6 +220,7 @@ pub mod pallet { /// TODO: get actual weight /// # #[pallet::weight(50_000_000)] + #[transactional] pub fn register_asset( origin: OriginFor, location: T::AssetLocation, @@ -250,51 +254,63 @@ pub mod pallet { /// /// * `origin`: Caller of this extrinsic, the acess control is specfied by `ForceOrigin`. /// * `asset_id`: AssetId to be updated. - /// * `metadata_option`: `Some(meta)` to update the metadata to `meta`, `None` means no update on metadata. - /// * `location_option`: `Some(location)` to update the asset location, `None` means no update on location. - /// + /// * `location`: `location` to update the asset location. /// # /// TODO: get actual weight /// # #[pallet::weight(50_000_000)] #[transactional] - pub fn update_asset( + pub fn update_asset_location( origin: OriginFor, - asset_id: T::AssetId, - location_option: Option, - metadata_option: Option, + #[pallet::compact] asset_id: T::AssetId, + location: T::AssetLocation, ) -> DispatchResult { - // check validity. + // checks validity T::ModifierOrigin::ensure_origin(origin)?; ensure!( AssetIdLocation::::contains_key(&asset_id), Error::::UpdateNonExistAsset ); - if let Some(location) = location_option.clone() { - ensure!( - !LocationAssetId::::contains_key(&location), - Error::::LocationAlreadyExists - ) - } - // write to the ledger state. - if let Some(location) = location_option.clone() { - let old_location = - AssetIdLocation::::get(&asset_id).ok_or(Error::::UpdateNonExistAsset)?; - LocationAssetId::::remove(&old_location); - LocationAssetId::::insert(&location, &asset_id); - AssetIdLocation::::insert(&asset_id, &location); - } - if let Some(metadata) = metadata_option.clone() { - AssetIdMetadata::::insert(&asset_id, &metadata) - } - Self::deposit_event(Event::::AssetUpdated{ + ensure!( + !LocationAssetId::::contains_key(&location), + Error::::LocationAlreadyExists + ); + // change the ledger state. + let old_location = + AssetIdLocation::::get(&asset_id).ok_or(Error::::UpdateNonExistAsset)?; + LocationAssetId::::remove(&old_location); + LocationAssetId::::insert(&location, &asset_id); + AssetIdLocation::::insert(&asset_id, &location); + // deposit event. + Self::deposit_event(Event::::AssetLocationUpdated { asset_id, - location: location_option, - metadata: metadata_option, + location: location, }); Ok(()) } + /// Update an asset's metadata by its `asset_id` + /// + /// * `origin`: Caller of this extrinsic, the acess control is specfied by `ForceOrigin`. + /// * `asset_id`: AssetId to be updated. + /// * `metadata`: new `metadata` to be associated with `asset_id`. + #[pallet::weight(50_000_000)] + #[transactional] + pub fn update_asset_metadata( + origin: OriginFor, + #[pallet::compact] asset_id: T::AssetId, + metadata: T::AssetRegistrarMetadata, + ) -> DispatchResult { + T::ModifierOrigin::ensure_origin(origin)?; + ensure!( + AssetIdLocation::::contains_key(&asset_id), + Error::::UpdateNonExistAsset + ); + AssetIdMetadata::::insert(&asset_id, &metadata); + Self::deposit_event(Event::::AssetMetadataUpdated { asset_id, metadata }); + Ok(()) + } + /// Update an asset by its asset id in the asset manager. /// /// * `origin`: Caller of this extrinsic, the acess control is specfied by `ForceOrigin`. @@ -307,8 +323,8 @@ pub mod pallet { #[transactional] pub fn set_units_per_second( origin: OriginFor, - asset_id: T::AssetId, - units_per_second: u128, + #[pallet::compact] asset_id: T::AssetId, + #[pallet::compact] units_per_second: u128, ) -> DispatchResult { T::ModifierOrigin::ensure_origin(origin)?; ensure!( @@ -318,7 +334,7 @@ pub mod pallet { UnitsPerSecond::::insert(&asset_id, &units_per_second); Self::deposit_event(Event::::UnitsPerSecondUpdated { asset_id, - units_per_second + units_per_second, }); Ok(()) } diff --git a/pallets/pallet-tx-pause/Cargo.toml b/pallets/tx-pause/Cargo.toml similarity index 100% rename from pallets/pallet-tx-pause/Cargo.toml rename to pallets/tx-pause/Cargo.toml diff --git a/pallets/pallet-tx-pause/README.md b/pallets/tx-pause/README.md similarity index 100% rename from pallets/pallet-tx-pause/README.md rename to pallets/tx-pause/README.md diff --git a/pallets/pallet-tx-pause/src/benchmarking.rs b/pallets/tx-pause/src/benchmarking.rs similarity index 100% rename from pallets/pallet-tx-pause/src/benchmarking.rs rename to pallets/tx-pause/src/benchmarking.rs diff --git a/pallets/pallet-tx-pause/src/lib.rs b/pallets/tx-pause/src/lib.rs similarity index 100% rename from pallets/pallet-tx-pause/src/lib.rs rename to pallets/tx-pause/src/lib.rs diff --git a/pallets/pallet-tx-pause/src/mock.rs b/pallets/tx-pause/src/mock.rs similarity index 100% rename from pallets/pallet-tx-pause/src/mock.rs rename to pallets/tx-pause/src/mock.rs diff --git a/pallets/pallet-tx-pause/src/tests.rs b/pallets/tx-pause/src/tests.rs similarity index 100% rename from pallets/pallet-tx-pause/src/tests.rs rename to pallets/tx-pause/src/tests.rs diff --git a/pallets/pallet-tx-pause/src/weights.rs b/pallets/tx-pause/src/weights.rs similarity index 100% rename from pallets/pallet-tx-pause/src/weights.rs rename to pallets/tx-pause/src/weights.rs diff --git a/runtime/calamari/Cargo.toml b/runtime/calamari/Cargo.toml index 9800e1de7..3b3cc3e47 100644 --- a/runtime/calamari/Cargo.toml +++ b/runtime/calamari/Cargo.toml @@ -104,7 +104,7 @@ orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-lib manta-primitives = { path = '../primitives', default-features = false } calamari-vesting = { path = '../../pallets/vesting', default-features = false } manta-collator-selection = { path = '../../pallets/collator-selection', default-features = false } -pallet-tx-pause = { path = '../../pallets/pallet-tx-pause', default-features = false } +pallet-tx-pause = { path = '../../pallets/tx-pause', default-features = false } pallet-asset-manager = { path = '../../pallets/asset-manager', default-features = false } [dev-dependencies] diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index 258075a5b..ee0181455 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -39,7 +39,7 @@ use polkadot_core_primitives::BlockNumber as RelayBlockNumber; use polkadot_parachain::primitives::{ DmpMessageHandler, Id as ParaId, Sibling, XcmpMessageFormat, XcmpMessageHandler, }; -use xcm::{latest::prelude::*, VersionedXcm, Version as XcmVersion}; +use xcm::{latest::prelude::*, Version as XcmVersion, VersionedXcm}; use xcm_builder::{ AccountId32Aliases, AllowUnpaidExecutionFrom, ConvertedConcreteAssetId, CurrencyAdapter as XcmCurrencyAdapter, EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, @@ -252,8 +252,9 @@ impl Config for XcmExecutorConfig { // The second one will charge the first asset in the MultiAssets with pre-defined rate // i.e. units_per_second in `AssetManager` type Trader = ( - FixedRateOfFungible, - FirstAssetTrader); + FixedRateOfFungible, + FirstAssetTrader, + ); type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; @@ -657,4 +658,4 @@ pub(crate) fn para_roll_to(n: u64) { Balances::on_initialize(System::block_number()); PolkadotXcm::on_initialize(System::block_number()); } -} \ No newline at end of file +} diff --git a/runtime/calamari/tests/xcm_mock/relay_chain.rs b/runtime/calamari/tests/xcm_mock/relay_chain.rs index 9f4165fef..a168cc9f0 100644 --- a/runtime/calamari/tests/xcm_mock/relay_chain.rs +++ b/runtime/calamari/tests/xcm_mock/relay_chain.rs @@ -28,11 +28,12 @@ use polkadot_parachain::primitives::Id as ParaId; use polkadot_runtime_parachains::{configuration, origin, shared, ump}; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowUnpaidExecutionFrom, - AllowTopLevelPaidExecutionFrom, ChildParachainAsNative, ChildParachainConvertsVia, - ChildSystemParachainAsSuperuser, CurrencyAdapter as XcmCurrencyAdapter, FixedRateOfFungible, - FixedWeightBounds, IsConcrete, LocationInverter, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, ChildParachainAsNative, + ChildParachainConvertsVia, ChildSystemParachainAsSuperuser, + CurrencyAdapter as XcmCurrencyAdapter, FixedRateOfFungible, FixedWeightBounds, IsConcrete, + LocationInverter, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, + TakeWeightCredit, }; use xcm_executor::{Config, XcmExecutor}; pub type AccountId = AccountId32; diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/calamari/tests/xcm_tests.rs index 347015966..55c7ecc60 100644 --- a/runtime/calamari/tests/xcm_tests.rs +++ b/runtime/calamari/tests/xcm_tests.rs @@ -3,8 +3,7 @@ mod xcm_mock; use codec::Encode; use frame_support::{assert_ok, weights::constants::WEIGHT_PER_SECOND}; use manta_primitives::AssetLocation; -use xcm::{latest::prelude::*, VersionedMultiLocation, WrapVersion}; -use xcm::v2::Response; +use xcm::{latest::prelude::*, v2::Response, VersionedMultiLocation, WrapVersion}; use xcm_mock::{parachain::PALLET_BALANCES_INDEX, *}; use xcm_simulator::TestExt; @@ -143,9 +142,10 @@ fn reserve_transfer_relaychain_to_parachain_a() { )); // we don't charge anything during test assert_ok!(parachain::AssetManager::set_units_per_second( - parachain::Origin::root(), - relay_asset_id, - 0u128)); + parachain::Origin::root(), + relay_asset_id, + 0u128 + )); }); let withdraw_amount = 123; @@ -206,9 +206,10 @@ fn reserve_transfer_relaychain_to_parachain_a_then_back() { )); // we don't charge anything assert_ok!(parachain::AssetManager::set_units_per_second( - parachain::Origin::root(), - relay_asset_id, - 0u128)); + parachain::Origin::root(), + relay_asset_id, + 0u128 + )); }); let amount = 123; @@ -314,9 +315,10 @@ fn send_para_a_asset_to_para_b() { asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), AssetManager::location_asset_id(source_location.clone()) @@ -333,9 +335,10 @@ fn send_para_a_asset_to_para_b() { asset_metadata )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), AssetManager::location_asset_id(source_location) @@ -410,25 +413,27 @@ fn send_para_a_asset_para_b_and_then_send_back() { asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) ); }); - ParaB::execute_with(||{ + ParaB::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) @@ -446,7 +451,7 @@ fn send_para_a_asset_para_b_and_then_send_back() { ), }; - ParaA::execute_with(||{ + ParaA::execute_with(|| { assert_ok!(parachain::XTokens::transfer( parachain::Origin::signed(ALICE.into()), parachain::CurrencyId::MantaCurrency(a_currency_id), @@ -481,7 +486,7 @@ fn send_para_a_asset_para_b_and_then_send_back() { }; // Send wrapped a back to a - ParaB::execute_with(||{ + ParaB::execute_with(|| { assert_ok!(parachain::XTokens::transfer( parachain::Origin::signed(ALICE.into()), parachain::CurrencyId::MantaCurrency(a_currency_id), @@ -489,20 +494,16 @@ fn send_para_a_asset_para_b_and_then_send_back() { Box::new(VersionedMultiLocation::V1(alice_on_a)), 800000 )); - assert_eq!( - parachain::Assets::balance(a_currency_id, &ALICE.into()), - 0 - ); + assert_eq!(parachain::Assets::balance(a_currency_id, &ALICE.into()), 0); }); // make sure that a received the token - ParaA::execute_with(||{ + ParaA::execute_with(|| { assert_eq!( parachain::Balances::free_balance(&ALICE.into()), INITIAL_BALANCE ) }); - } #[test] @@ -536,41 +537,44 @@ fn send_para_a_asset_from_para_b_to_para_c() { asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) ); }); - ParaB::execute_with(||{ + ParaB::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) ); }); - ParaC::execute_with(||{ + ParaC::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) @@ -589,7 +593,7 @@ fn send_para_a_asset_from_para_b_to_para_c() { ), }; - ParaA::execute_with(||{ + ParaA::execute_with(|| { assert_ok!(parachain::XTokens::transfer( parachain::Origin::signed(ALICE.into()), parachain::CurrencyId::MantaCurrency(a_currency_id), @@ -609,7 +613,7 @@ fn send_para_a_asset_from_para_b_to_para_c() { parachain::Assets::balance(a_currency_id, &ALICE.into()), amount ); - }); + }); // B send C para A asset let alice_on_c = MultiLocation { @@ -623,7 +627,7 @@ fn send_para_a_asset_from_para_b_to_para_c() { ), }; - ParaB::execute_with(||{ + ParaB::execute_with(|| { assert_ok!(parachain::XTokens::transfer( parachain::Origin::signed(ALICE.into()), parachain::CurrencyId::MantaCurrency(a_currency_id), @@ -631,10 +635,7 @@ fn send_para_a_asset_from_para_b_to_para_c() { Box::new(VersionedMultiLocation::V1(alice_on_c)), 800000 )); - assert_eq!( - parachain::Assets::balance(a_currency_id, &ALICE.into()), - 0 - ); + assert_eq!(parachain::Assets::balance(a_currency_id, &ALICE.into()), 0); }); // Make sure C received the token @@ -644,11 +645,11 @@ fn send_para_a_asset_from_para_b_to_para_c() { parachain::Assets::balance(a_currency_id, &ALICE.into()), amount ); - }); + }); } #[test] -fn receive_relay_asset_with_trader(){ +fn receive_relay_asset_with_trader() { MockNet::reset(); let relay_asset_id: parachain::AssetId = 0; @@ -668,22 +669,24 @@ fn receive_relay_asset_with_trader(){ let fee = calculate_fee(units_per_second, RESERVE_TRANSFER_WEIGHT); assert!(fee > 0); - ParaA::execute_with(||{ + ParaA::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), source_location, asset_metadata )); assert_ok!(parachain::AssetManager::set_units_per_second( - parachain::Origin::root(), - relay_asset_id, - units_per_second)); + parachain::Origin::root(), + relay_asset_id, + units_per_second + )); }); let dest: MultiLocation = AccountId32 { network: Any, - id: ALICE.into() - }.into(); + id: ALICE.into(), + } + .into(); Relay::execute_with(|| { assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( @@ -699,7 +702,7 @@ fn receive_relay_asset_with_trader(){ ); }); - ParaA::execute_with(||{ + ParaA::execute_with(|| { // ALICE gets amount - fee assert_eq!( parachain::Assets::balance(relay_asset_id, &ALICE.into()), @@ -711,14 +714,14 @@ fn receive_relay_asset_with_trader(){ fee ); }); - } #[test] fn send_para_a_asset_to_para_b_with_trader_and_fee() { MockNet::reset(); - let para_a_balances = MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); + let para_a_balances = + MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); let a_currency_id = 0u32; let amount = 222u128; @@ -746,9 +749,10 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), AssetManager::location_asset_id(source_location.clone()) @@ -762,9 +766,10 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - units_per_second)); + parachain::Origin::root(), + a_currency_id, + units_per_second + )); assert_eq!( Some(a_currency_id), AssetManager::location_asset_id(source_location.clone()) @@ -799,7 +804,10 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { }); ParaB::execute_with(|| { - assert_eq!(parachain::Assets::balance(a_currency_id, &ALICE.into()), amount); + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + amount + ); }); } @@ -839,9 +847,10 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) @@ -849,32 +858,34 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { }); // We set units_per_seconds on ParaB to 1_250_000, - ParaB::execute_with(||{ + ParaB::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - units_per_second)); + parachain::Origin::root(), + a_currency_id, + units_per_second + )); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) ); }); - ParaC::execute_with(||{ + ParaC::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - units_per_second)); + parachain::Origin::root(), + a_currency_id, + units_per_second + )); assert_eq!( Some(a_currency_id), parachain::AssetManager::location_asset_id(source_location.clone()) @@ -893,7 +904,7 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { ), }; - ParaA::execute_with(||{ + ParaA::execute_with(|| { assert_ok!(parachain::XTokens::transfer( parachain::Origin::signed(ALICE.into()), parachain::CurrencyId::MantaCurrency(a_currency_id), @@ -913,7 +924,7 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { parachain::Assets::balance(a_currency_id, &ALICE.into()), amount ); - }); + }); // B send C para A asset let alice_on_c = MultiLocation { @@ -927,7 +938,7 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { ), }; - ParaB::execute_with(||{ + ParaB::execute_with(|| { assert_ok!(parachain::XTokens::transfer( parachain::Origin::signed(ALICE.into()), parachain::CurrencyId::MantaCurrency(a_currency_id), @@ -935,20 +946,17 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { Box::new(VersionedMultiLocation::V1(alice_on_c)), dest_weight )); - assert_eq!( - parachain::Assets::balance(a_currency_id, &ALICE.into()), - 0 - ); + assert_eq!(parachain::Assets::balance(a_currency_id, &ALICE.into()), 0); }); // Make sure C received the token ParaC::execute_with(|| { amount = amount - fee; assert_eq!( - parachain::Assets::balance(a_currency_id, &ALICE.into()), - amount + parachain::Assets::balance(a_currency_id, &ALICE.into()), + amount ); - }); + }); } #[test] @@ -972,22 +980,24 @@ fn receive_relay_with_insufficient_fee_payment() { let fee = calculate_fee(units_per_second, RESERVE_TRANSFER_WEIGHT); assert!(fee > amount); - ParaA::execute_with(||{ + ParaA::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), source_location, asset_metadata )); assert_ok!(parachain::AssetManager::set_units_per_second( - parachain::Origin::root(), - relay_asset_id, - units_per_second)); + parachain::Origin::root(), + relay_asset_id, + units_per_second + )); }); let dest: MultiLocation = AccountId32 { network: Any, - id: ALICE.into() - }.into(); + id: ALICE.into(), + } + .into(); Relay::execute_with(|| { assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( @@ -1003,16 +1013,13 @@ fn receive_relay_with_insufficient_fee_payment() { ); }); - ParaA::execute_with(||{ + ParaA::execute_with(|| { // ALICE gets nothing - assert_eq!( - parachain::Assets::balance(relay_asset_id, &ALICE.into()), - 0 - ); + assert_eq!(parachain::Assets::balance(relay_asset_id, &ALICE.into()), 0); // Asset manager gets nothing, all balance stucks assert_eq!( - parachain::Assets::balance(relay_asset_id, AssetManager::account_id()), - 0 + parachain::Assets::balance(relay_asset_id, AssetManager::account_id()), + 0 ); }); } @@ -1034,7 +1041,7 @@ fn receive_relay_should_fail_without_specifying_units_per_second() { }; let amount = 333u128; - ParaA::execute_with(||{ + ParaA::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), source_location, @@ -1044,8 +1051,9 @@ fn receive_relay_should_fail_without_specifying_units_per_second() { let dest: MultiLocation = AccountId32 { network: Any, - id: ALICE.into() - }.into(); + id: ALICE.into(), + } + .into(); Relay::execute_with(|| { assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( @@ -1061,16 +1069,13 @@ fn receive_relay_should_fail_without_specifying_units_per_second() { ); }); - ParaA::execute_with(||{ + ParaA::execute_with(|| { // ALICE gets nothing - assert_eq!( - parachain::Assets::balance(relay_asset_id, &ALICE.into()), - 0 - ); + assert_eq!(parachain::Assets::balance(relay_asset_id, &ALICE.into()), 0); // Asset manager gets nothing, all balance stucks assert_eq!( - parachain::Assets::balance(relay_asset_id, AssetManager::account_id()), - 0 + parachain::Assets::balance(relay_asset_id, AssetManager::account_id()), + 0 ); }); } @@ -1079,7 +1084,8 @@ fn receive_relay_should_fail_without_specifying_units_per_second() { fn send_para_a_asset_to_para_b_with_insufficient_fee() { MockNet::reset(); - let para_a_balances = MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); + let para_a_balances = + MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); let a_currency_id = 0u32; let amount = 15u128; @@ -1108,9 +1114,10 @@ fn send_para_a_asset_to_para_b_with_insufficient_fee() { asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), AssetManager::location_asset_id(source_location.clone()) @@ -1124,9 +1131,10 @@ fn send_para_a_asset_to_para_b_with_insufficient_fee() { asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - units_per_second)); + parachain::Origin::root(), + a_currency_id, + units_per_second + )); assert_eq!( Some(a_currency_id), AssetManager::location_asset_id(source_location.clone()) @@ -1169,7 +1177,8 @@ fn send_para_a_asset_to_para_b_with_insufficient_fee() { fn send_para_a_asset_to_para_b_without_specifying_units_per_second() { MockNet::reset(); - let para_a_balances = MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); + let para_a_balances = + MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); let a_currency_id = 0u32; let amount = 567u128; @@ -1195,9 +1204,10 @@ fn send_para_a_asset_to_para_b_without_specifying_units_per_second() { asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), AssetManager::location_asset_id(source_location.clone()) @@ -1250,7 +1260,7 @@ fn send_para_a_asset_to_para_b_without_specifying_units_per_second() { } #[test] -fn receive_asset_with_is_sufficient_false(){ +fn receive_asset_with_is_sufficient_false() { MockNet::reset(); let new_account = [5u8; 32]; @@ -1276,15 +1286,17 @@ fn receive_asset_with_is_sufficient_false(){ )); // we don't charge anything during test assert_ok!(parachain::AssetManager::set_units_per_second( - parachain::Origin::root(), - relay_asset_id, - 0u128)); + parachain::Origin::root(), + relay_asset_id, + 0u128 + )); }); let dest: MultiLocation = AccountId32 { network: Any, - id: new_account.into() - }.into(); + id: new_account.into(), + } + .into(); Relay::execute_with(|| { assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( @@ -1302,7 +1314,10 @@ fn receive_asset_with_is_sufficient_false(){ // parachain should not have received assets ParaA::execute_with(|| { - assert_eq!(parachain::Assets::balance(relay_asset_id, &new_account.into()), 0); + assert_eq!( + parachain::Assets::balance(relay_asset_id, &new_account.into()), + 0 + ); }); // Send native token to fresh_account @@ -1330,13 +1345,15 @@ fn receive_asset_with_is_sufficient_false(){ // parachain should not have received assets ParaA::execute_with(|| { - println!("fresh account bal: {}", parachain::Assets::balance(relay_asset_id, &new_account.into())); + println!( + "fresh account bal: {}", + parachain::Assets::balance(relay_asset_id, &new_account.into()) + ); }); - } #[test] -fn receive_asset_with_is_sufficient_true(){ +fn receive_asset_with_is_sufficient_true() { MockNet::reset(); let new_account = [5u8; 32]; @@ -1362,15 +1379,17 @@ fn receive_asset_with_is_sufficient_true(){ )); // we don't charge anything during test assert_ok!(parachain::AssetManager::set_units_per_second( - parachain::Origin::root(), - relay_asset_id, - 0u128)); + parachain::Origin::root(), + relay_asset_id, + 0u128 + )); }); let dest: MultiLocation = AccountId32 { network: Any, - id: new_account.into() - }.into(); + id: new_account.into(), + } + .into(); Relay::execute_with(|| { assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( @@ -1388,7 +1407,10 @@ fn receive_asset_with_is_sufficient_true(){ // parachain should have received assets ParaA::execute_with(|| { - assert_eq!(parachain::Assets::balance(relay_asset_id, &new_account.into()), amount); + assert_eq!( + parachain::Assets::balance(relay_asset_id, &new_account.into()), + amount + ); }); } @@ -1489,7 +1511,7 @@ fn query_holding() { } #[test] -fn test_versioning_on_runtime_upgrade_with_relay(){ +fn test_versioning_on_runtime_upgrade_with_relay() { MockNet::reset(); let relay_asset_id: parachain::AssetId = 0; @@ -1514,9 +1536,10 @@ fn test_versioning_on_runtime_upgrade_with_relay(){ )); // we don't charge anything during test assert_ok!(parachain::AssetManager::set_units_per_second( - parachain::Origin::root(), - relay_asset_id, - 0u128)); + parachain::Origin::root(), + relay_asset_id, + 0u128 + )); }); let response = Response::Version(2); @@ -1531,8 +1554,9 @@ fn test_versioning_on_runtime_upgrade_with_relay(){ let dest: MultiLocation = AccountId32 { network: Any, - id: ALICE.into() - }.into(); + id: ALICE.into(), + } + .into(); Relay::execute_with(|| { // This sets the default version, for not known destinations @@ -1544,8 +1568,8 @@ fn test_versioning_on_runtime_upgrade_with_relay(){ // Wrap version, which sets VersionedStorage // This is necessary because the mock router does not use wrap_version, but // this is not necessary in prod. - // more specifically, this will trigger `note_unknown_version` to put the - // version to `VersionDiscoveryQueue` on relay-chain's pallet-xcm + // more specifically, this will trigger `note_unknown_version` to put the + // version to `VersionDiscoveryQueue` on relay-chain's pallet-xcm assert_ok!(::wrap_version( &Parachain(1).into(), mock_message @@ -1625,7 +1649,8 @@ fn test_versioning_on_runtime_upgrade_with_relay(){ fn test_automatic_versioning_on_runtime_upgrade_with_para_b() { MockNet::reset(); - let para_a_balances = MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); + let para_a_balances = + MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); let a_currency_id = 0u32; @@ -1660,9 +1685,10 @@ fn test_automatic_versioning_on_runtime_upgrade_with_para_b() { asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( - parachain::Origin::root(), - a_currency_id, - 0u128)); + parachain::Origin::root(), + a_currency_id, + 0u128 + )); assert_eq!( Some(a_currency_id), AssetManager::location_asset_id(source_location.clone()) @@ -1747,7 +1773,10 @@ fn test_automatic_versioning_on_runtime_upgrade_with_para_b() { ParaB::execute_with(|| { // free execution, full amount received - assert_eq!(parachain::Assets::balance(a_currency_id, &ALICE.into()), 100); + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + 100 + ); }); let expected_version_notified: parachain::Event = pallet_xcm::Event::VersionChangeNotified( diff --git a/runtime/dolphin/Cargo.toml b/runtime/dolphin/Cargo.toml index cf86a3935..2cedecbdd 100644 --- a/runtime/dolphin/Cargo.toml +++ b/runtime/dolphin/Cargo.toml @@ -79,9 +79,8 @@ pallet-xcm = { git = 'https://github.com/paritytech/polkadot.git', default-featu # Self dependencies manta-primitives = { path = '../primitives', default-features = false } -calamari-vesting = { path = '../../pallets/vesting', default-features = false } manta-collator-selection = { path = '../../pallets/collator-selection', default-features = false } -pallet-tx-pause = { path = '../../pallets/pallet-tx-pause', default-features = false } +pallet-tx-pause = { path = '../../pallets/tx-pause', default-features = false } [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] @@ -115,7 +114,6 @@ runtime-benchmarks = [ 'pallet-preimage/runtime-benchmarks', 'pallet-scheduler/runtime-benchmarks', 'pallet-membership/runtime-benchmarks', - 'calamari-vesting/runtime-benchmarks', 'pallet-tx-pause/runtime-benchmarks', 'pallet-treasury/runtime-benchmarks', ] @@ -171,7 +169,6 @@ std = [ 'polkadot-runtime-common/std', 'polkadot-primitives/std', 'manta-collator-selection/std', - 'calamari-vesting/std', 'pallet-tx-pause/std', 'pallet-treasury/std', ] \ No newline at end of file diff --git a/runtime/manta/Cargo.toml b/runtime/manta/Cargo.toml index ccc60f9db..3dd6efb2a 100644 --- a/runtime/manta/Cargo.toml +++ b/runtime/manta/Cargo.toml @@ -75,7 +75,7 @@ pallet-xcm = { git = 'https://github.com/paritytech/polkadot.git', default-featu # Self dependencies manta-primitives = { path = '../primitives', default-features = false } -pallet-tx-pause = { path = '../../pallets/pallet-tx-pause', default-features = false } +pallet-tx-pause = { path = '../../pallets/tx-pause', default-features = false } [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] diff --git a/runtime/primitives/src/assets.rs b/runtime/primitives/src/assets.rs index d57dd171d..b8a50459e 100644 --- a/runtime/primitives/src/assets.rs +++ b/runtime/primitives/src/assets.rs @@ -1,4 +1,4 @@ -// Copyright 2020-2021 Manta Network. +// Copyright 2020-2022 Manta Network. // This file is part of Manta. // // Manta is free software: you can redistribute it and/or modify @@ -47,15 +47,13 @@ impl From for AssetLocation { /// Convert an `AssetLocation` to a MultiLocation /// If Native, return none. -impl Into> for AssetLocation { - fn into(self: Self) -> Option { - // only support specific version - if let AssetLocation(VersionedMultiLocation::V1(loc)) = self { - Some(loc) - } else { - None - } - } +impl From for Option { + fn from(location: AssetLocation) -> Self { + match location { + AssetLocation(VersionedMultiLocation::V1(location)) => Some(location), + _ => None, + } + } } /// Defines the trait to obtain a generic AssetId @@ -64,7 +62,7 @@ pub trait AssetIdLocationGetter { fn get_asset_location(asset_id: AssetId) -> Option; // get AssetId from AssetLocation - fn get_asset_id(loc: AssetLocation) -> Option; + fn get_asset_id(loc: &AssetLocation) -> Option; } /// Defines the units per second charged given an `AssetId`. @@ -73,7 +71,6 @@ pub trait UnitsToWeightRatio { fn get_units_per_second(asset_id: AssetId) -> Option; } - /// Converter struct implementing `Convert`. /// This enforce the `AssetInfoGetter` implements `AssetIdLocationGetter` pub struct AssetIdLocationConvert( @@ -87,22 +84,10 @@ where AssetInfoGetter: AssetIdLocationGetter, { fn convert_ref(loc: impl Borrow) -> Result { - if let Some(asset_id) = AssetInfoGetter::get_asset_id(loc.borrow().clone().into()) { - Ok(asset_id) - } else { - Err(()) - } + AssetInfoGetter::get_asset_id(&loc.borrow().clone().into()).ok_or(()) } fn reverse_ref(id: impl Borrow) -> Result { - if let Some(asset_loc) = AssetInfoGetter::get_asset_location(id.borrow().clone()) { - if let Some(location) = asset_loc.into() { - Ok(location) - } else { - Err(()) - } - } else { - Err(()) - } + AssetInfoGetter::get_asset_location(id.borrow().clone()).and_then(Into::into).ok_or(()) } } diff --git a/runtime/primitives/src/lib.rs b/runtime/primitives/src/lib.rs index a602023e3..e9b1712af 100644 --- a/runtime/primitives/src/lib.rs +++ b/runtime/primitives/src/lib.rs @@ -24,7 +24,7 @@ pub mod constants; mod xcm; pub use crate::{ assets::{AssetIdLocationConvert, AssetIdLocationGetter, AssetLocation, UnitsToWeightRatio}, - xcm::{AccountIdToMultiLocation, MultiNativeAsset, FirstAssetTrader, XcmFeesToAccount}, + xcm::{AccountIdToMultiLocation, FirstAssetTrader, MultiNativeAsset, XcmFeesToAccount}, }; pub use constants::time; diff --git a/runtime/primitives/src/xcm.rs b/runtime/primitives/src/xcm.rs index 06fd79723..7b70c9f4a 100644 --- a/runtime/primitives/src/xcm.rs +++ b/runtime/primitives/src/xcm.rs @@ -1,4 +1,4 @@ -// Copyright 2020-2021 Manta Network. +// Copyright 2020-2022 Manta Network. // This file is part of Manta. // // Manta is free software: you can redistribute it and/or modify @@ -14,24 +14,27 @@ // You should have received a copy of the GNU General Public License // along with Manta. If not, see . -use sp_std::marker::PhantomData; use sp_runtime::traits::{Convert, Zero}; +use sp_std::marker::PhantomData; -use frame_support::{weights::{Weight, constants::WEIGHT_PER_SECOND}}; -use frame_support::traits::fungibles::Mutate; -use frame_support::pallet_prelude::Get; +use frame_support::{ + pallet_prelude::Get, + traits::fungibles::Mutate, + weights::{constants::WEIGHT_PER_SECOND, Weight}, +}; -use xcm::v1::{ - AssetId as xcmAssetId, - Junction::{AccountId32, Parachain}, - Junctions::*, - MultiAsset, MultiLocation, NetworkId, Fungibility +use crate::{AssetIdLocationGetter, UnitsToWeightRatio}; +use xcm::{ + latest::Error as XcmError, + v1::{ + AssetId as xcmAssetId, Fungibility, + Junction::{AccountId32, Parachain}, + Junctions::*, + MultiAsset, MultiLocation, NetworkId, + }, }; -use xcm::latest::Error as XcmError; use xcm_builder::TakeRevenue; -use xcm_executor::traits::{FilterAssetLocation, WeightTrader, MatchesFungibles}; -use crate::{UnitsToWeightRatio, AssetIdLocationGetter}; - +use xcm_executor::traits::{FilterAssetLocation, MatchesFungibles, WeightTrader}; pub trait Reserve { /// Returns assets reserve location. @@ -46,8 +49,8 @@ impl Reserve for MultiAsset { let first_interior = location.first_interior(); let parents = location.parent_count(); match (parents, first_interior.clone()) { - (0, Some(Parachain(id))) => Some(MultiLocation::new(0, X1(Parachain(id.clone())))), - (1, Some(Parachain(id))) => Some(MultiLocation::new(1, X1(Parachain(id.clone())))), + (0, Some(Parachain(id))) => Some(MultiLocation::new(0, X1(Parachain(*id)))), + (1, Some(Parachain(id))) => Some(MultiLocation::new(1, X1(Parachain(*id)))), (1, _) => Some(MultiLocation::parent()), _ => None, } @@ -62,12 +65,7 @@ impl Reserve for MultiAsset { pub struct MultiNativeAsset; impl FilterAssetLocation for MultiNativeAsset { fn filter_asset_location(asset: &MultiAsset, origin: &MultiLocation) -> bool { - if let Some(ref reserve) = asset.reserve() { - if reserve == origin { - return true; - } - } - false + asset.reserve().map(|r| r == *origin).unwrap_or(false) } } @@ -95,36 +93,49 @@ pub struct FirstAssetTrader< AssetLocation: From + Clone, AssetIdInfoGetter: UnitsToWeightRatio + AssetIdLocationGetter, R: TakeRevenue, ->( - Weight, - Option<(MultiLocation, u128, u128)>, - sp_std::marker::PhantomData<(AssetId, AssetLocation, AssetIdInfoGetter, R)>); -impl < - AssetId: Clone, - AssetLocation: From + Clone, - AssetIdInfoGetter: UnitsToWeightRatio + AssetIdLocationGetter, - R: TakeRevenue, -> WeightTrader for FirstAssetTrader{ +>{ + weight: Weight, + refund_cache: Option<(MultiLocation, u128, u128)>, + __: sp_std::marker::PhantomData<(AssetId, AssetLocation, AssetIdInfoGetter, R)>, +} + +impl< + AssetId: Clone, + AssetLocation: From + Clone, + AssetIdInfoGetter: UnitsToWeightRatio + AssetIdLocationGetter, + R: TakeRevenue, + > WeightTrader for FirstAssetTrader +{ fn new() -> Self { - FirstAssetTrader(Zero::zero(), None, sp_std::marker::PhantomData) + FirstAssetTrader{ + weight: Zero::zero(), + refund_cache: None, + __: sp_std::marker::PhantomData + } } /// buy weight for XCM execution. We always return `TooExpensive` error if this fails. - fn buy_weight(&mut self, weight: Weight, payment: xcm_executor::Assets) -> Result { + fn buy_weight( + &mut self, + weight: Weight, + payment: xcm_executor::Assets, + ) -> Result { let first_asset = payment .clone() .fungible_assets_iter() .next() .ok_or(XcmError::TooExpensive)?; - + // Check the first asset match (first_asset.id, first_asset.fun) { (xcmAssetId::Concrete(id), Fungibility::Fungible(_)) => { let asset_loc: AssetLocation = id.clone().into(); - let asset_id = AssetIdInfoGetter::get_asset_id(asset_loc).ok_or(XcmError::TooExpensive)?; - let units_per_second = AssetIdInfoGetter::get_units_per_second(asset_id).ok_or(XcmError::TooExpensive)?; + let asset_id = + AssetIdInfoGetter::get_asset_id(&asset_loc).ok_or(XcmError::TooExpensive)?; + let units_per_second = AssetIdInfoGetter::get_units_per_second(asset_id) + .ok_or(XcmError::TooExpensive)?; let amount = units_per_second * (weight as u128) / (WEIGHT_PER_SECOND as u128); - // we don't need to proceed if amount is zero. + // we don't need to proceed if amount is zero. // This is very useful in tests. if amount.is_zero() { return Ok(payment); @@ -136,7 +147,7 @@ impl < let unused = payment .checked_sub(required) .map_err(|_| XcmError::TooExpensive)?; - self.0 = self.0.saturating_add(weight); + self.weight = self.weight.saturating_add(weight); // In case the asset matches the one the trader already stored before, add // to later refund @@ -146,9 +157,9 @@ impl < // In short, we only refund on the asset the trader first succesfully was able // to pay for an execution - let new_asset = match self.1.clone() { + let new_asset = match self.refund_cache.clone() { Some((prev_id, prev_amount, units_per_second)) => { - if prev_id == id.clone() { + if prev_id == id { Some((id, prev_amount.saturating_add(amount), units_per_second)) } else { None @@ -159,47 +170,47 @@ impl < // Due to the trait bound, we can only refund one asset. if let Some(new_asset) = new_asset { - self.0 = self.0.saturating_add(weight); - self.1 = Some(new_asset); + self.weight = self.weight.saturating_add(weight); + self.refund_cache = Some(new_asset); }; return Ok(unused); } - _ => Err(XcmError::TooExpensive) + _ => Err(XcmError::TooExpensive), } } fn refund_weight(&mut self, weight: Weight) -> Option { - if let Some((id, prev_amount, units_per_second)) = self.1.clone() { - let weight = weight.min(self.0); - self.0 -= weight; + if let Some((id, prev_amount, units_per_second)) = self.refund_cache.clone() { + let weight = weight.min(self.weight); + self.weight -= weight; let amount = units_per_second * (weight as u128) / (WEIGHT_PER_SECOND as u128); - self.1 = Some(( + self.refund_cache = Some(( id.clone(), prev_amount.saturating_sub(amount), units_per_second, )); Some(MultiAsset { fun: Fungibility::Fungible(amount), - id: xcmAssetId::Concrete(id.clone()), + id: xcmAssetId::Concrete(id), }) } else { None - } + } } } /// Handle spent fees, deposit them as defined by R -impl < - AssetId: Clone, - AssetLocation: From + Clone, - AssetIdInfoGetter: UnitsToWeightRatio + AssetIdLocationGetter, - R: TakeRevenue, -> Drop for FirstAssetTrader +impl< + AssetId: Clone, + AssetLocation: From + Clone, + AssetIdInfoGetter: UnitsToWeightRatio + AssetIdLocationGetter, + R: TakeRevenue, + > Drop for FirstAssetTrader { fn drop(&mut self) { - if let Some((id, amount, _)) = self.1.clone() { + if let Some((id, amount, _)) = self.refund_cache.clone() { R::take_revenue((id, amount).into()); - } + } } } @@ -220,8 +231,7 @@ impl< match Matcher::matches_fungibles(&revenue) { Ok((asset_id, amount)) => { if !amount.is_zero() { - let ok = Assets::mint_into(asset_id, &ReceiverAccount::get(), amount).is_ok(); - debug_assert!(ok, "`mint_into` cannot generally fail; qed"); + Assets::mint_into(asset_id, &ReceiverAccount::get(), amount).expect("`mint_into` cannot generally fail; qed"); } } Err(_) => log::debug!( From b3e1361e5e30ed9e76b6a19cb73f7514f9b28c56 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Tue, 15 Feb 2022 18:03:48 -0700 Subject: [PATCH 19/33] clean up code, unit test --- Cargo.lock | 5 ++ pallets/asset-manager/Cargo.toml | 7 +++ pallets/asset-manager/src/lib.rs | 26 ++++++--- runtime/calamari/tests/xcm_mock/parachain.rs | 58 ++++++-------------- runtime/primitives/Cargo.toml | 8 +++ runtime/primitives/src/assets.rs | 43 ++++++++++++++- runtime/primitives/src/constants.rs | 2 + runtime/primitives/src/lib.rs | 4 +- 8 files changed, 103 insertions(+), 50 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 137047e6d..a7a70150d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5223,11 +5223,15 @@ dependencies = [ "frame-support", "frame-system", "manta-primitives", + "pallet-assets", + "pallet-balances", "parity-scale-codec", "scale-info", + "sp-core", "sp-io", "sp-runtime", "sp-std", + "xcm", ] [[package]] @@ -5235,6 +5239,7 @@ name = "pallet-assets" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", diff --git a/pallets/asset-manager/Cargo.toml b/pallets/asset-manager/Cargo.toml index 0aa7be880..f5f135d74 100644 --- a/pallets/asset-manager/Cargo.toml +++ b/pallets/asset-manager/Cargo.toml @@ -22,15 +22,22 @@ manta-primitives = { path = '../../runtime/primitives', default-features = false [dev-dependencies] sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +pallet-balances = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.15" } +pallet-assets = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.15" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +xcm = { git = 'https://github.com/paritytech/polkadot.git', branch = "release-v0.9.15" } [features] default = ["std"] std = [ + "codec/std", "scale-info/std", "sp-runtime/std", "frame-support/std", "frame-system/std", "sp-std/std", + "manta-primitives/std", + "frame-benchmarking/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index a32e26392..a7a2180a4 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -28,6 +28,12 @@ pub use pallet::*; +#[cfg(test)] +mod mock; + +#[cfg(test)] +mod tests; + #[frame_support::pallet] pub mod pallet { @@ -52,7 +58,8 @@ pub mod pallet { /// We may revisit this interface design (e.g. add change asset interface). However, change StorageMetadata /// should be rare. pub trait AssetRegistrar { - /// + /// Create an new asset. + /// /// * `asset_id`: the asset id to be created /// * `min_balance`: the minimum balance to hold this asset /// * `metadata`: the metadata that the implementation layer stores @@ -64,6 +71,15 @@ pub mod pallet { metadata: T::StorageMetadata, is_sufficient: bool, ) -> DispatchResult; + + /// Update asset metadata by `AssetId`. + /// + /// * `asset_id`: the asset id to be created. + /// * `metadata`: the metadata that the implementation layer stores. + fn update_asset_metadata( + asset_id: T::AssetId, + metadata: T::StorageMetadata, + ) -> DispatchResult; } /// The AssetMetadata trait: @@ -156,12 +172,8 @@ pub mod pallet { UnitsPerSecondUpdated { asset_id: T::AssetId, units_per_second: u128, - }, - /// Asset frozen. - AssetFrozen { asset_id: T::AssetId }, - /// Asset unfrozen. - AssetUnfrozen { asset_id: T::AssetId }, - } + }, +} /// Error. #[pallet::error] diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/calamari/tests/xcm_mock/parachain.rs index ee0181455..d0f94995d 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/calamari/tests/xcm_mock/parachain.rs @@ -25,7 +25,7 @@ use frame_support::{ use frame_system::EnsureRoot; use pallet_asset_manager::AssetMetadata; use scale_info::TypeInfo; -use sp_core::{H160, H256}; +use sp_core::{H256}; use sp_runtime::{ testing::Header, traits::{Hash, IdentityLookup}, @@ -49,9 +49,9 @@ use xcm_builder::{ }; use xcm_executor::{traits::JustTry, Config, XcmExecutor}; +pub use manta_primitives::{AssetId, AssetStorageMetadata, AssetRegistarMetadata}; pub type AccountId = AccountId32; pub type Balance = u128; -pub type AssetId = u32; // Manta plans to use u32 as AssetId parameter_types! { pub const BlockHashCount: u64 = 250; @@ -476,24 +476,7 @@ impl pallet_xcm::Config for Runtime { type AdvertisedXcmVersion = XcmVersioner; } -#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] -pub struct AssetRegistarMetadata { - pub name: Vec, - pub symbol: Vec, - pub decimals: u8, - pub evm_address: Option, - pub is_frozen: bool, - pub min_balance: Balance, - /// `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient - /// value to account for the state bloat associated with its balance storage. If set to - /// `true`, then non-zero balances may be stored without a `consumer` reference (and thus - /// an ED in the Balances pallet or whatever else is used to control user-account state - /// growth). - /// For example, if is_sufficient set to `false`, a fresh account cannot receive XCM tokens. - pub is_sufficient: bool, -} - -impl AssetMetadata for AssetRegistarMetadata { +impl AssetMetadata for AssetRegistarMetadata { fn min_balance(&self) -> Balance { self.min_balance } @@ -503,25 +486,6 @@ impl AssetMetadata for AssetRegistarMetadata { } } -impl Into for AssetRegistarMetadata { - fn into(self) -> AssetStorageMetadata { - AssetStorageMetadata { - name: self.name, - symbol: self.symbol, - decimals: self.decimals, - is_frozen: self.is_frozen, - } - } -} - -#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] -pub struct AssetStorageMetadata { - pub name: Vec, - pub symbol: Vec, - pub decimals: u8, - pub is_frozen: bool, -} - pub struct AssetRegistrar; use frame_support::pallet_prelude::DispatchResult; impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { @@ -548,12 +512,26 @@ impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { metadata.is_frozen, ) } + + fn update_asset_metadata( + asset_id: AssetId, + metadata: AssetStorageMetadata, + ) -> DispatchResult { + Assets::force_set_metadata( + Origin::root(), + asset_id, + metadata.name, + metadata.symbol, + metadata.decimals, + metadata.is_frozen, + ) + } } impl pallet_asset_manager::Config for Runtime { type Event = Event; type Balance = Balance; type AssetId = AssetId; - type AssetRegistrarMetadata = AssetRegistarMetadata; + type AssetRegistrarMetadata = AssetRegistarMetadata; type StorageMetadata = AssetStorageMetadata; type AssetLocation = AssetLocation; type AssetRegistrar = AssetRegistrar; diff --git a/runtime/primitives/Cargo.toml b/runtime/primitives/Cargo.toml index 7f76c2331..067d123d5 100644 --- a/runtime/primitives/Cargo.toml +++ b/runtime/primitives/Cargo.toml @@ -36,4 +36,12 @@ std = [ 'sp-io/std', 'sp-std/std', 'log/std', + 'frame-support/std', + 'sp-consensus-aura/std', + 'sp-core/std', + 'sp-io/std', + 'sp-runtime/std', + 'xcm-executor/std', + 'xcm-builder/std', + 'xcm/std', ] diff --git a/runtime/primitives/src/assets.rs b/runtime/primitives/src/assets.rs index b8a50459e..2564ff97b 100644 --- a/runtime/primitives/src/assets.rs +++ b/runtime/primitives/src/assets.rs @@ -16,13 +16,54 @@ use codec::{Decode, Encode}; use scale_info::TypeInfo; -use sp_std::{borrow::Borrow, marker::PhantomData}; +use sp_std::{borrow::Borrow, prelude::Vec, marker::PhantomData}; +use sp_core::{H160}; + ///! Manta/Calamari/Dolphin Asset use xcm::{ v1::{Junctions, MultiLocation}, VersionedMultiLocation, }; +/// The metadata of a Manta Asset +#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub struct AssetRegistarMetadata { + pub name: Vec, + pub symbol: Vec, + pub decimals: u8, + pub evm_address: Option, + pub is_frozen: bool, + pub min_balance: Balance, + /// `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient + /// value to account for the state bloat associated with its balance storage. If set to + /// `true`, then non-zero balances may be stored without a `consumer` reference (and thus + /// an ED in the Balances pallet or whatever else is used to control user-account state + /// growth). + /// For example, if is_sufficient set to `false`, a fresh account cannot receive XCM tokens. + pub is_sufficient: bool, +} + +/// Asset storage metadata +/// Currently, `AssetStorageMetadata` is stored at `pallet-asset`. +#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub struct AssetStorageMetadata { + pub name: Vec, + pub symbol: Vec, + pub decimals: u8, + pub is_frozen: bool, +} + +impl From> for AssetStorageMetadata { + fn from(source: AssetRegistarMetadata) -> Self { + AssetStorageMetadata { + name: source.name, + symbol: source.symbol, + decimals: source.decimals, + is_frozen: source.is_frozen, + } + } +} + #[derive(Clone, Eq, Debug, PartialEq, Encode, Decode, TypeInfo)] pub struct AssetLocation(pub VersionedMultiLocation); diff --git a/runtime/primitives/src/constants.rs b/runtime/primitives/src/constants.rs index e8ab021a1..fab951549 100644 --- a/runtime/primitives/src/constants.rs +++ b/runtime/primitives/src/constants.rs @@ -45,3 +45,5 @@ pub mod time { pub const HOURS: BlockNumber = MINUTES * 60; pub const DAYS: BlockNumber = HOURS * 24; } + +pub const ASSET_STRING_LIMIT: u32 = 50; \ No newline at end of file diff --git a/runtime/primitives/src/lib.rs b/runtime/primitives/src/lib.rs index e9b1712af..52c2b55aa 100644 --- a/runtime/primitives/src/lib.rs +++ b/runtime/primitives/src/lib.rs @@ -23,10 +23,10 @@ mod assets; pub mod constants; mod xcm; pub use crate::{ - assets::{AssetIdLocationConvert, AssetIdLocationGetter, AssetLocation, UnitsToWeightRatio}, + assets::{AssetIdLocationConvert, AssetIdLocationGetter, AssetLocation, AssetRegistarMetadata, AssetStorageMetadata, UnitsToWeightRatio}, xcm::{AccountIdToMultiLocation, FirstAssetTrader, MultiNativeAsset, XcmFeesToAccount}, }; -pub use constants::time; +pub use constants::*; use sp_runtime::traits::{BlakeTwo256, IdentifyAccount, Verify}; From 41f4510ca8f8b13c1557f5756a0bfa48b321dbf3 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Tue, 15 Feb 2022 19:22:10 -0700 Subject: [PATCH 20/33] rebase manta, add unit tests --- Cargo.lock | 1306 ++++++++++------- pallets/asset-manager/Cargo.toml | 20 +- pallets/asset-manager/src/lib.rs | 1 + pallets/asset-manager/src/mock.rs | 200 +++ pallets/asset-manager/src/tests.rs | 185 +++ runtime/calamari/Cargo.toml | 28 - runtime/dolphin/Cargo.toml | 12 + .../tests/xcm_mock/mod.rs | 0 .../tests/xcm_mock/parachain.rs | 9 +- .../tests/xcm_mock/relay_chain.rs | 3 +- .../{calamari => dolphin}/tests/xcm_tests.rs | 0 11 files changed, 1175 insertions(+), 589 deletions(-) create mode 100644 pallets/asset-manager/src/mock.rs create mode 100644 pallets/asset-manager/src/tests.rs rename runtime/{calamari => dolphin}/tests/xcm_mock/mod.rs (100%) rename runtime/{calamari => dolphin}/tests/xcm_mock/parachain.rs (98%) rename runtime/{calamari => dolphin}/tests/xcm_mock/relay_chain.rs (98%) rename runtime/{calamari => dolphin}/tests/xcm_tests.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index a7a70150d..e23776dcb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,22 +12,13 @@ dependencies = [ "regex", ] -[[package]] -name = "addr2line" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd" -dependencies = [ - "gimli 0.25.0", -] - [[package]] name = "addr2line" version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" dependencies = [ - "gimli 0.26.1", + "gimli", ] [[package]] @@ -389,7 +380,7 @@ version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" dependencies = [ - "addr2line 0.17.0", + "addr2line", "cc", "cfg-if 1.0.0", "libc", @@ -428,7 +419,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "beefy-primitives", "fnv", @@ -436,6 +427,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.2", + "sc-chain-spec", "sc-client-api", "sc-keystore", "sc-network", @@ -456,10 +448,11 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "beefy-gadget", "beefy-primitives", + "derive_more", "futures 0.3.19", "jsonrpc-core", "jsonrpc-core-client", @@ -467,21 +460,24 @@ dependencies = [ "jsonrpc-pubsub", "log", "parity-scale-codec", + "parking_lot 0.11.2", "sc-rpc", + "sc-utils", "serde", "sp-core", "sp-runtime", + "thiserror", ] [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -624,6 +620,15 @@ dependencies = [ "generic-array 0.14.5", ] +[[package]] +name = "block-buffer" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +dependencies = [ + "generic-array 0.14.5", +] + [[package]] name = "block-padding" version = "0.1.5" @@ -655,9 +660,9 @@ dependencies = [ [[package]] name = "bounded-vec" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afdd1dffefe5fc66262a524b91087c43b16e478b2e3dc49eb11b0e2fd6b6ec90" +checksum = "b47cca82fca99417fe405f09d93bb8fff90bdd03d13c631f18096ee123b4281c" dependencies = [ "thiserror", ] @@ -665,7 +670,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "finality-grandpa", "frame-support", @@ -681,7 +686,7 @@ dependencies = [ [[package]] name = "bp-message-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bp-runtime", "frame-support", @@ -693,7 +698,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "bp-runtime", @@ -709,7 +714,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bp-messages", "bp-runtime", @@ -724,25 +729,10 @@ dependencies = [ "sp-version", ] -[[package]] -name = "bp-rialto" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "bp-messages", - "bp-runtime", - "frame-support", - "frame-system", - "sp-api", - "sp-core", - "sp-runtime", - "sp-std", -] - [[package]] name = "bp-rococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -759,7 +749,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-support", "hash-db", @@ -777,7 +767,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bp-header-chain", "ed25519-dalek", @@ -792,7 +782,7 @@ dependencies = [ [[package]] name = "bp-wococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -807,7 +797,7 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bp-message-dispatch", "bp-messages", @@ -899,7 +889,7 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" [[package]] name = "calamari-runtime" -version = "3.1.3" +version = "3.1.4" dependencies = [ "calamari-vesting", "cumulus-pallet-aura-ext", @@ -922,9 +912,6 @@ dependencies = [ "log", "manta-collator-selection", "manta-primitives", - "orml-xtokens", - "pallet-asset-manager", - "pallet-assets", "pallet-aura", "pallet-authorship", "pallet-balances", @@ -932,6 +919,7 @@ dependencies = [ "pallet-democracy", "pallet-membership", "pallet-multisig", + "pallet-preimage", "pallet-scheduler", "pallet-session", "pallet-sudo", @@ -944,11 +932,9 @@ dependencies = [ "pallet-xcm", "parachain-info", "parity-scale-codec", - "polkadot-core-primitives", "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-common", - "polkadot-runtime-parachains", "reqwest", "scale-info", "serde", @@ -970,12 +956,11 @@ dependencies = [ "xcm", "xcm-builder", "xcm-executor", - "xcm-simulator", ] [[package]] name = "calamari-vesting" -version = "3.1.3" +version = "3.1.4" dependencies = [ "chrono", "frame-benchmarking", @@ -1226,24 +1211,24 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc0cb7df82c8cf8f2e6a8dd394a0932a71369c160cc9b027dca414fced242513" +checksum = "9516ba6b2ba47b4cbf63b713f75b432fafa0a0e0464ec8381ec76e6efe931ab3" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4463c15fa42eee909e61e5eac4866b7c6d22d0d8c621e57a0c5380753bfa8c" +checksum = "489e5d0081f7edff6be12d71282a8bf387b5df64d5592454b75d662397f2d642" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", - "gimli 0.25.0", + "gimli", "log", "regalloc", "smallvec", @@ -1252,34 +1237,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793f6a94a053a55404ea16e1700202a88101672b8cd6b4df63e13cde950852bf" +checksum = "d36ee1140371bb0f69100e734b30400157a4adf7b86148dee8b0a438763ead48" dependencies = [ "cranelift-codegen-shared", - "cranelift-entity", ] [[package]] name = "cranelift-codegen-shared" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44aa1846df275bce5eb30379d65964c7afc63c05a117076e62a119c25fe174be" +checksum = "981da52d8f746af1feb96290c83977ff8d41071a7499e991d8abae0d4869f564" [[package]] name = "cranelift-entity" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3a45d8d6318bf8fc518154d9298eab2a8154ec068a8885ff113f6db8d69bb3a" +checksum = "a2906740053dd3bcf95ce53df0fd9b5649c68ae4bd9adada92b406f059eae461" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e07339bd461766deb7605169de039e01954768ff730fa1254e149001884a8525" +checksum = "b7cb156de1097f567d46bf57a0cd720a72c3e15e1a2bd8b1041ba2fc894471b7" dependencies = [ "cranelift-codegen", "log", @@ -1289,9 +1273,9 @@ dependencies = [ [[package]] name = "cranelift-native" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e2fca76ff57e0532936a71e3fc267eae6a19a86656716479c66e7f912e3d7b" +checksum = "166028ca0343a6ee7bddac0e70084e142b23f99c701bd6f6ea9123afac1a7a46" dependencies = [ "cranelift-codegen", "libc", @@ -1300,9 +1284,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f46fec547a1f8a32c54ea61c28be4f4ad234ad95342b718a9a9adcaadb0c778" +checksum = "5012a1cde0c8b3898770b711490d803018ae9bec2d60674ba0e5b2058a874f80" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1373,6 +1357,15 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +[[package]] +name = "crypto-common" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4600d695eb3f6ce1cd44e6e291adceb2cc3ab12f20a33777ecd0bf6eba34e06" +dependencies = [ + "generic-array 0.14.5", +] + [[package]] name = "crypto-mac" version = "0.8.0" @@ -1435,7 +1428,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "sc-cli", "sc-service", @@ -1445,11 +1438,12 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", + "cumulus-relay-chain-interface", "futures 0.3.19", "parity-scale-codec", "parking_lot 0.10.2", @@ -1468,14 +1462,13 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", "futures 0.3.19", "parity-scale-codec", - "polkadot-client", "sc-client-api", "sc-consensus", "sc-consensus-aura", @@ -1498,9 +1491,10 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "async-trait", + "cumulus-relay-chain-interface", "dyn-clone", "futures 0.3.19", "parity-scale-codec", @@ -1518,14 +1512,14 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-relay-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", + "cumulus-relay-chain-interface", "futures 0.3.19", "parking_lot 0.10.2", - "polkadot-client", "sc-client-api", "sc-consensus", "sp-api", @@ -1542,14 +1536,15 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ + "async-trait", + "cumulus-relay-chain-interface", "derive_more", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "parity-scale-codec", - "parking_lot 0.10.2", - "polkadot-client", + "parking_lot 0.11.2", "polkadot-node-primitives", "polkadot-parachain", "polkadot-primitives", @@ -1559,17 +1554,19 @@ dependencies = [ "sp-consensus", "sp-core", "sp-runtime", + "sp-state-machine", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", + "cumulus-relay-chain-interface", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -1588,17 +1585,17 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", "cumulus-client-pov-recovery", "cumulus-primitives-core", + "cumulus-relay-chain-interface", "parity-scale-codec", "parking_lot 0.10.2", "polkadot-overseer", "polkadot-primitives", - "polkadot-service", "sc-chain-spec", "sc-client-api", "sc-consensus", @@ -1617,7 +1614,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "frame-executive", "frame-support", @@ -1635,7 +1632,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1653,7 +1650,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1661,6 +1658,7 @@ dependencies = [ "environmental", "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "pallet-balances", "parity-scale-codec", @@ -1682,7 +1680,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -1693,12 +1691,13 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "pallet-session", + "parity-scale-codec", "sp-runtime", "sp-std", ] @@ -1706,7 +1705,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1723,7 +1722,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1741,10 +1740,9 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "frame-support", - "impl-trait-for-tuples", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", @@ -1758,13 +1756,13 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "async-trait", "cumulus-primitives-core", + "cumulus-relay-chain-interface", "cumulus-test-relay-sproof-builder", "parity-scale-codec", - "polkadot-client", "sc-client-api", "scale-info", "sp-api", @@ -1773,6 +1771,7 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-std", + "sp-storage", "sp-trie", "tracing", ] @@ -1780,7 +1779,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1791,7 +1790,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1805,10 +1804,59 @@ dependencies = [ "xcm", ] +[[package]] +name = "cumulus-relay-chain-interface" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "derive_more", + "futures 0.3.19", + "parking_lot 0.11.2", + "polkadot-overseer", + "sc-client-api", + "sc-service", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-state-machine", + "thiserror", +] + +[[package]] +name = "cumulus-relay-chain-local" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "futures 0.3.19", + "futures-timer", + "parking_lot 0.11.2", + "polkadot-client", + "polkadot-service", + "sc-client-api", + "sc-consensus-babe", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", + "tracing", +] + [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1912,6 +1960,16 @@ dependencies = [ "generic-array 0.14.5", ] +[[package]] +name = "digest" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cb780dce4f9a8f5c087362b3a4595936b2019e7c8b30f2c3e9a7e94e6ae9837" +dependencies = [ + "block-buffer 0.10.2", + "crypto-common", +] + [[package]] name = "directories" version = "4.0.1" @@ -1965,7 +2023,7 @@ dependencies = [ [[package]] name = "dolphin-runtime" -version = "3.1.3" +version = "3.1.4" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", @@ -1987,6 +2045,9 @@ dependencies = [ "log", "manta-collator-selection", "manta-primitives", + "orml-xtokens", + "pallet-asset-manager", + "pallet-assets", "pallet-aura", "pallet-authorship", "pallet-balances", @@ -1994,6 +2055,7 @@ dependencies = [ "pallet-democracy", "pallet-membership", "pallet-multisig", + "pallet-preimage", "pallet-scheduler", "pallet-session", "pallet-sudo", @@ -2006,9 +2068,11 @@ dependencies = [ "pallet-xcm", "parachain-info", "parity-scale-codec", + "polkadot-core-primitives", "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-common", + "polkadot-runtime-parachains", "scale-info", "serde", "smallvec", @@ -2028,6 +2092,7 @@ dependencies = [ "xcm", "xcm-builder", "xcm-executor", + "xcm-simulator", ] [[package]] @@ -2293,7 +2358,7 @@ checksum = "e8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5a" dependencies = [ "either", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "log", "num-traits", "parity-scale-codec", @@ -2356,7 +2421,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", ] @@ -2374,7 +2439,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -2384,6 +2449,7 @@ dependencies = [ "paste", "scale-info", "sp-api", + "sp-application-crypto", "sp-io", "sp-runtime", "sp-runtime-interface", @@ -2394,7 +2460,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "Inflector", "chrono", @@ -2420,7 +2486,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -2434,7 +2500,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -2462,7 +2528,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "bitflags", "frame-metadata", @@ -2491,7 +2557,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2503,7 +2569,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.0", @@ -2515,7 +2581,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro2", "quote", @@ -2525,7 +2591,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "log", @@ -2542,7 +2608,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -2557,7 +2623,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "sp-api", @@ -2566,7 +2632,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "sp-api", @@ -2728,12 +2794,6 @@ version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" -[[package]] -name = "futures-timer" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1de7508b218029b0f01662ed8f61b1c964b3ae99d6f25462d0f55a595109df6" - [[package]] name = "futures-timer" version = "3.0.2" @@ -2814,21 +2874,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.25.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7" +checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" dependencies = [ "fallible-iterator", "indexmap", "stable_deref_trait", ] -[[package]] -name = "gimli" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" - [[package]] name = "glob" version = "0.3.0" @@ -2917,6 +2971,15 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c21d40587b92fa6a6c6e3c1bdbf87d75511db5672f9c93175574b3a00df1758" +dependencies = [ + "ahash", +] + [[package]] name = "heck" version = "0.3.3" @@ -3202,7 +3265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.11.2", "serde", ] @@ -3230,23 +3293,12 @@ dependencies = [ "num-traits", ] -[[package]] -name = "intervalier" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" -dependencies = [ - "futures 0.3.19", - "futures-timer 2.0.2", -] - [[package]] name = "io-lifetimes" -version = "0.3.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "278e90d6f8a6c76a8334b336e306efa3c5f2b604048cbfd486d6f49878e3af14" +checksum = "f6ef6787e7f0faedc040f95716bdd0e62bcfcf4ba93da053b62dea2691c13864" dependencies = [ - "rustc_version 0.4.0", "winapi 0.3.9", ] @@ -3551,8 +3603,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-primitives", "bitvec", @@ -3565,6 +3617,7 @@ dependencies = [ "frame-system-rpc-runtime-api", "frame-try-runtime", "hex-literal", + "kusama-runtime-constants", "log", "pallet-authority-discovery", "pallet-authorship", @@ -3587,6 +3640,7 @@ dependencies = [ "pallet-nicks", "pallet-offences", "pallet-offences-benchmarking", + "pallet-preimage", "pallet-proxy", "pallet-recovery", "pallet-scheduler", @@ -3635,6 +3689,18 @@ dependencies = [ "xcm-executor", ] +[[package]] +name = "kusama-runtime-constants" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "frame-support", + "polkadot-primitives", + "polkadot-runtime-common", + "smallvec", + "sp-runtime", +] + [[package]] name = "kv-log-macro" version = "1.0.7" @@ -3780,7 +3846,7 @@ dependencies = [ "either", "fnv", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "lazy_static", "libsecp256k1", "log", @@ -4044,7 +4110,7 @@ dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "libp2p-core", "libp2p-swarm", "log", @@ -4133,7 +4199,7 @@ checksum = "7399c5b6361ef525d41c11fcf51635724f832baf5819b30d3d873eabb4fbae4b" dependencies = [ "async-io", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "if-watch", "ipnet", "libc", @@ -4297,9 +4363,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.0.28" +version = "0.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687387ff42ec7ea4f2149035a5675fedb675d26f98db90a1846ac63d3addb5f5" +checksum = "a261afc61b7a5e323933b402ca6a1765183687c614789b1e4db7762ed4230bca" [[package]] name = "lock_api" @@ -4335,7 +4401,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ea2d928b485416e8908cff2d97d621db22b27f7b3b6729e438bcf42c671ba91" dependencies = [ - "hashbrown", + "hashbrown 0.11.2", ] [[package]] @@ -4344,7 +4410,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "274353858935c992b13c0ca408752e2121da852d07dec7ce5f108c77dfa14d1f" dependencies = [ - "hashbrown", + "hashbrown 0.11.2", ] [[package]] @@ -4387,7 +4453,7 @@ dependencies = [ [[package]] name = "manta" -version = "3.1.3" +version = "3.1.4" dependencies = [ "async-trait", "calamari-runtime", @@ -4400,6 +4466,8 @@ dependencies = [ "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", + "cumulus-relay-chain-local", "dolphin-runtime", "frame-benchmarking", "frame-benchmarking-cli", @@ -4449,11 +4517,13 @@ dependencies = [ "substrate-build-script-utils", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", + "try-runtime-cli", + "xcm", ] [[package]] name = "manta-collator-selection" -version = "3.1.3" +version = "3.1.4" dependencies = [ "frame-benchmarking", "frame-support", @@ -4479,7 +4549,7 @@ dependencies = [ [[package]] name = "manta-primitives" -version = "3.1.3" +version = "3.1.4" dependencies = [ "frame-support", "log", @@ -4498,7 +4568,7 @@ dependencies = [ [[package]] name = "manta-runtime" -version = "3.1.3" +version = "3.1.4" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", @@ -4523,6 +4593,7 @@ dependencies = [ "pallet-balances", "pallet-collator-selection", "pallet-multisig", + "pallet-preimage", "pallet-scheduler", "pallet-session", "pallet-sudo", @@ -4629,12 +4700,12 @@ dependencies = [ [[package]] name = "memory-db" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de006e09d04fc301a5f7e817b75aa49801c4479a8af753764416b085337ddcc5" +checksum = "d505169b746dacf02f7d14d8c80b34edfd8212159c63d23c977739a0d960c626" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.11.2", "parity-util-mem", ] @@ -4667,12 +4738,12 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derive_more", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "thiserror", "tracing", ] @@ -5143,7 +5214,7 @@ dependencies = [ [[package]] name = "orml-traits" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.15#598afc4a64a9892209a780f0aad2ba0bd2ccb704" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -5161,7 +5232,7 @@ dependencies = [ [[package]] name = "orml-utilities" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.15#598afc4a64a9892209a780f0aad2ba0bd2ccb704" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" dependencies = [ "frame-support", "parity-scale-codec", @@ -5175,7 +5246,7 @@ dependencies = [ [[package]] name = "orml-xcm-support" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.15#598afc4a64a9892209a780f0aad2ba0bd2ccb704" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" dependencies = [ "frame-support", "orml-traits", @@ -5189,7 +5260,7 @@ dependencies = [ [[package]] name = "orml-xtokens" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=polkadot-v0.9.15#598afc4a64a9892209a780f0aad2ba0bd2ccb704" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5237,7 +5308,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5251,7 +5322,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5267,7 +5338,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5283,7 +5354,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5298,7 +5369,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5322,7 +5393,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5342,7 +5413,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5357,7 +5428,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "beefy-primitives", "frame-support", @@ -5373,7 +5444,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -5398,7 +5469,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5416,7 +5487,7 @@ dependencies = [ [[package]] name = "pallet-bridge-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bp-message-dispatch", "bp-runtime", @@ -5433,7 +5504,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bp-header-chain", "bp-runtime", @@ -5455,12 +5526,11 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "bp-message-dispatch", "bp-messages", - "bp-rialto", "bp-runtime", "frame-support", "frame-system", @@ -5477,7 +5547,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "frame-benchmarking", "frame-support", @@ -5497,7 +5567,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5514,7 +5584,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5530,7 +5600,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5547,14 +5617,14 @@ dependencies = [ "sp-runtime", "sp-std", "static_assertions", - "strum", - "strum_macros", + "strum 0.22.0", + "strum_macros 0.23.1", ] [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5572,7 +5642,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5587,7 +5657,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5610,7 +5680,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5626,7 +5696,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5646,7 +5716,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5663,7 +5733,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5680,7 +5750,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5698,7 +5768,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5714,7 +5784,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5731,7 +5801,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5746,7 +5816,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5760,7 +5830,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5777,7 +5847,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5797,10 +5867,26 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-preimage" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5815,7 +5901,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5829,7 +5915,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5845,7 +5931,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5866,7 +5952,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5882,7 +5968,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5896,7 +5982,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5919,7 +6005,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -5930,7 +6016,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "sp-arithmetic", @@ -5939,7 +6025,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5953,7 +6039,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5971,7 +6057,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5990,7 +6076,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -6007,7 +6093,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -6024,7 +6110,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6035,7 +6121,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -6051,7 +6137,7 @@ dependencies = [ [[package]] name = "pallet-tx-pause" -version = "3.1.3" +version = "3.1.4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6069,7 +6155,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -6085,7 +6171,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -6099,8 +6185,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-support", "frame-system", @@ -6117,8 +6203,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-benchmarking", "frame-support", @@ -6135,7 +6221,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6218,7 +6304,7 @@ checksum = "6f4cb4e169446179cbc6b8b6320cc9fca49bd2e94e8db25f25f200a8ea774770" dependencies = [ "cfg-if 1.0.0", "ethereum-types", - "hashbrown", + "hashbrown 0.11.2", "impl-trait-for-tuples", "lru 0.6.6", "parity-util-mem-derive", @@ -6494,8 +6580,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "polkadot-node-network-protocol", @@ -6508,8 +6594,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "polkadot-node-network-protocol", @@ -6521,8 +6607,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derive_more", "futures 0.3.19", @@ -6543,8 +6629,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "lru 0.7.2", @@ -6563,16 +6649,19 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-benchmarking-cli", "futures 0.3.19", "log", "polkadot-node-core-pvf", + "polkadot-node-metrics", + "polkadot-performance-test", "polkadot-service", "sc-cli", "sc-service", + "sc-tracing", "sp-core", "sp-trie", "structopt", @@ -6583,8 +6672,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6613,13 +6702,13 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "always-assert", "derive_more", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6634,8 +6723,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6647,8 +6736,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derive_more", "futures 0.3.19", @@ -6669,8 +6758,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6683,11 +6772,11 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6703,8 +6792,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "futures 0.3.19", @@ -6722,8 +6811,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "parity-scale-codec", @@ -6740,13 +6829,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "derive_more", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "kvdb", "lru 0.7.2", "merlin", @@ -6768,12 +6857,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "kvdb", "parity-scale-codec", "polkadot-erasure-coding", @@ -6788,8 +6877,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "futures 0.3.19", @@ -6806,8 +6895,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "polkadot-node-subsystem", @@ -6821,8 +6910,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "futures 0.3.19", @@ -6839,8 +6928,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "polkadot-node-subsystem", @@ -6854,11 +6943,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "kvdb", "parity-scale-codec", "polkadot-node-primitives", @@ -6871,13 +6960,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ - "bitvec", - "derive_more", "futures 0.3.19", "kvdb", + "lru 0.7.2", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6888,27 +6976,14 @@ dependencies = [ "tracing", ] -[[package]] -name = "polkadot-node-core-dispute-participation" -version = "0.9.14" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "futures 0.3.19", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-primitives", - "thiserror", - "tracing", -] - [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "polkadot-node-subsystem", "polkadot-primitives", "sp-blockchain", @@ -6920,31 +6995,32 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", + "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "rand 0.8.4", "thiserror", "tracing", ] [[package]] name = "polkadot-node-core-pvf" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "always-assert", "assert_matches", "async-process", "async-std", "futures 0.3.19", - "futures-timer 3.0.2", - "libc", + "futures-timer", "parity-scale-codec", "pin-project 1.0.10", "polkadot-core-primitives", @@ -6964,10 +7040,26 @@ dependencies = [ "tracing", ] +[[package]] +name = "polkadot-node-core-pvf-checker" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "futures 0.3.19", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "sp-keystore", + "thiserror", + "tracing", +] + [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "memory-lru", @@ -6984,8 +7076,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-std", "lazy_static", @@ -7002,19 +7094,27 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ + "bs58", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", + "log", "metered-channel", + "parity-scale-codec", + "polkadot-primitives", + "sc-cli", + "sc-service", + "sc-tracing", "substrate-prometheus-endpoint", + "tracing", ] [[package]] name = "polkadot-node-network-protocol" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "derive_more", @@ -7025,14 +7125,14 @@ dependencies = [ "polkadot-primitives", "sc-authority-discovery", "sc-network", - "strum", + "strum 0.23.0", "thiserror", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bounded-vec", "futures 0.3.19", @@ -7053,8 +7153,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7063,8 +7163,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derive_more", "futures 0.3.19", @@ -7082,8 +7182,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "derive_more", @@ -7096,6 +7196,7 @@ dependencies = [ "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", + "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", @@ -7109,11 +7210,11 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "lru 0.7.2", "parity-util-mem", "parking_lot 0.11.2", @@ -7130,12 +7231,12 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "metered-channel", "pin-project 1.0.10", "polkadot-node-network-protocol", @@ -7147,8 +7248,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -7158,8 +7259,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derive_more", "frame-support", @@ -7173,10 +7274,25 @@ dependencies = [ "sp-std", ] +[[package]] +name = "polkadot-performance-test" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "env_logger 0.9.0", + "kusama-runtime", + "log", + "polkadot-erasure-coding", + "polkadot-node-core-pvf", + "polkadot-node-primitives", + "quote", + "thiserror", +] + [[package]] name = "polkadot-primitives" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "frame-system", @@ -7205,8 +7321,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -7236,8 +7352,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-primitives", "bitvec", @@ -7271,6 +7387,7 @@ dependencies = [ "pallet-nicks", "pallet-offences", "pallet-offences-benchmarking", + "pallet-preimage", "pallet-proxy", "pallet-scheduler", "pallet-session", @@ -7288,6 +7405,7 @@ dependencies = [ "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", + "polkadot-runtime-constants", "polkadot-runtime-parachains", "rustc-hex", "scale-info", @@ -7318,8 +7436,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-primitives", "bitvec", @@ -7363,10 +7481,34 @@ dependencies = [ "xcm", ] +[[package]] +name = "polkadot-runtime-constants" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "frame-support", + "polkadot-primitives", + "polkadot-runtime-common", + "smallvec", + "sp-runtime", +] + +[[package]] +name = "polkadot-runtime-metrics" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "bs58", + "parity-scale-codec", + "polkadot-primitives", + "sp-std", + "sp-tracing", +] + [[package]] name = "polkadot-runtime-parachains" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitflags", "bitvec", @@ -7385,6 +7527,7 @@ dependencies = [ "pallet-vesting", "parity-scale-codec", "polkadot-primitives", + "polkadot-runtime-metrics", "rand 0.8.4", "rand_chacha 0.3.1", "rustc-hex", @@ -7405,8 +7548,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "beefy-gadget", @@ -7441,9 +7584,9 @@ dependencies = [ "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", - "polkadot-node-core-dispute-participation", "polkadot-node-core-parachains-inherent", "polkadot-node-core-provisioner", + "polkadot-node-core-pvf-checker", "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -7454,6 +7597,7 @@ dependencies = [ "polkadot-primitives", "polkadot-rpc", "polkadot-runtime", + "polkadot-runtime-constants", "polkadot-runtime-parachains", "polkadot-statement-distribution", "rococo-runtime", @@ -7504,8 +7648,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "arrayvec 0.5.2", "derive_more", @@ -7525,8 +7669,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7717,17 +7861,6 @@ dependencies = [ "cc", ] -[[package]] -name = "pwasm-utils" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "880b3384fb00b8f6ecccd5d358b93bd2201900ae3daad213791d1864f6441f5c" -dependencies = [ - "byteorder", - "log", - "parity-wasm 0.42.2", -] - [[package]] name = "quick-error" version = "1.2.3" @@ -7958,9 +8091,9 @@ dependencies = [ [[package]] name = "regalloc" -version = "0.0.32" +version = "0.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6304468554ed921da3d32c355ea107b8d13d7b8996c3adfb7aab48d3bc321f4" +checksum = "7d808cff91dfca7b239d40b972ba628add94892b1d9e19a842aedc5cfae8ab1a" dependencies = [ "log", "rustc-hash", @@ -8008,7 +8141,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "env_logger 0.9.0", "jsonrpsee", @@ -8120,8 +8253,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-primitives", "bp-messages", @@ -8168,6 +8301,7 @@ dependencies = [ "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", + "rococo-runtime-constants", "scale-info", "serde", "serde_derive", @@ -8193,30 +8327,25 @@ dependencies = [ ] [[package]] -name = "rpassword" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +name = "rococo-runtime-constants" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ - "libc", - "winapi 0.3.9", + "frame-support", + "polkadot-primitives", + "polkadot-runtime-common", + "smallvec", + "sp-runtime", ] [[package]] -name = "rsix" -version = "0.23.9" +name = "rpassword" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f64c5788d5aab8b75441499d99576a24eb09f76fb267b36fec7e3d970c66431" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" dependencies = [ - "bitflags", - "cc", - "errno", - "io-lifetimes", - "itoa 0.4.8", "libc", - "linux-raw-sys", - "once_cell", - "rustc_version 0.4.0", + "winapi 0.3.9", ] [[package]] @@ -8255,6 +8384,20 @@ dependencies = [ "semver 1.0.4", ] +[[package]] +name = "rustix" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2dcfc2778a90e38f56a708bfc90572422e11d6c7ee233d053d1f782cf9df6d2" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "winapi 0.3.9", +] + [[package]] name = "rustls" version = "0.19.1" @@ -8280,6 +8423,12 @@ dependencies = [ "security-framework", ] +[[package]] +name = "rustversion" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" + [[package]] name = "rw-stream-sink" version = "0.2.1" @@ -8318,7 +8467,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "sp-core", @@ -8329,12 +8478,12 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "ip_network", "libp2p", "log", @@ -8356,10 +8505,10 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "log", "parity-scale-codec", "sc-block-builder", @@ -8379,7 +8528,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8395,7 +8544,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.2", @@ -8412,7 +8561,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -8423,7 +8572,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "chrono", "fdlimit", @@ -8461,7 +8610,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "fnv", "futures 0.3.19", @@ -8489,7 +8638,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "hash-db", "kvdb", @@ -8514,11 +8663,11 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "libp2p", "log", "parking_lot 0.11.2", @@ -8538,7 +8687,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", @@ -8567,7 +8716,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", @@ -8610,7 +8759,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "derive_more", "futures 0.3.19", @@ -8634,7 +8783,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8647,17 +8796,16 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "log", "parity-scale-codec", "sc-client-api", "sc-consensus", "sc-telemetry", - "sp-api", "sp-arithmetic", "sp-blockchain", "sp-consensus", @@ -8673,7 +8821,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "sc-client-api", "sp-authorship", @@ -8684,11 +8832,12 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "lazy_static", "libsecp256k1", "log", + "lru 0.6.6", "parity-scale-codec", "parking_lot 0.11.2", "sc-executor-common", @@ -8711,25 +8860,25 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "derive_more", "environmental", "parity-scale-codec", - "pwasm-utils", "sc-allocator", "sp-core", "sp-maybe-compressed-blob", "sp-serializer", "sp-wasm-interface", "thiserror", + "wasm-instrument", "wasmi", ] [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "parity-scale-codec", @@ -8745,7 +8894,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8763,7 +8912,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", @@ -8771,12 +8920,13 @@ dependencies = [ "finality-grandpa", "fork-tree", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "log", "parity-scale-codec", "parking_lot 0.11.2", "rand 0.8.4", "sc-block-builder", + "sc-chain-spec", "sc-client-api", "sc-consensus", "sc-keystore", @@ -8800,7 +8950,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "derive_more", "finality-grandpa", @@ -8824,11 +8974,11 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "ansi_term", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "log", "parity-util-mem", "sc-client-api", @@ -8841,7 +8991,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", @@ -8856,7 +9006,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-std", "async-trait", @@ -8869,7 +9019,7 @@ dependencies = [ "fnv", "fork-tree", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "hex", "ip_network", "libp2p", @@ -8907,10 +9057,10 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "libp2p", "log", "lru 0.7.2", @@ -8923,12 +9073,12 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "bytes 1.1.0", "fnv", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "hex", "hyper", "hyper-rustls", @@ -8951,7 +9101,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "libp2p", @@ -8964,7 +9114,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8973,7 +9123,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "hash-db", @@ -9004,7 +9154,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "jsonrpc-core", @@ -9029,7 +9179,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "jsonrpc-core", @@ -9046,13 +9196,13 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "directories", "exit-future", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", @@ -9110,7 +9260,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "parity-scale-codec", @@ -9124,7 +9274,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -9146,7 +9296,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "chrono", "futures 0.3.19", @@ -9164,7 +9314,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "ansi_term", "atty", @@ -9195,7 +9345,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -9206,10 +9356,10 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", - "intervalier", + "futures-timer", "linked-hash-map", "log", "parity-scale-codec", @@ -9233,7 +9383,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "derive_more", "futures 0.3.19", @@ -9247,11 +9397,12 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "lazy_static", + "parking_lot 0.11.2", "prometheus", ] @@ -9498,6 +9649,17 @@ dependencies = [ "opaque-debug 0.3.0", ] +[[package]] +name = "sha2" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99c3bd8169c58782adad9290a9af5939994036b76187f7b4f0e6de91dbbfc0ec" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures 0.2.1", + "digest 0.10.2", +] + [[package]] name = "sha3" version = "0.9.1" @@ -9570,8 +9732,8 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slot-range-helper" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "enumn", "parity-scale-codec", @@ -9659,7 +9821,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "hash-db", "log", @@ -9676,7 +9838,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "blake2-rfc", "proc-macro-crate 1.1.0", @@ -9687,8 +9849,8 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -9700,8 +9862,8 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "integer-sqrt", "num-traits", @@ -9716,7 +9878,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -9729,7 +9891,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "parity-scale-codec", @@ -9741,7 +9903,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "sp-api", @@ -9753,7 +9915,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "log", @@ -9771,11 +9933,11 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "log", "parity-scale-codec", "sp-core", @@ -9790,7 +9952,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "parity-scale-codec", @@ -9808,7 +9970,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "merlin", @@ -9831,7 +9993,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -9843,7 +10005,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9854,8 +10016,8 @@ dependencies = [ [[package]] name = "sp-core" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "base58", "bitflags", @@ -9883,7 +10045,7 @@ dependencies = [ "schnorrkel", "secrecy", "serde", - "sha2 0.9.9", + "sha2 0.10.1", "sp-core-hashing", "sp-debug-derive", "sp-externalities", @@ -9902,12 +10064,12 @@ dependencies = [ [[package]] name = "sp-core-hashing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "blake2-rfc", "byteorder", - "sha2 0.9.9", + "sha2 0.10.1", "sp-std", "tiny-keccak", "twox-hash", @@ -9916,7 +10078,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro2", "quote", @@ -9927,7 +10089,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "kvdb", "parking_lot 0.11.2", @@ -9935,8 +10097,8 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro2", "quote", @@ -9945,8 +10107,8 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "0.10.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "environmental", "parity-scale-codec", @@ -9957,7 +10119,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "finality-grandpa", "log", @@ -9975,7 +10137,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9988,8 +10150,8 @@ dependencies = [ [[package]] name = "sp-io" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "hash-db", @@ -10012,19 +10174,19 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum", + "strum 0.22.0", ] [[package]] name = "sp-keystore" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "0.10.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", @@ -10041,7 +10203,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "zstd", ] @@ -10049,7 +10211,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -10064,7 +10226,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -10075,7 +10237,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "sp-api", "sp-core", @@ -10084,8 +10246,8 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "backtrace", "lazy_static", @@ -10095,7 +10257,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "rustc-hash", "serde", @@ -10104,8 +10266,8 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "either", "hash256-std-hasher", @@ -10126,8 +10288,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10143,8 +10305,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "Inflector", "proc-macro-crate 1.1.0", @@ -10156,7 +10318,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "serde", "serde_json", @@ -10165,7 +10327,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -10179,7 +10341,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -10189,8 +10351,8 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "0.10.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "hash-db", "log", @@ -10212,13 +10374,13 @@ dependencies = [ [[package]] name = "sp-std" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" [[package]] name = "sp-storage" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10231,7 +10393,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "sp-core", @@ -10244,10 +10406,10 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", - "futures-timer 3.0.2", + "futures-timer", "log", "parity-scale-codec", "sp-api", @@ -10259,8 +10421,8 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "sp-std", @@ -10272,7 +10434,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "sp-api", "sp-runtime", @@ -10281,7 +10443,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "log", @@ -10296,8 +10458,8 @@ dependencies = [ [[package]] name = "sp-trie" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "hash-db", "memory-db", @@ -10312,13 +10474,14 @@ dependencies = [ [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm 0.42.2", "scale-info", "serde", + "sp-core-hashing-proc-macro", "sp-runtime", "sp-std", "sp-version-proc-macro", @@ -10328,7 +10491,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10338,13 +10501,15 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "impl-trait-for-tuples", + "log", "parity-scale-codec", "sp-std", "wasmi", + "wasmtime", ] [[package]] @@ -10453,7 +10618,16 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" dependencies = [ - "strum_macros", + "strum_macros 0.22.0", +] + +[[package]] +name = "strum" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" +dependencies = [ + "strum_macros 0.23.1", ] [[package]] @@ -10468,6 +10642,19 @@ dependencies = [ "syn", ] +[[package]] +name = "strum_macros" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + [[package]] name = "substrate-bip39" version = "0.4.4" @@ -10484,7 +10671,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "platforms", ] @@ -10492,7 +10679,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.19", @@ -10514,7 +10701,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-std", "derive_more", @@ -10528,7 +10715,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "ansi_term", "build-helper", @@ -10883,7 +11070,7 @@ dependencies = [ "chrono", "lazy_static", "matchers", - "parking_lot 0.11.2", + "parking_lot 0.10.2", "regex", "serde", "serde_json", @@ -10898,12 +11085,12 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.22.6" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eac131e334e81b6b3be07399482042838adcd7957aa0010231d0813e39e02fa" +checksum = "d32d034c0d3db64b43c31de38e945f15b40cd4ca6d2dcfc26d4798ce8de4ab83" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.12.0", "log", "rustc-hex", "smallvec", @@ -10911,9 +11098,9 @@ dependencies = [ [[package]] name = "trie-root" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "652931506d2c1244d7217a70b99f56718a7b4161b37f04e7cd868072a99f68cd" +checksum = "9a36c5ca3911ed3c9a5416ee6c679042064b93fc637ded67e25f92e68d783891" dependencies = [ "hash-db", ] @@ -10970,7 +11157,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "jsonrpsee", "log", @@ -10989,6 +11176,7 @@ dependencies = [ "sp-state-machine", "sp-version", "structopt", + "zstd", ] [[package]] @@ -11003,7 +11191,7 @@ version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee73e6e4924fe940354b8d4d98cad5231175d615cd855b758adc658c0aac6a0" dependencies = [ - "cfg-if 1.0.0", + "cfg-if 0.1.10", "rand 0.8.4", "static_assertions", ] @@ -11299,6 +11487,15 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "wasm-instrument" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "962e5b0401bbb6c887f54e69b8c496ea36f704df65db73e81fd5ff8dc3e63a9f" +dependencies = [ + "parity-wasm 0.42.2", +] + [[package]] name = "wasm-timer" version = "0.2.5" @@ -11346,9 +11543,9 @@ checksum = "98930446519f63d00a836efdc22f67766ceae8dbcc1571379f2bcabc6b2b9abc" [[package]] name = "wasmtime" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "311d06b0c49346d1fbf48a17052e844036b95a7753c1afb34e8c0af3f6b5bb13" +checksum = "414be1bc5ca12e755ffd3ff7acc3a6d1979922f8237fc34068b2156cebcc3270" dependencies = [ "anyhow", "backtrace", @@ -11378,9 +11575,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147930a4995137dc096e5b17a573b446799be2bbaea433e821ce6a80abe2c5" +checksum = "8b9b4cd1949206fda9241faf8c460a7d797aa1692594d3dd6bc1cbfa57ee20d0" dependencies = [ "anyhow", "base64", @@ -11388,7 +11585,7 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rsix", + "rustix", "serde", "sha2 0.9.9", "toml", @@ -11398,9 +11595,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3083a47e1ede38aac06a1d9831640d673f9aeda0b82a64e4ce002f3432e2e7" +checksum = "a4693d33725773615a4c9957e4aa731af57b27dca579702d1d8ed5750760f1a9" dependencies = [ "anyhow", "cranelift-codegen", @@ -11408,7 +11605,7 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli 0.25.0", + "gimli", "log", "more-asserts", "object", @@ -11420,14 +11617,13 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c2d194b655321053bc4111a1aa4ead552655c8a17d17264bc97766e70073510" +checksum = "5b17e47116a078b9770e6fb86cff8b9a660826623cebcfff251b047c8d8993ef" dependencies = [ "anyhow", - "cfg-if 1.0.0", "cranelift-entity", - "gimli 0.25.0", + "gimli", "indexmap", "log", "more-asserts", @@ -11441,24 +11637,21 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864ac8dfe4ce310ac59f16fdbd560c257389cb009ee5d030ac6e30523b023d11" +checksum = "60ea5b380bdf92e32911400375aeefb900ac9d3f8e350bb6ba555a39315f2ee7" dependencies = [ - "addr2line 0.16.0", + "addr2line", "anyhow", "bincode", "cfg-if 1.0.0", - "gimli 0.25.0", - "log", - "more-asserts", + "gimli", "object", "region", - "rsix", + "rustix", "serde", "target-lexicon", "thiserror", - "wasmparser", "wasmtime-environ", "wasmtime-runtime", "winapi 0.3.9", @@ -11466,9 +11659,9 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab97da813a26b98c9abfd3b0c2d99e42f6b78b749c0646344e2e262d212d8c8b" +checksum = "abc7cd79937edd6e238b337608ebbcaf9c086a8457f01dfd598324f7fa56d81a" dependencies = [ "anyhow", "backtrace", @@ -11483,7 +11676,7 @@ dependencies = [ "more-asserts", "rand 0.8.4", "region", - "rsix", + "rustix", "thiserror", "wasmtime-environ", "winapi 0.3.9", @@ -11491,9 +11684,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff94409cc3557bfbbcce6b14520ccd6bd3727e965c0fe68d63ef2c185bf379c6" +checksum = "d9e5e51a461a2cf2b69e1fc48f325b17d78a8582816e18479e8ead58844b23f8" dependencies = [ "cranelift-entity", "serde", @@ -11541,8 +11734,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-primitives", "bitvec", @@ -11575,6 +11768,7 @@ dependencies = [ "pallet-nicks", "pallet-offences", "pallet-offences-benchmarking", + "pallet-preimage", "pallet-proxy", "pallet-recovery", "pallet-scheduler", @@ -11618,11 +11812,24 @@ dependencies = [ "sp-transaction-pool", "sp-version", "substrate-wasm-builder", + "westend-runtime-constants", "xcm", "xcm-builder", "xcm-executor", ] +[[package]] +name = "westend-runtime-constants" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "frame-support", + "polkadot-primitives", + "polkadot-runtime-common", + "smallvec", + "sp-runtime", +] + [[package]] name = "which" version = "4.2.4" @@ -11730,8 +11937,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11743,8 +11950,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-support", "frame-system", @@ -11763,8 +11970,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-benchmarking", "frame-support", @@ -11782,8 +11989,9 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ + "Inflector", "proc-macro2", "quote", "syn", @@ -11791,8 +11999,8 @@ dependencies = [ [[package]] name = "xcm-simulator" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot.git?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-support", "parity-scale-codec", diff --git a/pallets/asset-manager/Cargo.toml b/pallets/asset-manager/Cargo.toml index f5f135d74..e1466c848 100644 --- a/pallets/asset-manager/Cargo.toml +++ b/pallets/asset-manager/Cargo.toml @@ -13,19 +13,19 @@ repository = 'https://github.com/Manta-Network/Manta/' codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false } # scale-info has to be 1.0 for now scale-info = { version = "1.0", default-features = false, features = ["derive"] } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15", default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.15", default-features = false, optional = true } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16", default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.16", default-features = false, optional = true } manta-primitives = { path = '../../runtime/primitives', default-features = false} [dev-dependencies] -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -pallet-balances = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.15" } -pallet-assets = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.15" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -xcm = { git = 'https://github.com/paritytech/polkadot.git', branch = "release-v0.9.15" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +pallet-balances = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.16" } +pallet-assets = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.16" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +xcm = { git = 'https://github.com/paritytech/polkadot.git', branch = "release-v0.9.16" } [features] default = ["std"] diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index a7a2180a4..e35ce7a86 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -49,6 +49,7 @@ pub mod pallet { #[pallet::pallet] #[pallet::generate_store(pub(super) trait Store)] + #[pallet::without_storage_info] pub struct Pallet(_); /// The AssetManagers's pallet id diff --git a/pallets/asset-manager/src/mock.rs b/pallets/asset-manager/src/mock.rs new file mode 100644 index 000000000..d553f232f --- /dev/null +++ b/pallets/asset-manager/src/mock.rs @@ -0,0 +1,200 @@ +// Copyright 2020-2022 Manta Network. +// This file is part of Manta. +// +// Manta 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. +// +// Manta 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 Manta. If not, see . +// +// The pallet-tx-pause pallet is forked from Acala's transaction-pause module https://github.com/AcalaNetwork/Acala/tree/master/modules/transaction-pause +// The original license is the following - SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +//! Mock runtime for asset-manager + +use super::*; +use crate as pallet_asset_manager; +use frame_system as system; +use frame_support::{ + construct_runtime, parameter_types, traits::ConstU32}; +use frame_system::EnsureRoot; +use sp_core::H256; +use sp_runtime::{ + testing::{Header}, + traits::{BlakeTwo256, IdentityLookup}, +}; +use manta_primitives::{AccountId, AssetId, AssetLocation, Balance, + AssetRegistarMetadata, AssetStorageMetadata, ASSET_STRING_LIMIT}; + + +parameter_types! { + pub const BlockHashCount: u64 = 250; + pub const SS58Prefix: u8 = 78; +} + +impl system::Config for Runtime { + type BaseCallFilter = frame_support::traits::Everything; + type BlockWeights = (); + type BlockLength = (); + type DbWeight = (); + type Origin = Origin; + type Call = Call; + type Index = u64; + type BlockNumber = u64; + type Hash = H256; + type Hashing = BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type Header = Header; + type Event = Event; + type BlockHashCount = BlockHashCount; + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type SystemWeightInfo = (); + type SS58Prefix = SS58Prefix; + type OnSetCode = (); + type MaxConsumers = ConstU32<16>; +} + +parameter_types! { + pub const AssetDeposit: Balance = 0; // Does not really matter as this will be only called by root + pub const AssetAccountDeposit: Balance = 0; + pub const ApprovalDeposit: Balance = 0; + pub const AssetsStringLimit: u32 = ASSET_STRING_LIMIT; + pub const MetadataDepositBase: Balance = 0; + pub const MetadataDepositPerByte: Balance = 0; +} + +impl pallet_assets::Config for Runtime { + type Event = Event; + type Balance = Balance; + type AssetId = AssetId; + type Currency = Balances; + type ForceOrigin = EnsureRoot; + type AssetDeposit = AssetDeposit; + type AssetAccountDeposit = AssetAccountDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type WeightInfo = (); +} + +parameter_types! { + pub ExistentialDeposit: Balance = 1; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type Event = Event; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; +} + +pub struct AssetRegistrar; +use frame_support::pallet_prelude::DispatchResult; +impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { + fn create_asset( + asset_id: AssetId, + min_balance: Balance, + metadata: AssetStorageMetadata, + is_sufficient: bool, + ) -> DispatchResult { + Assets::force_create( + Origin::root(), + asset_id, + AssetManager::account_id(), + is_sufficient, + min_balance, + )?; + + Assets::force_set_metadata( + Origin::root(), + asset_id, + metadata.name, + metadata.symbol, + metadata.decimals, + metadata.is_frozen, + ) + } + + fn update_asset_metadata( + asset_id: AssetId, + metadata: AssetStorageMetadata, + ) -> DispatchResult { + Assets::force_set_metadata( + Origin::root(), + asset_id, + metadata.name, + metadata.symbol, + metadata.decimals, + metadata.is_frozen, + ) + } +} + +impl AssetMetadata for AssetRegistarMetadata { + fn min_balance(&self) -> Balance { + self.min_balance + } + + fn is_sufficient(&self) -> bool { + self.is_sufficient + } + +} + +impl pallet_asset_manager::Config for Runtime { + type Event = Event; + type Balance = Balance; + type AssetId = AssetId; + type AssetRegistrarMetadata = AssetRegistarMetadata; + type StorageMetadata = AssetStorageMetadata; + type AssetLocation = AssetLocation; + type AssetRegistrar = AssetRegistrar; + type ModifierOrigin = EnsureRoot; +} + +type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; +type Block = frame_system::mocking::MockBlock; + +construct_runtime!( + pub enum Runtime where + Block = Block, + NodeBlock = Block, + UncheckedExtrinsic = UncheckedExtrinsic, + { + System: frame_system::{Pallet, Call, Storage, Config, Event} = 0, + Assets: pallet_assets::{Pallet, Storage, Event} = 1, + AssetManager: pallet_asset_manager::{Pallet, Call, Storage, Event} = 2, + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 3, + } +); + +pub const PALLET_BALANCES_INDEX:u8 = 3; + +pub fn new_test_ext() -> sp_io::TestExternalities{ + let t = frame_system::GenesisConfig::default() + .build_storage::() + .unwrap(); + sp_io::TestExternalities::new(t) +} diff --git a/pallets/asset-manager/src/tests.rs b/pallets/asset-manager/src/tests.rs new file mode 100644 index 000000000..2c04f30b5 --- /dev/null +++ b/pallets/asset-manager/src/tests.rs @@ -0,0 +1,185 @@ +// Copyright 2020-2022 Manta Network. +// This file is part of Manta. +// +// Manta 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. +// +// Manta 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 Manta. If not, see . +// +// The pallet-tx-pause pallet is forked from Acala's transaction-pause module https://github.com/AcalaNetwork/Acala/tree/master/modules/transaction-pause +// The original license is the following - SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +//! unit tests for asset-manager + +use crate::{self as asset_manager, AssetIdLocation}; +use asset_manager::mock::*; +use frame_support::{assert_noop, assert_ok}; +use sp_runtime::traits::BadOrigin; +use manta_primitives::{AssetRegistarMetadata, AssetLocation}; +use xcm::{latest::prelude::*, VersionedMultiLocation}; + +#[test] +fn basic_setup_should_work(){ + new_test_ext().execute_with(||{ + assert!(AssetIdLocation::::iter_values().next().is_none()) + }); +} + +#[test] +fn wrong_modifer_origin_should_not_work(){ + new_test_ext().execute_with(||{ + let asset_metadata = AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + assert_noop!( + AssetManager::register_asset( + Origin::signed([0u8; 32].into()), + source_location.clone(), + asset_metadata.clone()), + BadOrigin + ); + assert_noop!( + AssetManager::update_asset_location( + Origin::signed([2u8; 32].into()), + 0, + source_location), + BadOrigin + ); + assert_noop!( + AssetManager::update_asset_metadata( + Origin::signed([3u8; 32].into()), + 0, + asset_metadata), + BadOrigin + ); + assert_noop!( + AssetManager::set_units_per_second( + Origin::signed([4u8; 32].into()), + 0, + 0), + BadOrigin + ); + }) +} + +#[test] +fn register_asset_should_work(){ + let asset_metadata = AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + let new_location = AssetLocation(VersionedMultiLocation::V1( + MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))))); + new_test_ext().execute_with(||{ + let mut counter: u32 = 0; + // Register relay chain native token + assert_ok!(AssetManager::register_asset( + Origin::root(), + source_location.clone(), + asset_metadata.clone())); + assert_eq!( + AssetIdLocation::::get(counter), + Some(source_location.clone()) + ); + counter += 1; + // Register twice will fail + assert_noop!( + AssetManager::register_asset( + Origin::root(), + source_location, + asset_metadata.clone()), + crate::Error::::LocationAlreadyExists); + // Register a new asset + assert_ok!(AssetManager::register_asset( + Origin::root(), + new_location.clone(), + asset_metadata.clone())); + assert_eq!( + AssetIdLocation::::get(counter), + Some(new_location) + ); + }) +} + +#[test] +fn update_asset(){ + let asset_metadata = AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + let mut new_metadata = asset_metadata.clone(); + new_metadata.is_frozen = true; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + let new_location = AssetLocation(VersionedMultiLocation::V1( + MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))))); + new_test_ext().execute_with(||{ + // Register relay chain native token + assert_ok!(AssetManager::register_asset( + Origin::root(), + source_location.clone(), + asset_metadata.clone())); + assert_eq!( + AssetIdLocation::::get(0), + Some(source_location.clone()) + ); + // Update the asset metadata + assert_ok!(AssetManager::update_asset_metadata( + Origin::root(), + 0, + new_metadata.clone())); + // Update the asset location + assert_ok!(AssetManager::update_asset_location( + Origin::root(), + 0, + new_location.clone())); + // Update a non-exist asset should fail + assert_noop!(AssetManager::update_asset_location( + Origin::root(), + 1, + new_location.clone()), + crate::Error::::UpdateNonExistAsset + ); + assert_noop!(AssetManager::update_asset_metadata( + Origin::root(), + 1, + new_metadata.clone()), + crate::Error::::UpdateNonExistAsset + ); + // Update an asset to an existing location will fail + assert_ok!(AssetManager::register_asset( + Origin::root(), + source_location.clone(), + asset_metadata.clone())); + assert_noop!(AssetManager::update_asset_location( + Origin::root(), + 1, + new_location), + crate::Error::::LocationAlreadyExists); + }) +} diff --git a/runtime/calamari/Cargo.toml b/runtime/calamari/Cargo.toml index 3b3cc3e47..8edf60f46 100644 --- a/runtime/calamari/Cargo.toml +++ b/runtime/calamari/Cargo.toml @@ -39,7 +39,6 @@ frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate. frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.16" } # Substrate pallets -<<<<<<< HEAD pallet-aura = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } pallet-authorship = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } pallet-balances = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } @@ -56,24 +55,6 @@ pallet-democracy = { git = "https://github.com/paritytech/substrate.git", defaul pallet-scheduler = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.16" } pallet-membership = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.16" } pallet-treasury = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.16" } -======= -pallet-assets = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } -pallet-aura = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } -pallet-authorship = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } -pallet-balances = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } -pallet-multisig = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } -pallet-session = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } -pallet-sudo = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } -pallet-timestamp = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } -pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } -pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } -pallet-utility = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.15" } -pallet-collective = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.15" } -pallet-democracy = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.15" } -pallet-scheduler = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.15" } -pallet-membership = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.15" } -pallet-treasury = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.15" } ->>>>>>> a703f7d (update to v0.9.15) # Cumulus dependencies cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus.git', default-features = false, branch = "polkadot-v0.9.16" } @@ -89,7 +70,6 @@ parachain-info = { git = 'https://github.com/paritytech/cumulus.git', default-fe # Polkadot dependencies polkadot-primitives = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } -polkadot-core-primitives = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } polkadot-runtime-common = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } polkadot-parachain = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } xcm = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } @@ -97,19 +77,13 @@ xcm-builder = { git = 'https://github.com/paritytech/polkadot.git', default-feat xcm-executor = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } pallet-xcm = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } -# Third party (vendored) dependencies -orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-library.git", default-features = false, branch = "polkadot-v0.9.15"} - # Self dependencies manta-primitives = { path = '../primitives', default-features = false } calamari-vesting = { path = '../../pallets/vesting', default-features = false } manta-collator-selection = { path = '../../pallets/collator-selection', default-features = false } pallet-tx-pause = { path = '../../pallets/tx-pause', default-features = false } -pallet-asset-manager = { path = '../../pallets/asset-manager', default-features = false } [dev-dependencies] -xcm-simulator = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.15"} -polkadot-runtime-parachains = { git = 'https://github.com/paritytech/polkadot.git', branch = "release-v0.9.15" } serde_json = "1.0" reqwest = { version = "0.11", features = ["blocking"] } @@ -172,7 +146,6 @@ std = [ 'frame-system/std', 'frame-system-rpc-runtime-api/std', 'frame-try-runtime/std', - 'pallet-asset-manager/std', 'pallet-authorship/std', 'pallet-balances/std', 'pallet-multisig/std', @@ -189,7 +162,6 @@ std = [ 'pallet-democracy/std', 'pallet-scheduler/std', 'pallet-membership/std', - 'orml-xtokens/std', 'manta-primitives/std', 'parachain-info/std', "cumulus-pallet-aura-ext/std", diff --git a/runtime/dolphin/Cargo.toml b/runtime/dolphin/Cargo.toml index 2cedecbdd..c7cc88fd7 100644 --- a/runtime/dolphin/Cargo.toml +++ b/runtime/dolphin/Cargo.toml @@ -39,6 +39,7 @@ frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate. frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.16" } # Substrate pallets +pallet-assets = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } pallet-aura = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } pallet-authorship = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } pallet-balances = { git = 'https://github.com/paritytech/substrate.git', default-features = false, branch = "polkadot-v0.9.16" } @@ -70,6 +71,7 @@ parachain-info = { git = 'https://github.com/paritytech/cumulus.git', default-fe # Polkadot dependencies polkadot-primitives = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } +polkadot-core-primitives = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } polkadot-runtime-common = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } polkadot-parachain = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } xcm = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16" } @@ -81,6 +83,14 @@ pallet-xcm = { git = 'https://github.com/paritytech/polkadot.git', default-featu manta-primitives = { path = '../primitives', default-features = false } manta-collator-selection = { path = '../../pallets/collator-selection', default-features = false } pallet-tx-pause = { path = '../../pallets/tx-pause', default-features = false } +pallet-asset-manager = { path = '../../pallets/asset-manager', default-features = false } + +# Third party (vendored) dependencies +orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-library.git", default-features = false, rev = "4a66b29"} + +[dev-dependencies] +xcm-simulator = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16"} +polkadot-runtime-parachains = { git = 'https://github.com/paritytech/polkadot.git', branch = "release-v0.9.16" } [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] @@ -168,6 +178,8 @@ std = [ 'xcm-executor/std', 'polkadot-runtime-common/std', 'polkadot-primitives/std', + 'orml-xtokens/std', + 'pallet-asset-manager/std', 'manta-collator-selection/std', 'pallet-tx-pause/std', 'pallet-treasury/std', diff --git a/runtime/calamari/tests/xcm_mock/mod.rs b/runtime/dolphin/tests/xcm_mock/mod.rs similarity index 100% rename from runtime/calamari/tests/xcm_mock/mod.rs rename to runtime/dolphin/tests/xcm_mock/mod.rs diff --git a/runtime/calamari/tests/xcm_mock/parachain.rs b/runtime/dolphin/tests/xcm_mock/parachain.rs similarity index 98% rename from runtime/calamari/tests/xcm_mock/parachain.rs rename to runtime/dolphin/tests/xcm_mock/parachain.rs index d0f94995d..3de0eb135 100644 --- a/runtime/calamari/tests/xcm_mock/parachain.rs +++ b/runtime/dolphin/tests/xcm_mock/parachain.rs @@ -19,7 +19,7 @@ use codec::{Decode, Encode}; use frame_support::{ construct_runtime, parameter_types, - traits::{Everything, Nothing, PalletInfo as PalletInfoTrait}, + traits::{Everything, Nothing, PalletInfo as PalletInfoTrait, ConstU32}, weights::{constants::WEIGHT_PER_SECOND, Weight}, }; use frame_system::EnsureRoot; @@ -81,6 +81,7 @@ impl frame_system::Config for Runtime { type SystemWeightInfo = (); type SS58Prefix = (); type OnSetCode = (); + type MaxConsumers = ConstU32<16>; } parameter_types! { @@ -122,6 +123,7 @@ parameter_types! { parameter_types! { pub const AssetDeposit: Balance = 0; // Does not really matter as this will be only called by root + pub const AssetAccountDeposit: Balance = 0; pub const ApprovalDeposit: Balance = 0; pub const AssetsStringLimit: u32 = 50; pub const MetadataDepositBase: Balance = 0; @@ -135,6 +137,7 @@ impl pallet_assets::Config for Runtime { type Currency = Balances; type ForceOrigin = EnsureRoot; type AssetDeposit = AssetDeposit; + type AssetAccountDeposit = AssetAccountDeposit; type MetadataDepositBase = MetadataDepositBase; type MetadataDepositPerByte = MetadataDepositPerByte; type ApprovalDeposit = ApprovalDeposit; @@ -320,8 +323,10 @@ pub mod mock_msg_queue { #[pallet::call] impl Pallet {} + // without storage info is a work around #[pallet::pallet] #[pallet::generate_store(pub(super) trait Store)] + #[pallet::without_storage_info] pub struct Pallet(_); #[pallet::storage] @@ -573,6 +578,7 @@ parameter_types! { Parachain(MsgQueue::parachain_id().into()) ) }; + pub const MaxAssetsForTransfer: usize = 2; } // The XCM message wrapper wrapper @@ -588,6 +594,7 @@ impl orml_xtokens::Config for Runtime { type Weigher = xcm_builder::FixedWeightBounds; type BaseXcmWeight = BaseXcmWeight; type LocationInverter = LocationInverter; + type MaxAssetsForTransfer = MaxAssetsForTransfer; } type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; diff --git a/runtime/calamari/tests/xcm_mock/relay_chain.rs b/runtime/dolphin/tests/xcm_mock/relay_chain.rs similarity index 98% rename from runtime/calamari/tests/xcm_mock/relay_chain.rs rename to runtime/dolphin/tests/xcm_mock/relay_chain.rs index a168cc9f0..63a22aed5 100644 --- a/runtime/calamari/tests/xcm_mock/relay_chain.rs +++ b/runtime/dolphin/tests/xcm_mock/relay_chain.rs @@ -18,7 +18,7 @@ use frame_support::{ construct_runtime, parameter_types, - traits::{Everything, Nothing}, + traits::{Everything, Nothing, ConstU32}, weights::Weight, }; use sp_core::H256; @@ -67,6 +67,7 @@ impl frame_system::Config for Runtime { type SystemWeightInfo = (); type SS58Prefix = (); type OnSetCode = (); + type MaxConsumers = ConstU32<16>; } parameter_types! { diff --git a/runtime/calamari/tests/xcm_tests.rs b/runtime/dolphin/tests/xcm_tests.rs similarity index 100% rename from runtime/calamari/tests/xcm_tests.rs rename to runtime/dolphin/tests/xcm_tests.rs From b8417f6b6cdea360bd91408a9a6a78a0c2396380 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Thu, 17 Feb 2022 18:06:25 -0700 Subject: [PATCH 21/33] tweak --- runtime/dolphin/tests/xcm_tests.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/runtime/dolphin/tests/xcm_tests.rs b/runtime/dolphin/tests/xcm_tests.rs index 55c7ecc60..b161be261 100644 --- a/runtime/dolphin/tests/xcm_tests.rs +++ b/runtime/dolphin/tests/xcm_tests.rs @@ -288,6 +288,12 @@ fn send_para_a_asset_to_para_b() { // ParaA balance location let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X1( + Parachain(1), + ), + ))); + let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, X2( Parachain(1), @@ -311,7 +317,7 @@ fn send_para_a_asset_to_para_b() { ParaB::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - source_location.clone(), + source_location_reanchored.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -321,7 +327,7 @@ fn send_para_a_asset_to_para_b() { )); assert_eq!( Some(a_currency_id), - AssetManager::location_asset_id(source_location.clone()) + AssetManager::location_asset_id(source_location_reanchored.clone()) ); }); From 0a1a07f41f5ad41c3d93c3ade070ee113ac93ca6 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Fri, 18 Feb 2022 13:17:19 -0700 Subject: [PATCH 22/33] parachain asset transfer under reanchoring --- Cargo.lock | 8 ++++---- runtime/dolphin/Cargo.toml | 2 +- runtime/dolphin/tests/xcm_mock/parachain.rs | 14 +++----------- runtime/dolphin/tests/xcm_tests.rs | 12 ++---------- 4 files changed, 10 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e23776dcb..ad75d3631 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5214,7 +5214,7 @@ dependencies = [ [[package]] name = "orml-traits" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#e0f60ae949b552fbfefd70bff0a3909b0eee15b7" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -5232,7 +5232,7 @@ dependencies = [ [[package]] name = "orml-utilities" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#e0f60ae949b552fbfefd70bff0a3909b0eee15b7" dependencies = [ "frame-support", "parity-scale-codec", @@ -5246,7 +5246,7 @@ dependencies = [ [[package]] name = "orml-xcm-support" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#e0f60ae949b552fbfefd70bff0a3909b0eee15b7" dependencies = [ "frame-support", "orml-traits", @@ -5260,7 +5260,7 @@ dependencies = [ [[package]] name = "orml-xtokens" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#e0f60ae949b552fbfefd70bff0a3909b0eee15b7" dependencies = [ "cumulus-primitives-core", "frame-support", diff --git a/runtime/dolphin/Cargo.toml b/runtime/dolphin/Cargo.toml index c7cc88fd7..9ac70dc0a 100644 --- a/runtime/dolphin/Cargo.toml +++ b/runtime/dolphin/Cargo.toml @@ -86,7 +86,7 @@ pallet-tx-pause = { path = '../../pallets/tx-pause', default-features = false } pallet-asset-manager = { path = '../../pallets/asset-manager', default-features = false } # Third party (vendored) dependencies -orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-library.git", default-features = false, rev = "4a66b29"} +orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-library.git", default-features = false, branch = "stechu-update-reserve-check"} [dev-dependencies] xcm-simulator = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16"} diff --git a/runtime/dolphin/tests/xcm_mock/parachain.rs b/runtime/dolphin/tests/xcm_mock/parachain.rs index 3de0eb135..1bf5bbace 100644 --- a/runtime/dolphin/tests/xcm_mock/parachain.rs +++ b/runtime/dolphin/tests/xcm_mock/parachain.rs @@ -113,11 +113,8 @@ parameter_types! { pub Ancestry: MultiLocation = Parachain(MsgQueue::parachain_id().into()).into(); // This self reserve only works for pre-v0.9.16 pub SelfReserve: MultiLocation = MultiLocation { - parents:1, - interior: Junctions::X2( - Parachain(MsgQueue::parachain_id().into()), - PalletInstance(::PalletInfo::index::().unwrap() as u8) - ) + parents:0, + interior: Junctions::Here }; } @@ -572,12 +569,7 @@ where parameter_types! { pub const BaseXcmWeight: Weight = 100; - pub SelfLocation: MultiLocation = MultiLocation { - parents:1, - interior: Junctions::X1( - Parachain(MsgQueue::parachain_id().into()) - ) - }; + pub SelfLocation: MultiLocation = MultiLocation::here(); pub const MaxAssetsForTransfer: usize = 2; } diff --git a/runtime/dolphin/tests/xcm_tests.rs b/runtime/dolphin/tests/xcm_tests.rs index b161be261..fecde7bad 100644 --- a/runtime/dolphin/tests/xcm_tests.rs +++ b/runtime/dolphin/tests/xcm_tests.rs @@ -287,18 +287,10 @@ fn send_para_a_asset_to_para_b() { MockNet::reset(); // ParaA balance location - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( - 1, - X1( - Parachain(1), - ), - ))); + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, - X2( - Parachain(1), - PalletInstance(parachain::PALLET_BALANCES_INDEX), - ), + X1(Parachain(1)), ))); let a_currency_id = 0u32; let amount = 100u128; From 072c7f52349e071ce8db46331d7285b031329fd8 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Fri, 18 Feb 2022 14:12:37 -0700 Subject: [PATCH 23/33] update the xcm code to adapt reanchoring logic --- runtime/dolphin/tests/xcm_mock/parachain.rs | 4 +- runtime/dolphin/tests/xcm_tests.rs | 93 ++++++++++++--------- 2 files changed, 55 insertions(+), 42 deletions(-) diff --git a/runtime/dolphin/tests/xcm_mock/parachain.rs b/runtime/dolphin/tests/xcm_mock/parachain.rs index 1bf5bbace..8fffa5017 100644 --- a/runtime/dolphin/tests/xcm_mock/parachain.rs +++ b/runtime/dolphin/tests/xcm_mock/parachain.rs @@ -19,7 +19,7 @@ use codec::{Decode, Encode}; use frame_support::{ construct_runtime, parameter_types, - traits::{Everything, Nothing, PalletInfo as PalletInfoTrait, ConstU32}, + traits::{Everything, Nothing, ConstU32}, weights::{constants::WEIGHT_PER_SECOND, Weight}, }; use frame_system::EnsureRoot; @@ -610,8 +610,6 @@ construct_runtime!( } ); -pub const PALLET_BALANCES_INDEX: u8 = 3u8; - pub(crate) fn para_events() -> Vec { System::events() .into_iter() diff --git a/runtime/dolphin/tests/xcm_tests.rs b/runtime/dolphin/tests/xcm_tests.rs index fecde7bad..04c3b944c 100644 --- a/runtime/dolphin/tests/xcm_tests.rs +++ b/runtime/dolphin/tests/xcm_tests.rs @@ -4,7 +4,7 @@ use codec::Encode; use frame_support::{assert_ok, weights::constants::WEIGHT_PER_SECOND}; use manta_primitives::AssetLocation; use xcm::{latest::prelude::*, v2::Response, VersionedMultiLocation, WrapVersion}; -use xcm_mock::{parachain::PALLET_BALANCES_INDEX, *}; +use xcm_mock::*; use xcm_simulator::TestExt; use crate::xcm_mock::parachain::AssetManager; @@ -384,9 +384,10 @@ fn send_para_a_asset_para_b_and_then_send_back() { MockNet::reset(); // para a asset location - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); + let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, - X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX)), + X1(Parachain(1)), ))); // a's currency id in para a, para b, and para c let a_currency_id = 0u32; @@ -402,7 +403,7 @@ fn send_para_a_asset_para_b_and_then_send_back() { is_sufficient: false, }; - // register a_currency in ParaA, ParaB and ParaC + // register a_currency in ParaA, ParaB ParaA::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), @@ -424,7 +425,7 @@ fn send_para_a_asset_para_b_and_then_send_back() { ParaB::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - source_location.clone(), + source_location_reanchored.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -434,7 +435,7 @@ fn send_para_a_asset_para_b_and_then_send_back() { )); assert_eq!( Some(a_currency_id), - parachain::AssetManager::location_asset_id(source_location.clone()) + parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) ); }); @@ -508,10 +509,11 @@ fn send_para_a_asset_para_b_and_then_send_back() { fn send_para_a_asset_from_para_b_to_para_c() { MockNet::reset(); - // source location of para a asset - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + // para a asset location + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); + let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, - X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX)), + X1(Parachain(1)), ))); let a_currency_id = 0u32; let amount = 888u128; @@ -548,7 +550,7 @@ fn send_para_a_asset_from_para_b_to_para_c() { ParaB::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - source_location.clone(), + source_location_reanchored.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -558,14 +560,14 @@ fn send_para_a_asset_from_para_b_to_para_c() { )); assert_eq!( Some(a_currency_id), - parachain::AssetManager::location_asset_id(source_location.clone()) + parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) ); }); ParaC::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - source_location.clone(), + source_location_reanchored.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -575,7 +577,7 @@ fn send_para_a_asset_from_para_b_to_para_c() { )); assert_eq!( Some(a_currency_id), - parachain::AssetManager::location_asset_id(source_location.clone()) + parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) ); }); @@ -718,9 +720,12 @@ fn receive_relay_asset_with_trader() { fn send_para_a_asset_to_para_b_with_trader_and_fee() { MockNet::reset(); - let para_a_balances = - MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); - let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); + // para a balance location + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); + let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X1(Parachain(1)), + ))); let a_currency_id = 0u32; let amount = 222u128; let units_per_second = 1_250_000u128; @@ -760,7 +765,7 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { ParaB::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - source_location.clone(), + source_location_reanchored.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -770,7 +775,7 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { )); assert_eq!( Some(a_currency_id), - AssetManager::location_asset_id(source_location.clone()) + AssetManager::location_asset_id(source_location_reanchored.clone()) ); }); @@ -813,10 +818,11 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { fn send_para_a_asset_from_para_b_to_para_c_with_trader() { MockNet::reset(); - // source location of para a asset - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + // para a balance location + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); + let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, - X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX)), + X1(Parachain(1)), ))); let a_currency_id = 0u32; let mut amount = 888u128; @@ -859,7 +865,7 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { ParaB::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - source_location.clone(), + source_location_reanchored.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -869,14 +875,14 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { )); assert_eq!( Some(a_currency_id), - parachain::AssetManager::location_asset_id(source_location.clone()) + parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) ); }); ParaC::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - source_location.clone(), + source_location_reanchored.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -886,7 +892,7 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { )); assert_eq!( Some(a_currency_id), - parachain::AssetManager::location_asset_id(source_location.clone()) + parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) ); }); @@ -1082,9 +1088,12 @@ fn receive_relay_should_fail_without_specifying_units_per_second() { fn send_para_a_asset_to_para_b_with_insufficient_fee() { MockNet::reset(); - let para_a_balances = - MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); - let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); + // para a balance location + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); + let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X1(Parachain(1)), + ))); let a_currency_id = 0u32; let amount = 15u128; let units_per_second = 20_000_000u128; @@ -1125,7 +1134,7 @@ fn send_para_a_asset_to_para_b_with_insufficient_fee() { ParaB::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - source_location.clone(), + source_location_reanchored.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -1135,7 +1144,7 @@ fn send_para_a_asset_to_para_b_with_insufficient_fee() { )); assert_eq!( Some(a_currency_id), - AssetManager::location_asset_id(source_location.clone()) + AssetManager::location_asset_id(source_location_reanchored.clone()) ); }); @@ -1175,9 +1184,12 @@ fn send_para_a_asset_to_para_b_with_insufficient_fee() { fn send_para_a_asset_to_para_b_without_specifying_units_per_second() { MockNet::reset(); - let para_a_balances = - MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); - let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); + // para a balance location + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); + let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X1(Parachain(1)), + ))); let a_currency_id = 0u32; let amount = 567u128; let dest_weight = 800_000u64; @@ -1216,12 +1228,12 @@ fn send_para_a_asset_to_para_b_without_specifying_units_per_second() { ParaB::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - source_location.clone(), + source_location_reanchored.clone(), asset_metadata.clone() )); assert_eq!( Some(a_currency_id), - AssetManager::location_asset_id(source_location.clone()) + AssetManager::location_asset_id(source_location_reanchored.clone()) ); }); @@ -1647,9 +1659,12 @@ fn test_versioning_on_runtime_upgrade_with_relay() { fn test_automatic_versioning_on_runtime_upgrade_with_para_b() { MockNet::reset(); - let para_a_balances = - MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))); - let source_location = AssetLocation(VersionedMultiLocation::V1(para_a_balances)); + // para a balance location + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); + let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X1(Parachain(1)), + ))); let a_currency_id = 0u32; let asset_metadata = parachain::AssetRegistarMetadata { @@ -1699,7 +1714,7 @@ fn test_automatic_versioning_on_runtime_upgrade_with_para_b() { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - source_location, + source_location_reanchored, asset_metadata )); assert_ok!(AssetManager::set_units_per_second( From ce7126eed6e77a73ac5d7f88fdae2eced3ad1695 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 20 Feb 2022 19:47:17 -0700 Subject: [PATCH 24/33] make self-reserve works of customized asset --- Cargo.lock | 8 +- runtime/dolphin/tests/xcm_mock/parachain.rs | 2 + runtime/dolphin/tests/xcm_tests.rs | 127 ++++++++++++++++++-- 3 files changed, 126 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ad75d3631..db43f4a97 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5214,7 +5214,7 @@ dependencies = [ [[package]] name = "orml-traits" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#e0f60ae949b552fbfefd70bff0a3909b0eee15b7" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#0adbaa5a12f82d1a901a6f3b3d8e77b7dda1afb4" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -5232,7 +5232,7 @@ dependencies = [ [[package]] name = "orml-utilities" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#e0f60ae949b552fbfefd70bff0a3909b0eee15b7" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#0adbaa5a12f82d1a901a6f3b3d8e77b7dda1afb4" dependencies = [ "frame-support", "parity-scale-codec", @@ -5246,7 +5246,7 @@ dependencies = [ [[package]] name = "orml-xcm-support" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#e0f60ae949b552fbfefd70bff0a3909b0eee15b7" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#0adbaa5a12f82d1a901a6f3b3d8e77b7dda1afb4" dependencies = [ "frame-support", "orml-traits", @@ -5260,7 +5260,7 @@ dependencies = [ [[package]] name = "orml-xtokens" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#e0f60ae949b552fbfefd70bff0a3909b0eee15b7" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#0adbaa5a12f82d1a901a6f3b3d8e77b7dda1afb4" dependencies = [ "cumulus-primitives-core", "frame-support", diff --git a/runtime/dolphin/tests/xcm_mock/parachain.rs b/runtime/dolphin/tests/xcm_mock/parachain.rs index 8fffa5017..5210d720d 100644 --- a/runtime/dolphin/tests/xcm_mock/parachain.rs +++ b/runtime/dolphin/tests/xcm_mock/parachain.rs @@ -592,6 +592,8 @@ impl orml_xtokens::Config for Runtime { type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; +pub const PALLET_ASSET_INDEX: u8 = 1; + construct_runtime!( pub enum Runtime where Block = Block, diff --git a/runtime/dolphin/tests/xcm_tests.rs b/runtime/dolphin/tests/xcm_tests.rs index 04c3b944c..75213209b 100644 --- a/runtime/dolphin/tests/xcm_tests.rs +++ b/runtime/dolphin/tests/xcm_tests.rs @@ -4,7 +4,7 @@ use codec::Encode; use frame_support::{assert_ok, weights::constants::WEIGHT_PER_SECOND}; use manta_primitives::AssetLocation; use xcm::{latest::prelude::*, v2::Response, VersionedMultiLocation, WrapVersion}; -use xcm_mock::*; +use xcm_mock::{*, parachain::PALLET_ASSET_INDEX}; use xcm_simulator::TestExt; use crate::xcm_mock::parachain::AssetManager; @@ -283,7 +283,7 @@ fn reserve_transfer_relaychain_to_parachain_a_then_back() { } #[test] -fn send_para_a_asset_to_para_b() { +fn send_para_a_native_asset_to_para_b() { MockNet::reset(); // ParaA balance location @@ -327,8 +327,6 @@ fn send_para_a_asset_to_para_b() { ParaA::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - // This need to be changed starting from v0.9.16 - // need to use something like MultiLocation { parents: 0, interior: here} instead source_location.clone(), asset_metadata )); @@ -380,7 +378,123 @@ fn send_para_a_asset_to_para_b() { } #[test] -fn send_para_a_asset_para_b_and_then_send_back() { +fn send_para_a_custom_asset_to_para_b(){ + let a_currency_id: u32 = 0; + let amount = 321; + let asset_metadata = parachain::AssetRegistarMetadata { + name: b"ParaADoge".to_vec(), + symbol: b"Doge".to_vec(), + decimals: 18, + evm_address: None, + min_balance: 1, + is_frozen: false, + is_sufficient: true, + }; + + let source_location = AssetLocation(VersionedMultiLocation::V1( + MultiLocation::new( + 0, + X2(PalletInstance(PALLET_ASSET_INDEX), GeneralIndex(0))))); + let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1( + MultiLocation::new( + 1, + X3( + Parachain(1), + PalletInstance(PALLET_ASSET_INDEX), + GeneralIndex(0))))); + + // register a_currency in ParaA, ParaB + ParaA::execute_with(|| { + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + // we have to do this in order to mint asset to alice on A + assert_ok!(parachain::Assets::force_asset_status( + parachain::Origin::root(), + 0, + ALICE.into(), + ALICE.into(), + ALICE.into(), + ALICE.into(), + 1, + true, + false,)); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128 + )); + assert_eq!( + Some(a_currency_id), + parachain::AssetManager::location_asset_id(source_location.clone()) + ); + }); + + ParaB::execute_with(|| { + assert_ok!(parachain::AssetManager::register_asset( + parachain::Origin::root(), + source_location_reanchored.clone(), + asset_metadata.clone() + )); + assert_ok!(AssetManager::set_units_per_second( + parachain::Origin::root(), + a_currency_id, + 0u128 + )); + assert_eq!( + Some(a_currency_id), + parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) + ); + }); + + let alice_on_b = MultiLocation { + parents: 1, + interior: X2( + Parachain(2), + AccountId32 { + network: NetworkId::Any, + id: ALICE.into(), + }, + ), + }; + + ParaA::execute_with(|| { + // Force customized asset balance for Alice + assert_ok!(parachain::Assets::mint( + parachain::Origin::signed(ALICE.into()), + 0, + ALICE.into(), + INITIAL_BALANCE + )); + assert_ok!(parachain::XTokens::transfer( + parachain::Origin::signed(ALICE.into()), + parachain::CurrencyId::MantaCurrency(a_currency_id), + amount, + Box::new(VersionedMultiLocation::V1(alice_on_b)), + 800000 + )); + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + INITIAL_BALANCE - amount + ) + }); + + // Make sure B received the token + ParaB::execute_with(|| { + // free execution, full amount received + assert_eq!( + parachain::Assets::balance(a_currency_id, &ALICE.into()), + amount + ); + }); + + +} + +#[test] +fn send_para_a_native_asset_para_b_and_then_send_back() { MockNet::reset(); // para a asset location @@ -407,7 +521,6 @@ fn send_para_a_asset_para_b_and_then_send_back() { ParaA::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - // we need to change this on/after v0.9.16 source_location.clone(), asset_metadata.clone() )); @@ -506,7 +619,7 @@ fn send_para_a_asset_para_b_and_then_send_back() { } #[test] -fn send_para_a_asset_from_para_b_to_para_c() { +fn send_para_a_native_asset_from_para_b_to_para_c() { MockNet::reset(); // para a asset location From 0fc633fda0b6ea826681c51a8403072fea3380cc Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Tue, 22 Feb 2022 17:43:16 -0500 Subject: [PATCH 25/33] wrong test --- Cargo.lock | 8 ++--- runtime/dolphin/Cargo.toml | 2 +- runtime/dolphin/tests/xcm_mock/mod.rs | 8 ++++- runtime/dolphin/tests/xcm_mock/parachain.rs | 13 ++++---- runtime/dolphin/tests/xcm_tests.rs | 36 +++++++++------------ 5 files changed, 34 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index db43f4a97..e23776dcb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5214,7 +5214,7 @@ dependencies = [ [[package]] name = "orml-traits" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#0adbaa5a12f82d1a901a6f3b3d8e77b7dda1afb4" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -5232,7 +5232,7 @@ dependencies = [ [[package]] name = "orml-utilities" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#0adbaa5a12f82d1a901a6f3b3d8e77b7dda1afb4" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" dependencies = [ "frame-support", "parity-scale-codec", @@ -5246,7 +5246,7 @@ dependencies = [ [[package]] name = "orml-xcm-support" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#0adbaa5a12f82d1a901a6f3b3d8e77b7dda1afb4" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" dependencies = [ "frame-support", "orml-traits", @@ -5260,7 +5260,7 @@ dependencies = [ [[package]] name = "orml-xtokens" version = "0.4.1-dev" -source = "git+https://github.com/manta-network/open-runtime-module-library.git?branch=stechu-update-reserve-check#0adbaa5a12f82d1a901a6f3b3d8e77b7dda1afb4" +source = "git+https://github.com/manta-network/open-runtime-module-library.git?rev=4a66b29#4a66b299037cc3997689538f82847785f9afa65d" dependencies = [ "cumulus-primitives-core", "frame-support", diff --git a/runtime/dolphin/Cargo.toml b/runtime/dolphin/Cargo.toml index 9ac70dc0a..442efe7a8 100644 --- a/runtime/dolphin/Cargo.toml +++ b/runtime/dolphin/Cargo.toml @@ -86,7 +86,7 @@ pallet-tx-pause = { path = '../../pallets/tx-pause', default-features = false } pallet-asset-manager = { path = '../../pallets/asset-manager', default-features = false } # Third party (vendored) dependencies -orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-library.git", default-features = false, branch = "stechu-update-reserve-check"} +orml-xtokens = { git = "https://github.com/manta-network/open-runtime-module-library.git", default-features = false, rev="4a66b29"} [dev-dependencies] xcm-simulator = { git = 'https://github.com/paritytech/polkadot.git', default-features = false, branch = "release-v0.9.16"} diff --git a/runtime/dolphin/tests/xcm_mock/mod.rs b/runtime/dolphin/tests/xcm_mock/mod.rs index 008ba578d..52cdc885b 100644 --- a/runtime/dolphin/tests/xcm_mock/mod.rs +++ b/runtime/dolphin/tests/xcm_mock/mod.rs @@ -20,7 +20,7 @@ pub mod relay_chain; use polkadot_parachain::primitives::Id as ParaId; use sp_runtime::traits::AccountIdConversion; use xcm_simulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain}; - +use frame_support::traits::GenesisBuild; pub const ALICE: sp_runtime::AccountId32 = sp_runtime::AccountId32::new([0u8; 32]); pub const INITIAL_BALANCE: u128 = 10_000_000_000_000_000; @@ -87,6 +87,12 @@ pub fn para_ext(para_id: u32) -> sp_io::TestExternalities { .assimilate_storage(&mut t) .unwrap(); + let parachain_info_config = parachain_info::GenesisConfig { + parachain_id: para_id.into(), + }; + >::assimilate_storage(¶chain_info_config, &mut t) + .unwrap(); + let mut ext = sp_io::TestExternalities::new(t); ext.execute_with(|| { System::set_block_number(1); diff --git a/runtime/dolphin/tests/xcm_mock/parachain.rs b/runtime/dolphin/tests/xcm_mock/parachain.rs index 5210d720d..0eba9d79c 100644 --- a/runtime/dolphin/tests/xcm_mock/parachain.rs +++ b/runtime/dolphin/tests/xcm_mock/parachain.rs @@ -48,6 +48,7 @@ use xcm_builder::{ SovereignSignedViaLocation, }; use xcm_executor::{traits::JustTry, Config, XcmExecutor}; +use xcm_simulator::Get; pub use manta_primitives::{AssetId, AssetStorageMetadata, AssetRegistarMetadata}; pub type AccountId = AccountId32; @@ -111,11 +112,7 @@ parameter_types! { pub const KsmLocation: MultiLocation = MultiLocation::parent(); pub const RelayNetwork: NetworkId = NetworkId::Kusama; pub Ancestry: MultiLocation = Parachain(MsgQueue::parachain_id().into()).into(); - // This self reserve only works for pre-v0.9.16 - pub SelfReserve: MultiLocation = MultiLocation { - parents:0, - interior: Junctions::Here - }; + pub SelfReserve: MultiLocation = MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into()))); } parameter_types! { @@ -569,7 +566,6 @@ where parameter_types! { pub const BaseXcmWeight: Weight = 100; - pub SelfLocation: MultiLocation = MultiLocation::here(); pub const MaxAssetsForTransfer: usize = 2; } @@ -582,13 +578,15 @@ impl orml_xtokens::Config for Runtime { type CurrencyIdConvert = CurrencyIdtoMultiLocation>; type XcmExecutor = XcmExecutor; - type SelfLocation = SelfLocation; + type SelfLocation = SelfReserve; type Weigher = xcm_builder::FixedWeightBounds; type BaseXcmWeight = BaseXcmWeight; type LocationInverter = LocationInverter; type MaxAssetsForTransfer = MaxAssetsForTransfer; } +impl parachain_info::Config for Runtime {} + type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; @@ -609,6 +607,7 @@ construct_runtime!( XTokens: orml_xtokens::{Pallet, Call, Event, Storage} = 6, CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 7, XcmVersioner: mock_version_changer::{Pallet, Storage, Event} = 8, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 9, } ); diff --git a/runtime/dolphin/tests/xcm_tests.rs b/runtime/dolphin/tests/xcm_tests.rs index 75213209b..6cc9ed93c 100644 --- a/runtime/dolphin/tests/xcm_tests.rs +++ b/runtime/dolphin/tests/xcm_tests.rs @@ -286,9 +286,10 @@ fn reserve_transfer_relaychain_to_parachain_a_then_back() { fn send_para_a_native_asset_to_para_b() { MockNet::reset(); - // ParaA balance location - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); - let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + // We use an opinioned source location here: + // Ideally, we could use `here()`, however, we always prefer to use the location from + // `root` when possible. + let source_location= AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, X1(Parachain(1)), ))); @@ -309,7 +310,7 @@ fn send_para_a_native_asset_to_para_b() { ParaB::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - source_location_reanchored.clone(), + source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -319,7 +320,7 @@ fn send_para_a_native_asset_to_para_b() { )); assert_eq!( Some(a_currency_id), - AssetManager::location_asset_id(source_location_reanchored.clone()) + AssetManager::location_asset_id(source_location.clone()) ); }); @@ -392,10 +393,6 @@ fn send_para_a_custom_asset_to_para_b(){ }; let source_location = AssetLocation(VersionedMultiLocation::V1( - MultiLocation::new( - 0, - X2(PalletInstance(PALLET_ASSET_INDEX), GeneralIndex(0))))); - let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1( MultiLocation::new( 1, X3( @@ -435,7 +432,7 @@ fn send_para_a_custom_asset_to_para_b(){ ParaB::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - source_location_reanchored.clone(), + source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -445,7 +442,7 @@ fn send_para_a_custom_asset_to_para_b(){ )); assert_eq!( Some(a_currency_id), - parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) + parachain::AssetManager::location_asset_id(source_location) ); }); @@ -497,12 +494,11 @@ fn send_para_a_custom_asset_to_para_b(){ fn send_para_a_native_asset_para_b_and_then_send_back() { MockNet::reset(); - // para a asset location - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); - let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( - 1, - X1(Parachain(1)), - ))); + // para a native asset location + let source_location = AssetLocation(VersionedMultiLocation::V1( + MultiLocation::new( + 1, + X1(Parachain(1))))); // a's currency id in para a, para b, and para c let a_currency_id = 0u32; let amount = 321u128; @@ -514,7 +510,7 @@ fn send_para_a_native_asset_para_b_and_then_send_back() { evm_address: None, min_balance: 1, is_frozen: false, - is_sufficient: false, + is_sufficient: true, }; // register a_currency in ParaA, ParaB @@ -538,7 +534,7 @@ fn send_para_a_native_asset_para_b_and_then_send_back() { ParaB::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - source_location_reanchored.clone(), + source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -548,7 +544,7 @@ fn send_para_a_native_asset_para_b_and_then_send_back() { )); assert_eq!( Some(a_currency_id), - parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) + parachain::AssetManager::location_asset_id(source_location) ); }); From a164bf315b9dd215223ca369b4478d402ffad206 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 27 Feb 2022 20:43:47 -0500 Subject: [PATCH 26/33] fix all tests --- runtime/dolphin/tests/xcm_mock/parachain.rs | 9 ++- runtime/dolphin/tests/xcm_tests.rs | 85 +++++++++++---------- runtime/primitives/src/lib.rs | 2 +- runtime/primitives/src/xcm.rs | 30 +++++++- 4 files changed, 76 insertions(+), 50 deletions(-) diff --git a/runtime/dolphin/tests/xcm_mock/parachain.rs b/runtime/dolphin/tests/xcm_mock/parachain.rs index 0eba9d79c..43818b16d 100644 --- a/runtime/dolphin/tests/xcm_mock/parachain.rs +++ b/runtime/dolphin/tests/xcm_mock/parachain.rs @@ -33,7 +33,7 @@ use sp_runtime::{ }; use sp_std::{convert::TryFrom, prelude::*}; -use manta_primitives::{AssetIdLocationConvert, AssetLocation, FirstAssetTrader, MultiNativeAsset}; +use manta_primitives::{AssetIdLocationConvert, AssetLocation, FirstAssetTrader, MultiNativeAsset, IsNativeConcrete}; use pallet_xcm::XcmPassthrough; use polkadot_core_primitives::BlockNumber as RelayBlockNumber; use polkadot_parachain::primitives::{ @@ -43,7 +43,7 @@ use xcm::{latest::prelude::*, Version as XcmVersion, VersionedXcm}; use xcm_builder::{ AccountId32Aliases, AllowUnpaidExecutionFrom, ConvertedConcreteAssetId, CurrencyAdapter as XcmCurrencyAdapter, EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, - FungiblesAdapter, IsConcrete, LocationInverter, ParentIsDefault, SiblingParachainAsNative, + FungiblesAdapter, LocationInverter, ParentIsDefault, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, }; @@ -175,7 +175,8 @@ parameter_types! { pub const UnitWeightCost: Weight = 1; // Used in native traders // This might be able to skipped. - pub ParaTokenPerSecond: (xcm::v1::AssetId, u128) = (Concrete(SelfReserve::get()), 1_000_000_000); + // We have to use `here()` because of reanchoring logic + pub ParaTokenPerSecond: (xcm::v1::AssetId, u128) = (Concrete(MultiLocation::here()), 1_000_000_000); pub const MaxInstructions: u32 = 100; } @@ -183,7 +184,7 @@ parameter_types! { pub type LocalAssetTransactor = XcmCurrencyAdapter< // Transacting native currency, i.e. MANTA, KMA, DOL Balances, - IsConcrete, + IsNativeConcrete, LocationToAccountId, AccountId, (), diff --git a/runtime/dolphin/tests/xcm_tests.rs b/runtime/dolphin/tests/xcm_tests.rs index 6cc9ed93c..7cf87e43b 100644 --- a/runtime/dolphin/tests/xcm_tests.rs +++ b/runtime/dolphin/tests/xcm_tests.rs @@ -7,7 +7,7 @@ use xcm::{latest::prelude::*, v2::Response, VersionedMultiLocation, WrapVersion} use xcm_mock::{*, parachain::PALLET_ASSET_INDEX}; use xcm_simulator::TestExt; -use crate::xcm_mock::parachain::AssetManager; +use crate::xcm_mock::parachain::{AssetManager, ParaTokenPerSecond}; // `reserved_transfer_asset` contains the following 4 instructions // 1. ReserveAssetDeposited(assets.clone()), @@ -501,7 +501,10 @@ fn send_para_a_native_asset_para_b_and_then_send_back() { X1(Parachain(1))))); // a's currency id in para a, para b, and para c let a_currency_id = 0u32; - let amount = 321u128; + let amount = 5000u128; + let weight = 800000u64; + let fee_on_b_when_send_back = calculate_fee(ParaTokenPerSecond::get().1, weight); + assert!(fee_on_b_when_send_back < amount); let asset_metadata = parachain::AssetRegistarMetadata { name: b"ParaAToken".to_vec(), @@ -609,7 +612,7 @@ fn send_para_a_native_asset_para_b_and_then_send_back() { ParaA::execute_with(|| { assert_eq!( parachain::Balances::free_balance(&ALICE.into()), - INITIAL_BALANCE + INITIAL_BALANCE - fee_on_b_when_send_back ) }); } @@ -619,13 +622,15 @@ fn send_para_a_native_asset_from_para_b_to_para_c() { MockNet::reset(); // para a asset location - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); - let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, X1(Parachain(1)), ))); let a_currency_id = 0u32; - let amount = 888u128; + let amount = 8888u128; + let weight = 800_000u64; + let fee_at_reserve = calculate_fee(ParaTokenPerSecond::get().1, weight); + assert!(amount >= fee_at_reserve*2 as u128); let asset_metadata = parachain::AssetRegistarMetadata { name: b"ParaAToken".to_vec(), @@ -659,7 +664,7 @@ fn send_para_a_native_asset_from_para_b_to_para_c() { ParaB::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - source_location_reanchored.clone(), + source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -669,14 +674,14 @@ fn send_para_a_native_asset_from_para_b_to_para_c() { )); assert_eq!( Some(a_currency_id), - parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) + parachain::AssetManager::location_asset_id(source_location.clone()) ); }); ParaC::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - source_location_reanchored.clone(), + source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -686,7 +691,7 @@ fn send_para_a_native_asset_from_para_b_to_para_c() { )); assert_eq!( Some(a_currency_id), - parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) + parachain::AssetManager::location_asset_id(source_location.clone()) ); }); @@ -742,7 +747,7 @@ fn send_para_a_native_asset_from_para_b_to_para_c() { parachain::CurrencyId::MantaCurrency(a_currency_id), amount, Box::new(VersionedMultiLocation::V1(alice_on_c)), - 800000 + weight, )); assert_eq!(parachain::Assets::balance(a_currency_id, &ALICE.into()), 0); }); @@ -752,7 +757,7 @@ fn send_para_a_native_asset_from_para_b_to_para_c() { // free execution, full amount received assert_eq!( parachain::Assets::balance(a_currency_id, &ALICE.into()), - amount + amount - fee_at_reserve ); }); } @@ -830,8 +835,7 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { MockNet::reset(); // para a balance location - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); - let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, X1(Parachain(1)), ))); @@ -874,7 +878,7 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { ParaB::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - source_location_reanchored.clone(), + source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -884,7 +888,7 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { )); assert_eq!( Some(a_currency_id), - AssetManager::location_asset_id(source_location_reanchored.clone()) + AssetManager::location_asset_id(source_location.clone()) ); }); @@ -928,17 +932,16 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { MockNet::reset(); // para a balance location - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); - let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, X1(Parachain(1)), ))); let a_currency_id = 0u32; - let mut amount = 888u128; - let units_per_second = 1_250_000u128; + let mut amount = 8888u128; + let units_per_second_at_b = 1_250_000u128; let dest_weight = 800_000u64; - let fee = calculate_fee(units_per_second, dest_weight); - + let fee_at_b = calculate_fee(units_per_second_at_b, dest_weight); + let fee_at_a = calculate_fee(ParaTokenPerSecond::get().1, dest_weight); let asset_metadata = parachain::AssetRegistarMetadata { name: b"ParaAToken".to_vec(), symbol: b"ParaA".to_vec(), @@ -955,7 +958,6 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { ParaA::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - // we need to change this on/after v0.9.16 source_location.clone(), asset_metadata.clone() )); @@ -974,34 +976,34 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { ParaB::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - source_location_reanchored.clone(), + source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( parachain::Origin::root(), a_currency_id, - units_per_second + units_per_second_at_b )); assert_eq!( Some(a_currency_id), - parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) + parachain::AssetManager::location_asset_id(source_location.clone()) ); }); ParaC::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( parachain::Origin::root(), - source_location_reanchored.clone(), + source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( parachain::Origin::root(), a_currency_id, - units_per_second + units_per_second_at_b )); assert_eq!( Some(a_currency_id), - parachain::AssetManager::location_asset_id(source_location_reanchored.clone()) + parachain::AssetManager::location_asset_id(source_location.clone()) ); }); @@ -1017,6 +1019,7 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { ), }; + assert!(amount>=fee_at_b); ParaA::execute_with(|| { assert_ok!(parachain::XTokens::transfer( parachain::Origin::signed(ALICE.into()), @@ -1032,7 +1035,7 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { }); ParaB::execute_with(|| { - amount = amount - fee; + amount = amount - fee_at_b; assert_eq!( parachain::Assets::balance(a_currency_id, &ALICE.into()), amount @@ -1051,6 +1054,7 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { ), }; + assert!(amount>= fee_at_b + fee_at_a); ParaB::execute_with(|| { assert_ok!(parachain::XTokens::transfer( parachain::Origin::signed(ALICE.into()), @@ -1064,7 +1068,7 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { // Make sure C received the token ParaC::execute_with(|| { - amount = amount - fee; + amount = amount - fee_at_b - fee_at_a; assert_eq!( parachain::Assets::balance(a_currency_id, &ALICE.into()), amount @@ -1198,8 +1202,7 @@ fn send_para_a_asset_to_para_b_with_insufficient_fee() { MockNet::reset(); // para a balance location - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); - let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, X1(Parachain(1)), ))); @@ -1243,7 +1246,7 @@ fn send_para_a_asset_to_para_b_with_insufficient_fee() { ParaB::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - source_location_reanchored.clone(), + source_location.clone(), asset_metadata.clone() )); assert_ok!(AssetManager::set_units_per_second( @@ -1253,7 +1256,7 @@ fn send_para_a_asset_to_para_b_with_insufficient_fee() { )); assert_eq!( Some(a_currency_id), - AssetManager::location_asset_id(source_location_reanchored.clone()) + AssetManager::location_asset_id(source_location.clone()) ); }); @@ -1294,8 +1297,7 @@ fn send_para_a_asset_to_para_b_without_specifying_units_per_second() { MockNet::reset(); // para a balance location - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); - let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, X1(Parachain(1)), ))); @@ -1337,12 +1339,12 @@ fn send_para_a_asset_to_para_b_without_specifying_units_per_second() { ParaB::execute_with(|| { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - source_location_reanchored.clone(), + source_location.clone(), asset_metadata.clone() )); assert_eq!( Some(a_currency_id), - AssetManager::location_asset_id(source_location_reanchored.clone()) + AssetManager::location_asset_id(source_location.clone()) ); }); @@ -1769,8 +1771,7 @@ fn test_automatic_versioning_on_runtime_upgrade_with_para_b() { MockNet::reset(); // para a balance location - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::here())); - let source_location_reanchored = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, X1(Parachain(1)), ))); @@ -1823,7 +1824,7 @@ fn test_automatic_versioning_on_runtime_upgrade_with_para_b() { assert_ok!(AssetManager::register_asset( parachain::Origin::root(), - source_location_reanchored, + source_location, asset_metadata )); assert_ok!(AssetManager::set_units_per_second( diff --git a/runtime/primitives/src/lib.rs b/runtime/primitives/src/lib.rs index 52c2b55aa..007a75624 100644 --- a/runtime/primitives/src/lib.rs +++ b/runtime/primitives/src/lib.rs @@ -24,7 +24,7 @@ pub mod constants; mod xcm; pub use crate::{ assets::{AssetIdLocationConvert, AssetIdLocationGetter, AssetLocation, AssetRegistarMetadata, AssetStorageMetadata, UnitsToWeightRatio}, - xcm::{AccountIdToMultiLocation, FirstAssetTrader, MultiNativeAsset, XcmFeesToAccount}, + xcm::{AccountIdToMultiLocation, FirstAssetTrader, MultiNativeAsset, IsNativeConcrete, XcmFeesToAccount}, }; pub use constants::*; diff --git a/runtime/primitives/src/xcm.rs b/runtime/primitives/src/xcm.rs index 7b70c9f4a..11900e67d 100644 --- a/runtime/primitives/src/xcm.rs +++ b/runtime/primitives/src/xcm.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Manta. If not, see . -use sp_runtime::traits::{Convert, Zero}; +use sp_runtime::traits::{Convert, Zero, CheckedConversion}; use sp_std::marker::PhantomData; use frame_support::{ @@ -26,15 +26,16 @@ use frame_support::{ use crate::{AssetIdLocationGetter, UnitsToWeightRatio}; use xcm::{ latest::Error as XcmError, + latest::prelude::Concrete, v1::{ - AssetId as xcmAssetId, Fungibility, + AssetId as xcmAssetId, Fungibility, Fungibility::*, Junction::{AccountId32, Parachain}, Junctions::*, MultiAsset, MultiLocation, NetworkId, }, }; use xcm_builder::TakeRevenue; -use xcm_executor::traits::{FilterAssetLocation, MatchesFungibles, WeightTrader}; +use xcm_executor::traits::{FilterAssetLocation, MatchesFungibles, WeightTrader, MatchesFungible}; pub trait Reserve { /// Returns assets reserve location. @@ -241,3 +242,26 @@ impl< } } } + +/// Manta's `MatchFungible` implementation. +/// It resolves the reanchoring logic as well, i.e. it recognize `here()` as +/// `../parachain(id)`. +/// `T` should specify a `SelfLocation` in the form of absolute path to the +/// relaychain. +pub struct IsNativeConcrete(PhantomData); +impl MatchesFungible for IsNativeConcrete +where + T: Get, + Balance: TryFrom, +{ + fn matches_fungible(a: &MultiAsset) -> Option { + if let (Fungible(ref amount), Concrete(ref location)) = (&a.fun, &a.id) { + if location == &T::get() || MultiLocation::is_here(location){ + return CheckedConversion::checked_from(*amount); + } + } + None + } +} + + From 1cce09508e62c41bb3ba50a125343a4568f53eaa Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 27 Feb 2022 20:55:34 -0500 Subject: [PATCH 27/33] fix some comments --- runtime/dolphin/tests/xcm_mock/mod.rs | 16 ++++++++-------- runtime/dolphin/tests/xcm_mock/parachain.rs | 16 ++++++++-------- runtime/dolphin/tests/xcm_mock/relay_chain.rs | 16 ++++++++-------- runtime/dolphin/tests/xcm_tests.rs | 18 ++++++++++++++++++ 4 files changed, 42 insertions(+), 24 deletions(-) diff --git a/runtime/dolphin/tests/xcm_mock/mod.rs b/runtime/dolphin/tests/xcm_mock/mod.rs index 52cdc885b..1823cce8a 100644 --- a/runtime/dolphin/tests/xcm_mock/mod.rs +++ b/runtime/dolphin/tests/xcm_mock/mod.rs @@ -1,18 +1,18 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify +// Copyright 2020-2022 Manta Network. +// This file is part of Manta. +// +// Manta 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. - -// Polkadot is distributed in the hope that it will be useful, +// +// Manta 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 Polkadot. If not, see . +// along with Manta. If not, see . pub mod parachain; pub mod relay_chain; diff --git a/runtime/dolphin/tests/xcm_mock/parachain.rs b/runtime/dolphin/tests/xcm_mock/parachain.rs index 43818b16d..91340f176 100644 --- a/runtime/dolphin/tests/xcm_mock/parachain.rs +++ b/runtime/dolphin/tests/xcm_mock/parachain.rs @@ -1,18 +1,18 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify +// Copyright 2020-2022 Manta Network. +// This file is part of Manta. +// +// Manta 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. - -// Polkadot is distributed in the hope that it will be useful, +// +// Manta 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 Polkadot. If not, see . +// along with Manta. If not, see . //! Parachain runtime mock. diff --git a/runtime/dolphin/tests/xcm_mock/relay_chain.rs b/runtime/dolphin/tests/xcm_mock/relay_chain.rs index 63a22aed5..f0fa6f9d8 100644 --- a/runtime/dolphin/tests/xcm_mock/relay_chain.rs +++ b/runtime/dolphin/tests/xcm_mock/relay_chain.rs @@ -1,18 +1,18 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify +// Copyright 2020-2022 Manta Network. +// This file is part of Manta. +// +// Manta 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. - -// Polkadot is distributed in the hope that it will be useful, +// +// Manta 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 Polkadot. If not, see . +// along with Manta. If not, see . //! Relay chain runtime mock. diff --git a/runtime/dolphin/tests/xcm_tests.rs b/runtime/dolphin/tests/xcm_tests.rs index 7cf87e43b..7f146934d 100644 --- a/runtime/dolphin/tests/xcm_tests.rs +++ b/runtime/dolphin/tests/xcm_tests.rs @@ -1,3 +1,21 @@ +// Copyright 2020-2022 Manta Network. +// This file is part of Manta. +// +// Manta 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. +// +// Manta 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 Manta. If not, see . + +//! Simulation Tests for XCM + mod xcm_mock; use codec::Encode; From 110e852f42a8830e99644021e8f9c58abef38611 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 27 Feb 2022 20:56:02 -0500 Subject: [PATCH 28/33] fmt --- pallets/asset-manager/src/lib.rs | 10 +- pallets/asset-manager/src/mock.rs | 26 +- pallets/asset-manager/src/tests.rs | 293 +++++++++--------- runtime/dolphin/tests/xcm_mock/mod.rs | 9 +- runtime/dolphin/tests/xcm_mock/parachain.rs | 17 +- runtime/dolphin/tests/xcm_mock/relay_chain.rs | 2 +- runtime/dolphin/tests/xcm_tests.rs | 60 ++-- runtime/primitives/src/assets.rs | 22 +- runtime/primitives/src/constants.rs | 2 +- runtime/primitives/src/lib.rs | 10 +- runtime/primitives/src/xcm.rs | 31 +- 11 files changed, 243 insertions(+), 239 deletions(-) diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index e35ce7a86..8e2a59ce5 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -37,7 +37,7 @@ mod tests; #[frame_support::pallet] pub mod pallet { - use codec::{Codec}; + use codec::Codec; use frame_support::{pallet_prelude::*, transactional, PalletId}; use frame_system::pallet_prelude::*; use manta_primitives::{AssetIdLocationGetter, UnitsToWeightRatio}; @@ -60,7 +60,7 @@ pub mod pallet { /// should be rare. pub trait AssetRegistrar { /// Create an new asset. - /// + /// /// * `asset_id`: the asset id to be created /// * `min_balance`: the minimum balance to hold this asset /// * `metadata`: the metadata that the implementation layer stores @@ -74,7 +74,7 @@ pub mod pallet { ) -> DispatchResult; /// Update asset metadata by `AssetId`. - /// + /// /// * `asset_id`: the asset id to be created. /// * `metadata`: the metadata that the implementation layer stores. fn update_asset_metadata( @@ -173,8 +173,8 @@ pub mod pallet { UnitsPerSecondUpdated { asset_id: T::AssetId, units_per_second: u128, - }, -} + }, + } /// Error. #[pallet::error] diff --git a/pallets/asset-manager/src/mock.rs b/pallets/asset-manager/src/mock.rs index d553f232f..09acc3b91 100644 --- a/pallets/asset-manager/src/mock.rs +++ b/pallets/asset-manager/src/mock.rs @@ -21,18 +21,18 @@ use super::*; use crate as pallet_asset_manager; +use frame_support::{construct_runtime, parameter_types, traits::ConstU32}; use frame_system as system; -use frame_support::{ - construct_runtime, parameter_types, traits::ConstU32}; use frame_system::EnsureRoot; +use manta_primitives::{ + AccountId, AssetId, AssetLocation, AssetRegistarMetadata, AssetStorageMetadata, Balance, + ASSET_STRING_LIMIT, +}; use sp_core::H256; use sp_runtime::{ - testing::{Header}, + testing::Header, traits::{BlakeTwo256, IdentityLookup}, }; -use manta_primitives::{AccountId, AssetId, AssetLocation, Balance, - AssetRegistarMetadata, AssetStorageMetadata, ASSET_STRING_LIMIT}; - parameter_types! { pub const BlockHashCount: u64 = 250; @@ -137,10 +137,7 @@ impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { ) } - fn update_asset_metadata( - asset_id: AssetId, - metadata: AssetStorageMetadata, - ) -> DispatchResult { + fn update_asset_metadata(asset_id: AssetId, metadata: AssetStorageMetadata) -> DispatchResult { Assets::force_set_metadata( Origin::root(), asset_id, @@ -160,7 +157,6 @@ impl AssetMetadata for AssetRegistarMetadata { fn is_sufficient(&self) -> bool { self.is_sufficient } - } impl pallet_asset_manager::Config for Runtime { @@ -190,11 +186,11 @@ construct_runtime!( } ); -pub const PALLET_BALANCES_INDEX:u8 = 3; +pub const PALLET_BALANCES_INDEX: u8 = 3; -pub fn new_test_ext() -> sp_io::TestExternalities{ +pub fn new_test_ext() -> sp_io::TestExternalities { let t = frame_system::GenesisConfig::default() - .build_storage::() - .unwrap(); + .build_storage::() + .unwrap(); sp_io::TestExternalities::new(t) } diff --git a/pallets/asset-manager/src/tests.rs b/pallets/asset-manager/src/tests.rs index 2c04f30b5..eb6f52778 100644 --- a/pallets/asset-manager/src/tests.rs +++ b/pallets/asset-manager/src/tests.rs @@ -22,164 +22,163 @@ use crate::{self as asset_manager, AssetIdLocation}; use asset_manager::mock::*; use frame_support::{assert_noop, assert_ok}; +use manta_primitives::{AssetLocation, AssetRegistarMetadata}; use sp_runtime::traits::BadOrigin; -use manta_primitives::{AssetRegistarMetadata, AssetLocation}; use xcm::{latest::prelude::*, VersionedMultiLocation}; #[test] -fn basic_setup_should_work(){ - new_test_ext().execute_with(||{ - assert!(AssetIdLocation::::iter_values().next().is_none()) - }); +fn basic_setup_should_work() { + new_test_ext() + .execute_with(|| assert!(AssetIdLocation::::iter_values().next().is_none())); } #[test] -fn wrong_modifer_origin_should_not_work(){ - new_test_ext().execute_with(||{ - let asset_metadata = AssetRegistarMetadata { - name: b"Kusama".to_vec(), - symbol: b"KSM".to_vec(), - decimals: 12, - min_balance: 1u128, - evm_address: None, - is_frozen: false, - is_sufficient: true, - }; - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); - assert_noop!( - AssetManager::register_asset( - Origin::signed([0u8; 32].into()), - source_location.clone(), - asset_metadata.clone()), - BadOrigin - ); - assert_noop!( - AssetManager::update_asset_location( - Origin::signed([2u8; 32].into()), - 0, - source_location), - BadOrigin - ); - assert_noop!( - AssetManager::update_asset_metadata( - Origin::signed([3u8; 32].into()), - 0, - asset_metadata), - BadOrigin - ); - assert_noop!( - AssetManager::set_units_per_second( - Origin::signed([4u8; 32].into()), - 0, - 0), - BadOrigin - ); - }) +fn wrong_modifer_origin_should_not_work() { + new_test_ext().execute_with(|| { + let asset_metadata = AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + assert_noop!( + AssetManager::register_asset( + Origin::signed([0u8; 32].into()), + source_location.clone(), + asset_metadata.clone() + ), + BadOrigin + ); + assert_noop!( + AssetManager::update_asset_location( + Origin::signed([2u8; 32].into()), + 0, + source_location + ), + BadOrigin + ); + assert_noop!( + AssetManager::update_asset_metadata( + Origin::signed([3u8; 32].into()), + 0, + asset_metadata + ), + BadOrigin + ); + assert_noop!( + AssetManager::set_units_per_second(Origin::signed([4u8; 32].into()), 0, 0), + BadOrigin + ); + }) } #[test] -fn register_asset_should_work(){ - let asset_metadata = AssetRegistarMetadata { - name: b"Kusama".to_vec(), - symbol: b"KSM".to_vec(), - decimals: 12, - min_balance: 1u128, - evm_address: None, - is_frozen: false, - is_sufficient: true, - }; - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); - let new_location = AssetLocation(VersionedMultiLocation::V1( - MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))))); - new_test_ext().execute_with(||{ - let mut counter: u32 = 0; - // Register relay chain native token - assert_ok!(AssetManager::register_asset( - Origin::root(), - source_location.clone(), - asset_metadata.clone())); - assert_eq!( - AssetIdLocation::::get(counter), - Some(source_location.clone()) - ); - counter += 1; - // Register twice will fail - assert_noop!( - AssetManager::register_asset( - Origin::root(), - source_location, - asset_metadata.clone()), - crate::Error::::LocationAlreadyExists); - // Register a new asset - assert_ok!(AssetManager::register_asset( - Origin::root(), - new_location.clone(), - asset_metadata.clone())); - assert_eq!( - AssetIdLocation::::get(counter), - Some(new_location) - ); - }) +fn register_asset_should_work() { + let asset_metadata = AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + let new_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX)), + ))); + new_test_ext().execute_with(|| { + let mut counter: u32 = 0; + // Register relay chain native token + assert_ok!(AssetManager::register_asset( + Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + assert_eq!( + AssetIdLocation::::get(counter), + Some(source_location.clone()) + ); + counter += 1; + // Register twice will fail + assert_noop!( + AssetManager::register_asset(Origin::root(), source_location, asset_metadata.clone()), + crate::Error::::LocationAlreadyExists + ); + // Register a new asset + assert_ok!(AssetManager::register_asset( + Origin::root(), + new_location.clone(), + asset_metadata.clone() + )); + assert_eq!(AssetIdLocation::::get(counter), Some(new_location)); + }) } #[test] -fn update_asset(){ - let asset_metadata = AssetRegistarMetadata { - name: b"Kusama".to_vec(), - symbol: b"KSM".to_vec(), - decimals: 12, - min_balance: 1u128, - evm_address: None, - is_frozen: false, - is_sufficient: true, - }; - let mut new_metadata = asset_metadata.clone(); - new_metadata.is_frozen = true; - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); - let new_location = AssetLocation(VersionedMultiLocation::V1( - MultiLocation::new(1, X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX))))); - new_test_ext().execute_with(||{ - // Register relay chain native token - assert_ok!(AssetManager::register_asset( - Origin::root(), - source_location.clone(), - asset_metadata.clone())); - assert_eq!( - AssetIdLocation::::get(0), - Some(source_location.clone()) - ); - // Update the asset metadata - assert_ok!(AssetManager::update_asset_metadata( - Origin::root(), - 0, - new_metadata.clone())); - // Update the asset location - assert_ok!(AssetManager::update_asset_location( - Origin::root(), - 0, - new_location.clone())); - // Update a non-exist asset should fail - assert_noop!(AssetManager::update_asset_location( - Origin::root(), - 1, - new_location.clone()), - crate::Error::::UpdateNonExistAsset - ); - assert_noop!(AssetManager::update_asset_metadata( - Origin::root(), - 1, - new_metadata.clone()), - crate::Error::::UpdateNonExistAsset - ); - // Update an asset to an existing location will fail - assert_ok!(AssetManager::register_asset( - Origin::root(), - source_location.clone(), - asset_metadata.clone())); - assert_noop!(AssetManager::update_asset_location( - Origin::root(), - 1, - new_location), - crate::Error::::LocationAlreadyExists); - }) +fn update_asset() { + let asset_metadata = AssetRegistarMetadata { + name: b"Kusama".to_vec(), + symbol: b"KSM".to_vec(), + decimals: 12, + min_balance: 1u128, + evm_address: None, + is_frozen: false, + is_sufficient: true, + }; + let mut new_metadata = asset_metadata.clone(); + new_metadata.is_frozen = true; + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::parent())); + let new_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X2(Parachain(1), PalletInstance(PALLET_BALANCES_INDEX)), + ))); + new_test_ext().execute_with(|| { + // Register relay chain native token + assert_ok!(AssetManager::register_asset( + Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + assert_eq!( + AssetIdLocation::::get(0), + Some(source_location.clone()) + ); + // Update the asset metadata + assert_ok!(AssetManager::update_asset_metadata( + Origin::root(), + 0, + new_metadata.clone() + )); + // Update the asset location + assert_ok!(AssetManager::update_asset_location( + Origin::root(), + 0, + new_location.clone() + )); + // Update a non-exist asset should fail + assert_noop!( + AssetManager::update_asset_location(Origin::root(), 1, new_location.clone()), + crate::Error::::UpdateNonExistAsset + ); + assert_noop!( + AssetManager::update_asset_metadata(Origin::root(), 1, new_metadata.clone()), + crate::Error::::UpdateNonExistAsset + ); + // Update an asset to an existing location will fail + assert_ok!(AssetManager::register_asset( + Origin::root(), + source_location.clone(), + asset_metadata.clone() + )); + assert_noop!( + AssetManager::update_asset_location(Origin::root(), 1, new_location), + crate::Error::::LocationAlreadyExists + ); + }) } diff --git a/runtime/dolphin/tests/xcm_mock/mod.rs b/runtime/dolphin/tests/xcm_mock/mod.rs index 1823cce8a..a83bca6b1 100644 --- a/runtime/dolphin/tests/xcm_mock/mod.rs +++ b/runtime/dolphin/tests/xcm_mock/mod.rs @@ -17,10 +17,10 @@ pub mod parachain; pub mod relay_chain; +use frame_support::traits::GenesisBuild; use polkadot_parachain::primitives::Id as ParaId; use sp_runtime::traits::AccountIdConversion; use xcm_simulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain}; -use frame_support::traits::GenesisBuild; pub const ALICE: sp_runtime::AccountId32 = sp_runtime::AccountId32::new([0u8; 32]); pub const INITIAL_BALANCE: u128 = 10_000_000_000_000_000; @@ -90,8 +90,11 @@ pub fn para_ext(para_id: u32) -> sp_io::TestExternalities { let parachain_info_config = parachain_info::GenesisConfig { parachain_id: para_id.into(), }; - >::assimilate_storage(¶chain_info_config, &mut t) - .unwrap(); + >::assimilate_storage( + ¶chain_info_config, + &mut t, + ) + .unwrap(); let mut ext = sp_io::TestExternalities::new(t); ext.execute_with(|| { diff --git a/runtime/dolphin/tests/xcm_mock/parachain.rs b/runtime/dolphin/tests/xcm_mock/parachain.rs index 91340f176..e19bf8562 100644 --- a/runtime/dolphin/tests/xcm_mock/parachain.rs +++ b/runtime/dolphin/tests/xcm_mock/parachain.rs @@ -19,13 +19,13 @@ use codec::{Decode, Encode}; use frame_support::{ construct_runtime, parameter_types, - traits::{Everything, Nothing, ConstU32}, + traits::{ConstU32, Everything, Nothing}, weights::{constants::WEIGHT_PER_SECOND, Weight}, }; use frame_system::EnsureRoot; use pallet_asset_manager::AssetMetadata; use scale_info::TypeInfo; -use sp_core::{H256}; +use sp_core::H256; use sp_runtime::{ testing::Header, traits::{Hash, IdentityLookup}, @@ -33,7 +33,9 @@ use sp_runtime::{ }; use sp_std::{convert::TryFrom, prelude::*}; -use manta_primitives::{AssetIdLocationConvert, AssetLocation, FirstAssetTrader, MultiNativeAsset, IsNativeConcrete}; +use manta_primitives::{ + AssetIdLocationConvert, AssetLocation, FirstAssetTrader, IsNativeConcrete, MultiNativeAsset, +}; use pallet_xcm::XcmPassthrough; use polkadot_core_primitives::BlockNumber as RelayBlockNumber; use polkadot_parachain::primitives::{ @@ -50,7 +52,7 @@ use xcm_builder::{ use xcm_executor::{traits::JustTry, Config, XcmExecutor}; use xcm_simulator::Get; -pub use manta_primitives::{AssetId, AssetStorageMetadata, AssetRegistarMetadata}; +pub use manta_primitives::{AssetId, AssetRegistarMetadata, AssetStorageMetadata}; pub type AccountId = AccountId32; pub type Balance = u128; @@ -512,11 +514,8 @@ impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { metadata.is_frozen, ) } - - fn update_asset_metadata( - asset_id: AssetId, - metadata: AssetStorageMetadata, - ) -> DispatchResult { + + fn update_asset_metadata(asset_id: AssetId, metadata: AssetStorageMetadata) -> DispatchResult { Assets::force_set_metadata( Origin::root(), asset_id, diff --git a/runtime/dolphin/tests/xcm_mock/relay_chain.rs b/runtime/dolphin/tests/xcm_mock/relay_chain.rs index f0fa6f9d8..c990e9938 100644 --- a/runtime/dolphin/tests/xcm_mock/relay_chain.rs +++ b/runtime/dolphin/tests/xcm_mock/relay_chain.rs @@ -18,7 +18,7 @@ use frame_support::{ construct_runtime, parameter_types, - traits::{Everything, Nothing, ConstU32}, + traits::{ConstU32, Everything, Nothing}, weights::Weight, }; use sp_core::H256; diff --git a/runtime/dolphin/tests/xcm_tests.rs b/runtime/dolphin/tests/xcm_tests.rs index 7f146934d..3ed0a5d0f 100644 --- a/runtime/dolphin/tests/xcm_tests.rs +++ b/runtime/dolphin/tests/xcm_tests.rs @@ -22,7 +22,7 @@ use codec::Encode; use frame_support::{assert_ok, weights::constants::WEIGHT_PER_SECOND}; use manta_primitives::AssetLocation; use xcm::{latest::prelude::*, v2::Response, VersionedMultiLocation, WrapVersion}; -use xcm_mock::{*, parachain::PALLET_ASSET_INDEX}; +use xcm_mock::{parachain::PALLET_ASSET_INDEX, *}; use xcm_simulator::TestExt; use crate::xcm_mock::parachain::{AssetManager, ParaTokenPerSecond}; @@ -305,9 +305,9 @@ fn send_para_a_native_asset_to_para_b() { MockNet::reset(); // We use an opinioned source location here: - // Ideally, we could use `here()`, however, we always prefer to use the location from + // Ideally, we could use `here()`, however, we always prefer to use the location from // `root` when possible. - let source_location= AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, X1(Parachain(1)), ))); @@ -397,7 +397,7 @@ fn send_para_a_native_asset_to_para_b() { } #[test] -fn send_para_a_custom_asset_to_para_b(){ +fn send_para_a_custom_asset_to_para_b() { let a_currency_id: u32 = 0; let amount = 321; let asset_metadata = parachain::AssetRegistarMetadata { @@ -410,14 +410,15 @@ fn send_para_a_custom_asset_to_para_b(){ is_sufficient: true, }; - let source_location = AssetLocation(VersionedMultiLocation::V1( - MultiLocation::new( - 1, - X3( - Parachain(1), - PalletInstance(PALLET_ASSET_INDEX), - GeneralIndex(0))))); - + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X3( + Parachain(1), + PalletInstance(PALLET_ASSET_INDEX), + GeneralIndex(0), + ), + ))); + // register a_currency in ParaA, ParaB ParaA::execute_with(|| { assert_ok!(parachain::AssetManager::register_asset( @@ -428,14 +429,15 @@ fn send_para_a_custom_asset_to_para_b(){ // we have to do this in order to mint asset to alice on A assert_ok!(parachain::Assets::force_asset_status( parachain::Origin::root(), - 0, - ALICE.into(), - ALICE.into(), - ALICE.into(), - ALICE.into(), - 1, - true, - false,)); + 0, + ALICE.into(), + ALICE.into(), + ALICE.into(), + ALICE.into(), + 1, + true, + false, + )); assert_ok!(AssetManager::set_units_per_second( parachain::Origin::root(), a_currency_id, @@ -504,8 +506,6 @@ fn send_para_a_custom_asset_to_para_b(){ amount ); }); - - } #[test] @@ -513,10 +513,10 @@ fn send_para_a_native_asset_para_b_and_then_send_back() { MockNet::reset(); // para a native asset location - let source_location = AssetLocation(VersionedMultiLocation::V1( - MultiLocation::new( - 1, - X1(Parachain(1))))); + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + 1, + X1(Parachain(1)), + ))); // a's currency id in para a, para b, and para c let a_currency_id = 0u32; let amount = 5000u128; @@ -648,7 +648,7 @@ fn send_para_a_native_asset_from_para_b_to_para_c() { let amount = 8888u128; let weight = 800_000u64; let fee_at_reserve = calculate_fee(ParaTokenPerSecond::get().1, weight); - assert!(amount >= fee_at_reserve*2 as u128); + assert!(amount >= fee_at_reserve * 2 as u128); let asset_metadata = parachain::AssetRegistarMetadata { name: b"ParaAToken".to_vec(), @@ -853,7 +853,7 @@ fn send_para_a_asset_to_para_b_with_trader_and_fee() { MockNet::reset(); // para a balance location - let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( + let source_location = AssetLocation(VersionedMultiLocation::V1(MultiLocation::new( 1, X1(Parachain(1)), ))); @@ -1037,7 +1037,7 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { ), }; - assert!(amount>=fee_at_b); + assert!(amount >= fee_at_b); ParaA::execute_with(|| { assert_ok!(parachain::XTokens::transfer( parachain::Origin::signed(ALICE.into()), @@ -1072,7 +1072,7 @@ fn send_para_a_asset_from_para_b_to_para_c_with_trader() { ), }; - assert!(amount>= fee_at_b + fee_at_a); + assert!(amount >= fee_at_b + fee_at_a); ParaB::execute_with(|| { assert_ok!(parachain::XTokens::transfer( parachain::Origin::signed(ALICE.into()), diff --git a/runtime/primitives/src/assets.rs b/runtime/primitives/src/assets.rs index 2564ff97b..6fbbc78a2 100644 --- a/runtime/primitives/src/assets.rs +++ b/runtime/primitives/src/assets.rs @@ -16,8 +16,8 @@ use codec::{Decode, Encode}; use scale_info::TypeInfo; -use sp_std::{borrow::Borrow, prelude::Vec, marker::PhantomData}; -use sp_core::{H160}; +use sp_core::H160; +use sp_std::{borrow::Borrow, marker::PhantomData, prelude::Vec}; ///! Manta/Calamari/Dolphin Asset use xcm::{ @@ -44,7 +44,7 @@ pub struct AssetRegistarMetadata { } /// Asset storage metadata -/// Currently, `AssetStorageMetadata` is stored at `pallet-asset`. +/// Currently, `AssetStorageMetadata` is stored at `pallet-asset`. #[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] pub struct AssetStorageMetadata { pub name: Vec, @@ -89,12 +89,12 @@ impl From for AssetLocation { /// Convert an `AssetLocation` to a MultiLocation /// If Native, return none. impl From for Option { - fn from(location: AssetLocation) -> Self { - match location { - AssetLocation(VersionedMultiLocation::V1(location)) => Some(location), - _ => None, - } - } + fn from(location: AssetLocation) -> Self { + match location { + AssetLocation(VersionedMultiLocation::V1(location)) => Some(location), + _ => None, + } + } } /// Defines the trait to obtain a generic AssetId @@ -129,6 +129,8 @@ where } fn reverse_ref(id: impl Borrow) -> Result { - AssetInfoGetter::get_asset_location(id.borrow().clone()).and_then(Into::into).ok_or(()) + AssetInfoGetter::get_asset_location(id.borrow().clone()) + .and_then(Into::into) + .ok_or(()) } } diff --git a/runtime/primitives/src/constants.rs b/runtime/primitives/src/constants.rs index fab951549..9b55aa1a3 100644 --- a/runtime/primitives/src/constants.rs +++ b/runtime/primitives/src/constants.rs @@ -46,4 +46,4 @@ pub mod time { pub const DAYS: BlockNumber = HOURS * 24; } -pub const ASSET_STRING_LIMIT: u32 = 50; \ No newline at end of file +pub const ASSET_STRING_LIMIT: u32 = 50; diff --git a/runtime/primitives/src/lib.rs b/runtime/primitives/src/lib.rs index 007a75624..18f0b50e9 100644 --- a/runtime/primitives/src/lib.rs +++ b/runtime/primitives/src/lib.rs @@ -23,8 +23,14 @@ mod assets; pub mod constants; mod xcm; pub use crate::{ - assets::{AssetIdLocationConvert, AssetIdLocationGetter, AssetLocation, AssetRegistarMetadata, AssetStorageMetadata, UnitsToWeightRatio}, - xcm::{AccountIdToMultiLocation, FirstAssetTrader, MultiNativeAsset, IsNativeConcrete, XcmFeesToAccount}, + assets::{ + AssetIdLocationConvert, AssetIdLocationGetter, AssetLocation, AssetRegistarMetadata, + AssetStorageMetadata, UnitsToWeightRatio, + }, + xcm::{ + AccountIdToMultiLocation, FirstAssetTrader, IsNativeConcrete, MultiNativeAsset, + XcmFeesToAccount, + }, }; pub use constants::*; diff --git a/runtime/primitives/src/xcm.rs b/runtime/primitives/src/xcm.rs index 11900e67d..83805286e 100644 --- a/runtime/primitives/src/xcm.rs +++ b/runtime/primitives/src/xcm.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Manta. If not, see . -use sp_runtime::traits::{Convert, Zero, CheckedConversion}; +use sp_runtime::traits::{CheckedConversion, Convert, Zero}; use sp_std::marker::PhantomData; use frame_support::{ @@ -25,17 +25,17 @@ use frame_support::{ use crate::{AssetIdLocationGetter, UnitsToWeightRatio}; use xcm::{ - latest::Error as XcmError, - latest::prelude::Concrete, + latest::{prelude::Concrete, Error as XcmError}, v1::{ - AssetId as xcmAssetId, Fungibility, Fungibility::*, + AssetId as xcmAssetId, Fungibility, + Fungibility::*, Junction::{AccountId32, Parachain}, Junctions::*, MultiAsset, MultiLocation, NetworkId, }, }; use xcm_builder::TakeRevenue; -use xcm_executor::traits::{FilterAssetLocation, MatchesFungibles, WeightTrader, MatchesFungible}; +use xcm_executor::traits::{FilterAssetLocation, MatchesFungible, MatchesFungibles, WeightTrader}; pub trait Reserve { /// Returns assets reserve location. @@ -94,7 +94,7 @@ pub struct FirstAssetTrader< AssetLocation: From + Clone, AssetIdInfoGetter: UnitsToWeightRatio + AssetIdLocationGetter, R: TakeRevenue, ->{ +> { weight: Weight, refund_cache: Option<(MultiLocation, u128, u128)>, __: sp_std::marker::PhantomData<(AssetId, AssetLocation, AssetIdInfoGetter, R)>, @@ -108,10 +108,10 @@ impl< > WeightTrader for FirstAssetTrader { fn new() -> Self { - FirstAssetTrader{ - weight: Zero::zero(), - refund_cache: None, - __: sp_std::marker::PhantomData + FirstAssetTrader { + weight: Zero::zero(), + refund_cache: None, + __: sp_std::marker::PhantomData, } } @@ -232,7 +232,8 @@ impl< match Matcher::matches_fungibles(&revenue) { Ok((asset_id, amount)) => { if !amount.is_zero() { - Assets::mint_into(asset_id, &ReceiverAccount::get(), amount).expect("`mint_into` cannot generally fail; qed"); + Assets::mint_into(asset_id, &ReceiverAccount::get(), amount) + .expect("`mint_into` cannot generally fail; qed"); } } Err(_) => log::debug!( @@ -246,8 +247,8 @@ impl< /// Manta's `MatchFungible` implementation. /// It resolves the reanchoring logic as well, i.e. it recognize `here()` as /// `../parachain(id)`. -/// `T` should specify a `SelfLocation` in the form of absolute path to the -/// relaychain. +/// `T` should specify a `SelfLocation` in the form of absolute path to the +/// relaychain. pub struct IsNativeConcrete(PhantomData); impl MatchesFungible for IsNativeConcrete where @@ -256,12 +257,10 @@ where { fn matches_fungible(a: &MultiAsset) -> Option { if let (Fungible(ref amount), Concrete(ref location)) = (&a.fun, &a.id) { - if location == &T::get() || MultiLocation::is_here(location){ + if location == &T::get() || MultiLocation::is_here(location) { return CheckedConversion::checked_from(*amount); } } None } } - - From f62623854e52b47a61a8c51b3f3945b2ec922cbd Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 27 Feb 2022 21:00:10 -0500 Subject: [PATCH 29/33] add comment of is_sufficient --- pallets/asset-manager/src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index 8e2a59ce5..a25b539fc 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -65,7 +65,11 @@ pub mod pallet { /// * `min_balance`: the minimum balance to hold this asset /// * `metadata`: the metadata that the implementation layer stores /// * `is_sufficient`: whether this asset can be used as reserve asset, - /// to the first approximation + /// to the first approximation. More specifically, Whether a non-zero balance of this asset is deposit of sufficient + /// value to account for the state bloat associated with its balance storage. If set to + /// `true`, then non-zero balances may be stored without a `consumer` reference (and thus + /// an ED in the Balances pallet or whatever else is used to control user-account state + /// growth). fn create_asset( asset_id: T::AssetId, min_balance: T::Balance, From f1c4fb111715b83fc371be4190bb6c3d291900cf Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 27 Feb 2022 22:54:05 -0500 Subject: [PATCH 30/33] address comments --- Cargo.lock | 2 +- pallets/asset-manager/Cargo.toml | 4 ++-- pallets/asset-manager/src/lib.rs | 2 +- runtime/primitives/src/xcm.rs | 7 +++---- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b2cbc193c..c0cccc11e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5274,7 +5274,7 @@ dependencies = [ [[package]] name = "pallet-asset-manager" -version = "3.1.3" +version = "3.1.4" dependencies = [ "frame-benchmarking", "frame-support", diff --git a/pallets/asset-manager/Cargo.toml b/pallets/asset-manager/Cargo.toml index e1466c848..0b7b864f1 100644 --- a/pallets/asset-manager/Cargo.toml +++ b/pallets/asset-manager/Cargo.toml @@ -1,7 +1,7 @@ [package] authors = ['Manta Network'] name = "pallet-asset-manager" -version = "3.1.3" +version = "3.1.4" edition = "2021" homepage = 'https://manta.network' license = 'GPL-3.0' @@ -10,7 +10,7 @@ repository = 'https://github.com/Manta-Network/Manta/' [dependencies] # codec has to be 2.0.0 for now -codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false } +codec = { package = "parity-scale-codec", version = "2.3.1", default-features = false } # scale-info has to be 1.0 for now scale-info = { version = "1.0", default-features = false, features = ["derive"] } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16", default-features = false } diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index a25b539fc..3b963bce4 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -245,7 +245,7 @@ pub mod pallet { ) -> DispatchResult { T::ModifierOrigin::ensure_origin(origin)?; ensure!( - LocationAssetId::::get(&location).is_none(), + !LocationAssetId::::contains_key(&location), Error::::LocationAlreadyExists ); let asset_id = Self::get_next_asset_id()?; diff --git a/runtime/primitives/src/xcm.rs b/runtime/primitives/src/xcm.rs index 83805286e..efe60c99c 100644 --- a/runtime/primitives/src/xcm.rs +++ b/runtime/primitives/src/xcm.rs @@ -49,7 +49,7 @@ impl Reserve for MultiAsset { if let xcmAssetId::Concrete(location) = self.id.clone() { let first_interior = location.first_interior(); let parents = location.parent_count(); - match (parents, first_interior.clone()) { + match (parents, first_interior) { (0, Some(Parachain(id))) => Some(MultiLocation::new(0, X1(Parachain(*id)))), (1, Some(Parachain(id))) => Some(MultiLocation::new(1, X1(Parachain(*id)))), (1, _) => Some(MultiLocation::parent()), @@ -122,7 +122,6 @@ impl< payment: xcm_executor::Assets, ) -> Result { let first_asset = payment - .clone() .fungible_assets_iter() .next() .ok_or(XcmError::TooExpensive)?; @@ -142,7 +141,7 @@ impl< return Ok(payment); } let required = MultiAsset { - fun: Fungibility::Fungible(amount.into()), + fun: Fungibility::Fungible(amount), id: xcmAssetId::Concrete(id.clone()), }; let unused = payment @@ -174,7 +173,7 @@ impl< self.weight = self.weight.saturating_add(weight); self.refund_cache = Some(new_asset); }; - return Ok(unused); + Ok(unused) } _ => Err(XcmError::TooExpensive), } From e63a77281144673fa3b9640fc808ebd322decdb4 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Sun, 27 Feb 2022 23:04:47 -0500 Subject: [PATCH 31/33] nit --- pallets/asset-manager/Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pallets/asset-manager/Cargo.toml b/pallets/asset-manager/Cargo.toml index 0b7b864f1..0cd04dee4 100644 --- a/pallets/asset-manager/Cargo.toml +++ b/pallets/asset-manager/Cargo.toml @@ -9,7 +9,6 @@ repository = 'https://github.com/Manta-Network/Manta/' [dependencies] -# codec has to be 2.0.0 for now codec = { package = "parity-scale-codec", version = "2.3.1", default-features = false } # scale-info has to be 1.0 for now scale-info = { version = "1.0", default-features = false, features = ["derive"] } From 642fad7d3804a3b96e55fff70d8d7482b009707e Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Mon, 28 Feb 2022 01:03:45 -0500 Subject: [PATCH 32/33] nit --- pallets/asset-manager/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index 3b963bce4..2ffbc8561 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -257,7 +257,7 @@ pub mod pallet { ) .map_err(|_| Error::::ErrorCreatingAsset)?; AssetIdLocation::::insert(&asset_id, &location); - AssetIdMetadata::::insert(&asset_id, &metadata.clone()); + AssetIdMetadata::::insert(&asset_id, &metadata); LocationAssetId::::insert(&location, &asset_id); Self::deposit_event(Event::::AssetRegistered { asset_id, @@ -301,7 +301,7 @@ pub mod pallet { // deposit event. Self::deposit_event(Event::::AssetLocationUpdated { asset_id, - location: location, + location, }); Ok(()) } From 8fb42170b1366d23d412e8f2d95c638d7575f423 Mon Sep 17 00:00:00 2001 From: Shumo Chu Date: Mon, 28 Feb 2022 18:29:55 -0500 Subject: [PATCH 33/33] add test for set unit per second --- pallets/asset-manager/src/lib.rs | 5 +---- pallets/asset-manager/src/tests.rs | 9 ++++++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pallets/asset-manager/src/lib.rs b/pallets/asset-manager/src/lib.rs index 2ffbc8561..5f5f99dfd 100644 --- a/pallets/asset-manager/src/lib.rs +++ b/pallets/asset-manager/src/lib.rs @@ -299,10 +299,7 @@ pub mod pallet { LocationAssetId::::insert(&location, &asset_id); AssetIdLocation::::insert(&asset_id, &location); // deposit event. - Self::deposit_event(Event::::AssetLocationUpdated { - asset_id, - location, - }); + Self::deposit_event(Event::::AssetLocationUpdated { asset_id, location }); Ok(()) } diff --git a/pallets/asset-manager/src/tests.rs b/pallets/asset-manager/src/tests.rs index eb6f52778..6b055ae71 100644 --- a/pallets/asset-manager/src/tests.rs +++ b/pallets/asset-manager/src/tests.rs @@ -19,7 +19,7 @@ //! unit tests for asset-manager -use crate::{self as asset_manager, AssetIdLocation}; +use crate::{self as asset_manager, AssetIdLocation, UnitsPerSecond}; use asset_manager::mock::*; use frame_support::{assert_noop, assert_ok}; use manta_primitives::{AssetLocation, AssetRegistarMetadata}; @@ -161,6 +161,13 @@ fn update_asset() { 0, new_location.clone() )); + // Update asset units per seconds + assert_ok!(AssetManager::set_units_per_second( + Origin::root(), + 0, + 125u128 + )); + assert_eq!(UnitsPerSecond::::get(0), Some(125)); // Update a non-exist asset should fail assert_noop!( AssetManager::update_asset_location(Origin::root(), 1, new_location.clone()),