From 22a25bb0fa17750df86c226e5d82fb24a74513d0 Mon Sep 17 00:00:00 2001 From: Just van Stam Date: Fri, 22 Mar 2024 10:47:40 +0100 Subject: [PATCH] Feature/plmc 460 upgrade to sdk 16 (#181) * update wip * fix base runtime * decrease election max values * fix some migration issues * fix xcm executor again * fix test runtime * fix node * make integration tests build * fix governance integration tests * fix integration tests and properly configure xcm config with new pallet_funding * first step benchmarks fix * fix benchmarks * add defaults to tests frame_system * fix try-runtime * fmt * remove unused dependency * fix warnings * fmt * fix integration tests and update funding cargo.toml * feat: implement missing runtime api * feat: use camelCase in JSON * chore: zepter * feat: switch to base * fmt * trying fix testnet chain spec * fix std build for testing node * fmt * fmt * chore: zepter * fix: use the right runtime in the benchmarks * chore: remove unused imports * chore: lock upgrade * chore: remove few unused deps from base * chore: bump to 1.75.0 https://github.com/paritytech/polkadot-sdk/issues/2590 * fix: testnet benchmarks * fix: use camelCase in testnet * chore: add chain flag to justfile * benchmark fixes * fmt * feat: bump `spec_version` and `transaction_version` * fix: post merge * fix: restore integration tests * chore: remove unused deps * chore: fat fingers * chore: zepter * chore: fmt * fic: partially fix build-spec test * feat: use production profile in srtool --------- Co-authored-by: Leonardo Razovic <4128940+lrazovic@users.noreply.github.com> Co-authored-by: Juan Ignacio Rios --- Cargo.lock | 5361 ++++++++++------- Cargo.toml | 263 +- integration-tests/Cargo.toml | 16 +- integration-tests/penpal/Cargo.toml | 16 +- integration-tests/penpal/src/lib.rs | 68 +- integration-tests/penpal/src/xcm_config.rs | 11 +- integration-tests/src/constants.rs | 166 +- integration-tests/src/lib.rs | 204 +- integration-tests/src/tests/basic_comms.rs | 36 +- integration-tests/src/tests/build_spec.rs | 2 +- integration-tests/src/tests/credentials.rs | 4 +- integration-tests/src/tests/ct_migration.rs | 88 +- integration-tests/src/tests/defaults.rs | 6 +- integration-tests/src/tests/e2e.rs | 50 +- integration-tests/src/tests/governance.rs | 159 +- integration-tests/src/tests/oracle.rs | 28 +- .../src/tests/reserve_backed_transfers.rs | 106 +- integration-tests/src/tests/vest.rs | 12 +- justfile | 22 +- nodes/parachain/Cargo.toml | 14 +- nodes/parachain/src/chain_spec.rs | 10 +- nodes/parachain/src/chain_spec/polimec.rs | 263 +- nodes/parachain/src/chain_spec/politest.rs | 173 +- nodes/parachain/src/cli.rs | 16 +- nodes/parachain/src/command.rs | 98 +- nodes/parachain/src/main.rs | 3 +- nodes/parachain/src/rpc.rs | 6 +- nodes/parachain/src/service.rs | 213 +- pallets/democracy/Cargo.toml | 4 +- pallets/democracy/src/benchmarking.rs | 7 +- pallets/democracy/src/lib.rs | 35 +- pallets/democracy/src/tests.rs | 28 +- pallets/elections-phragmen/Cargo.toml | 1 - pallets/elections-phragmen/src/lib.rs | 48 +- pallets/funding/Cargo.toml | 24 +- pallets/funding/src/benchmarking.rs | 35 +- pallets/funding/src/functions.rs | 53 +- pallets/funding/src/lib.rs | 10 +- pallets/funding/src/mock.rs | 52 +- pallets/funding/src/tests.rs | 13 +- pallets/funding/src/types.rs | 20 +- pallets/linear-release/src/mock.rs | 40 +- pallets/linear-release/src/tests.rs | 3 +- pallets/oracle-ocw/src/lib.rs | 2 +- pallets/oracle-ocw/src/mock.rs | 32 +- .../parachain-staking/src/auto_compound.rs | 4 +- pallets/parachain-staking/src/benchmarks.rs | 4 +- .../src/delegation_requests.rs | 4 +- pallets/parachain-staking/src/migrations.rs | 5 +- pallets/parachain-staking/src/mock.rs | 31 +- pallets/polimec-receiver/Cargo.toml | 6 +- pallets/polimec-receiver/src/lib.rs | 2 +- pallets/sandbox/Cargo.toml | 7 +- pallets/xcm-executor/Cargo.toml | 2 +- pallets/xcm-executor/src/config.rs | 7 +- pallets/xcm-executor/src/lib.rs | 402 +- polimec-common/common/src/credentials/mod.rs | 4 +- polimec-common/common/src/lib.rs | 3 +- polimec-common/test-utils/Cargo.toml | 5 + runtimes/polimec/Cargo.toml | 22 +- .../src/custom_migrations/deposit_dust.rs | 4 +- .../src/custom_migrations/init_pallet.rs | 3 +- .../custom_migrations/unhashed_migration.rs | 5 +- runtimes/polimec/src/lib.rs | 209 +- runtimes/polimec/src/xcm_config.rs | 56 +- runtimes/politest/Cargo.toml | 30 +- runtimes/politest/src/lib.rs | 153 +- runtimes/politest/src/xcm_config.rs | 15 +- runtimes/shared-configuration/Cargo.toml | 5 + runtimes/shared-configuration/src/funding.rs | 12 +- .../shared-configuration/src/governance.rs | 2 + runtimes/shared-configuration/src/identity.rs | 10 +- runtimes/shared-configuration/src/lib.rs | 2 + runtimes/shared-configuration/src/proxy.rs | 3 +- runtimes/shared-configuration/src/time.rs | 24 + rust-toolchain.toml | 4 +- 76 files changed, 5201 insertions(+), 3665 deletions(-) create mode 100644 runtimes/shared-configuration/src/time.rs diff --git a/Cargo.lock b/Cargo.lock index 90e503ab6..2371f28b8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -53,7 +53,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures", ] @@ -65,10 +65,10 @@ checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ "aead", "aes", - "cipher", + "cipher 0.4.4", "ctr", "ghash", - "subtle", + "subtle 2.5.0", ] [[package]] @@ -84,9 +84,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "getrandom 0.2.12", @@ -97,13 +97,19 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "always-assert" version = "0.1.3" @@ -125,12 +131,6 @@ dependencies = [ "libc", ] -[[package]] -name = "anes" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" - [[package]] name = "ansi_term" version = "0.12.1" @@ -142,9 +142,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.12" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -190,9 +190,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.80" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" [[package]] name = "approx" @@ -203,6 +203,155 @@ dependencies = [ "num-traits", ] +[[package]] +name = "aquamarine" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "074b80d14d0240b6ce94d68f059a2d26a5d77280ae142662365a21ef6e2594ef" +dependencies = [ + "include_dir", + "itertools 0.10.5", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.53", +] + +[[package]] +name = "ark-bls12-377" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "array-bytes" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" + [[package]] name = "array-bytes" version = "6.2.2" @@ -217,9 +366,12 @@ checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" -version = "0.5.2" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" +dependencies = [ + "nodrop", +] [[package]] name = "arrayvec" @@ -280,10 +432,14 @@ checksum = "15832d94c458da98cac0ffa6eca52cc19c2a3c6c951058500a5ae8f01f0fdf56" [[package]] name = "asset-hub-polkadot-runtime" -version = "0.9.420" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "1.0.0" +source = "git+https://github.com/polkadot-fellows/runtimes?rev=59172d5fb8feea2646490618bead3b2b4fb06220#59172d5fb8feea2646490618bead3b2b4fb06220" dependencies = [ "assets-common", + "bp-asset-hub-kusama", + "bp-asset-hub-polkadot", + "bp-bridge-hub-kusama", + "bp-bridge-hub-polkadot", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", @@ -291,12 +447,15 @@ dependencies = [ "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", + "kusama-runtime-constants", "log", "pallet-asset-tx-payment", "pallet-assets", @@ -304,6 +463,7 @@ dependencies = [ "pallet-authorship", "pallet-balances", "pallet-collator-selection", + "pallet-message-queue", "pallet-multisig", "pallet-nfts", "pallet-nfts-runtime-api", @@ -315,40 +475,46 @@ dependencies = [ "pallet-uniques", "pallet-utility", "pallet-xcm", - "parachain-info", + "pallet-xcm-benchmarks", + "pallet-xcm-bridge-hub-router", "parachains-common", "parity-scale-codec", "polkadot-core-primitives", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-runtime-common", "polkadot-runtime-constants", "scale-info", - "smallvec", "sp-api", "sp-block-builder", "sp-consensus-aura", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-offchain", "sp-runtime", "sp-session", "sp-std", + "sp-storage", "sp-transaction-pool", "sp-version", "sp-weights", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", + "system-parachains-constants", ] [[package]] name = "assets-common" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d2d5b75d36daec8ffad11f121f581cc3aec2b7b117d8ab68f6e3ac914a5569" dependencies = [ "cumulus-primitives-core", "frame-support", + "impl-trait-for-tuples", "log", "pallet-asset-conversion", "pallet-asset-tx-payment", @@ -359,10 +525,10 @@ dependencies = [ "sp-api", "sp-runtime", "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", ] [[package]] @@ -376,20 +542,79 @@ dependencies = [ "futures-core", ] +[[package]] +name = "async-channel" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" +dependencies = [ + "concurrent-queue", + "event-listener 5.2.0", + "event-listener-strategy 0.5.0", + "futures-core", + "pin-project-lite 0.2.13", +] + +[[package]] +name = "async-executor" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +dependencies = [ + "async-lock 3.3.0", + "async-task", + "concurrent-queue", + "fastrand 2.0.1", + "futures-lite 2.3.0", + "slab", +] + +[[package]] +name = "async-fs" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "blocking", + "futures-lite 1.13.0", +] + [[package]] name = "async-io" -version = "2.3.1" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" dependencies = [ "async-lock 3.3.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite", + "futures-lite 2.3.0", "parking", - "polling", - "rustix 0.38.31", + "polling 3.5.0", + "rustix 0.38.32", "slab", "tracing", "windows-sys 0.52.0", @@ -411,30 +636,71 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ "event-listener 4.0.3", - "event-listener-strategy", + "event-listener-strategy 0.4.0", "pin-project-lite 0.2.13", ] [[package]] -name = "async-recursion" -version = "1.0.5" +name = "async-net" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", + "async-io 1.13.0", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "async-process" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.32", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-signal" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +dependencies = [ + "async-io 2.3.2", + "async-lock 2.8.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.32", + "signal-hook-registry", + "slab", + "windows-sys 0.48.0", ] +[[package]] +name = "async-task" +version = "4.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" + [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -460,15 +726,16 @@ dependencies = [ ] [[package]] -name = "atty" -version = "0.2.14" +name = "atomic-take" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" + +[[package]] +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" @@ -532,8 +799,9 @@ dependencies = [ [[package]] name = "binary-merkle-tree" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bf2706ac2641485d35ed06ebfe0b3b2c43e19a7ad8a90215580a91dd1766114" dependencies = [ "hash-db", "log", @@ -566,9 +834,28 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.51", + "syn 2.0.53", +] + +[[package]] +name = "bip39" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" +dependencies = [ + "bitcoin_hashes", + "rand", + "rand_core 0.6.4", + "serde", + "unicode-normalization", ] +[[package]] +name = "bitcoin_hashes" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" + [[package]] name = "bitflags" version = "1.3.2" @@ -577,9 +864,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "bitvec" @@ -589,10 +876,23 @@ checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", + "serde", "tap", "wyz", ] +[[package]] +name = "blake2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" +dependencies = [ + "byte-tools", + "crypto-mac 0.7.0", + "digest 0.8.1", + "opaque-debug 0.2.3", +] + [[package]] name = "blake2" version = "0.10.6" @@ -602,6 +902,16 @@ dependencies = [ "digest 0.10.7", ] +[[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 0.1.5", +] + [[package]] name = "blake2b_simd" version = "1.0.2" @@ -610,7 +920,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec 0.7.4", - "constant_time_eq", + "constant_time_eq 0.3.0", ] [[package]] @@ -621,32 +931,20 @@ checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", "arrayvec 0.7.4", - "constant_time_eq", + "constant_time_eq 0.3.0", ] [[package]] name = "blake3" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" dependencies = [ "arrayref", "arrayvec 0.7.4", "cc", "cfg-if", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.4", + "constant_time_eq 0.3.0", ] [[package]] @@ -668,14 +966,21 @@ dependencies = [ ] [[package]] -name = "block-padding" -version = "0.1.5" +name = "blocking" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ - "byte-tools", -] - + "async-channel 2.2.0", + "async-lock 3.3.0", + "async-task", + "fastrand 2.0.1", + "futures-io", + "futures-lite 2.3.0", + "piper", + "tracing", +] + [[package]] name = "bounded-collections" version = "0.1.9" @@ -697,12 +1002,184 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bp-asset-hub-kusama" +version = "1.0.0" +source = "git+https://github.com/polkadot-fellows/runtimes?rev=59172d5fb8feea2646490618bead3b2b4fb06220#59172d5fb8feea2646490618bead3b2b4fb06220" +dependencies = [ + "bp-xcm-bridge-hub-router", + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-std", + "staging-xcm", +] + +[[package]] +name = "bp-asset-hub-polkadot" +version = "1.0.0" +source = "git+https://github.com/polkadot-fellows/runtimes?rev=59172d5fb8feea2646490618bead3b2b4fb06220#59172d5fb8feea2646490618bead3b2b4fb06220" +dependencies = [ + "bp-xcm-bridge-hub-router", + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-std", + "staging-xcm", +] + +[[package]] +name = "bp-bridge-hub-cumulus" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ab8c4b01666c7b1fca260a4ef755c6de01ddac94566b13b3b974ed7966d6d" +dependencies = [ + "bp-messages", + "bp-polkadot-core", + "bp-runtime", + "frame-support", + "frame-system", + "polkadot-primitives", + "sp-api", + "sp-std", +] + +[[package]] +name = "bp-bridge-hub-kusama" +version = "1.0.0" +source = "git+https://github.com/polkadot-fellows/runtimes?rev=59172d5fb8feea2646490618bead3b2b4fb06220#59172d5fb8feea2646490618bead3b2b4fb06220" +dependencies = [ + "bp-bridge-hub-cumulus", + "bp-messages", + "bp-runtime", + "frame-support", + "kusama-runtime-constants", + "polkadot-runtime-constants", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-bridge-hub-polkadot" +version = "1.0.0" +source = "git+https://github.com/polkadot-fellows/runtimes?rev=59172d5fb8feea2646490618bead3b2b4fb06220#59172d5fb8feea2646490618bead3b2b4fb06220" +dependencies = [ + "bp-bridge-hub-cumulus", + "bp-messages", + "bp-runtime", + "frame-support", + "kusama-runtime-constants", + "polkadot-runtime-constants", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-header-chain" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13815b42c75e06a6f6b19521a824cb6bf1624654b041ae0b4abeb279df0e2588" +dependencies = [ + "bp-runtime", + "finality-grandpa", + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-consensus-grandpa", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-messages" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "220c494acdb350a79a7268f4a73d7a6b6cd3f2138f301856a6f6c4a5c09ef926" +dependencies = [ + "bp-header-chain", + "bp-runtime", + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-std", +] + +[[package]] +name = "bp-polkadot-core" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80145cd18bd06347b5571a767112163e1da41e8b10a90bf9d2d982bf0ba5fcb7" +dependencies = [ + "bp-messages", + "bp-runtime", + "frame-support", + "frame-system", + "parity-scale-codec", + "parity-util-mem", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-runtime" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fad9aefbc3e6cb63e0ac82a4dae9f1404416b41fb45931a4b43946cfa23c814" +dependencies = [ + "frame-support", + "frame-system", + "hash-db", + "impl-trait-for-tuples", + "log", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "trie-db", +] + +[[package]] +name = "bp-xcm-bridge-hub-router" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f58cd5d7880f4bc8fc569e5bb0174302cd3f7e18a322e0fec2a4733cced35cb" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", +] + [[package]] name = "bs58" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + [[package]] name = "bstr" version = "0.2.17" @@ -735,9 +1212,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.3" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "byte-slice-cast" @@ -753,9 +1230,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.14.3" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" +checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" [[package]] name = "byteorder" @@ -780,6 +1257,16 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "c2-chacha" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27dae93fe7b1e0424dc57179ac396908c26b035a87234809f5c4dfd1b47dc80" +dependencies = [ + "cipher 0.2.5", + "ppv-lite86", +] + [[package]] name = "camino" version = "1.1.6" @@ -812,27 +1299,13 @@ dependencies = [ "thiserror", ] -[[package]] -name = "casey" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614586263949597dcc18675da12ef9b429135e13628d92eb8b8c6fa50ca5656b" -dependencies = [ - "syn 1.0.109", -] - -[[package]] -name = "cast" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" - [[package]] name = "cc" -version = "1.0.88" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" dependencies = [ + "jobserver", "libc", ] @@ -866,6 +1339,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +[[package]] +name = "chacha" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddf3c081b5fba1e5615640aae998e0fbd10c24cbd897ee39ed754a77601a4862" +dependencies = [ + "byteorder", + "keystream", +] + [[package]] name = "chacha20" version = "0.9.1" @@ -873,7 +1356,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures", ] @@ -885,23 +1368,23 @@ checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", "chacha20", - "cipher", + "cipher 0.4.4", "poly1305", "zeroize", ] [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.3", + "windows-targets 0.52.4", ] [[package]] @@ -939,11 +1422,20 @@ checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" dependencies = [ "core2", "multibase", - "multihash", + "multihash 0.17.0", "serde", "unsigned-varint", ] +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array 0.14.7", +] + [[package]] name = "cipher" version = "0.4.4" @@ -977,9 +1469,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.1" +version = "4.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" dependencies = [ "clap_builder", "clap_derive", @@ -987,26 +1479,27 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", "clap_lex", "strsim", + "terminal_size", ] [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -1110,9 +1603,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-random" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ "const-random-macro", ] @@ -1128,12 +1621,24 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + [[package]] name = "constant_time_eq" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +[[package]] +name = "constcat" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" + [[package]] name = "convert_case" version = "0.4.0" @@ -1300,44 +1805,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "criterion" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" -dependencies = [ - "anes", - "cast", - "ciborium", - "clap", - "criterion-plot", - "futures", - "is-terminal", - "itertools 0.10.5", - "num-traits", - "once_cell", - "oorandom", - "plotters", - "rayon", - "regex", - "serde", - "serde_derive", - "serde_json", - "tinytemplate", - "tokio", - "walkdir", -] - -[[package]] -name = "criterion-plot" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" -dependencies = [ - "cast", - "itertools 0.10.5", -] - [[package]] name = "critical-section" version = "1.1.2" @@ -1392,7 +1859,7 @@ checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", - "subtle", + "subtle 2.5.0", "zeroize", ] @@ -1407,6 +1874,16 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-mac" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +dependencies = [ + "generic-array 0.12.4", + "subtle 1.0.0", +] + [[package]] name = "crypto-mac" version = "0.8.0" @@ -1414,17 +1891,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.7", - "subtle", + "subtle 2.5.0", ] [[package]] name = "crypto-mac" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" dependencies = [ "generic-array 0.14.7", - "subtle", + "subtle 2.5.0", ] [[package]] @@ -1433,13 +1910,14 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] name = "cumulus-client-cli" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88972dcd58e7d411ebfd9d82d7399aad567afe737ba8ad0943abfaf1a8b3903b" dependencies = [ "clap", "parity-scale-codec", @@ -1447,6 +1925,7 @@ dependencies = [ "sc-cli", "sc-client-api", "sc-service", + "sp-blockchain", "sp-core", "sp-runtime", "url", @@ -1454,8 +1933,9 @@ dependencies = [ [[package]] name = "cumulus-client-collator" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab9d9114479da745e34b1a4529dca9e51a61860593b61681107249bc68024bd4" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1477,21 +1957,22 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00378c991116820c354713b3d3be2c9789f84bfb86d0a3c97676cc9e8a39c174" dependencies = [ "async-trait", "cumulus-client-collator", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", + "cumulus-client-parachain-inherent", "cumulus-primitives-aura", "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", "futures", - "lru 0.10.1", "parity-scale-codec", "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", "sc-client-api", @@ -1500,6 +1981,7 @@ dependencies = [ "sc-consensus-babe", "sc-consensus-slots", "sc-telemetry", + "schnellru", "sp-api", "sp-application-crypto", "sp-block-builder", @@ -1518,8 +2000,9 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "385c403c208f654e276f6d7ae30316d3d64f0975c9e19a18ed5943a963cc48c6" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1547,8 +2030,9 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614b239940f64843c65ec19e157ee769c556f74f084077dc2f0425f0a671e9ba" dependencies = [ "anyhow", "async-trait", @@ -1561,55 +2045,59 @@ dependencies = [ ] [[package]] -name = "cumulus-client-consensus-relay-chain" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +name = "cumulus-client-network" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee9b8802b76850237bbf2c1afb869a9673b49ef9545b31698e1bffbffcaa4254" dependencies = [ "async-trait", - "cumulus-client-consensus-common", - "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures", + "futures-timer", + "parity-scale-codec", "parking_lot 0.12.1", - "sc-consensus", - "sp-api", - "sp-block-builder", + "polkadot-node-primitives", + "polkadot-parachain-primitives", + "polkadot-primitives", + "sc-client-api", "sp-blockchain", "sp-consensus", "sp-core", - "sp-inherents", "sp-runtime", - "substrate-prometheus-endpoint", + "sp-state-machine", "tracing", ] [[package]] -name = "cumulus-client-network" +name = "cumulus-client-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bcc095540bb3ad848b1d5cd8708d8b493729370d4671df5a0c38ea53382e46b" dependencies = [ "async-trait", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", - "futures", - "futures-timer", + "cumulus-test-relay-sproof-builder", "parity-scale-codec", - "parking_lot 0.12.1", - "polkadot-node-primitives", - "polkadot-parachain", - "polkadot-primitives", "sc-client-api", - "sp-blockchain", - "sp-consensus", + "scale-info", + "sp-api", "sp-core", + "sp-inherents", "sp-runtime", "sp-state-machine", + "sp-std", + "sp-storage", + "sp-trie", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd12cbdd57209ffc68d167b0c22c90d5680185b57d03e4c2436aef7dfd918a2" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1621,7 +2109,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-client-api", "sc-consensus", "sp-consensus", @@ -1632,8 +2120,9 @@ dependencies = [ [[package]] name = "cumulus-client-service" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5be0615943319f8750eb54793f8ec8721b2081852c23ed450da54cfcf6aca97" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1641,6 +2130,7 @@ dependencies = [ "cumulus-client-network", "cumulus-client-pov-recovery", "cumulus-primitives-core", + "cumulus-primitives-proof-size-hostfunction", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", @@ -1667,12 +2157,15 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8100a3283be2c46905345141e9a063f092949c6630a1fb70993b04c97f309e55" dependencies = [ + "cumulus-pallet-parachain-system", "frame-support", "frame-system", "pallet-aura", + "pallet-timestamp", "parity-scale-codec", "scale-info", "sp-application-crypto", @@ -1683,10 +2176,12 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f461956a4a85c053657fe64e73852940c8a52e7d8fc20ccb4f91688e73f0820b" dependencies = [ "cumulus-primitives-core", + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -1695,25 +2190,30 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", + "staging-xcm", ] [[package]] name = "cumulus-pallet-parachain-system" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1a0e6800ea92447eab2c9170cc77d21987fd0e61ed79a6e1318f7b127b3e2c" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", + "cumulus-primitives-proof-size-hostfunction", "environmental", + "frame-benchmarking", "frame-support", "frame-system", "impl-trait-for-tuples", "log", + "pallet-message-queue", "parity-scale-codec", - "polkadot-parachain", + "polkadot-parachain-primitives", + "polkadot-runtime-parachains", "scale-info", "sp-core", "sp-externalities", @@ -1724,24 +2224,27 @@ dependencies = [ "sp-std", "sp-trie", "sp-version", - "xcm", + "staging-xcm", + "trie-db", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "befbaf3a1ce23ac8476481484fef5f4d500cbd15b4dad6380ce1d28134b0c1f7" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "cumulus-pallet-session-benchmarking" -version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90c6389bd56472581a2b9510c97e6fe869fe6c73c58d3d533ee3c74b92cce14" dependencies = [ "frame-benchmarking", "frame-support", @@ -1754,8 +2257,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9e5e8dd3f9c98620e32cbb1783725a3e75a3147cb351b43de37663824311cd9" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1765,34 +2269,40 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", + "staging-xcm", ] [[package]] name = "cumulus-pallet-xcmp-queue" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439cdba45813623e7f45374f160f3356d27fb1aaca2536dd7f60ef2a7e9b30cd" dependencies = [ + "bounded-collections", + "bp-xcm-bridge-hub-router", "cumulus-primitives-core", "frame-benchmarking", "frame-support", "frame-system", "log", + "pallet-message-queue", "parity-scale-codec", "polkadot-runtime-common", - "rand_chacha 0.3.1", + "polkadot-runtime-parachains", "scale-info", + "sp-core", "sp-io", "sp-runtime", "sp-std", - "xcm", - "xcm-executor", + "staging-xcm", + "staging-xcm-executor", ] [[package]] name = "cumulus-primitives-aura" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05ad9d2b1454d6957a92b3f8755d7bfa2b5b70ab2fa7751215f6897de5ac4cf6" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -1805,48 +2315,54 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "036b64697b5fd04c8039ccf15b9891104c496afb6c418c2cea1234d4898d0a28" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "scale-info", "sp-api", "sp-runtime", "sp-std", "sp-trie", - "xcm", + "staging-xcm", ] [[package]] name = "cumulus-primitives-parachain-inherent" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cb6fe06744fed6e84682c48816181ad63652003570c2135c425481440fcd2f2" 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-proof-size-hostfunction" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a132e17ac2c79436bc5004b0d56cb35ca65b966434f14e5ff8a9bc1afcfca5a4" +dependencies = [ + "sp-externalities", + "sp-runtime-interface", + "sp-trie", ] [[package]] name = "cumulus-primitives-timestamp" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6d1d900bd9e76607a4a0734cbb2b004d86177d2d6938b5d25eb812c6c1b7500" dependencies = [ "cumulus-primitives-core", "futures", @@ -1858,26 +2374,30 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ece52eeb7e87faea0d374356571ebc13f279df3bf79a1dc8a0db6c49d6ba23" dependencies = [ "cumulus-primitives-core", "frame-support", "log", + "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-runtime-common", + "polkadot-runtime-parachains", "sp-io", "sp-runtime", "sp-std", - "xcm", - "xcm-builder", - "xcm-executor", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", ] [[package]] name = "cumulus-relay-chain-inprocess-interface" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6801c53e543614ce1b9f87cfca8ed69aab5318ba51439c0db8a910c8c3d77a15" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1900,8 +2420,9 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdf9bd710caacdee77f50f01a40f37f8c9af1040e895de3e0b421f2c4ad0a291" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1911,216 +2432,106 @@ dependencies = [ "polkadot-overseer", "sc-client-api", "sp-api", - "sp-blockchain", - "sp-state-machine", - "thiserror", -] - -[[package]] -name = "cumulus-relay-chain-minimal-node" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" -dependencies = [ - "array-bytes", - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "cumulus-relay-chain-rpc-interface", - "futures", - "lru 0.9.0", - "polkadot-availability-recovery", - "polkadot-collator-protocol", - "polkadot-core-primitives", - "polkadot-network-bridge", - "polkadot-node-collation-generation", - "polkadot-node-core-runtime-api", - "polkadot-node-network-protocol", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "sc-authority-discovery", - "sc-client-api", - "sc-network", - "sc-network-common", - "sc-service", - "sc-tracing", - "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-runtime", - "tokio", - "tracing", -] - -[[package]] -name = "cumulus-relay-chain-rpc-interface" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" -dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures", - "futures-timer", - "jsonrpsee", - "lru 0.9.0", - "parity-scale-codec", - "polkadot-overseer", - "sc-client-api", - "sc-rpc-api", - "sc-service", - "serde", - "serde_json", - "sp-api", - "sp-authority-discovery", - "sp-consensus-babe", - "sp-core", - "sp-state-machine", - "sp-storage", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "cumulus-test-relay-sproof-builder" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" -dependencies = [ - "cumulus-primitives-core", - "parity-scale-codec", - "polkadot-primitives", - "sp-runtime", - "sp-state-machine", - "sp-std", -] - -[[package]] -name = "cumulus-test-relay-validation-worker-provider" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" -dependencies = [ - "polkadot-node-core-pvf", - "toml 0.7.8", -] - -[[package]] -name = "cumulus-test-runtime" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" -dependencies = [ - "cumulus-pallet-parachain-system", - "cumulus-primitives-core", - "cumulus-primitives-timestamp", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", - "pallet-balances", - "pallet-glutton", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-block-builder", - "sp-core", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder", + "sp-blockchain", + "sp-state-machine", + "thiserror", ] [[package]] -name = "cumulus-test-service" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +name = "cumulus-relay-chain-minimal-node" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b1e0847e45d6a5090ee32b4dc3497cb0671b9a6a9259f9a263a769560c5b60e" dependencies = [ + "array-bytes 6.2.2", "async-trait", - "clap", - "criterion", - "cumulus-client-cli", - "cumulus-client-consensus-common", - "cumulus-client-consensus-relay-chain", - "cumulus-client-pov-recovery", - "cumulus-client-service", - "cumulus-pallet-parachain-system", "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", - "cumulus-relay-chain-minimal-node", - "cumulus-test-relay-sproof-builder", - "cumulus-test-relay-validation-worker-provider", - "cumulus-test-runtime", - "frame-system", - "frame-system-rpc-runtime-api", - "jsonrpsee", - "pallet-timestamp", - "pallet-transaction-payment", - "parachains-common", - "parity-scale-codec", - "polkadot-cli", - "polkadot-node-subsystem", + "cumulus-relay-chain-rpc-interface", + "futures", + "parking_lot 0.12.1", + "polkadot-availability-recovery", + "polkadot-collator-protocol", + "polkadot-core-primitives", + "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-chain-api", + "polkadot-node-core-prospective-parachains", + "polkadot-node-core-runtime-api", + "polkadot-node-network-protocol", + "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "polkadot-service", - "polkadot-test-service", - "rand 0.8.5", - "sc-basic-authorship", - "sc-block-builder", - "sc-chain-spec", - "sc-cli", + "sc-authority-discovery", "sc-client-api", - "sc-consensus", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", "sc-network", + "sc-network-common", "sc-service", - "sc-telemetry", "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "serde", + "sc-utils", "sp-api", - "sp-arithmetic", "sp-blockchain", "sp-consensus", + "sp-consensus-babe", + "sp-runtime", + "substrate-prometheus-endpoint", + "tokio", + "tracing", +] + +[[package]] +name = "cumulus-relay-chain-rpc-interface" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cb8a4c98335aeac261bde9b21e7518c099bfacc96592a052750051cebda158c" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "either", + "futures", + "futures-timer", + "jsonrpsee", + "parity-scale-codec", + "pin-project", + "polkadot-overseer", + "rand", + "sc-client-api", + "sc-rpc-api", + "sc-service", + "schnellru", + "serde", + "serde_json", + "smoldot", + "smoldot-light", + "sp-api", + "sp-authority-discovery", + "sp-consensus-babe", "sp-core", - "sp-io", - "sp-keyring", "sp-runtime", "sp-state-machine", - "sp-timestamp", - "sp-tracing", - "sp-trie", - "substrate-test-client", - "tempfile", + "sp-storage", + "sp-version", + "thiserror", "tokio", + "tokio-util", "tracing", "url", ] [[package]] -name = "curve25519-dalek" -version = "2.1.3" +name = "cumulus-test-relay-sproof-builder" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" +checksum = "c0ec12490a40b00427119fd1e12a6d1fe0652d2df3e992dea1bc4f331effed12" dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", - "subtle", - "zeroize", + "cumulus-primitives-core", + "parity-scale-codec", + "polkadot-primitives", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", ] [[package]] @@ -2132,7 +2543,7 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle", + "subtle 2.5.0", "zeroize", ] @@ -2149,7 +2560,7 @@ dependencies = [ "fiat-crypto", "platforms", "rustc_version 0.4.0", - "subtle", + "subtle 2.5.0", "zeroize", ] @@ -2161,14 +2572,27 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", ] [[package]] name = "cxx" -version = "1.0.117" +version = "1.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c15f3b597018782655a05d417f28bac009f6eb60f4b6703eb818998c1aaa16a" +checksum = "635179be18797d7e10edb9cd06c859580237750c7351f39ed9b298bfc17544ad" dependencies = [ "cc", "cxxbridge-flags", @@ -2178,9 +2602,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.117" +version = "1.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81699747d109bba60bd6f87e7cb24b626824b8427b32f199b95c7faa06ee3dc9" +checksum = "9324397d262f63ef77eb795d900c0d682a34a43ac0932bec049ed73055d52f63" dependencies = [ "cc", "codespan-reporting", @@ -2188,24 +2612,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "cxxbridge-flags" -version = "1.0.117" +version = "1.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a7eb4c4fd18505f5a935f9c2ee77780350dcdb56da7cd037634e806141c5c43" +checksum = "a87ff7342ffaa54b7c61618e0ce2bbcf827eba6d55b923b83d82551acbbecfe5" [[package]] name = "cxxbridge-macro" -version = "1.0.117" +version = "1.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d914fcc6452d133236ee067a9538be25ba6a644a450e1a6c617da84bf029854" +checksum = "70b5b86cf65fa0626d85720619d80b288013477a91a0389fa8bc716bf4903ad1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -2335,14 +2759,14 @@ dependencies = [ "block-buffer 0.10.4", "const-oid", "crypto-common", - "subtle", + "subtle 2.5.0", ] [[package]] name = "directories" -version = "4.0.1" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" dependencies = [ "dirs-sys", ] @@ -2359,13 +2783,14 @@ dependencies = [ [[package]] name = "dirs-sys" -version = "0.3.7" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", + "option-ext", "redox_users", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -2387,32 +2812,33 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "docify" -version = "0.1.16" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1b04e6ef3d21119d3eb7b032bca17f99fe041e9c072f30f32cc0e1a2b1f3c4" +checksum = "7cc4fd38aaa9fb98ac70794c82a00360d1e165a87fbf96a8a91f9dfc602aaee2" dependencies = [ "docify_macros", ] [[package]] name = "docify_macros" -version = "0.1.16" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5610df7f2acf89a1bb5d1a66ae56b1c7fcdcfe3948856fb3ace3f644d70eb7" +checksum = "63fa215f3a0d40fb2a221b3aa90d8e1fbb8379785a990cb60d62ac71ebdc6460" dependencies = [ "common-path", "derive-syn-parse", - "lazy_static", + "once_cell", "proc-macro2", "quote", "regex", - "syn 2.0.51", + "syn 2.0.53", "termcolor", + "toml 0.8.12", "walkdir", ] @@ -2422,6 +2848,12 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + [[package]] name = "dtoa" version = "1.0.9" @@ -2465,19 +2897,10 @@ dependencies = [ "digest 0.10.7", "elliptic-curve", "rfc6979", - "signature 2.2.0", + "signature", "spki", ] -[[package]] -name = "ed25519" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" -dependencies = [ - "signature 1.6.4", -] - [[package]] name = "ed25519" version = "2.2.3" @@ -2485,19 +2908,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ "pkcs8", - "signature 2.2.0", -] - -[[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 1.5.3", - "sha2 0.9.9", - "zeroize", + "signature", ] [[package]] @@ -2507,11 +2918,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek 4.1.2", - "ed25519 2.2.3", + "ed25519", "rand_core 0.6.4", "serde", "sha2 0.10.8", - "subtle", + "subtle 2.5.0", "zeroize", ] @@ -2529,6 +2940,21 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ed25519-zebra" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +dependencies = [ + "curve25519-dalek 4.1.2", + "ed25519", + "hashbrown 0.14.3", + "hex", + "rand_core 0.6.4", + "sha2 0.10.8", + "zeroize", +] + [[package]] name = "either" version = "1.10.0" @@ -2550,7 +2976,7 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sec1", - "subtle", + "subtle 2.5.0", "zeroize", ] @@ -2575,7 +3001,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "syn 1.0.109", @@ -2598,7 +3024,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -2609,20 +3035,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", -] - -[[package]] -name = "env_logger" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", + "syn 2.0.53", ] [[package]] @@ -2660,12 +3073,50 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-rlp", + "impl-serde", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-rlp", + "impl-serde", + "primitive-types", + "uint", +] + [[package]] name = "event-listener" version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +[[package]] +name = "event-listener" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite 0.2.13", +] + [[package]] name = "event-listener" version = "4.0.3" @@ -2677,6 +3128,17 @@ dependencies = [ "pin-project-lite 0.2.13", ] +[[package]] +name = "event-listener" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite 0.2.13", +] + [[package]] name = "event-listener-strategy" version = "0.4.0" @@ -2687,6 +3149,16 @@ dependencies = [ "pin-project-lite 0.2.13", ] +[[package]] +name = "event-listener-strategy" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +dependencies = [ + "event-listener 5.2.0", + "pin-project-lite 0.2.13", +] + [[package]] name = "exit-future" version = "0.2.0" @@ -2710,41 +3182,33 @@ dependencies = [ [[package]] name = "expander" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3774182a5df13c3d1690311ad32fbe913feef26baba609fa2dd5f72042bd2ab6" -dependencies = [ - "blake2", - "fs-err", - "proc-macro2", - "quote", -] - -[[package]] -name = "expander" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +checksum = "00e83c02035136f1592a47964ea60c05a50e4ed8b5892cfac197063850898d4d" dependencies = [ - "blake2", + "blake2 0.10.6", "fs-err", + "prettier-please", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] -[[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.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + [[package]] name = "fastrand" version = "2.0.1" @@ -2778,11 +3242,12 @@ dependencies = [ [[package]] name = "fdlimit" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" +checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" dependencies = [ "libc", + "thiserror", ] [[package]] @@ -2792,14 +3257,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ "rand_core 0.6.4", - "subtle", + "subtle 2.5.0", ] [[package]] name = "fiat-crypto" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" +checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" [[package]] name = "file-per-thread-logger" @@ -2807,7 +3272,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" dependencies = [ - "env_logger 0.10.2", + "env_logger", "log", ] @@ -2846,7 +3311,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand", "rustc-hex", "static_assertions", ] @@ -2885,8 +3350,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "12.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e93d3f0315c2eccf23453609e0ab92fe7c6ad1ca8129bcaf80b9a08c8d7fc52b" dependencies = [ "parity-scale-codec", ] @@ -2908,8 +3374,9 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b16f7f853f64ec6fbc981b3e224cc3400752662da140ec62c160b5b859bab68" dependencies = [ "frame-support", "frame-support-procedural", @@ -2933,11 +3400,12 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "32.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fec078a73892cb5a7146671cf76e3abf23201fefe431a013399ac2e5b03b54" dependencies = [ "Inflector", - "array-bytes", + "array-bytes 6.2.2", "chrono", "clap", "comfy-table", @@ -2951,7 +3419,7 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "rand 0.8.5", + "rand", "rand_pcg", "sc-block-builder", "sc-cli", @@ -2981,19 +3449,21 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5c3bff645e46577c69c272733c53fa3a77d1ee6e40dfb66157bc94b0740b8fc" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "frame-election-provider-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c596d956c4eedaffbe2fd6f75562e63e3e60001222bc6f8cc45fa77f3ea51791" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -3009,12 +3479,14 @@ dependencies = [ [[package]] name = "frame-executive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5247e367912fe95f813e96542921ab4edf671860fd557625b55f40155abf90" dependencies = [ "frame-support", "frame-system", "frame-try-runtime", + "log", "parity-scale-codec", "scale-info", "sp-core", @@ -3038,10 +3510,10 @@ dependencies = [ [[package]] name = "frame-remote-externalities" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26ac8b505de5aa10e9c9548a3642fc708fc47fe3843b840992e6e6ab139f39d0" dependencies = [ - "async-recursion", "futures", "indicatif", "jsonrpsee", @@ -3051,6 +3523,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", + "sp-state-machine", "spinners", "substrate-rpc-client", "tokio", @@ -3059,10 +3532,14 @@ dependencies = [ [[package]] name = "frame-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48b00bb3e82c465a435b08827e7abe5144345bc1a998848bdd7ce72fa203bb5" dependencies = [ + "aquamarine", + "array-bytes 6.2.2", "bitflags 1.3.2", + "docify", "environmental", "frame-metadata", "frame-support-procedural", @@ -3074,69 +3551,79 @@ dependencies = [ "paste", "scale-info", "serde", + "serde_json", "smallvec", "sp-api", "sp-arithmetic", "sp-core", "sp-core-hashing-proc-macro", "sp-debug-derive", + "sp-genesis-builder", "sp-inherents", "sp-io", + "sp-metadata-ir", "sp-runtime", "sp-staking", "sp-state-machine", "sp-std", "sp-tracing", "sp-weights", + "static_assertions", "tt-call", ] [[package]] name = "frame-support-procedural" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "23.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0be717139a0da9b31b559356db73f6ce48876d331e833ebdc32de3a9ad581e15" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse", - "expander 2.0.0", + "expander 2.1.0", "frame-support-procedural-tools", "itertools 0.10.5", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.51", + "sp-core-hashing", + "syn 2.0.53", ] [[package]] name = "frame-support-procedural-tools" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3363df38464c47a73eb521a4f648bfcc7537a82d70347ef8af3f73b6d019e910" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "11.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68672b9ec6fe72d259d3879dc212c5e42e977588cdac830c76f54d9f492aeb58" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "frame-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "983b3215c8d97775b90dc1db88f858c46401682bd2fb8572bdd102ff8c2ca2a6" dependencies = [ "cfg-if", + "docify", "frame-support", "log", "parity-scale-codec", @@ -3152,8 +3639,9 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f78a2fe203b01b596156b2514e0b890b4a628dbdb50925316e755aa623b6fe53" dependencies = [ "frame-benchmarking", "frame-support", @@ -3167,8 +3655,9 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d183819ea7df1d89acd61fe423ae6bec24a29d87db5c18182339a751c0837a" dependencies = [ "parity-scale-codec", "sp-api", @@ -3176,8 +3665,9 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b3dab79d14d2e8f6329d7e5cb49f2bdb81b9ef3019b1c405d94defa137a353" dependencies = [ "frame-support", "parity-scale-codec", @@ -3207,11 +3697,11 @@ dependencies = [ [[package]] name = "fs4" -version = "0.6.6" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47" +checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.32", "windows-sys 0.48.0", ] @@ -3272,11 +3762,29 @@ checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" -version = "2.2.0" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite 0.2.13", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ + "fastrand 2.0.1", "futures-core", + "futures-io", + "parking", "pin-project-lite 0.2.13", ] @@ -3288,7 +3796,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -3399,13 +3907,23 @@ dependencies = [ "wasi 0.11.0+wasi-snapshot-preview1", ] +[[package]] +name = "getrandom_or_panic" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" +dependencies = [ + "rand", + "rand_core 0.6.4", +] + [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "polyval", ] @@ -3441,7 +3959,7 @@ dependencies = [ "aho-corasick", "bstr 1.9.1", "log", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "regex-syntax 0.8.2", ] @@ -3453,14 +3971,14 @@ checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", "rand_core 0.6.4", - "subtle", + "subtle 2.5.0", ] [[package]] name = "h2" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" dependencies = [ "bytes", "fnv", @@ -3468,7 +3986,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.2.3", + "indexmap 2.2.5", "slab", "tokio", "tokio-util", @@ -3538,7 +4056,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", ] [[package]] @@ -3546,6 +4064,20 @@ name = "hashbrown" version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", + "serde", +] + +[[package]] +name = "hashlink" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +dependencies = [ + "hashbrown 0.14.3", +] [[package]] name = "heapless" @@ -3568,19 +4100,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -3600,6 +4129,15 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac 0.12.1", +] + [[package]] name = "hmac" version = "0.8.1" @@ -3616,7 +4154,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" dependencies = [ - "crypto-mac 0.11.1", + "crypto-mac 0.11.0", "digest 0.9.0", ] @@ -3662,9 +4200,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -3758,7 +4296,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -3807,7 +4345,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" dependencies = [ - "async-io", + "async-io 2.3.2", "core-foundation", "fnv", "futures", @@ -3829,6 +4367,15 @@ 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.4.0" @@ -3849,6 +4396,25 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "include_dir" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +dependencies = [ + "proc-macro2", + "quote", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -3862,14 +4428,20 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.3" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ "equivalent", "hashbrown 0.14.3", ] +[[package]] +name = "indexmap-nostd" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" + [[package]] name = "indicatif" version = "0.17.8" @@ -3922,7 +4494,6 @@ version = "0.5.1" dependencies = [ "asset-hub-polkadot-runtime", "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", "frame-support", "frame-system", @@ -3945,7 +4516,6 @@ dependencies = [ "pallet-treasury", "pallet-vesting", "pallet-xcm", - "parachain-info", "parachains-common", "parity-scale-codec", "penpal-runtime", @@ -3955,7 +4525,7 @@ dependencies = [ "polimec-runtime", "politest-runtime", "polkadot-core-primitives", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime", "polkadot-runtime-constants", @@ -3967,15 +4537,18 @@ dependencies = [ "sp-arithmetic", "sp-authority-discovery", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-io", "sp-runtime", "sp-std", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", - "xcm", - "xcm-builder", + "system-parachains-constants", "xcm-emulator", - "xcm-executor", ] [[package]] @@ -3984,7 +4557,7 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.8", + "hermit-abi", "libc", "windows-sys 0.48.0", ] @@ -4019,11 +4592,20 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ - "hermit-abi 0.3.8", + "hermit-abi", "libc", "windows-sys 0.52.0", ] +[[package]] +name = "is_executable" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" +dependencies = [ + "winapi", +] + [[package]] name = "itertools" version = "0.10.5" @@ -4048,11 +4630,20 @@ version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +[[package]] +name = "jobserver" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -4111,7 +4702,7 @@ dependencies = [ "hyper", "jsonrpsee-types", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "rustc-hash", "serde", "serde_json", @@ -4146,7 +4737,7 @@ version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44e8ab85614a08792b9bff6c8feee23be78c98d0182d4c622c05256ab553892a" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro-crate 1.3.1", "proc-macro2", "quote", @@ -4211,7 +4802,7 @@ dependencies = [ "bounded-collections", "chrono", "ciborium", - "ed25519-dalek 2.1.1", + "ed25519-dalek", "hmac 0.12.1", "parity-scale-codec", "rand_core 0.6.4", @@ -4220,7 +4811,7 @@ dependencies = [ "serde_json", "sha2 0.10.8", "smallvec", - "subtle", + "subtle 2.5.0", "zeroize", ] @@ -4247,109 +4838,15 @@ dependencies = [ ] [[package]] -name = "kusama-runtime" +name = "keystream" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" -dependencies = [ - "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 0.4.1", - "kusama-runtime-constants", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-bounties", - "pallet-child-bounties", - "pallet-collective", - "pallet-conviction-voting", - "pallet-democracy 4.0.0-dev", - "pallet-election-provider-multi-phase", - "pallet-election-provider-support-benchmarking", - "pallet-elections-phragmen 5.0.0-dev", - "pallet-fast-unstake", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-message-queue", - "pallet-multisig", - "pallet-nis", - "pallet-nomination-pools", - "pallet-nomination-pools-benchmarking", - "pallet-nomination-pools-runtime-api", - "pallet-offences", - "pallet-offences-benchmarking", - "pallet-preimage", - "pallet-proxy", - "pallet-ranked-collective", - "pallet-recovery", - "pallet-referenda", - "pallet-scheduler", - "pallet-session", - "pallet-session-benchmarking", - "pallet-society", - "pallet-staking", - "pallet-staking-runtime-api", - "pallet-state-trie-migration", - "pallet-timestamp", - "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury", - "pallet-utility", - "pallet-vesting", - "pallet-whitelist", - "pallet-xcm", - "pallet-xcm-benchmarks", - "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-consensus-beefy", - "sp-core", - "sp-inherents", - "sp-io", - "sp-mmr-primitives", - "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", -] +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" [[package]] name = "kusama-runtime-constants" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +source = "git+https://github.com/polkadot-fellows/runtimes?rev=59172d5fb8feea2646490618bead3b2b4fb06220#59172d5fb8feea2646490618bead3b2b4fb06220" dependencies = [ "frame-support", "polkadot-primitives", @@ -4358,6 +4855,7 @@ dependencies = [ "sp-core", "sp-runtime", "sp-weights", + "staging-xcm-builder", ] [[package]] @@ -4395,9 +4893,9 @@ dependencies = [ [[package]] name = "landlock" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520baa32708c4e957d2fc3a186bc5bd8d26637c33137f399ddfc202adb240068" +checksum = "1530c5b973eeed4ac216af7e24baf5737645a6272e361f1fb95710678b67d9cc" dependencies = [ "enumflags2", "libc", @@ -4424,14 +4922,20 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libloading" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "windows-sys 0.48.0", + "windows-targets 0.52.4", ] +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "libp2p" version = "0.51.4" @@ -4503,13 +5007,13 @@ dependencies = [ "libp2p-identity", "log", "multiaddr", - "multihash", + "multihash 0.17.0", "multistream-select", "once_cell", "parking_lot 0.12.1", "pin-project", "quick-protobuf", - "rand 0.8.5", + "rand", "rw-stream-sink", "smallvec", "thiserror", @@ -4559,13 +5063,13 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" dependencies = [ - "bs58", - "ed25519-dalek 2.1.1", + "bs58 0.4.0", + "ed25519-dalek", "log", "multiaddr", - "multihash", + "multihash 0.17.0", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "thiserror", "zeroize", @@ -4590,7 +5094,7 @@ dependencies = [ "libp2p-swarm", "log", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "smallvec", "thiserror", @@ -4612,7 +5116,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.4.10", "tokio", @@ -4648,12 +5152,12 @@ dependencies = [ "log", "once_cell", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "snow", "static_assertions", "thiserror", - "x25519-dalek", + "x25519-dalek 1.1.1", "zeroize", ] @@ -4670,7 +5174,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "void", ] @@ -4690,7 +5194,7 @@ dependencies = [ "log", "parking_lot 0.12.1", "quinn-proto", - "rand 0.8.5", + "rand", "rustls 0.20.9", "thiserror", "tokio", @@ -4708,7 +5212,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand 0.8.5", + "rand", "smallvec", ] @@ -4727,7 +5231,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm-derive", "log", - "rand 0.8.5", + "rand", "smallvec", "tokio", "void", @@ -4739,7 +5243,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" dependencies = [ - "heck", + "heck 0.4.1", "quote", "syn 1.0.109", ] @@ -4831,7 +5335,7 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "libc", "redox_syscall 0.4.1", ] @@ -4864,7 +5368,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand 0.8.5", + "rand", "serde", "sha2 0.9.9", "typenum", @@ -4878,7 +5382,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle", + "subtle 2.5.0", ] [[package]] @@ -4949,12 +5453,30 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + [[package]] name = "linux-raw-sys" version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +[[package]] +name = "lioness" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae926706ba42c425c9457121178330d75e273df2e82e28b758faf3de3a9acb9" +dependencies = [ + "arrayref", + "blake2 0.8.1", + "chacha", + "keystream", +] + [[package]] name = "lock_api" version = "0.4.11" @@ -4967,17 +5489,17 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "lru" -version = "0.9.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17" +checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" dependencies = [ - "hashbrown 0.13.2", + "hashbrown 0.12.3", ] [[package]] @@ -4989,6 +5511,12 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "lru" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" + [[package]] name = "lru-cache" version = "0.1.2" @@ -5029,50 +5557,50 @@ dependencies = [ [[package]] name = "macro_magic" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aee866bfee30d2d7e83835a4574aad5b45adba4cc807f2a3bbba974e5d4383c9" +checksum = "e03844fc635e92f3a0067e25fa4bf3e3dbf3f2927bf3aa01bb7bc8f1c428949d" dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "macro_magic_core" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e766a20fd9c72bab3e1e64ed63f36bd08410e75803813df210d1ce297d7ad00" +checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d" dependencies = [ "const-random", "derive-syn-parse", "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "macro_magic_core_macros" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d710e1214dffbab3b5dacb21475dde7d6ed84c69ff722b3a47a782668d44fbac" +checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "macro_magic_macros" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fb85ec1620619edf2984a7693497d4ec88a9665d8b87e942856884c92dbf2a" +checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -5082,7 +5610,7 @@ dependencies = [ "proc-macro2", "quote", "sp-core", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -5141,7 +5669,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.32", ] [[package]] @@ -5173,13 +5701,13 @@ dependencies = [ [[package]] name = "merlin" -version = "2.0.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core 0.5.1", + "rand_core 0.6.4", "zeroize", ] @@ -5190,7 +5718,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" dependencies = [ "futures", - "rand 0.8.5", + "rand", "thrift", ] @@ -5217,19 +5745,45 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.48.0", ] +[[package]] +name = "mixnet" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa3eb39495d8e2e2947a1d862852c90cc6a4a8845f8b41c8829cb9fcc047f4a" +dependencies = [ + "arrayref", + "arrayvec 0.7.4", + "bitflags 1.3.2", + "blake2 0.10.6", + "c2-chacha", + "curve25519-dalek 4.1.2", + "either", + "hashlink", + "lioness", + "log", + "parking_lot 0.12.1", + "rand", + "rand_chacha 0.3.1", + "rand_distr", + "subtle 2.5.0", + "thiserror", + "zeroize", +] + [[package]] name = "mmr-gadget" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d0ba6676a84f182dabd7c3ec2c92f0e882fe4e4179ddf76f02ac132e6eb0ab" dependencies = [ "futures", "log", @@ -5247,8 +5801,9 @@ dependencies = [ [[package]] name = "mmr-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19066d17147f6819ec25f5f6fc3b9fca2008ae745ac7fa2d55ddb1d207119eae" dependencies = [ "anyhow", "jsonrpsee", @@ -5299,7 +5854,7 @@ dependencies = [ "data-encoding", "log", "multibase", - "multihash", + "multihash 0.17.0", "percent-encoding", "serde", "static_assertions", @@ -5329,12 +5884,55 @@ dependencies = [ "blake3", "core2", "digest 0.10.7", - "multihash-derive", + "multihash-derive 0.8.0", "sha2 0.10.8", "sha3", "unsigned-varint", ] +[[package]] +name = "multihash" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +dependencies = [ + "core2", + "digest 0.10.7", + "multihash-derive 0.8.0", + "sha2 0.10.8", + "unsigned-varint", +] + +[[package]] +name = "multihash" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +dependencies = [ + "core2", + "unsigned-varint", +] + +[[package]] +name = "multihash-codetable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6d815ecb3c8238d00647f8630ede7060a642c9f704761cd6082cb4028af6935" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive 0.9.0", + "ripemd", + "serde", + "sha1", + "sha2 0.10.8", + "sha3", + "strobe-rs", +] + [[package]] name = "multihash-derive" version = "0.8.0" @@ -5349,6 +5947,31 @@ dependencies = [ "synstructure", ] +[[package]] +name = "multihash-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "890e72cb7396cb99ed98c1246a97b243cc16394470d94e0bc8b0c2c11d84290e" +dependencies = [ + "core2", + "multihash 0.19.1", + "multihash-derive-impl", +] + +[[package]] +name = "multihash-derive-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38685e08adb338659871ecfc6ee47ba9b22dcc8abcf6975d379cc49145c3040" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + [[package]] name = "multimap" version = "0.8.3" @@ -5398,11 +6021,11 @@ dependencies = [ [[package]] name = "names" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d66043b25d4a6cccb23619d10c19c25304b355a7dccd4a8e11423dd2382146" +checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" dependencies = [ - "rand 0.8.5", + "rand", ] [[package]] @@ -5488,6 +6111,18 @@ dependencies = [ "libc", ] +[[package]] +name = "no-std-net" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" + +[[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" @@ -5574,6 +6209,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -5582,7 +6218,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.8", + "hermit-abi", "libc", ] @@ -5628,12 +6264,6 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "oorandom" -version = "11.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" - [[package]] name = "opaque-debug" version = "0.2.3" @@ -5642,9 +6272,9 @@ checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl-probe" @@ -5652,11 +6282,17 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "orchestra" -version = "0.0.5" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "227585216d05ba65c7ab0a0450a3cf2cbd81a98862a54c4df8e14d5ac6adb015" +checksum = "2356622ffdfe72362a45a1e5e87bb113b8327e596e39b91f11f0ef4395c8da79" dependencies = [ "async-trait", "dyn-clonable", @@ -5664,19 +6300,20 @@ dependencies = [ "futures-timer", "orchestra-proc-macro", "pin-project", - "prioritized-metered-channel", + "prioritized-metered-channel 0.6.1", "thiserror", "tracing", ] [[package]] name = "orchestra-proc-macro" -version = "0.0.5" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2871aadd82a2c216ee68a69837a526dfe788ecbe74c4c5038a6acdbff6653066" +checksum = "eedb646674596266dc9bb2b5c7eea7c36b32ecc7777eba0d510196972d72c4fd" dependencies = [ - "expander 0.0.6", - "itertools 0.10.5", + "expander 2.1.0", + "indexmap 2.2.5", + "itertools 0.11.0", "petgraph", "proc-macro-crate 1.3.1", "proc-macro2", @@ -5695,8 +6332,9 @@ dependencies = [ [[package]] name = "orml-oracle" -version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v1.0.0#2b41f29e749fda52522cb4c7ea0e47f517f6a59d" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "094597ad71aba7e116d93af4d68ceaed95273c75c065dd89aeab43051083c485" dependencies = [ "frame-support", "frame-system", @@ -5713,8 +6351,9 @@ dependencies = [ [[package]] name = "orml-traits" -version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v1.0.0#2b41f29e749fda52522cb4c7ea0e47f517f6a59d" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f4617d5262e9a8f3b5e7ab5961e8d0a3d4e25ef0c9d34e6ff87766c406898b" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -5728,13 +6367,14 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", + "staging-xcm", ] [[package]] name = "orml-utilities" -version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v1.0.0#2b41f29e749fda52522cb4c7ea0e47f517f6a59d" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1756d8ca7c433fdb538ff14bbb60a343fc6cf7b0684af4a73889f89de364e18f" dependencies = [ "frame-support", "parity-scale-codec", @@ -5748,8 +6388,9 @@ dependencies = [ [[package]] name = "pallet-asset-conversion" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2139677a59351fbd8513ddd92be4a7443d7d92f8f6897b2bbc78f55d1c6b8a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5764,10 +6405,27 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-asset-rate" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6f4917bc6c9ed6864813bbb828e94c63e1878a21af89d25dd0ff7da742f53e" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-asset-tx-payment" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e967664d86219ca9f7d33504e8d914225cdb92e9e793d35edaab1fd2574f162f" dependencies = [ "frame-benchmarking", "frame-support", @@ -5784,12 +6442,14 @@ dependencies = [ [[package]] name = "pallet-assets" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aca79db2bc70c269170893604d8a56d0f32d52c75a23a3d887b6b4df132366b7" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-core", @@ -5799,11 +6459,13 @@ dependencies = [ [[package]] name = "pallet-aura" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10c6ecf016520a6883df14b2f1d469d98166377eba4b299af7b76eee0130e3a6" dependencies = [ "frame-support", "frame-system", + "log", "pallet-timestamp", "parity-scale-codec", "scale-info", @@ -5815,8 +6477,9 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9224b0a0bb4fa721d51f56947c73d4189710691b4cb40e7f7a8abf59795759a" dependencies = [ "frame-support", "frame-system", @@ -5831,8 +6494,9 @@ dependencies = [ [[package]] name = "pallet-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817b0420f9c14bd9bfbaf9e2f769a7e8124ab4fe3da0d07c80485c0901947ab8" dependencies = [ "frame-support", "frame-system", @@ -5845,8 +6509,9 @@ dependencies = [ [[package]] name = "pallet-babe" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ba445228a941062d7c4d6295810a359df7757d6182c36ddb824f8c3bf350380" dependencies = [ "frame-benchmarking", "frame-support", @@ -5869,9 +6534,12 @@ dependencies = [ [[package]] name = "pallet-bags-list" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0d7b6922a6bed960591efb49da6637312c034337faf4c85d8b35f2e2c611a" dependencies = [ + "aquamarine", + "docify", "frame-benchmarking", "frame-election-provider-support", "frame-support", @@ -5889,8 +6557,9 @@ dependencies = [ [[package]] name = "pallet-balances" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8406b5616e468d80972b6365f3cd8211d0dbf4d107b379fac85fddcfdf0b5562" dependencies = [ "frame-benchmarking", "frame-support", @@ -5904,11 +6573,13 @@ dependencies = [ [[package]] name = "pallet-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03f71d32d9681e9d78102dad00377629cac24b4bf43f6371c0dc7e5b25981eb4" dependencies = [ "frame-support", "frame-system", + "log", "pallet-authorship", "pallet-session", "parity-scale-codec", @@ -5923,10 +6594,11 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b8eaa5c053d9cbf20faa397f21b80b9b5bafbe428890b0171fd1bba16f52ce" dependencies = [ - "array-bytes", + "array-bytes 6.2.2", "binary-merkle-tree", "frame-support", "frame-system", @@ -5942,13 +6614,15 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", + "sp-state-machine", "sp-std", ] [[package]] name = "pallet-bounties" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5d421e3228bc4e8170d817d657aa87761b77ee4675a9e16328e1ca070cb4c41" dependencies = [ "frame-benchmarking", "frame-support", @@ -5963,10 +6637,29 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-broker" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904983f117ff92ee24b251f2a883ff01b6f8e9063649877f3892ecbb516e3cbd" +dependencies = [ + "bitvec", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-child-bounties" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb62c44d3ab8dcbf106b22acc138eaea6e51563d16a8d4a246303f2e20eeb9e5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5984,8 +6677,9 @@ dependencies = [ [[package]] name = "pallet-collator-selection" -version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4199122c135e161d2e2f4cbc9339c54a11ac4b11e0beb67e53b49a3c90d566b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5994,7 +6688,7 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sp-runtime", "sp-staking", @@ -6003,8 +6697,9 @@ dependencies = [ [[package]] name = "pallet-collective" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ed22cf9d91c120695063cfa95ae0ffabcadefdf2581657ddb5fd68555b3a2e0" dependencies = [ "frame-benchmarking", "frame-support", @@ -6020,8 +6715,9 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a189b5fb4a473edc7b2d52109fe10d0017b9b56f7c0324018b5970125db3ce3" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6057,8 +6753,9 @@ dependencies = [ [[package]] name = "pallet-democracy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b687c8a22b37f9b8444a29959f9cd0cf0be2f8efb8cd9bf91860d5dbafdab8b3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6075,8 +6772,9 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc5e1f80bb4ce08b27f5a8a733d5c2d72d083a7d48afa4bdbb1ef3594a31e353" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6085,7 +6783,7 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sp-arithmetic", "sp-core", @@ -6098,8 +6796,9 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "193a8592c5fd534d56d07b2abe14e830d23947fb66f31867083e4f3ef80c8caa" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6107,6 +6806,7 @@ dependencies = [ "parity-scale-codec", "sp-npos-elections", "sp-runtime", + "sp-std", ] [[package]] @@ -6127,13 +6827,13 @@ dependencies = [ "sp-staking", "sp-std", "sp-tracing", - "substrate-test-utils", ] [[package]] name = "pallet-elections-phragmen" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dd2f70c57cbb3dcde39f141721dd34a8c852e0caaf61ae6b0bbd23138b6e1d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6151,8 +6851,9 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd6e0b51b82075b046792cdde2d4a2f6c9301f3deba44c26d30ab152060b9028" dependencies = [ "docify", "frame-benchmarking", @@ -6192,9 +6893,7 @@ dependencies = [ "polimec-common-test-utils", "polimec-receiver", "polimec-xcm-executor", - "polkadot-parachain", - "polkadot-runtime", - "polkadot-runtime-parachains", + "polkadot-parachain-primitives", "scale-info", "serde", "sp-arithmetic", @@ -6202,35 +6901,18 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "tokio", "variant_count", - "xcm", - "xcm-builder", - "xcm-executor", -] - -[[package]] -name = "pallet-glutton" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" -dependencies = [ - "blake2", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", ] [[package]] name = "pallet-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935e91fa8936381aff2b88d8a7dad38ac30a1c8d2310340d73ce1c07b5ae72ce" dependencies = [ "frame-benchmarking", "frame-support", @@ -6252,13 +6934,15 @@ dependencies = [ [[package]] name = "pallet-identity" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3259bb87d50529027fa40267c3662dc80c683f253f121f391c032b019c88fcb" dependencies = [ "enumflags2", "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-io", @@ -6268,8 +6952,9 @@ dependencies = [ [[package]] name = "pallet-im-online" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4be3f0165158828e4e77fae106a93bc1f48cc751755bdb012edb3ac0ef1d246" dependencies = [ "frame-benchmarking", "frame-support", @@ -6288,8 +6973,9 @@ dependencies = [ [[package]] name = "pallet-indices" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ead239524e40e55d172f024ff6795998068a2ba1c0950e74c4db7f347cfa91e" dependencies = [ "frame-benchmarking", "frame-support", @@ -6305,8 +6991,9 @@ dependencies = [ [[package]] name = "pallet-insecure-randomness-collective-flip" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3812708354757694bf127a89ab043ce80b2016a3b4d1eda2f762fbc4da9904" dependencies = [ "frame-support", "frame-system", @@ -6334,13 +7021,14 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm-builder", + "staging-xcm-builder", ] [[package]] name = "pallet-membership" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2dfdff5a7e5b21355b34245312ba2ea687444d9003960e7b876e1df518dab" dependencies = [ "frame-benchmarking", "frame-support", @@ -6356,9 +7044,11 @@ dependencies = [ [[package]] name = "pallet-message-queue" -version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "31.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab6302efb264a65fd175f3082b72004df125f646a3c68b72fd08e657a468c0d6" dependencies = [ + "environmental", "frame-benchmarking", "frame-support", "frame-system", @@ -6375,12 +7065,14 @@ dependencies = [ [[package]] name = "pallet-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6565b91d1d585047648793feece7c2c70080b37e1f55ab3a4fb50b4c1bec86" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-core", @@ -6392,8 +7084,9 @@ dependencies = [ [[package]] name = "pallet-multisig" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14dbcdea9d3d7963aab57078a5bd6f3596186bfcf181d666db6ea2bfdc0184ec" dependencies = [ "frame-benchmarking", "frame-support", @@ -6408,8 +7101,9 @@ dependencies = [ [[package]] name = "pallet-nfts" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71368a2a22a266fac11104f41334fc82e2b94c3f26a70b13eca98cdecf2e106f" dependencies = [ "enumflags2", "frame-benchmarking", @@ -6426,19 +7120,21 @@ dependencies = [ [[package]] name = "pallet-nfts-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e342996c6bcb1e6a3258b18b1aebf4d77d9c2dd011863393478329e7e8d67128" dependencies = [ - "frame-support", "pallet-nfts", "parity-scale-codec", "sp-api", + "sp-std", ] [[package]] name = "pallet-nis" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86c541b2785051ebe1ae378be4b086055fbb8b13ee18fd949dfcf68dbd1c3325" dependencies = [ "frame-benchmarking", "frame-support", @@ -6453,12 +7149,14 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" -version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "25.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5989ca1100694371c9951118d58e84e93b60c1919006e9d4ad0f7537952c388" dependencies = [ "frame-support", "frame-system", "log", + "pallet-balances", "parity-scale-codec", "scale-info", "sp-core", @@ -6466,12 +7164,14 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-std", + "sp-tracing", ] [[package]] name = "pallet-nomination-pools-benchmarking" -version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d01847415cd33a92c65e8d13cb0041a32b2f2523c84d9d944287ae5c0d920c82" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6490,8 +7190,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" -version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "23.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64b17d862b833ca07a375646ecc80e164e5618c3aed4e5631816aa7288bf9b1" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6501,8 +7202,9 @@ dependencies = [ [[package]] name = "pallet-offences" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de7b17230f58ff6b1ec2a70b3c639c49f585841dacf63f30c78db6387a833e0b" dependencies = [ "frame-support", "frame-system", @@ -6518,8 +7220,9 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "060483993358293d041e5173635082c68c7783a800c0874e8df87c324232f0d1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6593,8 +7296,9 @@ dependencies = [ [[package]] name = "pallet-preimage" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce688c68f117b1916a844579aa5a945d786059b119a1cc80ace370afd1e50da4" dependencies = [ "frame-benchmarking", "frame-support", @@ -6610,8 +7314,9 @@ dependencies = [ [[package]] name = "pallet-proxy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3162924576a70509136eb4d8513497fb640a8b3ea753883fe29bd454c511485" dependencies = [ "frame-benchmarking", "frame-support", @@ -6625,8 +7330,9 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86c6d11592a6ba9039bd3486dba15f0cb045889b2746f4619f5ec78188fdd151" dependencies = [ "frame-benchmarking", "frame-support", @@ -6643,8 +7349,9 @@ dependencies = [ [[package]] name = "pallet-recovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8649310b8f00e3b2983331cdb7173d1e66e5eeb3a3d21479e7a65386244f883" dependencies = [ "frame-benchmarking", "frame-support", @@ -6658,8 +7365,9 @@ dependencies = [ [[package]] name = "pallet-referenda" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c6645c0c09ff8484c6c7ac1546d908202ed555b18169ea956955e4e2d77b210" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6675,6 +7383,22 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-root-testing" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bd13ad045bda70f0d2023333d36620bd7b48172646274572332dc9f62fd3c8" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-sandbox" version = "0.1.0" @@ -6700,9 +7424,11 @@ dependencies = [ [[package]] name = "pallet-scheduler" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc26a27b77170c18261af7be04a6569e3d0d58788255b9f283ccd089aac37887" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -6717,8 +7443,9 @@ dependencies = [ [[package]] name = "pallet-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e23ca2bfcffb5194de952050557bdd1fe9bce18b2bc81e8f8c01c8a3c3c3e5d8" dependencies = [ "frame-support", "frame-system", @@ -6732,21 +7459,24 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", + "sp-state-machine", "sp-std", "sp-trie", ] [[package]] name = "pallet-session-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc660786028d46e03fb0a419d6a15df3fa556db7ce74efebf5a35037b32b4bc4" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "pallet-session", "pallet-staking", - "rand 0.8.5", + "parity-scale-codec", + "rand", "sp-runtime", "sp-session", "sp-std", @@ -6754,13 +7484,13 @@ dependencies = [ [[package]] name = "pallet-society" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33c19c1f5a410c0b03dc1e3245ffc0269e6c9085e6f6a64ee023f7515b6f8d9b" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "hex-literal 0.3.4", "log", "parity-scale-codec", "rand_chacha 0.2.2", @@ -6773,8 +7503,9 @@ dependencies = [ [[package]] name = "pallet-staking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8883bbca2bd6ee41f81382418372ce44fd771ac53591ce9be4018ea43f8c5eda" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6796,19 +7527,21 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "11.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efca5a4a423427d2c83af5fe07ab648c16b91e3782c3cc23316fe0bd96b4c794" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "pallet-staking-reward-fn" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "19.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e23336e4da87101633f95f9932946564c926ca7f87499654b38923b1579c605e" dependencies = [ "log", "sp-arithmetic", @@ -6816,17 +7549,20 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e27156b772eccb539cb1a1ea1b1b6e98d9c6589e18b913a30f67913fcf67fe7e" dependencies = [ "parity-scale-codec", "sp-api", + "sp-staking", ] [[package]] name = "pallet-state-trie-migration" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a48713905a318b0307e523fd3d3ca4b197ce74b2520203ded0d02e8a6c6bbd7" dependencies = [ "frame-benchmarking", "frame-support", @@ -6842,9 +7578,11 @@ dependencies = [ [[package]] name = "pallet-sudo" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053dae9119d2d828af80e8ac98f497dc27155d6b5d42264dab8fae40f2314c41" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -6857,9 +7595,11 @@ dependencies = [ [[package]] name = "pallet-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688b89bdd377609b592bd094b304ebca33f4767fe72935465e2fd7db0e797968" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -6870,13 +7610,15 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", + "sp-storage", "sp-timestamp", ] [[package]] name = "pallet-tips" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "facf64cab7f7a4762c57e5827597b2ca073755de4c9716444cf0847db34836df" dependencies = [ "frame-benchmarking", "frame-support", @@ -6894,8 +7636,9 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18b4ca7a1af9b1f091900a354a96319c7614d7a32106ba86cb7f0b6f90239065" dependencies = [ "frame-support", "frame-system", @@ -6910,8 +7653,9 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "30.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba1486d58f38892df779a7812f28ff962d0b0632b955ea3c348f605caa01ba6d" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6926,8 +7670,9 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdfd7c882439b8198c99ece57b5bf785965545a6fa6d0bb7b56b264df1e437a" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6938,9 +7683,11 @@ dependencies = [ [[package]] name = "pallet-treasury" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75cb7498228e1a150fa09ce64acafe7105ff39b75dae1c266ba58b7e3eb225e" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -6949,14 +7696,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", + "sp-core", "sp-runtime", "sp-std", ] [[package]] name = "pallet-uniques" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf5e6bf708cc4d7efe8d66a8bb80da4875724edbcf1f624bd34b6937c0af452" dependencies = [ "frame-benchmarking", "frame-support", @@ -6970,8 +7719,9 @@ dependencies = [ [[package]] name = "pallet-utility" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384c1d740c019410f6b40586cc387726c2e3c417c0e3e6f7e4774cd46bc6c1d0" dependencies = [ "frame-benchmarking", "frame-support", @@ -6986,8 +7736,9 @@ dependencies = [ [[package]] name = "pallet-vesting" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55f3ac517a10c14beee86a737b9ea5d592af9ab21cc5354474bc5f7019210358" dependencies = [ "frame-benchmarking", "frame-support", @@ -7001,8 +7752,9 @@ dependencies = [ [[package]] name = "pallet-whitelist" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de259e3329422bf3eb10b7e966f4b1c5caadcb29cd2d45af3a000cb2d184e60d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7016,14 +7768,16 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cee3520e03ac679125e8dcaa00ce4afeeb106a9623e79b5acf970d72af7f5d02" dependencies = [ "bounded-collections", "frame-benchmarking", "frame-support", "frame-system", "log", + "pallet-balances", "parity-scale-codec", "scale-info", "serde", @@ -7031,14 +7785,16 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", - "xcm-executor", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", ] [[package]] name = "pallet-xcm-benchmarks" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da15171c2dc870ad636fcdb16d9aa37eb84cfe6001c3f1c77cf2c97446ebfbe5" dependencies = [ "frame-benchmarking", "frame-support", @@ -7049,52 +7805,67 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", - "xcm-builder", - "xcm-executor", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", ] [[package]] -name = "parachain-info" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +name = "pallet-xcm-bridge-hub-router" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21f10cb76e759fbb672f132d72d9c4f75895ce3c9c9f50d68cd902bc88b043fc" dependencies = [ - "cumulus-primitives-core", + "bp-xcm-bridge-hub-router", + "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", + "sp-core", "sp-runtime", "sp-std", + "staging-xcm", + "staging-xcm-builder", ] [[package]] name = "parachains-common" -version = "1.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceadd4f51620023871ece5eeda64734acd17d84d49b45473d335e900a012fdde" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", "frame-support", "frame-system", + "log", "num-traits", "pallet-asset-tx-payment", "pallet-assets", "pallet-authorship", "pallet-balances", "pallet-collator-selection", + "pallet-message-queue", + "pallet-xcm", "parity-scale-codec", + "polkadot-core-primitives", "polkadot-primitives", + "rococo-runtime-constants", "scale-info", + "smallvec", "sp-consensus-aura", "sp-core", "sp-io", "sp-runtime", "sp-std", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", + "westend-runtime-constants", ] [[package]] @@ -7103,7 +7874,7 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" dependencies = [ - "blake2", + "blake2 0.10.6", "crc32fast", "fs2", "hex", @@ -7112,7 +7883,7 @@ dependencies = [ "lz4", "memmap2", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "siphasher", "snap", "winapi", @@ -7139,7 +7910,7 @@ version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" dependencies = [ - "proc-macro-crate 2.0.2", + "proc-macro-crate 2.0.0", "proc-macro2", "quote", "syn 1.0.109", @@ -7151,6 +7922,35 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" +[[package]] +name = "parity-util-mem" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d32c34f4f5ca7f9196001c0aba5a1f9a5a12382c8944b8b0f90233282d1e8f8" +dependencies = [ + "cfg-if", + "ethereum-types", + "hashbrown 0.12.3", + "impl-trait-for-tuples", + "lru 0.8.1", + "parity-util-mem-derive", + "parking_lot 0.12.1", + "primitive-types", + "smallvec", + "winapi", +] + +[[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 1.0.109", + "synstructure", +] + [[package]] name = "parity-wasm" version = "0.45.0" @@ -7229,14 +8029,14 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" dependencies = [ - "crypto-mac 0.11.1", + "crypto-mac 0.11.0", ] [[package]] name = "pbkdf2" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", ] @@ -7284,6 +8084,7 @@ dependencies = [ "pallet-authorship", "pallet-balances", "pallet-collator-selection", + "pallet-message-queue", "pallet-session", "pallet-sudo", "pallet-timestamp", @@ -7291,12 +8092,11 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-vesting", "pallet-xcm", - "parachain-info", "parachains-common", "parity-scale-codec", "polimec-common", "polimec-receiver", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", @@ -7313,10 +8113,11 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", ] [[package]] @@ -7327,9 +8128,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" +checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8" dependencies = [ "memchr", "thiserror", @@ -7338,9 +8139,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" +checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026" dependencies = [ "pest", "pest_generator", @@ -7348,22 +8149,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" +checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "pest_meta" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" +checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293" dependencies = [ "once_cell", "pest", @@ -7377,27 +8178,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.2.3", + "indexmap 2.2.5", ] [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -7418,6 +8219,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +dependencies = [ + "atomic-waker", + "fastrand 2.0.1", + "futures-io", +] + [[package]] name = "pkcs8" version = "0.10.2" @@ -7440,34 +8252,6 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" -[[package]] -name = "plotters" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" -dependencies = [ - "num-traits", - "plotters-backend", - "plotters-svg", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "plotters-backend" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" - -[[package]] -name = "plotters-svg" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" -dependencies = [ - "plotters-backend", -] - [[package]] name = "polimec-common" version = "0.1.0" @@ -7504,8 +8288,10 @@ dependencies = [ "clap", "color-print", "cumulus-client-cli", + "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", "cumulus-client-network", "cumulus-client-service", "cumulus-primitives-core", @@ -7549,6 +8335,7 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "serde", + "serde_json", "sp-api", "sp-block-builder", "sp-blockchain", @@ -7561,11 +8348,11 @@ dependencies = [ "sp-session", "sp-timestamp", "sp-transaction-pool", + "staging-xcm", "substrate-build-script-utils", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "try-runtime-cli", - "xcm", ] [[package]] @@ -7577,7 +8364,7 @@ dependencies = [ "frame-system", "parity-scale-codec", "polimec-common", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-runtime-parachains", "scale-info", "serde", @@ -7591,7 +8378,7 @@ dependencies = [ name = "polimec-runtime" version = "0.5.1" dependencies = [ - "array-bytes", + "array-bytes 6.2.2", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", @@ -7620,6 +8407,7 @@ dependencies = [ "pallet-elections-phragmen 0.5.1", "pallet-identity", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-oracle-ocw", "pallet-parachain-staking", @@ -7635,12 +8423,12 @@ dependencies = [ "pallet-utility", "pallet-vesting", "pallet-xcm", - "parachain-info", "parachains-common", "parity-scale-codec", "polimec-common", "polimec-xcm-executor", - "polkadot-parachain", + "polkadot-parachain-primitives", + "polkadot-primitives", "polkadot-runtime-common", "scale-info", "shared-configuration", @@ -7649,6 +8437,7 @@ dependencies = [ "sp-consensus-aura", "sp-core", "sp-debug-derive", + "sp-genesis-builder", "sp-inherents", "sp-offchain", "sp-runtime", @@ -7656,9 +8445,10 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", "substrate-wasm-builder", - "xcm", - "xcm-builder", ] [[package]] @@ -7677,15 +8467,15 @@ dependencies = [ "sp-runtime", "sp-std", "sp-weights", - "xcm", - "xcm-executor", + "staging-xcm", + "staging-xcm-executor", ] [[package]] name = "politest-runtime" version = "0.5.1" dependencies = [ - "array-bytes", + "array-bytes 6.2.2", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", @@ -7693,7 +8483,6 @@ dependencies = [ "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", - "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-executive", @@ -7718,10 +8507,12 @@ dependencies = [ "pallet-insecure-randomness-collective-flip", "pallet-linear-release", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-oracle-ocw", "pallet-parachain-staking", "pallet-preimage", + "pallet-proxy", "pallet-scheduler", "pallet-session", "pallet-sudo", @@ -7732,12 +8523,11 @@ dependencies = [ "pallet-utility", "pallet-vesting", "pallet-xcm", - "parachain-info", "parachains-common", "parity-scale-codec", "polimec-common", "polimec-xcm-executor", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "scale-info", @@ -7747,6 +8537,7 @@ dependencies = [ "sp-consensus-aura", "sp-core", "sp-debug-derive", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-offchain", @@ -7755,19 +8546,23 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", ] [[package]] name = "polkadot-approval-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98fd276eccca3ada04cb274f4b8c51f669087d8b334c775f1231a9194d5260d0" dependencies = [ + "bitvec", "futures", "futures-timer", + "itertools 0.10.5", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", @@ -7775,34 +8570,36 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "tracing-gum", ] [[package]] name = "polkadot-availability-bitfield-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51c43e54e0cc47dfb4f7c3917a774ccc796524087515b212d9fe109bde71846e" dependencies = [ + "always-assert", "futures", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "tracing-gum", ] [[package]] name = "polkadot-availability-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121ded25722b8505335b05a77f1def84278802ed3f4774c7fe6ab7c961affe06" dependencies = [ "derive_more", "fatality", "futures", - "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7810,7 +8607,8 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", + "schnellru", "sp-core", "sp-keystore", "thiserror", @@ -7819,12 +8617,13 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3902495dbba25e7526168c8f88b26cc0dbb96cfe10813238a650c67b34bf9f31" dependencies = [ + "async-trait", "fatality", "futures", - "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7832,25 +8631,27 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-network", + "schnellru", "thiserror", + "tokio", "tracing-gum", ] [[package]] name = "polkadot-cli" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93cafe0d136732ad69bce9cd82a34a7b1ff0cd2268d84309aeb673622d40a013" dependencies = [ + "cfg-if", "clap", "frame-benchmarking-cli", "futures", "log", - "polkadot-node-core-pvf-execute-worker", - "polkadot-node-core-pvf-prepare-worker", "polkadot-node-metrics", - "polkadot-performance-test", + "polkadot-node-primitives", "polkadot-service", "sc-cli", "sc-executor", @@ -7869,10 +8670,10 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a70007b246c3679ee43f11123bda6d715f659f7b6d4134d0fcbe8980e049386b" dependencies = [ - "always-assert", "bitvec", "fatality", "futures", @@ -7886,13 +8687,15 @@ dependencies = [ "sp-keystore", "sp-runtime", "thiserror", + "tokio-util", "tracing-gum", ] [[package]] name = "polkadot-core-primitives" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda2b0f0c580c38f12445a4af10e0a23acf48381b2a95653e0be48ba787e10e5" dependencies = [ "parity-scale-codec", "scale-info", @@ -7903,15 +8706,15 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84a9b173e02d1f600a422269b3b5a1db203d39f436f7db7d7e41ef6dda6f42e0" dependencies = [ "derive_more", "fatality", "futures", "futures-timer", "indexmap 1.9.3", - "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7920,6 +8723,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "sc-network", + "schnellru", "sp-application-crypto", "sp-keystore", "thiserror", @@ -7928,8 +8732,9 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff8347b3528fe94e47ec1b818b06bf821010a5f180d0ac5c89138da0d382debc" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -7942,8 +8747,9 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4de739371a4b5f036848de5c7185dfee88587016d2bb32af07f38fb909b80d8" dependencies = [ "futures", "futures-timer", @@ -7951,9 +8757,10 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "sc-network", + "sc-network-common", "sp-application-crypto", "sp-core", "sp-keystore", @@ -7962,8 +8769,9 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4598c9d00dbc017c0f01e82a7c0740805cc500c3b8946ad0b7945ab4d68dd7ee" dependencies = [ "always-assert", "async-trait", @@ -7985,8 +8793,9 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba987629ab789f529426d6187dbafaa8209f5ee479c645184e4c1e33a59e2135" dependencies = [ "futures", "parity-scale-codec", @@ -8003,15 +8812,16 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5910fa99def47accbb4505bef91f74614f62347bc0c53c11296d5ce70d8e255" dependencies = [ "bitvec", "derive_more", "futures", "futures-timer", + "itertools 0.10.5", "kvdb", - "lru 0.9.0", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -8020,8 +8830,12 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", + "rand", + "rand_chacha 0.3.1", + "rand_core 0.6.4", "sc-keystore", - "schnorrkel", + "schnellru", + "schnorrkel 0.11.4", "sp-application-crypto", "sp-consensus", "sp-consensus-slots", @@ -8032,8 +8846,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1583533dc82a719607323432c013e01c2a8c971eb7e7703ff5eadd762f4e3" dependencies = [ "bitvec", "futures", @@ -8054,8 +8869,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7b5468fa618ccbeb4611b073d2c28b9440b51f4012e69c117e43192f9de8b17" dependencies = [ "bitvec", "fatality", @@ -8073,8 +8889,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4975e2ecc81d34605748781e9449a7b7ff956c385b46496005257a1a7dd56f0d" dependencies = [ "futures", "polkadot-node-subsystem", @@ -8088,8 +8905,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcfd720b86c1ddf6616cf083a2cb273147687521c1d13a7f3c991b1d5ae03444" dependencies = [ "async-trait", "futures", @@ -8100,7 +8918,8 @@ dependencies = [ "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-parachain", + "polkadot-overseer", + "polkadot-parachain-primitives", "polkadot-primitives", "sp-maybe-compressed-blob", "tracing-gum", @@ -8108,23 +8927,24 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9f00bd39f433a2e8281524529853a3be54970e799a451e2c14fc5b75cf226f" dependencies = [ "futures", "polkadot-node-metrics", "polkadot-node-subsystem", - "polkadot-primitives", + "polkadot-node-subsystem-types", "sc-client-api", "sc-consensus-babe", - "sp-blockchain", "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-selection" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea28475a96dfb6419432314d8021780e5c5b0f50a5525fd332e8b2a947a2deb5" dependencies = [ "futures", "futures-timer", @@ -8140,27 +8960,29 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad9cfb3e775dc4c611a79e294549fe4b244052ddaacf14133380e793c25a99f" dependencies = [ "fatality", "futures", "kvdb", - "lru 0.9.0", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", "sc-keystore", + "schnellru", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-parachains-inherent" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2535ef374a218b1e9d05b98a903edbdddf4eea47f9e137fcc09c8e1bc199dd" dependencies = [ "async-trait", "futures", @@ -8174,10 +8996,29 @@ dependencies = [ "tracing-gum", ] +[[package]] +name = "polkadot-node-core-prospective-parachains" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15a8876cc0aa627190f1d41c01061a7acee9621703501d9a60118d35e81579f9" +dependencies = [ + "bitvec", + "fatality", + "futures", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "thiserror", + "tracing-gum", +] + [[package]] name = "polkadot-node-core-provisioner" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25c88b17b93bf410a72bfb4543b1ae01bb0d33fd6cba9af1f0e74c4ef2b906ad" dependencies = [ "bitvec", "fatality", @@ -8187,46 +9028,49 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c80f2810b2eb843f3282b11e7ce1624866b6dd1ee6a95541b5882b5df3f36f25" dependencies = [ "always-assert", + "array-bytes 6.2.2", + "blake3", + "cfg-if", "futures", "futures-timer", + "is_executable", "libc", "parity-scale-codec", "pin-project", "polkadot-core-primitives", "polkadot-node-core-pvf-common", - "polkadot-node-core-pvf-execute-worker", - "polkadot-node-core-pvf-prepare-worker", "polkadot-node-metrics", "polkadot-node-primitives", - "polkadot-parachain", + "polkadot-node-subsystem", + "polkadot-parachain-primitives", "polkadot-primitives", - "rand 0.8.5", + "rand", "slotmap", "sp-core", "sp-maybe-compressed-blob", - "sp-tracing", "sp-wasm-interface", - "substrate-build-script-utils", "tempfile", + "thiserror", "tokio", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14d8ddb21cb3ad1868967b116fbf289610880cb95313b2798762cdd8653d36b7" dependencies = [ "futures", "polkadot-node-primitives", @@ -8241,90 +9085,51 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80bbf311b112a8552e89e5be55b0305d86328ba04528e47d3203cd27751405bc" dependencies = [ + "cfg-if", "cpu-time", "futures", "landlock", "libc", "parity-scale-codec", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "sc-executor", "sc-executor-common", "sc-executor-wasmtime", + "seccompiler", "sp-core", "sp-externalities", "sp-io", "sp-tracing", - "substrate-build-script-utils", - "tokio", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-pvf-execute-worker" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" -dependencies = [ - "cpu-time", - "futures", - "parity-scale-codec", - "polkadot-node-core-pvf-common", - "polkadot-parachain", - "polkadot-primitives", - "rayon", - "sp-core", - "sp-maybe-compressed-blob", - "sp-tracing", - "tikv-jemalloc-ctl", - "tokio", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-pvf-prepare-worker" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" -dependencies = [ - "futures", - "libc", - "parity-scale-codec", - "polkadot-node-core-pvf-common", - "polkadot-parachain", - "polkadot-primitives", - "rayon", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", - "sp-io", - "sp-maybe-compressed-blob", - "sp-tracing", - "tikv-jemalloc-ctl", - "tokio", + "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-runtime-api" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17345f76b7ebcf2f1e1be5411a6420971ef60d69070f115e459b2f017f91bcb5" dependencies = [ "futures", - "lru 0.9.0", "polkadot-node-metrics", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-primitives", + "schnellru", "sp-consensus-babe", "tracing-gum", ] [[package]] name = "polkadot-node-jaeger" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b099624af4597bac5d1617a3cab057785ee47e657de7ad078957bfa397d82c4" dependencies = [ "lazy_static", "log", @@ -8341,16 +9146,17 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b5b00a9646875f22ab45e61ede04f623a3fbbc03bae52263b3d558c964bc32" dependencies = [ - "bs58", + "bs58 0.5.1", "futures", "futures-timer", "log", "parity-scale-codec", "polkadot-primitives", - "prioritized-metered-channel", + "prioritized-metered-channel 0.5.1", "sc-cli", "sc-service", "sc-tracing", @@ -8360,11 +9166,13 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e420ba9220abaa468a393ff2834b7c2b4d7d87b6d903d9046dfd682c97d35d4c" dependencies = [ - "async-channel", + "async-channel 1.9.0", "async-trait", + "bitvec", "derive_more", "fatality", "futures", @@ -8373,7 +9181,7 @@ dependencies = [ "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-authority-discovery", "sc-network", "strum 0.24.1", @@ -8383,15 +9191,17 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "366d18f1498426975c610246063149ad84788eb1e924cab6ee44a4d8958ecf61" dependencies = [ + "bitvec", "bounded-vec", "futures", "parity-scale-codec", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", - "schnorrkel", + "schnorrkel 0.11.4", "serde", "sp-application-crypto", "sp-consensus-babe", @@ -8400,13 +9210,14 @@ dependencies = [ "sp-maybe-compressed-blob", "sp-runtime", "thiserror", - "zstd 0.11.2+zstd.1.5.2", + "zstd 0.12.4", ] [[package]] name = "polkadot-node-subsystem" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831cf07bf6588d7d8ab872f8f214b4b24b2c4243faf8028534f8a11a3f03c466" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -8415,10 +9226,12 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd132afdfcdf2e30f7924c9561bbc1208b0838ab9c2275bf0ef32525f63b8bd0" dependencies = [ "async-trait", + "bitvec", "derive_more", "futures", "orchestra", @@ -8427,20 +9240,24 @@ dependencies = [ "polkadot-node-primitives", "polkadot-primitives", "polkadot-statement-table", + "sc-client-api", "sc-network", "sc-transaction-pool-api", "smallvec", "sp-api", "sp-authority-discovery", + "sp-blockchain", "sp-consensus-babe", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "polkadot-node-subsystem-util" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32c2f2027689777bd61681d769ed5ec726144905c4e3cb16c5f8a4edb55250a" dependencies = [ "async-trait", "derive_more", @@ -8449,20 +9266,22 @@ dependencies = [ "futures-channel", "itertools 0.10.5", "kvdb", - "lru 0.9.0", "parity-db", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.1", "pin-project", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", + "polkadot-node-subsystem-types", "polkadot-overseer", "polkadot-primitives", - "prioritized-metered-channel", - "rand 0.8.5", + "prioritized-metered-channel 0.5.1", + "rand", + "sc-client-api", + "schnellru", "sp-application-crypto", "sp-core", "sp-keystore", @@ -8472,13 +9291,13 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa0b71f50f0be1959bcb10a46105ca66b9c6868d549385a247750e5b7a45c77" dependencies = [ "async-trait", "futures", "futures-timer", - "lru 0.9.0", "orchestra", "parking_lot 0.12.1", "polkadot-node-metrics", @@ -8494,50 +9313,34 @@ dependencies = [ ] [[package]] -name = "polkadot-parachain" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +name = "polkadot-parachain-primitives" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b37c55955147479e7b2f3c2e5385db4846ac3e3b997cd4a4ad52344524b5447" dependencies = [ "bounded-collections", "derive_more", - "frame-support", "parity-scale-codec", "polkadot-core-primitives", - "scale-info", - "serde", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "polkadot-performance-test" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" -dependencies = [ - "env_logger 0.9.3", - "kusama-runtime", - "log", - "polkadot-erasure-coding", - "polkadot-node-core-pvf-prepare-worker", - "polkadot-node-primitives", - "polkadot-primitives", - "quote", - "sc-executor-common", - "sp-maybe-compressed-blob", - "thiserror", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", + "sp-weights", ] [[package]] name = "polkadot-primitives" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8aefd230a654f5b2aee18ebbd9c081835def0e1898ee6c018501dd77c18f5929" dependencies = [ "bitvec", "hex-literal 0.4.1", "parity-scale-codec", "polkadot-core-primitives", - "polkadot-parachain", + "polkadot-parachain-primitives", "scale-info", "serde", "sp-api", @@ -8556,8 +9359,9 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382eada9005c73375778e1dca58116e0660431cf90989fe0dde54ebe1f621a1e" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -8573,6 +9377,7 @@ dependencies = [ "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-rpc", + "sc-rpc-spec-v2", "sc-sync-state-rpc", "sc-transaction-pool-api", "sp-api", @@ -8589,9 +9394,9 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +source = "git+https://github.com/polkadot-fellows/runtimes?rev=59172d5fb8feea2646490618bead3b2b4fb06220#59172d5fb8feea2646490618bead3b2b4fb06220" dependencies = [ - "bitvec", + "binary-merkle-tree", "frame-benchmarking", "frame-election-provider-support", "frame-executive", @@ -8600,28 +9405,27 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal 0.4.1", "log", + "pallet-asset-rate", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", + "pallet-beefy", + "pallet-beefy-mmr", "pallet-bounties", "pallet-child-bounties", - "pallet-collective", "pallet-conviction-voting", - "pallet-democracy 4.0.0-dev", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", - "pallet-elections-phragmen 5.0.0-dev", "pallet-fast-unstake", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", - "pallet-membership", "pallet-message-queue", + "pallet-mmr", "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", @@ -8636,9 +9440,9 @@ dependencies = [ "pallet-session-benchmarking", "pallet-staking", "pallet-staking-reward-curve", + "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-timestamp", - "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", @@ -8646,45 +9450,45 @@ dependencies = [ "pallet-vesting", "pallet-whitelist", "pallet-xcm", + "pallet-xcm-benchmarks", "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-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", "sp-core", + "sp-debug-derive", + "sp-genesis-builder", "sp-inherents", "sp-io", - "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-session", "sp-staking", "sp-std", + "sp-storage", "sp-transaction-pool", "sp-version", - "static_assertions", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", ] [[package]] name = "polkadot-runtime-common" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4641a850b7415a42e56bd262aba243ed77a9280cb2b825a427c425bdc8961d70" dependencies = [ "bitvec", "frame-benchmarking", @@ -8694,11 +9498,14 @@ dependencies = [ "impl-trait-for-tuples", "libsecp256k1", "log", + "pallet-asset-rate", "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-broker", "pallet-election-provider-multi-phase", "pallet-fast-unstake", + "pallet-identity", "pallet-session", "pallet-staking", "pallet-staking-reward-fn", @@ -8706,6 +9513,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-treasury", "pallet-vesting", + "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-parachains", @@ -8723,14 +9531,16 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "static_assertions", - "xcm", ] [[package]] name = "polkadot-runtime-constants" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +source = "git+https://github.com/polkadot-fellows/runtimes?rev=59172d5fb8feea2646490618bead3b2b4fb06220#59172d5fb8feea2646490618bead3b2b4fb06220" dependencies = [ "frame-support", "polkadot-primitives", @@ -8739,14 +9549,17 @@ dependencies = [ "sp-core", "sp-runtime", "sp-weights", + "staging-xcm-builder", ] [[package]] name = "polkadot-runtime-metrics" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ac3c6ee03f38556274b26049c51c5c7095abfd4ebfd11cd492918a4344f2851" dependencies = [ - "bs58", + "bs58 0.5.1", + "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", "sp-std", @@ -8755,8 +9568,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d253ef2952097398d98ed12729e47f9328bcd1baa92c3acc1524a4baca7d1ac" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -8764,27 +9578,31 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-broker", "pallet-message-queue", "pallet-session", "pallet-staking", "pallet-timestamp", "pallet-vesting", "parity-scale-codec", - "polkadot-parachain", + "polkadot-core-primitives", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-metrics", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "rustc-hex", "scale-info", "serde", "sp-api", "sp-application-crypto", + "sp-arithmetic", "sp-core", "sp-inherents", "sp-io", @@ -8793,15 +9611,16 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", + "staging-xcm", + "staging-xcm-executor", "static_assertions", - "xcm", - "xcm-executor", ] [[package]] name = "polkadot-service" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75bf984471c2608905176b62726b3552bbfdc3e04ebdc7fe75e5179ff215588" dependencies = [ "async-trait", "frame-benchmarking", @@ -8811,11 +9630,10 @@ dependencies = [ "frame-system-rpc-runtime-api", "futures", "hex-literal 0.4.1", - "kusama-runtime", + "is_executable", "kvdb", "kvdb-rocksdb", "log", - "lru 0.9.0", "mmr-gadget", "pallet-babe", "pallet-im-online", @@ -8824,6 +9642,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "parity-db", "parity-scale-codec", + "parking_lot 0.12.1", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -8843,7 +9662,9 @@ dependencies = [ "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", + "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", + "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", @@ -8852,11 +9673,9 @@ dependencies = [ "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-rpc", - "polkadot-runtime", - "polkadot-runtime-common", "polkadot-runtime-parachains", "polkadot-statement-distribution", "rococo-runtime", @@ -8883,6 +9702,7 @@ dependencies = [ "sc-telemetry", "sc-transaction-pool", "sc-transaction-pool-api", + "schnellru", "serde", "serde_json", "sp-api", @@ -8906,7 +9726,6 @@ dependencies = [ "sp-storage", "sp-timestamp", "sp-transaction-pool", - "sp-trie", "sp-version", "sp-weights", "substrate-prometheus-endpoint", @@ -8917,10 +9736,12 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b82b48ff9204ea663ccccde78aefa8a524958aadff5c84a4f1fd773c291057d" dependencies = [ - "arrayvec 0.5.2", + "arrayvec 0.7.4", + "bitvec", "fatality", "futures", "futures-timer", @@ -8939,8 +9760,9 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478dea03265eb2465010dae149616e4f28fe858e103671b1a96dc19e9e388c8f" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -8948,115 +9770,19 @@ dependencies = [ ] [[package]] -name = "polkadot-test-runtime" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" dependencies = [ - "bitvec", - "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-balances", - "pallet-grandpa", - "pallet-indices", - "pallet-offences", - "pallet-session", - "pallet-staking", - "pallet-staking-reward-curve", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-vesting", - "pallet-xcm", - "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-consensus-beefy", - "sp-core", - "sp-inherents", - "sp-io", - "sp-mmr-primitives", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder", - "test-runtime-constants", - "xcm", - "xcm-builder", - "xcm-executor", -] - -[[package]] -name = "polkadot-test-service" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" -dependencies = [ - "frame-system", - "futures", - "hex", - "pallet-balances", - "pallet-staking", - "pallet-transaction-payment", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-rpc", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "polkadot-service", - "polkadot-test-runtime", - "rand 0.8.5", - "sc-authority-discovery", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-consensus", - "sc-consensus-babe", - "sc-consensus-grandpa", - "sc-network", - "sc-service", - "sc-tracing", - "sc-transaction-pool", - "sp-arithmetic", - "sp-authority-discovery", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-consensus-grandpa", - "sp-core", - "sp-inherents", - "sp-keyring", - "sp-runtime", - "sp-state-machine", - "substrate-test-client", - "tempfile", - "test-runtime-constants", - "tokio", - "tracing-gum", + "pin-project-lite 0.2.13", + "windows-sys 0.48.0", ] [[package]] @@ -9068,7 +9794,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite 0.2.13", - "rustix 0.38.31", + "rustix 0.38.32", "tracing", "windows-sys 0.52.0", ] @@ -9080,19 +9806,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] @@ -9144,11 +9870,21 @@ dependencies = [ "termtree", ] +[[package]] +name = "prettier-please" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22020dfcf177fcc7bf5deaf7440af371400c67c0de14c399938d8ed4fb4645d3" +dependencies = [ + "proc-macro2", + "syn 2.0.53", +] + [[package]] name = "prettyplease" -version = "0.1.25" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +checksum = "f28f53e8b192565862cf99343194579a022eb9c7dd3a8d03134734803c7b3125" dependencies = [ "proc-macro2", "syn 1.0.109", @@ -9161,7 +9897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ "proc-macro2", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -9172,6 +9908,7 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", + "impl-rlp", "impl-serde", "scale-info", "uint", @@ -9179,9 +9916,25 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" -version = "0.2.0" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e99f0c89bd88f393aab44a4ab949351f7bc7e7e1179d11ecbfe50cbe4c47e342" +dependencies = [ + "coarsetime", + "crossbeam-queue", + "derive_more", + "futures", + "futures-timer", + "nanorand", + "thiserror", + "tracing", +] + +[[package]] +name = "prioritized-metered-channel" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382698e48a268c832d0b181ed438374a6bb708a82a8ca273bb0f61c74cf209c4" +checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" dependencies = [ "coarsetime", "crossbeam-queue", @@ -9205,12 +9958,20 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" dependencies = [ - "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.20.7", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", ] [[package]] @@ -9239,20 +10000,20 @@ dependencies = [ [[package]] name = "proc-macro-warning" -version = "0.4.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" +checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -9291,7 +10052,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -9311,13 +10072,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", - "heck", + "heck 0.4.1", "itertools 0.10.5", "lazy_static", "log", "multimap", "petgraph", - "prettyplease 0.1.25", + "prettyplease 0.1.11", "prost", "prost-types", "regex", @@ -9403,7 +10164,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" dependencies = [ "bytes", - "rand 0.8.5", + "rand", "ring 0.16.20", "rustc-hash", "rustls 0.20.9", @@ -9429,19 +10190,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[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", -] - [[package]] name = "rand" version = "0.8.5" @@ -9492,12 +10240,13 @@ dependencies = [ ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "rand_distr" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ - "rand_core 0.5.1", + "num-traits", + "rand", ] [[package]] @@ -9517,9 +10266,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -9606,7 +10355,7 @@ checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -9629,7 +10378,7 @@ checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "regex-syntax 0.8.2", ] @@ -9644,9 +10393,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -9667,9 +10416,9 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" -version = "0.11.24" +version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", "bytes", @@ -9718,7 +10467,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ "hmac 0.12.1", - "subtle", + "subtle 2.5.0", ] [[package]] @@ -9751,6 +10500,25 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rustc-hex", +] + [[package]] name = "rocksdb" version = "0.21.0" @@ -9763,8 +10531,9 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e5ae118c3f3189a376703a4ca8569eb51ce1b121bc6b571c051b68c31e10a16" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -9776,6 +10545,7 @@ dependencies = [ "frame-try-runtime", "hex-literal 0.4.1", "log", + "pallet-asset-rate", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", @@ -9785,8 +10555,9 @@ dependencies = [ "pallet-bounties", "pallet-child-bounties", "pallet-collective", - "pallet-democracy 4.0.0-dev", - "pallet-elections-phragmen 5.0.0-dev", + "pallet-conviction-voting", + "pallet-democracy 28.0.0", + "pallet-elections-phragmen 29.0.0", "pallet-grandpa", "pallet-identity", "pallet-im-online", @@ -9799,7 +10570,10 @@ dependencies = [ "pallet-offences", "pallet-preimage", "pallet-proxy", + "pallet-ranked-collective", "pallet-recovery", + "pallet-referenda", + "pallet-root-testing", "pallet-scheduler", "pallet-session", "pallet-society", @@ -9813,10 +10587,11 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", + "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", @@ -9826,11 +10601,13 @@ dependencies = [ "serde_derive", "smallvec", "sp-api", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-mmr-primitives", @@ -9839,19 +10616,21 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", + "sp-storage", "sp-transaction-pool", "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "static_assertions", "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", ] [[package]] name = "rococo-runtime-constants" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5b507493a19b5061eb2860c394847261216c7ea7f8f62ba2cb02e55c27d611" dependencies = [ "frame-support", "polkadot-primitives", @@ -9860,6 +10639,8 @@ dependencies = [ "sp-core", "sp-runtime", "sp-weights", + "staging-xcm", + "staging-xcm-builder", ] [[package]] @@ -9947,23 +10728,37 @@ dependencies = [ name = "rustix" version = "0.36.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" +checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.1.4", + "windows-sys 0.45.0", +] + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" dependencies = [ "bitflags 1.3.2", "errno", "io-lifetimes", "libc", - "linux-raw-sys 0.1.4", - "windows-sys 0.45.0", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", ] [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys 0.4.13", @@ -10031,6 +10826,17 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +[[package]] +name = "ruzstd" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" +dependencies = [ + "byteorder", + "thiserror-core", + "twox-hash", +] + [[package]] name = "rw-stream-sink" version = "0.3.0" @@ -10077,8 +10883,9 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "23.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b05714bc70605d5f8983612d1643d875cd4782ef53a8720907a0eb75070cba" dependencies = [ "log", "sp-core", @@ -10088,8 +10895,9 @@ dependencies = [ [[package]] name = "sc-authority-discovery" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1c23040352415cdcc22203d3b18e56f3516e51865f106f8bbf7efa95b411a59" dependencies = [ "async-trait", "futures", @@ -10097,11 +10905,12 @@ dependencies = [ "ip_network", "libp2p", "log", - "multihash", + "multihash 0.18.1", + "multihash-codetable", "parity-scale-codec", "prost", "prost-build", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network", "sp-api", @@ -10116,15 +10925,15 @@ dependencies = [ [[package]] name = "sc-basic-authorship" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c016e38155386e23649a4a995ea67c55a1fe25a54c7cc7509954d454ee75eb3b" dependencies = [ "futures", "futures-timer", "log", "parity-scale-codec", "sc-block-builder", - "sc-client-api", "sc-proposer-metrics", "sc-telemetry", "sc-transaction-pool-api", @@ -10139,25 +10948,31 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "656b85de8aad8dd758f2e5f250f300e4711f294f238c9299064fbd624cb263f7" dependencies = [ "parity-scale-codec", - "sc-client-api", "sp-api", "sp-block-builder", "sp-blockchain", "sp-core", "sp-inherents", "sp-runtime", + "sp-trie", ] [[package]] name = "sc-chain-spec" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7f6a6926973e084fe9b23ffee9784cd41d84ea0627c605891542661bd9ff958" dependencies = [ + "array-bytes 6.2.2", + "docify", + "log", "memmap2", + "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", "sc-executor", @@ -10167,41 +10982,48 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", + "sp-genesis-builder", + "sp-io", "sp-runtime", "sp-state-machine", ] [[package]] name = "sc-chain-spec-derive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "11.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2e80fbdaea194762d4b4b0eec389037c25ad102676203b42d684774ae3019b8" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "sc-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9819b656041094ca4e97402be145c2bcf3f47d00d854708b25ecd3211eafcd62" dependencies = [ - "array-bytes", + "array-bytes 6.2.2", + "bip39", "chrono", "clap", "fdlimit", "futures", + "itertools 0.10.5", "libp2p-identity", "log", "names", "parity-scale-codec", - "rand 0.8.5", + "rand", "regex", "rpassword", "sc-client-api", "sc-client-db", "sc-keystore", + "sc-mixnet", "sc-network", "sc-service", "sc-telemetry", @@ -10217,14 +11039,14 @@ dependencies = [ "sp-runtime", "sp-version", "thiserror", - "tiny-bip39", "tokio", ] [[package]] name = "sc-client-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af05565a0f6467ebe0b430f3a44524fecee9e4aff621647ea5eab8833f775b6f" dependencies = [ "fnv", "futures", @@ -10244,13 +11066,15 @@ dependencies = [ "sp-state-machine", "sp-statement-store", "sp-storage", + "sp-trie", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9fbd18eb275120fdf2e9558a5006a69022405abb9c260c91d218ddb05db39" dependencies = [ "hash-db", "kvdb", @@ -10275,8 +11099,9 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0409758bb01f2e975b01c7cb2203aa27746e9796a483b18c57123e6e78fae5" dependencies = [ "async-trait", "futures", @@ -10300,8 +11125,9 @@ dependencies = [ [[package]] name = "sc-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cc4ebc06768af3e5457a5780aa6dbebeefe27131e70d11b62cfc8136e41747a" dependencies = [ "async-trait", "futures", @@ -10329,8 +11155,9 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a7d698d9d2bde7e0b80e7ada57ede9255a6382da79d2ad9a4e9e70805c40e74" dependencies = [ "async-trait", "fork-tree", @@ -10347,7 +11174,6 @@ dependencies = [ "sc-consensus-slots", "sc-telemetry", "sc-transaction-pool-api", - "scale-info", "sp-api", "sp-application-crypto", "sp-block-builder", @@ -10365,8 +11191,9 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f55379d0ce6f87026f896f03bce33862b57f77a46fbb4fb7e974182d20d458" dependencies = [ "futures", "jsonrpsee", @@ -10387,11 +11214,12 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3664a3cddc718187e058f67d9075ef9078c8f8347c0408304ead8565d4ba8164" dependencies = [ - "array-bytes", - "async-channel", + "array-bytes 6.2.2", + "async-channel 1.9.0", "async-trait", "fnv", "futures", @@ -10416,13 +11244,15 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "tokio", "wasm-timer", ] [[package]] name = "sc-consensus-beefy-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4e3602efe1e206032164772c24365642e3dab807c5f8db0af166f6ef63af3e" dependencies = [ "futures", "jsonrpsee", @@ -10440,8 +11270,9 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d0befddf2ca16d5f222968fceeab8625532f2d49303fafd17ae2e5d0e939da6" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10453,11 +11284,12 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a824457a3384e7bc19d7ee587dffa5b646deb81a2351be0dd075c2110a3d677a" dependencies = [ - "ahash 0.8.9", - "array-bytes", + "ahash 0.8.11", + "array-bytes 6.2.2", "async-trait", "dyn-clone", "finality-grandpa", @@ -10467,7 +11299,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -10475,6 +11307,7 @@ dependencies = [ "sc-network", "sc-network-common", "sc-network-gossip", + "sc-network-sync", "sc-telemetry", "sc-transaction-pool-api", "sc-utils", @@ -10494,8 +11327,9 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "694328880bf11fce67f5e066d7884dbdf1f2a41c42a7dfce9b0a6bc6b90448a1" dependencies = [ "finality-grandpa", "futures", @@ -10514,8 +11348,9 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6649665fcf91d89c16bfb08e9326baf6547e5fe719d6438197434e5b642d716b" dependencies = [ "async-trait", "futures", @@ -10537,8 +11372,9 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3129f8af1f8aa5b05829ffec942feff61163054a536704ba48fdcc2276f6042a" dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", @@ -10559,8 +11395,9 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0285a4a14c0d2c1d04380ff83cddd79181ded510c605d36804cb9c6eb3bbf2ae" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -10571,13 +11408,15 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2ba6ea0e68400caf4847fbcfca6123952b05a817e06f024e9cbafa665ac9d8" dependencies = [ "anyhow", "cfg-if", "libc", "log", + "parking_lot 0.12.1", "rustix 0.36.17", "sc-allocator", "sc-executor-common", @@ -10588,8 +11427,9 @@ dependencies = [ [[package]] name = "sc-informant" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e07d2dde727c30974767aed4cddd241447c0a800b702662b529dd2e32a10db1" dependencies = [ "ansi_term", "futures", @@ -10598,16 +11438,18 @@ dependencies = [ "sc-client-api", "sc-network", "sc-network-common", + "sc-network-sync", "sp-blockchain", "sp-runtime", ] [[package]] name = "sc-keystore" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93acb7f7c6e5e4be067e78b782a35d1a6d34dafcd955975a1aec05cab9dbf8fe" dependencies = [ - "array-bytes", + "array-bytes 6.2.2", "parking_lot 0.12.1", "serde_json", "sp-application-crypto", @@ -10616,13 +11458,44 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sc-mixnet" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cac7d7145c712c4a8b184b3979fe1a154c200ebb1b9f11f1e4e39db97a389f8" +dependencies = [ + "array-bytes 4.2.0", + "arrayvec 0.7.4", + "blake2 0.10.6", + "bytes", + "futures", + "futures-timer", + "libp2p-identity", + "log", + "mixnet", + "multiaddr", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-client-api", + "sc-network", + "sc-transaction-pool-api", + "sp-api", + "sp-consensus", + "sp-core", + "sp-keystore", + "sp-mixnet", + "sp-runtime", + "thiserror", +] + [[package]] name = "sc-network" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2f49eccabc1de61ff976a184f5380a230f07baa5cb075a31c8ec9459fcd076" dependencies = [ - "array-bytes", - "async-channel", + "array-bytes 6.2.2", + "async-channel 1.9.0", "async-trait", "asynchronous-codec", "bytes", @@ -10639,7 +11512,7 @@ dependencies = [ "parking_lot 0.12.1", "partial_sort", "pin-project", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network-common", "sc-utils", @@ -10652,6 +11525,8 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "tokio", + "tokio-stream", "unsigned-varint", "wasm-timer", "zeroize", @@ -10659,10 +11534,11 @@ dependencies = [ [[package]] name = "sc-network-bitswap" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2779d97eff742c1ebcce812bfd154a7273c2c2eb02e11fad76cf7eb583365834" dependencies = [ - "async-channel", + "async-channel 1.9.0", "cid", "futures", "libp2p-identity", @@ -10679,8 +11555,9 @@ dependencies = [ [[package]] name = "sc-network-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b798acc12d5b3120b2d5e8a078fcec39d6732089261136ac31c993235ade917" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -10696,16 +11573,18 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd92792f3a04fcb1f21018c9f8a5d6d438d705a2548ffcdc7730280c667b8386" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", "futures", "futures-timer", "libp2p", "log", "sc-network", "sc-network-common", + "sc-network-sync", "schnellru", "sp-runtime", "substrate-prometheus-endpoint", @@ -10714,11 +11593,12 @@ dependencies = [ [[package]] name = "sc-network-light" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34e7a126492850dbbd5cf0b77ec3ad350422c2822d165941ddbe618a76af0153" dependencies = [ - "array-bytes", - "async-channel", + "array-bytes 6.2.2", + "async-channel 1.9.0", "futures", "libp2p-identity", "log", @@ -10735,11 +11615,12 @@ dependencies = [ [[package]] name = "sc-network-sync" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4c92fd35c49f748abf0bf420e1e99aa76b0f48ab43c183ea5dacef951116d7e" dependencies = [ - "array-bytes", - "async-channel", + "array-bytes 6.2.2", + "async-channel 1.9.0", "async-trait", "fork-tree", "futures", @@ -10765,20 +11646,24 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "tokio", + "tokio-stream", ] [[package]] name = "sc-network-transactions" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99a1af3b9e158fa91df0cd92916b3ee5d8b8a14a2b61eb5dd9e36e045808f644" dependencies = [ - "array-bytes", + "array-bytes 6.2.2", "futures", "libp2p", "log", "parity-scale-codec", "sc-network", "sc-network-common", + "sc-network-sync", "sc-utils", "sp-consensus", "sp-runtime", @@ -10787,10 +11672,11 @@ dependencies = [ [[package]] name = "sc-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd5408dbdc3fe345813e983bd2b7ecf8f20e996141fa39a36336f511ab1859bb" dependencies = [ - "array-bytes", + "array-bytes 6.2.2", "bytes", "fnv", "futures", @@ -10803,7 +11689,7 @@ dependencies = [ "once_cell", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network", "sc-network-common", @@ -10821,8 +11707,9 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb8dadb2ae5a316e4d08cad6aacd5de1dec792f3bd94e3960795ff7ffd07211c" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10830,8 +11717,9 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ac0d83b9117c9c004e58331a593a28044eaf6414e5b3c605d1571b4a6981966" dependencies = [ "futures", "jsonrpsee", @@ -10841,6 +11729,7 @@ dependencies = [ "sc-block-builder", "sc-chain-spec", "sc-client-api", + "sc-mixnet", "sc-rpc-api", "sc-tracing", "sc-transaction-pool-api", @@ -10861,12 +11750,14 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630e81a436f32487452ae1a57ad0ba31f320ddf864bb7faefd7490fe16b3e139" dependencies = [ "jsonrpsee", "parity-scale-codec", "sc-chain-spec", + "sc-mixnet", "sc-transaction-pool-api", "scale-info", "serde", @@ -10880,8 +11771,9 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "11.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b623908525a2f22aafa079080aa7fbce8b58ca8de53b9f31e3cc8547e0ad8b2" dependencies = [ "http", "jsonrpsee", @@ -10895,10 +11787,11 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a54150c808fa10364b73faedd97aff0977a911a521d1caa8bad2bdc7943ad579" dependencies = [ - "array-bytes", + "array-bytes 6.2.2", "futures", "futures-util", "hex", @@ -10909,20 +11802,24 @@ dependencies = [ "sc-chain-spec", "sc-client-api", "sc-transaction-pool-api", + "sc-utils", "serde", "sp-api", "sp-blockchain", "sp-core", + "sp-rpc", "sp-runtime", "sp-version", "thiserror", + "tokio", "tokio-stream", ] [[package]] name = "sc-service" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703bd8b1fc0a137185bfa0b654e04283a58a1d8a2751380e7a0eca919961f150" dependencies = [ "async-trait", "directories", @@ -10934,8 +11831,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "pin-project", - "rand 0.8.5", - "sc-block-builder", + "rand", "sc-chain-spec", "sc-client-api", "sc-client-db", @@ -10985,8 +11881,9 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fac20128b09ac6305aaf482a72c918b35400f3955d7032971df499b0661a5e76" dependencies = [ "log", "parity-scale-codec", @@ -10996,13 +11893,13 @@ dependencies = [ [[package]] name = "sc-storage-monitor" -version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838d31b4316424d1c2c3a2f06f4e76cd56b53f38d366fc9882444d4ce8faabec" dependencies = [ "clap", "fs4", "log", - "sc-client-db", "sp-core", "thiserror", "tokio", @@ -11010,8 +11907,9 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb310dce9d2474a74152605dc0ca0f81a46f61ba4e7a39752f1203121f47c0c6" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -11029,13 +11927,15 @@ dependencies = [ [[package]] name = "sc-sysinfo" -version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfc9a5da78281735c6ff3b8d0287e95dcf32fc001415ac20cb2844c0ab4e6d05" dependencies = [ + "derive_more", "futures", "libc", "log", - "rand 0.8.5", + "rand", "rand_pcg", "regex", "sc-telemetry", @@ -11048,8 +11948,9 @@ dependencies = [ [[package]] name = "sc-telemetry" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "15.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96841bdc22e1ad5931e6cb7557b06ef33aeda7f5eef3864653359840f9fd025a" dependencies = [ "chrono", "futures", @@ -11057,7 +11958,7 @@ dependencies = [ "log", "parking_lot 0.12.1", "pin-project", - "rand 0.8.5", + "rand", "sc-utils", "serde", "serde_json", @@ -11067,15 +11968,17 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90864e5e042d1238bcb082b0fa73ce58b7eb4897127783dae1dd66eee59cdaef" dependencies = [ "ansi_term", - "atty", "chrono", + "is-terminal", "lazy_static", "libc", "log", + "parity-scale-codec", "parking_lot 0.12.1", "regex", "rustc-hash", @@ -11096,19 +11999,21 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "11.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151cdf86d79abf22cf2a240a7ca95041c908dbd96c2ae9a818073042aa210964" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "sc-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7985fab634814ee28fe3ecd2131fa2cb4c8eee88a7e60f1cd59dc0afa826fe2" dependencies = [ "async-trait", "futures", @@ -11133,8 +12038,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3402336f81a52fd6b1fd5a16fa3f4279032de1e113fe4a973865bf0b0e28679c" dependencies = [ "async-trait", "futures", @@ -11149,10 +12055,11 @@ dependencies = [ [[package]] name = "sc-utils" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4d5d1f106d670dd0c56fe540e8b0916aaeff6960bb39440ed8f3c80b52f8d4" dependencies = [ - "async-channel", + "async-channel 1.9.0", "futures", "futures-timer", "lazy_static", @@ -11164,9 +12071,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "2ef2175c2907e7c8bc0a9c3f86aeb5ec1f3b275300ad58a44d0c3ae379a5e52e" dependencies = [ "bitvec", "cfg-if", @@ -11178,9 +12085,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "634d9b8eb8fd61c5cdd3390d9b2132300a7e7618955b98b8416f118c1b4e144f" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", @@ -11203,26 +12110,43 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", "cfg-if", "hashbrown 0.13.2", ] [[package]] name = "schnorrkel" -version = "0.9.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" +checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" dependencies = [ "arrayref", - "arrayvec 0.5.2", - "curve25519-dalek 2.1.3", - "getrandom 0.1.16", + "arrayvec 0.7.4", + "curve25519-dalek-ng", "merlin", - "rand 0.7.3", - "rand_core 0.5.1", - "sha2 0.8.2", - "subtle", + "rand_core 0.6.4", + "sha2 0.9.9", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "schnorrkel" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" +dependencies = [ + "aead", + "arrayref", + "arrayvec 0.7.4", + "curve25519-dalek 4.1.2", + "getrandom_or_panic", + "merlin", + "rand_core 0.6.4", + "serde_bytes", + "sha2 0.10.8", + "subtle 2.5.0", "zeroize", ] @@ -11258,24 +12182,33 @@ dependencies = [ "der", "generic-array 0.14.7", "pkcs8", - "subtle", + "subtle 2.5.0", "zeroize", ] +[[package]] +name = "seccompiler" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a3e4dddf721a478089d4697b83c6c0a8f5bf16086f6c13397e4534eb6e2e5" +dependencies = [ + "libc", +] + [[package]] name = "secp256k1" -version = "0.24.3" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" +checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.6.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" +checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" dependencies = [ "cc", ] @@ -11364,6 +12297,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_bytes" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" version = "1.0.197" @@ -11372,7 +12314,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -11417,19 +12359,18 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] -name = "sha2" -version = "0.8.2" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", + "cfg-if", + "cpufeatures", + "digest 0.10.7", ] [[package]] @@ -11442,7 +12383,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] @@ -11492,6 +12433,7 @@ dependencies = [ "scale-info", "smallvec", "sp-arithmetic", + "sp-runtime", "sp-std", ] @@ -11510,12 +12452,6 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" - [[package]] name = "signature" version = "2.2.0" @@ -11559,6 +12495,12 @@ dependencies = [ "similar", ] +[[package]] +name = "simple-mermaid" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" + [[package]] name = "siphasher" version = "0.3.11" @@ -11582,8 +12524,9 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d9bb569dc58f1e139c20f532a2ad13d54795060c0000c2c49dc812b17684197" dependencies = [ "enumn", "parity-scale-codec", @@ -11601,12 +12544,119 @@ dependencies = [ "version_check", ] -[[package]] -name = "smallvec" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" - +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "smol" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" +dependencies = [ + "async-channel 1.9.0", + "async-executor", + "async-fs", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-net", + "async-process", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "smoldot" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0bb30cf57b7b5f6109ce17c3164445e2d6f270af2cb48f6e4d31c2967c9a9f5" +dependencies = [ + "arrayvec 0.7.4", + "async-lock 2.8.0", + "atomic-take", + "base64 0.21.7", + "bip39", + "blake2-rfc", + "bs58 0.5.1", + "chacha20", + "crossbeam-queue", + "derive_more", + "ed25519-zebra 4.0.3", + "either", + "event-listener 2.5.3", + "fnv", + "futures-lite 1.13.0", + "futures-util", + "hashbrown 0.14.3", + "hex", + "hmac 0.12.1", + "itertools 0.11.0", + "libsecp256k1", + "merlin", + "no-std-net", + "nom", + "num-bigint", + "num-rational", + "num-traits", + "pbkdf2 0.12.2", + "pin-project", + "poly1305", + "rand", + "rand_chacha 0.3.1", + "ruzstd", + "schnorrkel 0.10.2", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "siphasher", + "slab", + "smallvec", + "soketto", + "twox-hash", + "wasmi", + "x25519-dalek 2.0.1", + "zeroize", +] + +[[package]] +name = "smoldot-light" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33" +dependencies = [ + "async-channel 1.9.0", + "async-lock 2.8.0", + "base64 0.21.7", + "blake2-rfc", + "derive_more", + "either", + "event-listener 2.5.3", + "fnv", + "futures-channel", + "futures-lite 1.13.0", + "futures-util", + "hashbrown 0.14.3", + "hex", + "itertools 0.11.0", + "log", + "lru 0.11.1", + "no-std-net", + "parking_lot 0.12.1", + "pin-project", + "rand", + "rand_chacha 0.3.1", + "serde", + "serde_json", + "siphasher", + "slab", + "smol", + "smoldot", + "zeroize", +] + [[package]] name = "snap" version = "1.1.1" @@ -11620,14 +12670,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" dependencies = [ "aes-gcm", - "blake2", + "blake2 0.10.6", "chacha20poly1305", "curve25519-dalek 4.1.2", "rand_core 0.6.4", "ring 0.17.8", "rustc_version 0.4.0", "sha2 0.10.8", - "subtle", + "subtle 2.5.0", ] [[package]] @@ -11663,14 +12713,15 @@ dependencies = [ "http", "httparse", "log", - "rand 0.8.5", + "rand", "sha-1", ] [[package]] name = "sp-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dea138c6dbf282ab57756492f0232ea0a08575ca9cbe2b7b1ead49000f238a7" dependencies = [ "hash-db", "log", @@ -11690,22 +12741,24 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "15.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0694be2891593450916d6b53a274d234bccbc86bcbada36ba23fc356989070c7" dependencies = [ "Inflector", - "blake2", - "expander 2.0.0", - "proc-macro-crate 1.3.1", + "blake2 0.10.6", + "expander 2.1.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "sp-application-crypto" -version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "30.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e4fe7a9b7fa9da76272b201e2fb3c7900d97d32a46b66af9a04dad457f73c71" dependencies = [ "parity-scale-codec", "scale-info", @@ -11717,8 +12770,9 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "23.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f42721f072b421f292a072e8f52a3b3c0fbc27428f0c9fe24067bc47046bad63" dependencies = [ "integer-sqrt", "num-traits", @@ -11731,8 +12785,9 @@ dependencies = [ [[package]] name = "sp-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22a740c05e9096eb17e93b5ab6aa5fe8ce0c9b4243777826d92133b3dd682e14" dependencies = [ "parity-scale-codec", "scale-info", @@ -11744,8 +12799,9 @@ dependencies = [ [[package]] name = "sp-block-builder" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d2aa0943101367b955f5806c3ecea2e23df7c90059708107470dbfb9d3d7ab" dependencies = [ "sp-api", "sp-inherents", @@ -11755,8 +12811,9 @@ dependencies = [ [[package]] name = "sp-blockchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9adee5ddcf0682d0302ed640a285b9f922d933a205b63c7819a74d6092b6f78" dependencies = [ "futures", "log", @@ -11773,8 +12830,9 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcac16e85f78db9c99c9424659bb25790be079a0b758a3674ee8e1e7ef635b0" dependencies = [ "async-trait", "futures", @@ -11788,8 +12846,9 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab8e878a116b0885eaefd068235657737cb72fdce60a8c080dfd092f7d645cc" dependencies = [ "async-trait", "parity-scale-codec", @@ -11805,8 +12864,9 @@ dependencies = [ [[package]] name = "sp-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebfedfdea5b22fb3625cd664e72503dcbd1087373181d5be0d092b3e7b4c61f5" dependencies = [ "async-trait", "parity-scale-codec", @@ -11824,8 +12884,9 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e09a424196a673f0e6b5fe79e4ab97da416491cfecab7bc835fa595134ac1b5c" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11843,8 +12904,9 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a906b20409a5a69b1d9580848f502af20cf2c51a1ae028ba208375eb11f332b" dependencies = [ "finality-grandpa", "log", @@ -11861,8 +12923,9 @@ dependencies = [ [[package]] name = "sp-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc5c1620d81196391daa15e78ea20cc11c59f08c509381c276d5d6a3d4d36af" dependencies = [ "parity-scale-codec", "scale-info", @@ -11873,21 +12936,23 @@ dependencies = [ [[package]] name = "sp-core" -version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f230cb12575455070da0fc174815958423a0b9a641d5e304a9457113c7cb4007" dependencies = [ - "array-bytes", + "array-bytes 6.2.2", + "bip39", "bitflags 1.3.2", - "blake2", + "blake2 0.10.6", "bounded-collections", - "bs58", + "bs58 0.5.1", "dyn-clonable", - "ed25519-zebra", + "ed25519-zebra 3.1.0", "futures", "hash-db", "hash256-std-hasher", "impl-serde", - "lazy_static", + "itertools 0.10.5", "libsecp256k1", "log", "merlin", @@ -11895,10 +12960,9 @@ dependencies = [ "parking_lot 0.12.1", "paste", "primitive-types", - "rand 0.8.5", - "regex", + "rand", "scale-info", - "schnorrkel", + "schnorrkel 0.11.4", "secp256k1", "secrecy", "serde", @@ -11911,15 +12975,16 @@ dependencies = [ "ss58-registry", "substrate-bip39", "thiserror", - "tiny-bip39", "tracing", + "w3f-bls", "zeroize", ] [[package]] name = "sp-core-hashing" -version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "15.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0f4990add7b2cefdeca883c0efa99bb4d912cb2196120e1500c0cc099553b0" dependencies = [ "blake2b_simd", "byteorder", @@ -11931,18 +12996,20 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" -version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "15.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7527f8dda7667c41009b2cd0efaddcb81709b9741bd5ee6d17b11bad835cc698" dependencies = [ "quote", "sp-core-hashing", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "sp-database" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "722cbecdbf5b94578137dbd07feb51e95f7de221be0c1ff4dcfe0bb4cd986929" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11950,18 +13017,20 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "sp-externalities" -version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63867ec85950ced90d4ab1bba902a47db1b1efdf2829f653945669b2bb470a9c" dependencies = [ "environmental", "parity-scale-codec", @@ -11969,10 +13038,23 @@ dependencies = [ "sp-storage", ] +[[package]] +name = "sp-genesis-builder" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfdc79df83221ec5a279cbbd08fd6f8be164b9b081c8e84593ce2c2ebd5d66c0" +dependencies = [ + "serde_json", + "sp-api", + "sp-runtime", + "sp-std", +] + [[package]] name = "sp-inherents" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3caf2d1288549d7e6c32b453f2d4855d498bb88600101011e35653e022a6f2" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -11985,12 +13067,12 @@ dependencies = [ [[package]] name = "sp-io" -version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "30.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c55f26d89feedaf0faf81688b6e1e1e81329cd8b4c6a4fd6c5b97ed9dd068b8a" dependencies = [ "bytes", - "ed25519 1.5.3", - "ed25519-dalek 1.0.1", + "ed25519-dalek", "libsecp256k1", "log", "parity-scale-codec", @@ -12010,10 +13092,10 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "31.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98165ce7c625a8cdb88d39c6bbd56fe8b32ada64ed0894032beba99795f557da" dependencies = [ - "lazy_static", "sp-core", "sp-runtime", "strum 0.24.1", @@ -12021,8 +13103,9 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96806a28a62ed9ddecd0b28857b1344d029390f7c5c42a2ff9199cbf5638635c" dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", @@ -12033,8 +13116,9 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "11.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c768c11afbe698a090386876911da4236af199cd38a5866748df4d8628aeff" dependencies = [ "thiserror", "zstd 0.12.4", @@ -12042,8 +13126,9 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa0b5e87e56c1bb26d9524d48dd127121d630f895bd5914a34f0b017489f7c1d" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -12051,10 +13136,24 @@ dependencies = [ "sp-std", ] +[[package]] +name = "sp-mixnet" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85ed83d2f899484bde61c72cbae6edfb25708d43e6b19934e206f3c706df67df" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-std", +] + [[package]] name = "sp-mmr-primitives" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7526a73d518c03fa2447588b1544019a194a4f113cf34d2610d3b5925c80c86" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -12071,8 +13170,9 @@ dependencies = [ [[package]] name = "sp-npos-elections" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa8efff28b504b4b928288976e5f72c00c7ece9d2348a7ca2496c77849dd4c8f" dependencies = [ "parity-scale-codec", "scale-info", @@ -12085,8 +13185,9 @@ dependencies = [ [[package]] name = "sp-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb45b3e397dc9c7b81cb2d8d641d0bcb1f525b60e83835783413ba73b3f61ac9" dependencies = [ "sp-api", "sp-core", @@ -12095,8 +13196,9 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8f5a17a0a11de029a8b811cb6e8b32ce7e02183cc04a3e965c383246798c416" dependencies = [ "backtrace", "lazy_static", @@ -12105,8 +13207,9 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a55f2c7660b579627d22932ecfe2e5f001a7671d2fa77667387517c7f80e6fb" dependencies = [ "rustc-hash", "serde", @@ -12115,18 +13218,21 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "31.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3bb49a4475d390198dfd3d41bef4564ab569fbaf1b5e38ae69b35fc01199d91" dependencies = [ + "docify", "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", "parity-scale-codec", "paste", - "rand 0.8.5", + "rand", "scale-info", "serde", + "simple-mermaid", "sp-application-crypto", "sp-arithmetic", "sp-core", @@ -12137,8 +13243,9 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "24.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f66b66d8cec3d785fa6289336c1d9cbd4305d5d84f7134378c4d79ed7983e6fb" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -12155,20 +13262,23 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "17.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfaf6e85b2ec12a4b99cd6d8d57d083e30c94b7f1b0d8f93547121495aae6f0c" dependencies = [ "Inflector", - "proc-macro-crate 1.3.1", + "expander 2.1.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "sp-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8048981db53d4f5171e6003f5e11fbfc27a8c196b0827619907a4214746a623b" dependencies = [ "parity-scale-codec", "scale-info", @@ -12182,8 +13292,9 @@ dependencies = [ [[package]] name = "sp-staking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0e68be3fff84dd8ee552f9d13dd2e9eab3663e0bddfc6c6c88de02aaca1e311" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -12196,14 +13307,15 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718c779ad1d6fcc0be64c7ce030b33fa44b5c8914b3a1319ef63bb5f27fb98df" dependencies = [ "hash-db", "log", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "smallvec", "sp-core", "sp-externalities", @@ -12217,11 +13329,18 @@ dependencies = [ [[package]] name = "sp-statement-store" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee6d4ceb2513f180e6e017fd6d6f3c9a1a122dcedee5fc8e4254d8a7ecf793d" dependencies = [ + "aes-gcm", + "curve25519-dalek 4.1.2", + "ed25519-dalek", + "hkdf", "parity-scale-codec", + "rand", "scale-info", + "sha2 0.10.8", "sp-api", "sp-application-crypto", "sp-core", @@ -12230,17 +13349,20 @@ dependencies = [ "sp-runtime-interface", "sp-std", "thiserror", + "x25519-dalek 2.0.1", ] [[package]] name = "sp-std" -version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" [[package]] name = "sp-storage" -version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "19.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fb92d7b24033a8a856d6e20dd980b653cbd7af7ec471cc988b1b7c1d2e3a32b" dependencies = [ "impl-serde", "parity-scale-codec", @@ -12252,8 +13374,9 @@ dependencies = [ [[package]] name = "sp-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "347eaddd5b07856ccec69ac3300e72e392a5efc3aea5fb4b7230888a0b447b9e" dependencies = [ "async-trait", "parity-scale-codec", @@ -12265,8 +13388,9 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0351810b9d074df71c4514c5228ed05c250607cba131c1c9d1526760ab69c05c" dependencies = [ "parity-scale-codec", "sp-std", @@ -12277,8 +13401,9 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97c4052e69eacdb7a411e050c56a838f460b8a879071125451e9bb2d4814df34" dependencies = [ "sp-api", "sp-runtime", @@ -12286,8 +13411,9 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b2a2c693bc7ca363c9d2cd412276582aef10c794399aaffbd1fe2351099a1a5" dependencies = [ "async-trait", "parity-scale-codec", @@ -12301,20 +13427,22 @@ dependencies = [ [[package]] name = "sp-trie" -version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4d24d84a0beb44a71dcac1b41980e1edf7fb722c7f3046710136a283cd479b" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", "hash-db", - "hashbrown 0.13.2", "lazy_static", "memory-db", "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.1", + "rand", "scale-info", "schnellru", "sp-core", + "sp-externalities", "sp-std", "thiserror", "tracing", @@ -12324,8 +13452,9 @@ dependencies = [ [[package]] name = "sp-version" -version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afd1b053394347e22f541696bca4a9ac3ec848b50d1b86f5018d2b771f39f11a" dependencies = [ "impl-serde", "parity-scale-codec", @@ -12341,19 +13470,21 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" -version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9bc3fed32d6dacbbbfb28dd1fe0224affbb737cb6cbfca1d9149351c2b69a7d" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "sp-wasm-interface" -version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "20.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ef97172c42eb4c6c26506f325f48463e9bc29b2034a587f1b9e48c751229bee" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -12365,15 +13496,16 @@ dependencies = [ [[package]] name = "sp-weights" -version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e874bdf9dd3fd3242f5b7867a4eaedd545b02f29041a46d222a9d9d5caaaa5c" dependencies = [ + "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", "sp-arithmetic", - "sp-core", "sp-debug-derive", "sp-std", ] @@ -12416,9 +13548,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.46.0" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1114ee5900b8569bbc8b1a014a942f937b752af4b44f4607430b5f86cedaac0" +checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" dependencies = [ "Inflector", "num-format", @@ -12435,6 +13567,85 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "staging-parachain-info" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad554ffd27fbcafd82e234d7e7188e458e51bfe2b3b5000dd236dce762e3e95f" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "staging-xcm" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0df18af00766d22926916bb443f14742c65cc6b2f0fe997b8f26da0d0f9ee9ca" +dependencies = [ + "array-bytes 6.2.2", + "bounded-collections", + "derivative", + "environmental", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-weights", + "xcm-procedural", +] + +[[package]] +name = "staging-xcm-builder" +version = "7.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ba4f214fe99d79ffcc266f431abbb32d3596788327b925d469c7bb6a3c84d3c" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "pallet-transaction-payment", + "parity-scale-codec", + "polkadot-parachain-primitives", + "scale-info", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", + "staging-xcm-executor", +] + +[[package]] +name = "staging-xcm-executor" +version = "7.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f1dea1e33eefee513c197c24255670951a2c515a6ce2c7049fe86385400074f" +dependencies = [ + "environmental", + "frame-benchmarking", + "frame-support", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -12469,6 +13680,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "strobe-rs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabb238a1cccccfa4c4fb703670c0d157e1256c1ba695abf1b93bd2bb14bab2d" +dependencies = [ + "bitflags 1.3.2", + "byteorder", + "keccak", + "subtle 2.5.0", + "zeroize", +] + [[package]] name = "strsim" version = "0.11.0" @@ -12496,7 +13720,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", @@ -12509,30 +13733,31 @@ version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] name = "substrate-bip39" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328" +checksum = "6a7590dc041b9bc2825e52ce5af8416c73dbe9d0654402bfd4b4941938b94d8f" dependencies = [ "hmac 0.11.0", "pbkdf2 0.8.0", - "schnorrkel", + "schnorrkel 0.11.4", "sha2 0.9.9", "zeroize", ] [[package]] name = "substrate-build-script-utils" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "11.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b285e7d183a32732fdc119f3d81b7915790191fad602b7c709ef247073c77a2e" [[package]] name = "substrate-fixed" @@ -12547,8 +13772,9 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcee7812a1e1cec85e3095c5d1c1627ceb084c0c81e66c2f9df7cb7b3a5938f3" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12566,8 +13792,9 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8fe06b03b8a291c09507c42f92a2c2c10dd3d62975d02c7f64a92d87bfe09b" dependencies = [ "hyper", "log", @@ -12578,8 +13805,9 @@ dependencies = [ [[package]] name = "substrate-rpc-client" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9076480cc6f480429b081bf93607d32183bdac4d6f0d2969d5e08de08bea1701" dependencies = [ "async-trait", "jsonrpsee", @@ -12591,66 +13819,20 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92c25dcb3e4aee5559c2bd9b4d105786220cad116719d7ebb39e4f359865d44" dependencies = [ "jsonrpsee", "parity-scale-codec", "sc-client-api", "sc-rpc-api", "serde", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-trie", - "trie-db", -] - -[[package]] -name = "substrate-test-client" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" -dependencies = [ - "array-bytes", - "async-trait", - "futures", - "parity-scale-codec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-executor", - "sc-offchain", - "sc-service", - "serde", - "serde_json", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-keyring", - "sp-keystore", - "sp-runtime", - "sp-state-machine", -] - -[[package]] -name = "substrate-test-utils" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" -dependencies = [ - "futures", - "substrate-test-utils-derive", - "tokio", -] - -[[package]] -name = "substrate-test-utils-derive" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 2.0.51", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-trie", + "trie-db", ] [[package]] @@ -12665,8 +13847,9 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "17.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac08d23ff4da66fe6cb0300f249be010d78e5abeafef0390cae39736a374e6cd" dependencies = [ "ansi_term", "build-helper", @@ -12676,16 +13859,28 @@ dependencies = [ "sp-maybe-compressed-blob", "strum 0.24.1", "tempfile", - "toml 0.7.8", + "toml 0.8.12", "walkdir", "wasm-opt", ] [[package]] name = "subtle" -version = "2.4.1" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "subtle-ng" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" [[package]] name = "syn" @@ -12700,9 +13895,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.51" +version = "2.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" +checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" dependencies = [ "proc-macro2", "quote", @@ -12748,6 +13943,21 @@ dependencies = [ "libc", ] +[[package]] +name = "system-parachains-constants" +version = "1.0.0" +source = "git+https://github.com/polkadot-fellows/runtimes?rev=59172d5fb8feea2646490618bead3b2b4fb06220#59172d5fb8feea2646490618bead3b2b4fb06220" +dependencies = [ + "frame-support", + "kusama-runtime-constants", + "parachains-common", + "polkadot-core-primitives", + "polkadot-primitives", + "polkadot-runtime-constants", + "smallvec", + "sp-runtime", +] + [[package]] name = "tap" version = "1.0.1" @@ -12762,13 +13972,13 @@ checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand", - "rustix 0.38.31", + "fastrand 2.0.1", + "rustix 0.38.32", "windows-sys 0.52.0", ] @@ -12781,6 +13991,16 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix 0.38.32", + "windows-sys 0.48.0", +] + [[package]] name = "termtree" version = "0.4.1" @@ -12788,37 +14008,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] -name = "test-runtime-constants" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +name = "thiserror" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ - "frame-support", - "polkadot-primitives", - "polkadot-runtime-common", - "smallvec", - "sp-core", - "sp-runtime", - "sp-weights", + "thiserror-impl", ] [[package]] -name = "thiserror" -version = "1.0.57" +name = "thiserror-core" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "c001ee18b7e5e3f62cbf58c7fe220119e68d902bb7443179c0c8aef30090e999" dependencies = [ - "thiserror-impl", + "thiserror-core-impl", +] + +[[package]] +name = "thiserror-core-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -12911,25 +14137,6 @@ dependencies = [ "time-core", ] -[[package]] -name = "tiny-bip39" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" -dependencies = [ - "anyhow", - "hmac 0.12.1", - "once_cell", - "pbkdf2 0.11.0", - "rand 0.8.5", - "rustc-hash", - "sha2 0.10.8", - "thiserror", - "unicode-normalization", - "wasm-bindgen", - "zeroize", -] - [[package]] name = "tiny-keccak" version = "2.0.2" @@ -12939,16 +14146,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "tinytemplate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" -dependencies = [ - "serde", - "serde_json", -] - [[package]] name = "tinyvec" version = "1.6.0" @@ -12991,7 +14188,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -13001,7 +14198,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" dependencies = [ "pin-project", - "rand 0.8.5", + "rand", "tokio", ] @@ -13017,9 +14214,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite 0.2.13", @@ -13053,21 +14250,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.19.15", + "toml_edit 0.22.9", ] [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" dependencies = [ "serde", ] @@ -13078,22 +14275,44 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.3", - "serde", - "serde_spanned", + "indexmap 2.2.5", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +dependencies = [ + "indexmap 2.2.5", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.5", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.5", + "serde", + "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.5", ] [[package]] @@ -13113,7 +14332,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "bytes", "futures-core", "futures-util", @@ -13157,7 +14376,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -13182,10 +14401,11 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f134d9dda0e872989ddf57b90ca73bcad27f1fba2cc19cfada7b76549c590b0" dependencies = [ - "polkadot-node-jaeger", + "coarsetime", "polkadot-primitives", "tracing", "tracing-gum-proc-macro", @@ -13193,14 +14413,15 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f074568687ffdfd0adb6005aa8d1d96840197f2c159f80471285f08694cf0ce" dependencies = [ - "expander 2.0.0", - "proc-macro-crate 1.3.1", + "expander 2.1.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -13249,9 +14470,9 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85" +checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" dependencies = [ "hash-db", "hashbrown 0.13.2", @@ -13285,7 +14506,7 @@ dependencies = [ "idna 0.2.3", "ipnet", "lazy_static", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.4.10", "thiserror", @@ -13323,8 +14544,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "try-runtime-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb82b8de45dabaaba00c8c7394f18c6f97dd0e27954d4de08b352a24886d8407" dependencies = [ "async-trait", "clap", @@ -13371,7 +14593,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.8.5", + "rand", "static_assertions", ] @@ -13413,9 +14635,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] @@ -13445,7 +14667,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", - "subtle", + "subtle 2.5.0", ] [[package]] @@ -13523,11 +14745,41 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +[[package]] +name = "w3f-bls" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7335e4c132c28cc43caef6adb339789e599e39adbe78da0c4d547fad48cbc331" +dependencies = [ + "ark-bls12-377", + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-serialize-derive", + "arrayref", + "constcat", + "digest 0.10.7", + "rand", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "sha2 0.10.8", + "sha3", + "thiserror", + "zeroize", +] + +[[package]] +name = "waker-fn" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" + [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -13565,9 +14817,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -13575,24 +14827,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -13602,9 +14854,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -13612,22 +14864,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-instrument" @@ -13640,9 +14892,9 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.112.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fef6d0d508f08334e0ab0e6877feb4c0ecb3956bcf2cb950699b22fedf3e9c" +checksum = "fc942673e7684671f0c5708fc18993569d184265fd5223bb51fc8e5b9b6cfd52" dependencies = [ "anyhow", "libc", @@ -13656,9 +14908,9 @@ dependencies = [ [[package]] name = "wasm-opt-cxx-sys" -version = "0.112.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc816bbc1596c8f2e8127e137a760c798023ef3d378f2ae51f0f1840e2dfa445" +checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e" dependencies = [ "anyhow", "cxx", @@ -13668,9 +14920,9 @@ dependencies = [ [[package]] name = "wasm-opt-sys" -version = "0.112.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40199e4f68ef1071b3c6d0bd8026a12b481865d4b9e49c156932ea9a6234dd14" +checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe" dependencies = [ "anyhow", "cc", @@ -13693,6 +14945,37 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasmi" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7" +dependencies = [ + "smallvec", + "spin 0.9.8", + "wasmi_arena", + "wasmi_core", + "wasmparser-nostd", +] + +[[package]] +name = "wasmi_arena" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" + +[[package]] +name = "wasmi_core" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a" +dependencies = [ + "downcast-rs", + "libm", + "num-traits", + "paste", +] + [[package]] name = "wasmparser" version = "0.102.0" @@ -13703,6 +14986,15 @@ dependencies = [ "url", ] +[[package]] +name = "wasmparser-nostd" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724" +dependencies = [ + "indexmap-nostd", +] + [[package]] name = "wasmtime" version = "8.0.1" @@ -13878,7 +15170,7 @@ dependencies = [ "memfd", "memoffset", "paste", - "rand 0.8.5", + "rand", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -13900,9 +15192,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -13935,9 +15227,11 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "westend-runtime" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "390ccc949904980061c181f0a1507ceb793f3b57f8f930ef60222839e08cb2ca" dependencies = [ + "binary-merkle-tree", "bitvec", "frame-benchmarking", "frame-election-provider-support", @@ -13949,16 +15243,20 @@ dependencies = [ "frame-try-runtime", "hex-literal 0.4.1", "log", + "pallet-asset-rate", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", + "pallet-beefy", + "pallet-beefy-mmr", "pallet-collective", - "pallet-democracy 4.0.0-dev", + "pallet-conviction-voting", + "pallet-democracy 28.0.0", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", - "pallet-elections-phragmen 5.0.0-dev", + "pallet-elections-phragmen 29.0.0", "pallet-fast-unstake", "pallet-grandpa", "pallet-identity", @@ -13966,6 +15264,7 @@ dependencies = [ "pallet-indices", "pallet-membership", "pallet-message-queue", + "pallet-mmr", "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", @@ -13975,6 +15274,8 @@ dependencies = [ "pallet-preimage", "pallet-proxy", "pallet-recovery", + "pallet-referenda", + "pallet-root-testing", "pallet-scheduler", "pallet-session", "pallet-session-benchmarking", @@ -13990,10 +15291,11 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", + "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", @@ -14003,11 +15305,14 @@ dependencies = [ "serde_derive", "smallvec", "sp-api", + "sp-application-crypto", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-mmr-primitives", @@ -14017,19 +15322,21 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", + "sp-storage", "sp-transaction-pool", "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", "westend-runtime-constants", - "xcm", - "xcm-builder", - "xcm-executor", ] [[package]] name = "westend-runtime-constants" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c410b8a17b87e5228f9c27ba4a8020e7ece4a8afb0f452b989834623afe84a2" dependencies = [ "frame-support", "polkadot-primitives", @@ -14038,6 +15345,8 @@ dependencies = [ "sp-core", "sp-runtime", "sp-weights", + "staging-xcm", + "staging-xcm-builder", ] [[package]] @@ -14049,7 +15358,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.31", + "rustix 0.38.32", ] [[package]] @@ -14105,7 +15414,7 @@ version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ - "windows-core", + "windows-core 0.51.1", "windows-targets 0.48.5", ] @@ -14118,6 +15427,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.4", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -14142,7 +15460,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.3", + "windows-targets 0.52.4", ] [[package]] @@ -14177,17 +15495,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.3", - "windows_aarch64_msvc 0.52.3", - "windows_i686_gnu 0.52.3", - "windows_i686_msvc 0.52.3", - "windows_x86_64_gnu 0.52.3", - "windows_x86_64_gnullvm 0.52.3", - "windows_x86_64_msvc 0.52.3", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -14204,9 +15522,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -14222,9 +15540,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -14240,9 +15558,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -14258,9 +15576,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -14276,9 +15594,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -14294,9 +15612,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -14312,9 +15630,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winnow" @@ -14325,6 +15643,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.50.0" @@ -14355,6 +15682,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "x25519-dalek" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +dependencies = [ + "curve25519-dalek 4.1.2", + "rand_core 0.6.4", + "serde", + "zeroize", +] + [[package]] name = "x509-parser" version = "0.14.0" @@ -14373,106 +15712,50 @@ dependencies = [ "time", ] -[[package]] -name = "xcm" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" -dependencies = [ - "bounded-collections", - "derivative", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-weights", - "xcm-procedural", -] - -[[package]] -name = "xcm-builder" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" -dependencies = [ - "frame-support", - "frame-system", - "impl-trait-for-tuples", - "log", - "pallet-transaction-payment", - "parity-scale-codec", - "polkadot-parachain", - "scale-info", - "sp-arithmetic", - "sp-io", - "sp-runtime", - "sp-std", - "sp-weights", - "xcm", - "xcm-executor", -] - [[package]] name = "xcm-emulator" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#7935c251f42a41a3e3f61db101af623027676b49" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfe27508d4304447fdb7419b769ed9fbeab56bcd41ecf9193e43a33fb8f5588a" dependencies = [ - "casey", - "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-test-relay-sproof-builder", - "cumulus-test-service", "frame-support", "frame-system", + "impl-trait-for-tuples", + "lazy_static", "log", "pallet-balances", "pallet-message-queue", - "parachain-info", "parachains-common", "parity-scale-codec", "paste", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-parachains", - "quote", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-std", - "sp-trie", - "xcm", -] - -[[package]] -name = "xcm-executor" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" -dependencies = [ - "environmental", - "frame-benchmarking", - "frame-support", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", "sp-arithmetic", "sp-core", "sp-io", "sp-runtime", "sp-std", - "sp-weights", - "xcm", + "sp-tracing", + "staging-xcm", + "staging-xcm-executor", ] [[package]] name = "xcm-procedural" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7998facd751c42ec9b11a4cf71fcdb41fb147c5c8db8bcd1281fe84f8760d515" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -14485,7 +15768,7 @@ dependencies = [ "log", "nohash-hasher", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "static_assertions", ] @@ -14515,7 +15798,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] @@ -14535,7 +15818,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.53", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 3e9a8ecb0..fb7c9ee4a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ codegen-units = 1 assert_matches2 = "0.1.2" # Build deps -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +substrate-wasm-builder = { version = "17.0.0" } # Internal pallets (with default disabled) pallet-funding = { path = "pallets/funding", default-features = false } @@ -62,8 +62,8 @@ macros-tests = { path = "macros/tests" } # External pallets (with default disabled) -orml-oracle = {git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v1.0.0", default-features = false} -orml-traits = {git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v1.0.0", default-features = false} +orml-oracle = { version = "0.7.0", default-features = false} +orml-traits = { version = "0.7.0", default-features = false} jwt-compact = { git = "https://github.com/lrazovic/jwt-compact", default-features = false } # Internal support (with default disabled) @@ -84,151 +84,156 @@ scale-info = { version = "2.9.0", default-features = false, features = [ jsonrpsee = { version = "0.16.3", features = ["server"] } hex-literal = "0.3.4" serde = { version = "1.0.188", default-features = false } +serde_json = "1.0.111" smallvec = "1.11.0" log = { version = "0.4.17", default-features = false } itertools = { version = "0.11.0", default-features = false, features = ["use_alloc"] } array-bytes = { version = "*", default-features = false } # Emulations -xcm-emulator = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } +xcm-emulator = { version = "0.5.0", default-features = false } # Substrate (with default disabled) -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-debug-derive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-consensus-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-npos-elections = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -sp-tracing = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-im-online = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sp-authority-discovery = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sp-consensus-babe = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -pallet-message-queue = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sp-weights = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +frame-benchmarking = { version = "28.0.0", default-features = false } +frame-benchmarking-cli = { version = "32.0.0" } +frame-executive = { version = "28.0.0", default-features = false } +frame-support = { version = "28.0.0", default-features = false } +frame-system = { version = "28.0.0", default-features = false } +frame-system-rpc-runtime-api = { version = "26.0.0", default-features = false } +frame-system-benchmarking = { version = "28.0.0", default-features = false } +frame-try-runtime = { version = "0.34.0", default-features = false } +sp-api = { version = "26.0.0", default-features = false } +sp-debug-derive = { version = "14.0.0", default-features = false } +sp-std = { version = "14.0.0", default-features = false } +sp-staking = { version = "26.0.0", default-features = false } +sp-runtime = { version = "31.0.0", default-features = false } +sp-arithmetic = { version = "23.0.0", default-features = false } +sp-core = { version = "28.0.0", default-features = false } +sp-io = { version = "30.0.0", default-features = false } +sp-blockchain = { version = "28.0.0", default-features = false } +sp-consensus-aura = { version = "0.32.0", default-features = false } +sp-consensus-beefy = { version = "13.0.0", default-features = false } +sp-block-builder = { version = "26.0.0", default-features = false } +sp-genesis-builder = { version = "0.7.0", default-features = false } +sp-inherents = { version = "26.0.0", default-features = false } +sp-offchain = { version = "26.0.0", default-features = false } +sp-session = { version = "27.0.0", default-features = false } +sp-transaction-pool = { version = "26.0.0", default-features = false } +sp-trie = { version = "29.0.0", default-features = false } +sp-version = { version = "29.0.0", default-features = false } +sp-consensus-grandpa = { version = "13.0.0", default-features = false } +sp-npos-elections = { version = "26.0.0", default-features = false } +sp-tracing = { version = "16.0.0", default-features = false } +try-runtime-cli = { version = "0.38.0" } +pallet-im-online = { version = "27.0.0", default-features = false } +sp-authority-discovery = { version = "26.0.0", default-features = false } +sp-consensus-babe = { version = "0.32.0", default-features = false } +pallet-message-queue = { version = "31.0.0", default-features = false } +sp-weights = { version = "27.0.0", default-features = false } # FRAME -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-asset-tx-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-treasury = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-membership = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-preimage = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } -pallet-identity = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v1.0.0" } +pallet-aura = { version = "27.0.0", default-features = false } +pallet-balances = { version = "28.0.0", default-features = false } +pallet-insecure-randomness-collective-flip = { version = "16.0.0", default-features = false } +pallet-assets = { version = "29.0.0", default-features = false } +pallet-authorship = { version = "28.0.0", default-features = false } +pallet-session = { version = "28.0.0", default-features = false } +pallet-timestamp = { version = "27.0.0", default-features = false } +pallet-asset-tx-payment = { version = "28.0.0", default-features = false } +pallet-collective = { version = "28.0.0", default-features = false } +pallet-scheduler = { version = "29.0.0", default-features = false } +pallet-sudo = { version = "28.0.0", default-features = false } +pallet-transaction-payment = { version = "28.0.0", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { version = "28.0.0", default-features = false } +pallet-treasury = { version = "27.0.0", default-features = false } +pallet-utility = { version = "28.0.0", default-features = false } +pallet-membership = { version = "28.0.0", default-features = false } +pallet-multisig = { version = "28.0.0", default-features = false } +pallet-preimage = { version = "28.0.0", default-features = false } +pallet-grandpa = { version = "28.0.0", default-features = false } +pallet-transaction-payment-rpc = { version = "30.0.0" } +pallet-vesting = { version = "28.0.0", default-features = false } +pallet-staking = { version = "28.0.0", default-features = false } +pallet-proxy = { version = "28.0.0", default-features = false } +pallet-identity = { version = "28.0.0", default-features = false } # Polkadot (with default disabled) -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } -xcm-simulator = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } -polkadot-runtime = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } -polkadot-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } +pallet-xcm = { version = "7.0.0", default-features = false } +polkadot-parachain-primitives = { version = "6.0.0", default-features = false } +polkadot-runtime-parachains = { version = "7.0.0", default-features = false } +polkadot-core-primitives = { version = "7.0.0", default-features = false } +xcm = { version = "7.0.0", package = 'staging-xcm', default-features = false } +xcm-builder = { version = "7.0.3", package = 'staging-xcm-builder', default-features = false } +xcm-executor = { version = "7.0.3", package = 'staging-xcm-executor', default-features = false } +xcm-simulator = { version = "7.0.0" } +polkadot-runtime-common = { version = "7.0.0", default-features = false } +polkadot-primitives = { version = "7.0.0", default-features = false } # Cumulus (with default disabled) -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -cumulus-pallet-solo-to-para = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -parachains-common = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } -asset-hub-polkadot-runtime = { git = 'https://github.com/paritytech/cumulus', default-features = false, branch = 'release-v1.0.0' } +cumulus-pallet-aura-ext = { version = "0.7.0", default-features = false } +cumulus-pallet-dmp-queue = { version = "0.7.0", default-features = false } +cumulus-pallet-solo-to-para = { version = "0.7.0", default-features = false } +cumulus-pallet-parachain-system = { version = "0.7.0", features = ["parameterized-consensus-hook"], default-features = false } +cumulus-pallet-xcm = { version = "0.7.0", default-features = false } +cumulus-pallet-xcmp-queue = { version = "0.7.0", default-features = false } +cumulus-primitives-core = { version = "0.7.0", default-features = false } +cumulus-primitives-timestamp = { version = "0.7.0", default-features = false } +cumulus-primitives-utility = { version = "0.7.3", default-features = false } +pallet-collator-selection = { version = "9.0.0", default-features = false } +parachain-info = { version = "0.7.0", package = 'staging-parachain-info', default-features = false } +parachains-common = { version = "7.0.0", default-features = false } # Client-only (with default enabled) -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } -cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-consensus-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -sc-transaction_pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } -substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +cumulus-client-cli = { version = "0.7.0" } +cumulus-client-collator = { version = "0.7.0" } +cumulus-client-consensus-aura = { version = "0.7.0" } +cumulus-client-consensus-common = { version = "0.7.0" } +cumulus-client-consensus-proposer = { version = "0.7.0" } +cumulus-client-network = { version = "0.7.0" } +cumulus-client-service = { version = "0.7.0" } +cumulus-primitives-parachain-inherent = { version = "0.7.0", default-features = false } +cumulus-relay-chain-interface = { version = "0.7.0" } +cumulus-relay-chain-inprocess-interface = { version = "0.7.0" } +cumulus-relay-chain-minimal-node = { version = "0.7.0" } +polkadot-cli = { version = "7.0.0" } +polkadot-service = { version = "7.0.0" } +sc-chain-spec = { version = "27.0.0" } +sc-basic-authorship = { version = "0.34.0" } +sc-client-api = { version = "28.0.0" } +sc-consensus = { version = "0.33.0" } +sc-consensus-aura = { version = "0.34.0" } +sc-network = { version = "0.34.0" } +sc-offchain = { version = "29.0.0" } +sc-network-sync = { version = "0.33.0" } +sc-cli = { version = "0.36.0" } +sc-executor = { version = "0.32.0" } +sc-keystore = { version = "25.0.0", default-features = false } +sp-consensus = { version = "0.32.0", default-features = false } +sp-keyring = { version = "31.0.0", default-features = false } +sc-rpc = { version = "29.0.0" } +sc-rpc-api = { version = "0.33.0" } +sc-service = { version = "0.35.0" } +sc-sysinfo = { version = "27.0.0", default-features = false } +sc-telemetry = { version = "15.0.0" } +sc-tracing = { version = "28.0.0" } +sc-transaction-pool = { version = "28.0.0" } +sc-transaction-pool-api = { version = "28.0.0" } +sp-keystore = { version = "0.34.0", default-features = false } +sp-timestamp = { version = "26.0.0", default-features = false } +sc-network-common = { version = "0.33.0" } +sc-consensus-grandpa = { version = "0.19.0" } +sc-transaction_pool-api = {version = "28.0.0", default-features = false} +substrate-frame-rpc-system = { version = "28.0.0" } +substrate-prometheus-endpoint = { version = "0.17.0" } +substrate-build-script-utils = { version = "11.0.0" } # Benchmarking (with default disabled) -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "release-v1.0.0" } +cumulus-pallet-session-benchmarking = { version = "9.0.0", default-features = false } # Runtimes politest-runtime = { path = "runtimes/politest" } polimec-runtime = { path = "runtimes/polimec" } +asset-hub-polkadot-runtime = {git = 'https://github.com/polkadot-fellows/runtimes', default-features = false, rev = '59172d5fb8feea2646490618bead3b2b4fb06220'} +polkadot-runtime-constants = {git = 'https://github.com/polkadot-fellows/runtimes', default-features = false, rev = '59172d5fb8feea2646490618bead3b2b4fb06220'} +system-parachains-constants = {git = 'https://github.com/polkadot-fellows/runtimes', default-features = false, rev = '59172d5fb8feea2646490618bead3b2b4fb06220'} +polkadot-runtime = {git = 'https://github.com/polkadot-fellows/runtimes', default-features = false, rev = '59172d5fb8feea2646490618bead3b2b4fb06220'} diff --git a/integration-tests/Cargo.toml b/integration-tests/Cargo.toml index 6950c085f..a03371e80 100644 --- a/integration-tests/Cargo.toml +++ b/integration-tests/Cargo.toml @@ -41,13 +41,13 @@ pallet-xcm.workspace = true pallet-assets.workspace = true polkadot-core-primitives.workspace = true polkadot-runtime-parachains.workspace = true -polkadot-parachain.workspace = true +polkadot-parachain-primitives.workspace = true pallet-collective.workspace = true pallet-elections-phragmen.workspace = true +pallet-message-queue.workspace = true cumulus-primitives-core.workspace = true cumulus-pallet-xcm.workspace = true -cumulus-pallet-xcmp-queue.workspace = true parachain-info.workspace = true parachains-common.workspace = true @@ -57,9 +57,10 @@ polkadot-primitives.workspace = true polkadot-service.workspace = true sp-authority-discovery.workspace = true sp-consensus-babe.workspace = true +sp-consensus-beefy.workspace = true polkadot-runtime-constants.workspace = true +system-parachains-constants.workspace = true pallet-staking.workspace = true -pallet-message-queue.workspace = true pallet-membership.workspace = true orml-oracle.workspace = true pallet-parachain-staking.workspace = true @@ -85,7 +86,6 @@ instant-mode = [ std = [ "asset-hub-polkadot-runtime/std", "cumulus-pallet-xcm/std", - "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-core/std", "frame-support/std", "frame-system/std", @@ -111,12 +111,12 @@ std = [ "parachains-common/std", "parity-scale-codec/std", "penpal-runtime/std", - "polimec-common/std", "polimec-common-test-utils/std", - "politest-runtime/std", + "polimec-common/std", "polimec-receiver/std", + "politest-runtime/std", "polkadot-core-primitives/std", - "polkadot-parachain/std", + "polkadot-parachain-primitives/std", "polkadot-primitives/std", "polkadot-runtime-constants/std", "polkadot-runtime-parachains/std", @@ -126,10 +126,12 @@ std = [ "sp-arithmetic/std", "sp-authority-discovery/std", "sp-consensus-babe/std", + "sp-consensus-beefy/std", "sp-core/std", "sp-io/std", "sp-runtime/std", "sp-std/std", + "system-parachains-constants/std", "xcm-builder/std", "xcm-executor/std", "xcm/std", diff --git a/integration-tests/penpal/Cargo.toml b/integration-tests/penpal/Cargo.toml index 72c1dff13..e0175c285 100644 --- a/integration-tests/penpal/Cargo.toml +++ b/integration-tests/penpal/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Anonymous"] description = "A parachain for communication back and forth with XCM of assets and uniques." license = "Unlicense" homepage = "https://substrate.io" -repository = "https://github.com/paritytech/cumulus/" +repository = "https://github.com/paritytech/polkadot-sdk" edition = "2021" [package.metadata.docs.rs] @@ -36,6 +36,7 @@ frame-try-runtime = { workspace = true, optional = true } pallet-aura.workspace = true pallet-authorship.workspace = true pallet-balances.workspace = true +pallet-message-queue.workspace = true pallet-session.workspace = true pallet-sudo.workspace = true pallet-timestamp.workspace = true @@ -59,7 +60,7 @@ polkadot-runtime-parachains.workspace = true # Polkadot polkadot-primitives.workspace = true pallet-xcm.workspace = true -polkadot-parachain.workspace = true +polkadot-parachain-primitives.workspace = true polkadot-runtime-common.workspace = true xcm.workspace = true xcm-builder.workspace = true @@ -107,6 +108,7 @@ std = [ "pallet-authorship/std", "pallet-balances/std", "pallet-collator-selection/std", + "pallet-message-queue/std", "pallet-session/std", "pallet-sudo/std", "pallet-timestamp/std", @@ -118,7 +120,7 @@ std = [ "parachains-common/std", "polimec-common/std", "polimec-receiver/std", - "polkadot-parachain/std", + "polkadot-parachain-primitives/std", "polkadot-primitives/std", "polkadot-runtime-common/std", "polkadot-runtime-parachains/std", @@ -141,9 +143,12 @@ std = [ ] runtime-benchmarks = [ + "cumulus-pallet-dmp-queue/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-session-benchmarking/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "cumulus-primitives-utility/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", "frame-system-benchmarking/runtime-benchmarks", @@ -152,13 +157,15 @@ runtime-benchmarks = [ "pallet-assets/runtime-benchmarks", "pallet-balances/runtime-benchmarks", "pallet-collator-selection/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", "pallet-sudo/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "pallet-vesting/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", "polimec-common/runtime-benchmarks", "polimec-receiver/runtime-benchmarks", - "polkadot-parachain/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", "polkadot-primitives/runtime-benchmarks", "polkadot-runtime-common/runtime-benchmarks", "polkadot-runtime-parachains/runtime-benchmarks", @@ -183,6 +190,7 @@ try-runtime = [ "pallet-authorship/try-runtime", "pallet-balances/try-runtime", "pallet-collator-selection/try-runtime", + "pallet-message-queue/try-runtime", "pallet-session/try-runtime", "pallet-sudo/try-runtime", "pallet-timestamp/try-runtime", diff --git a/integration-tests/penpal/src/lib.rs b/integration-tests/penpal/src/lib.rs index f37276600..1ae1b7f11 100644 --- a/integration-tests/penpal/src/lib.rs +++ b/integration-tests/penpal/src/lib.rs @@ -31,13 +31,13 @@ mod weights; pub mod xcm_config; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; -use cumulus_primitives_core::ParaId; +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ construct_runtime, dispatch::DispatchClass, pallet_prelude::Weight, parameter_types, - traits::{AsEnsureOriginWithArg, ConstU32, ConstU64, ConstU8, Everything}, + traits::{AsEnsureOriginWithArg, ConstU32, ConstU64, ConstU8, Everything, TransformOrigin}, weights::{ constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, FeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, @@ -70,13 +70,16 @@ use xcm_config::{AssetsToBlockAuthor, XcmConfig, XcmOriginToTransactDispatchOrig pub use sp_runtime::BuildStorage; // Polkadot imports -use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; +use polkadot_runtime_common::{xcm_sender::NoPriceForMessageDelivery, BlockHashCount, SlowAdjustingFeeUpdate}; use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; // XCM Imports use frame_support::traits::WithdrawReasons; -use parachains_common::{AccountId, Signature}; +use parachains_common::{ + message_queue::{NarrowOriginToSibling, ParaIdToSibling}, + AccountId, Signature, +}; use sp_runtime::traits::Convert; use xcm::latest::prelude::BodyId; use xcm_executor::XcmExecutor; @@ -271,6 +274,15 @@ const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, ); +/// Maximum number of blocks simultaneously accepted by the Runtime, not yet included +/// into the relay chain. +pub const UNINCLUDED_SEGMENT_CAPACITY: u32 = 1; +/// How many parachain blocks are processed by the relay chain per parent. Limits the +/// number of blocks authored per slot. +pub const BLOCK_PROCESSING_VELOCITY: u32 = 1; +/// Relay chain slot duration, in milliseconds. +pub const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; + /// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] pub fn native_version() -> NativeVersion { @@ -349,6 +361,8 @@ impl frame_system::Config for Runtime { type RuntimeEvent = RuntimeEvent; /// The ubiquitous origin type. type RuntimeOrigin = RuntimeOrigin; + /// The ubiquitous task type. + type RuntimeTask = RuntimeTask; /// This is used as an identifier of the chain. 42 is the generic substrate prefix. type SS58Prefix = SS58Prefix; /// Weight information for the extrinsics of this pallet. @@ -388,7 +402,8 @@ impl pallet_balances::Config for Runtime { type ReserveIdentifier = [u8; 8]; /// The ubiquitous event type. type RuntimeEvent = RuntimeEvent; - type RuntimeHoldReason = (); + type RuntimeFreezeReason = RuntimeFreezeReason; + type RuntimeHoldReason = RuntimeHoldReason; type WeightInfo = pallet_balances::weights::SubstrateWeight; } @@ -447,15 +462,26 @@ parameter_types! { pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); } +parameter_types! { + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; +} + impl cumulus_pallet_parachain_system::Config for Runtime { type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; - type DmpMessageHandler = DmpQueue; + type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< + Runtime, + RELAY_CHAIN_SLOT_DURATION_MILLIS, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, + >; + type DmpQueue = frame_support::traits::EnqueueWithOrigin; type OnSystemEvent = (); type OutboundXcmpMessageSource = XcmpQueue; type ReservedDmpWeight = ReservedDmpWeight; type ReservedXcmpWeight = ReservedXcmpWeight; type RuntimeEvent = RuntimeEvent; type SelfParaId = parachain_info::Pallet; + type WeightInfo = (); type XcmpMessageHandler = XcmpQueue; } @@ -467,18 +493,33 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ChannelInfo = ParachainSystem; type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; - type ExecuteOverweightOrigin = EnsureRoot; - type PriceForSiblingDelivery = (); + type MaxInboundSuspended = sp_core::ConstU32<1_000>; + type PriceForSiblingDelivery = NoPriceForMessageDelivery; type RuntimeEvent = RuntimeEvent; type VersionWrapper = PolkadotXcm; type WeightInfo = (); - type XcmExecutor = XcmExecutor; + type XcmpQueue = TransformOrigin; } -impl cumulus_pallet_dmp_queue::Config for Runtime { - type ExecuteOverweightOrigin = EnsureRoot; +parameter_types! { + pub MessageQueueServiceWeight: Weight = Perbill::from_percent(35) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_message_queue::Config for Runtime { + type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; + type MaxStale = sp_core::ConstU32<8>; + #[cfg(feature = "runtime-benchmarks")] + type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor; + #[cfg(not(feature = "runtime-benchmarks"))] + type MessageProcessor = + xcm_builder::ProcessXcmMessage, RuntimeCall>; + // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: + type QueueChangeHandler = NarrowOriginToSibling; + type QueuePausedQuery = NarrowOriginToSibling; type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; + type ServiceWeight = MessageQueueServiceWeight; + type Size = u32; + type WeightInfo = pallet_message_queue::weights::SubstrateWeight; } parameter_types! { @@ -556,6 +597,7 @@ parameter_types! { } impl pallet_vesting::Config for Runtime { + type BlockNumberProvider = System; type BlockNumberToBalance = ConvertInto; type Currency = Balances; type MinVestedTransfer = MinVestedTransfer; @@ -627,7 +669,7 @@ construct_runtime!( XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin, Config} = 31, CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, + MessageQueue: pallet_message_queue = 34, // The main stage. Assets: pallet_assets::{Pallet, Call, Storage, Event} = 50, diff --git a/integration-tests/penpal/src/xcm_config.rs b/integration-tests/penpal/src/xcm_config.rs index d8162d9ba..0d5b5b9d6 100644 --- a/integration-tests/penpal/src/xcm_config.rs +++ b/integration-tests/penpal/src/xcm_config.rs @@ -40,15 +40,15 @@ use frame_support::{ use frame_system::EnsureRoot; use pallet_asset_tx_payment::HandleCredit; use pallet_xcm::XcmPassthrough; -use polkadot_parachain::primitives::Sibling; +use polkadot_parachain_primitives::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; use sp_runtime::traits::Zero; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowTopLevelPaidExecutionFrom, AsPrefixedGeneralIndex, ConvertedConcreteId, CurrencyAdapter, - DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FixedWeightBounds, FungiblesAdapter, IsConcrete, - LocalMint, NativeAsset, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + AllowTopLevelPaidExecutionFrom, AsPrefixedGeneralIndex, ConvertedConcreteId, DenyReserveTransferToRelayChain, + DenyThenTry, EnsureXcmOrigin, FixedWeightBounds, FungibleAdapter, FungiblesAdapter, IsConcrete, LocalMint, + NativeAsset, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WithComputedOrigin, }; @@ -75,7 +75,7 @@ pub type LocationToAccountId = ( ); /// Means for transacting assets on this chain. -pub type CurrencyTransactor = CurrencyAdapter< +pub type CurrencyTransactor = FungibleAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: @@ -294,6 +294,7 @@ impl xcm_executor::Config for XcmConfig { type SafeCallFilter = Everything; type SubscriptionService = PolkadotXcm; type Trader = UsingComponents>; + type TransactionalProcessor = (); type UniversalAliases = Nothing; type UniversalLocation = UniversalLocation; type Weigher = FixedWeightBounds; diff --git a/integration-tests/src/constants.rs b/integration-tests/src/constants.rs index 32710fc64..262f8f7ee 100644 --- a/integration-tests/src/constants.rs +++ b/integration-tests/src/constants.rs @@ -25,16 +25,16 @@ use politest_runtime::{ }; use polkadot_primitives::{AssignmentId, ValidatorId}; pub use polkadot_runtime_parachains::configuration::HostConfiguration; -use polkadot_service::chain_spec::get_authority_keys_from_seed_no_beefy; use sc_consensus_grandpa::AuthorityId as GrandpaId; use sp_arithmetic::Percent; use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; use sp_consensus_babe::AuthorityId as BabeId; +use sp_consensus_beefy::ecdsa_crypto::AuthorityId as BeefyId; use sp_core::{sr25519, storage::Storage, Pair, Public}; use sp_runtime::{bounded_vec, BuildStorage, Perbill}; pub use xcm; -use xcm_emulator::get_account_id_from_seed; +use xcm_emulator::{helpers::get_account_id_from_seed, Chain, Parachain}; pub const XCM_V2: u32 = 3; pub const XCM_V3: u32 = 2; @@ -130,9 +130,29 @@ pub mod collators { pub mod validators { use super::*; - pub fn initial_authorities( - ) -> Vec<(AccountId, AccountId, BabeId, GrandpaId, ImOnlineId, ValidatorId, AssignmentId, AuthorityDiscoveryId)> { - vec![get_authority_keys_from_seed_no_beefy("Alice")] + pub fn initial_authorities() -> Vec<( + AccountId, + AccountId, + BabeId, + GrandpaId, + ImOnlineId, + ValidatorId, + AssignmentId, + AuthorityDiscoveryId, + BeefyId, + )> { + let seed = "Alice"; + vec![( + get_account_id_from_seed::(&format!("{}//stash", seed)), + get_account_id_from_seed::(seed), + get_from_seed::(seed), + get_from_seed::(seed), + get_from_seed::(seed), + get_from_seed::(seed), + get_from_seed::(seed), + get_from_seed::(seed), + get_from_seed::(seed), + )] } } @@ -165,16 +185,22 @@ pub mod polkadot { para_validator: ValidatorId, para_assignment: AssignmentId, authority_discovery: AuthorityDiscoveryId, + beefy: BeefyId, ) -> polkadot_runtime::SessionKeys { - polkadot_runtime::SessionKeys { babe, grandpa, im_online, para_validator, para_assignment, authority_discovery } + polkadot_runtime::SessionKeys { + babe, + grandpa, + im_online, + para_validator, + para_assignment, + authority_discovery, + beefy, + } } pub fn genesis() -> Storage { let genesis_config = polkadot_runtime::RuntimeGenesisConfig { - system: polkadot_runtime::SystemConfig { - code: polkadot_runtime::WASM_BINARY.unwrap().to_vec(), - ..Default::default() - }, + system: Default::default(), balances: polkadot_runtime::BalancesConfig { balances: accounts::init_balances().iter().cloned().map(|k| (k, INITIAL_DEPOSIT)).collect(), }, @@ -192,6 +218,7 @@ pub mod polkadot { x.5.clone(), x.6.clone(), x.7.clone(), + x.8.clone(), ), ) }) @@ -225,26 +252,31 @@ pub mod polkadot { // AssetHub pub mod asset_hub { use super::*; - use crate::AssetHub; - use xcm::{prelude::Parachain, v3::Parent}; + use crate::{AssetHub, PolkadotNet}; + use xcm::v3::Parent; pub const PARA_ID: u32 = 1000; - pub const ED: Balance = asset_hub_polkadot_runtime::constants::currency::EXISTENTIAL_DEPOSIT; + pub const ED: Balance = system_parachains_constants::polkadot::currency::SYSTEM_PARA_EXISTENTIAL_DEPOSIT; pub fn genesis() -> Storage { let mut funded_accounts = vec![ - (AssetHub::sovereign_account_id_of((Parent, Parachain(penpal::PARA_ID)).into()), INITIAL_DEPOSIT), - (AssetHub::sovereign_account_id_of((Parent, Parachain(politest::PARA_ID)).into()), INITIAL_DEPOSIT), + ( + >::sovereign_account_id_of( + (Parent, xcm::prelude::Parachain(penpal::PARA_ID)).into(), + ), + INITIAL_DEPOSIT, + ), + ( + >::sovereign_account_id_of( + (Parent, xcm::prelude::Parachain(polimec::PARA_ID)).into(), + ), + INITIAL_DEPOSIT, + ), ]; funded_accounts.extend(accounts::init_balances().iter().cloned().map(|k| (k, INITIAL_DEPOSIT))); let genesis_config = asset_hub_polkadot_runtime::RuntimeGenesisConfig { - system: asset_hub_polkadot_runtime::SystemConfig { - code: asset_hub_polkadot_runtime::WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - ..Default::default() - }, + system: Default::default(), balances: asset_hub_polkadot_runtime::BalancesConfig { balances: funded_accounts }, parachain_info: asset_hub_polkadot_runtime::ParachainInfoConfig { parachain_id: PARA_ID.into(), @@ -274,6 +306,9 @@ pub mod asset_hub { safe_xcm_version: Some(SAFE_XCM_VERSION), ..Default::default() }, + assets: Default::default(), + foreign_assets: Default::default(), + transaction_payment: Default::default(), }; genesis_config.build_storage().unwrap() @@ -283,10 +318,10 @@ pub mod asset_hub { // Polimec pub mod politest { use super::*; - use crate::{Politest, PolitestRuntime}; + use crate::{Polimec, PolitestRuntime, PolkadotNet}; use pallet_funding::AcceptedFundingAsset; - use sp_runtime::traits::{AccountIdConversion, Get}; - use xcm::{prelude::Parachain, v3::Parent}; + use sp_runtime::traits::AccountIdConversion; + use xcm::v3::Parent; pub const PARA_ID: u32 = 3344; pub const ED: Balance = politest_runtime::EXISTENTIAL_DEPOSIT; @@ -300,26 +335,33 @@ pub mod politest { let dot_asset_id = AcceptedFundingAsset::DOT.to_assethub_id(); let usdt_asset_id = AcceptedFundingAsset::USDT.to_assethub_id(); let mut funded_accounts = vec![ - (Politest::sovereign_account_id_of((Parent, Parachain(penpal::PARA_ID)).into()), INITIAL_DEPOSIT), - (Politest::sovereign_account_id_of((Parent, Parachain(asset_hub::PARA_ID)).into()), INITIAL_DEPOSIT), + ( + >::sovereign_account_id_of( + (Parent, xcm::prelude::Parachain(penpal::PARA_ID)).into(), + ), + INITIAL_DEPOSIT, + ), + ( + >::sovereign_account_id_of( + (Parent, xcm::prelude::Parachain(asset_hub::PARA_ID)).into(), + ), + INITIAL_DEPOSIT, + ), (::ContributionTreasury::get(), INITIAL_DEPOSIT), (::PalletId::get().into_account_truncating(), INITIAL_DEPOSIT), ]; - let alice_account = Politest::account_id_of(accounts::ALICE); - let bob_account: AccountId = Politest::account_id_of(accounts::BOB); - let charlie_account: AccountId = Politest::account_id_of(accounts::CHARLIE); - let dave_account: AccountId = Politest::account_id_of(accounts::DAVE); - let eve_account: AccountId = Politest::account_id_of(accounts::EVE); + let alice_account = >::account_id_of(accounts::ALICE); + let bob_account: AccountId = >::account_id_of(accounts::BOB); + let charlie_account: AccountId = >::account_id_of(accounts::CHARLIE); + let dave_account: AccountId = >::account_id_of(accounts::DAVE); + let eve_account: AccountId = >::account_id_of(accounts::EVE); funded_accounts.extend(accounts::init_balances().iter().cloned().map(|k| (k, INITIAL_DEPOSIT))); funded_accounts.extend(collators::initial_authorities().iter().cloned().map(|(acc, _)| (acc, 20_005 * PLMC))); funded_accounts.push((get_account_id_from_seed::("TREASURY_STASH"), 20_005 * PLMC)); let genesis_config = politest_runtime::RuntimeGenesisConfig { - system: politest_runtime::SystemConfig { - code: politest_runtime::WASM_BINARY.expect("WASM binary was not build, please build it!").to_vec(), - ..Default::default() - }, + system: Default::default(), balances: politest_runtime::BalancesConfig { balances: funded_accounts }, parachain_info: politest_runtime::ParachainInfoConfig { parachain_id: PARA_ID.into(), @@ -406,23 +448,30 @@ pub mod politest { // Penpal pub mod penpal { use super::*; - use crate::{ParaId, Penpal}; - use xcm::{prelude::Parachain, v3::Parent}; + use crate::{ParaId, Penpal, PolkadotNet}; + use xcm::v3::Parent; pub const PARA_ID: u32 = 6969; pub const ED: Balance = penpal_runtime::EXISTENTIAL_DEPOSIT; pub fn genesis() -> Storage { let mut funded_accounts = vec![ - (Penpal::sovereign_account_id_of((Parent, Parachain(asset_hub::PARA_ID)).into()), INITIAL_DEPOSIT), - (Penpal::sovereign_account_id_of((Parent, Parachain(politest::PARA_ID)).into()), 2_000_000_0_000_000_000), // i.e the CTs sold on polimec + ( + >::sovereign_account_id_of( + (Parent, xcm::prelude::Parachain(asset_hub::PARA_ID)).into(), + ), + INITIAL_DEPOSIT, + ), + ( + >::sovereign_account_id_of( + (Parent, xcm::prelude::Parachain(polimec::PARA_ID)).into(), + ), + 2_000_000_0_000_000_000, + ), // i.e the CTs sold on polimec ]; funded_accounts.extend(accounts::init_balances().iter().cloned().map(|k| (k, INITIAL_DEPOSIT))); let genesis_config = penpal_runtime::RuntimeGenesisConfig { - system: penpal_runtime::SystemConfig { - code: penpal_runtime::WASM_BINARY.expect("WASM binary was not build, please build it!").to_vec(), - ..Default::default() - }, + system: Default::default(), balances: penpal_runtime::BalancesConfig { balances: funded_accounts }, parachain_info: penpal_runtime::ParachainInfoConfig { parachain_id: ParaId::from(PARA_ID), @@ -463,10 +512,10 @@ pub mod penpal { // Polimec Runtime pub mod polimec { use super::*; - use crate::Polimec; + use crate::PolimecNet; use pallet_funding::AcceptedFundingAsset; - use polimec_base_runtime::PayMaster; - use xcm::{prelude::Parachain, v3::Parent}; + use polimec_runtime::PayMaster; + use xcm::v3::Parent; pub const PARA_ID: u32 = 3344; pub const ED: Balance = polimec_runtime::EXISTENTIAL_DEPOSIT; @@ -481,14 +530,20 @@ pub mod polimec { let usdt_asset_id = AcceptedFundingAsset::USDT.to_assethub_id(); let usdc_asset_id = AcceptedFundingAsset::USDC.to_assethub_id(); let mut funded_accounts = vec![ - (Polimec::sovereign_account_id_of((Parent, Parachain(penpal::PARA_ID)).into()), INITIAL_DEPOSIT), - (Polimec::sovereign_account_id_of((Parent, Parachain(asset_hub::PARA_ID)).into()), INITIAL_DEPOSIT), + ( + PolimecNet::sovereign_account_id_of((Parent, xcm::prelude::Parachain(penpal::PARA_ID)).into()), + INITIAL_DEPOSIT, + ), + ( + PolimecNet::sovereign_account_id_of((Parent, xcm::prelude::Parachain(asset_hub::PARA_ID)).into()), + INITIAL_DEPOSIT, + ), ]; - let alice_account = Polimec::account_id_of(accounts::ALICE); - let bob_account: AccountId = Polimec::account_id_of(accounts::BOB); - let charlie_account: AccountId = Polimec::account_id_of(accounts::CHARLIE); - let dave_account: AccountId = Polimec::account_id_of(accounts::DAVE); - let eve_account: AccountId = Polimec::account_id_of(accounts::EVE); + let alice_account = PolimecNet::account_id_of(accounts::ALICE); + let bob_account: AccountId = PolimecNet::account_id_of(accounts::BOB); + let charlie_account: AccountId = PolimecNet::account_id_of(accounts::CHARLIE); + let dave_account: AccountId = PolimecNet::account_id_of(accounts::DAVE); + let eve_account: AccountId = PolimecNet::account_id_of(accounts::EVE); funded_accounts.extend(accounts::init_balances().iter().cloned().map(|k| (k, INITIAL_DEPOSIT))); funded_accounts.extend(collators::initial_authorities().iter().cloned().map(|(acc, _)| (acc, 20_005 * PLMC))); @@ -496,10 +551,7 @@ pub mod polimec { funded_accounts.push((PayMaster::get(), 20_005 * PLMC)); let genesis_config = polimec_runtime::RuntimeGenesisConfig { - system: polimec_runtime::SystemConfig { - code: polimec_runtime::WASM_BINARY.expect("WASM binary was not build, please build it!").to_vec(), - ..Default::default() - }, + system: Default::default(), balances: polimec_runtime::BalancesConfig { balances: funded_accounts }, foreign_assets: polimec_runtime::ForeignAssetsConfig { assets: vec![ diff --git a/integration-tests/src/lib.rs b/integration-tests/src/lib.rs index d34746318..e6c203985 100644 --- a/integration-tests/src/lib.rs +++ b/integration-tests/src/lib.rs @@ -16,37 +16,32 @@ pub mod constants; +#[cfg(test)] mod tests; pub use constants::{accounts::*, asset_hub, penpal, polimec, politest, polkadot}; -pub use frame_support::{assert_noop, assert_ok, pallet_prelude::Weight, parameter_types, sp_io, sp_tracing}; +pub use frame_support::{assert_noop, assert_ok, pallet_prelude::Weight, parameter_types, traits::Hooks}; pub use parachains_common::{AccountId, AssetHubPolkadotAuraId, AuraId, Balance, BlockNumber}; pub use sp_core::{sr25519, storage::Storage, Encode, Get}; pub use xcm::prelude::*; pub use xcm_emulator::{ assert_expected_events, bx, decl_test_networks, decl_test_parachains, decl_test_relay_chains, helpers::{weight_within_threshold, within_threshold}, - BridgeMessageHandler, Network, ParaId, Parachain, RelayChain, TestExt, + BridgeMessageHandler, Chain, Network, ParaId, Parachain, RelayChain, TestExt, }; -use xcm_executor::traits::ConvertLocation; decl_test_relay_chains! { #[api_version(5)] pub struct PolkadotRelay { genesis = polkadot::genesis(), on_init = (), - runtime = { - Runtime: polkadot_runtime::Runtime, - RuntimeOrigin: polkadot_runtime::RuntimeOrigin, - RuntimeCall: polkadot_runtime::RuntimeCall, - RuntimeEvent: polkadot_runtime::RuntimeEvent, - MessageQueue: polkadot_runtime::MessageQueue, - XcmConfig: polkadot_runtime::xcm_config::XcmConfig, + runtime = polkadot_runtime, + core = { SovereignAccountOf: polkadot_runtime::xcm_config::SovereignAccountOf, + }, + pallets = { System: polkadot_runtime::System, Balances: polkadot_runtime::Balances, - }, - pallets_extra = { XcmPallet: polkadot_runtime::XcmPallet, } } @@ -55,86 +50,72 @@ decl_test_relay_chains! { decl_test_parachains! { pub struct Penpal { genesis = penpal::genesis(), - on_init = (), - runtime = { - Runtime: penpal_runtime::Runtime, - RuntimeOrigin: penpal_runtime::RuntimeOrigin, - RuntimeCall: penpal_runtime::RuntimeCall, - RuntimeEvent: penpal_runtime::RuntimeEvent, + on_init = penpal_runtime::AuraExt::on_initialize(1), + runtime = penpal_runtime, + core = { XcmpMessageHandler: penpal_runtime::XcmpQueue, - DmpMessageHandler: penpal_runtime::DmpQueue, LocationToAccountId: penpal_runtime::xcm_config::LocationToAccountId, - System: penpal_runtime::System, - Balances: penpal_runtime::Balances, - ParachainSystem: penpal_runtime::ParachainSystem, ParachainInfo: penpal_runtime::ParachainInfo, + MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin, }, - pallets_extra = { + pallets = { PolkadotXcm: penpal_runtime::PolkadotXcm, Assets: penpal_runtime::Assets, + Balances: penpal_runtime::Balances, + ParachainSystem: penpal_runtime::ParachainSystem, + ParachainInfo: penpal_runtime::ParachainInfo, } }, pub struct Politest { genesis = politest::genesis(), - on_init = (), - runtime = { - Runtime: politest_runtime::Runtime, - RuntimeOrigin: politest_runtime::RuntimeOrigin, - RuntimeCall: politest_runtime::RuntimeCall, - RuntimeEvent: politest_runtime::RuntimeEvent, + on_init = politest_runtime::AuraExt::on_initialize(1), + runtime = politest_runtime, + core = { XcmpMessageHandler: politest_runtime::XcmpQueue, - DmpMessageHandler: politest_runtime::DmpQueue, LocationToAccountId: politest_runtime::xcm_config::LocationToAccountId, - System: politest_runtime::System, - Balances: politest_runtime::Balances, - ParachainSystem: politest_runtime::ParachainSystem, ParachainInfo: politest_runtime::ParachainInfo, + MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin, }, - pallets_extra = { + pallets = { + Balances: politest_runtime::Balances, + ParachainSystem: politest_runtime::ParachainSystem, PolkadotXcm: politest_runtime::PolkadotXcm, - ContributionTokens: politest_runtime::ContributionTokens, + LocalAssets: politest_runtime::ContributionTokensInstance, ForeignAssets: politest_runtime::ForeignAssets, FundingPallet: politest_runtime::PolimecFunding, } }, pub struct AssetHub { genesis = asset_hub::genesis(), - on_init = (), - runtime = { - Runtime: asset_hub_polkadot_runtime::Runtime, - RuntimeOrigin: asset_hub_polkadot_runtime::RuntimeOrigin, - RuntimeCall: asset_hub_polkadot_runtime::RuntimeCall, - RuntimeEvent: asset_hub_polkadot_runtime::RuntimeEvent, + on_init = asset_hub_polkadot_runtime::AuraExt::on_initialize(1), + runtime = asset_hub_polkadot_runtime, + core = { XcmpMessageHandler: asset_hub_polkadot_runtime::XcmpQueue, - DmpMessageHandler: asset_hub_polkadot_runtime::DmpQueue, LocationToAccountId: asset_hub_polkadot_runtime::xcm_config::LocationToAccountId, - System: asset_hub_polkadot_runtime::System, - Balances: asset_hub_polkadot_runtime::Balances, - ParachainSystem: asset_hub_polkadot_runtime::ParachainSystem, ParachainInfo: asset_hub_polkadot_runtime::ParachainInfo, + MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin, }, - pallets_extra = { + pallets = { + Balances: asset_hub_polkadot_runtime::Balances, + ParachainSystem: asset_hub_polkadot_runtime::ParachainSystem, PolkadotXcm: asset_hub_polkadot_runtime::PolkadotXcm, + ForeignAssets: asset_hub_polkadot_runtime::ForeignAssets, LocalAssets: asset_hub_polkadot_runtime::Assets, } }, pub struct Polimec { genesis = polimec::genesis(), - on_init = (), - runtime = { - Runtime: polimec_runtime::Runtime, - RuntimeOrigin: polimec_runtime::RuntimeOrigin, - RuntimeCall: polimec_runtime::RuntimeCall, - RuntimeEvent: polimec_runtime::RuntimeEvent, + on_init = polimec_runtime::AuraExt::on_initialize(1), + runtime = polimec_runtime, + core = { XcmpMessageHandler: polimec_runtime::XcmpQueue, - DmpMessageHandler: polimec_runtime::DmpQueue, LocationToAccountId: polimec_runtime::xcm_config::LocationToAccountId, - System: polimec_runtime::System, - Balances: polimec_runtime::Balances, - ParachainSystem: polimec_runtime::ParachainSystem, ParachainInfo: polimec_runtime::ParachainInfo, + MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin, }, - pallets_extra = { + pallets = { + Balances: polimec_runtime::Balances, + ParachainSystem: polimec_runtime::ParachainSystem, PolkadotXcm: polimec_runtime::PolkadotXcm, ForeignAssets: polimec_runtime::ForeignAssets, } @@ -157,48 +138,53 @@ decl_test_networks! { /// Shortcuts to reduce boilerplate on runtime types pub mod shortcuts { use super::{ - AssetHub, AssetHubPallet, Parachain, Penpal, Polimec, PolimecPallet, Politest, PolitestPallet, - PolkadotRelay as Polkadot, PolkadotRelayPallet as PolkadotPallet, RelayChain, + AssetHub, AssetHubParaPallet, Chain, Penpal, PenpalParaPallet, Polimec, PolimecParaPallet, Politest, + PolitestParaPallet, PolkadotNet, PolkadotRelay as Polkadot, PolkadotRelayRelayPallet, }; - use crate::PenpalPallet; - - pub type PolitestFundingPallet = ::FundingPallet; - - pub type PolkadotRuntime = ::Runtime; - pub type PolitestRuntime = ::Runtime; - pub type PenpalRuntime = ::Runtime; - pub type AssetHubRuntime = ::Runtime; - pub type PolimecRuntime = ::Runtime; - - pub type PolkadotXcmPallet = ::XcmPallet; - pub type PolitestXcmPallet = ::PolkadotXcm; - pub type PenpalXcmPallet = ::PolkadotXcm; - pub type AssetHubXcmPallet = ::PolkadotXcm; - pub type PolimecXcmPallet = ::PolkadotXcm; - - pub type PolkadotBalances = ::Balances; - pub type PolitestBalances = ::Balances; - pub type PenpalBalances = ::Balances; - pub type AssetHubBalances = ::Balances; - pub type PolimecBalances = ::Balances; - - pub type PolitestContributionTokens = ::ContributionTokens; - pub type PolitestForeignAssets = ::ForeignAssets; - pub type PenpalAssets = ::Assets; - pub type AssetHubAssets = ::LocalAssets; - pub type PolimecForeignAssets = ::ForeignAssets; - - pub type PolkadotOrigin = ::RuntimeOrigin; - pub type PolitestOrigin = ::RuntimeOrigin; - pub type PenpalOrigin = ::RuntimeOrigin; - pub type AssetHubOrigin = ::RuntimeOrigin; - pub type PolimecOrigin = ::RuntimeOrigin; - - pub type PolkadotCall = ::RuntimeCall; - pub type PolitestCall = ::RuntimeCall; - pub type PenpalCall = ::RuntimeCall; - pub type AssetHubCall = ::RuntimeCall; - pub type PolimecCall = ::RuntimeCall; + + pub type PolkaNet = Polkadot; + pub type PolimecNet = Polimec; + pub type PenNet = Penpal; + pub type AssetNet = AssetHub; + pub type PolitestNet = Politest; + + pub type PolitestFundingPallet = as PolitestParaPallet>::FundingPallet; + + pub type PolkadotRuntime = ::Runtime; + pub type PolitestRuntime = ::Runtime; + pub type PenpalRuntime = ::Runtime; + pub type AssetHubRuntime = ::Runtime; + pub type PolimecRuntime = ::Runtime; + + pub type PolkadotXcmPallet = ::XcmPallet; + pub type PolitestXcmPallet = ::PolkadotXcm; + pub type PenpalXcmPallet = ::PolkadotXcm; + pub type AssetHubXcmPallet = ::PolkadotXcm; + pub type PolimecXcmPallet = ::PolkadotXcm; + + pub type PolkadotBalances = ::Balances; + pub type PolitestBalances = ::Balances; + pub type PenpalBalances = ::Balances; + pub type AssetHubBalances = ::Balances; + pub type PolimecBalances = ::Balances; + + pub type PolitestLocalAssets = ::LocalAssets; + pub type PolitestForeignAssets = ::ForeignAssets; + pub type PenpalAssets = ::Assets; + pub type AssetHubAssets = ::LocalAssets; + pub type PolimecForeignAssets = ::ForeignAssets; + + pub type PolkadotOrigin = ::RuntimeOrigin; + pub type PolitestOrigin = ::RuntimeOrigin; + pub type PenpalOrigin = ::RuntimeOrigin; + pub type AssetHubOrigin = ::RuntimeOrigin; + pub type PolimecOrigin = ::RuntimeOrigin; + + pub type PolkadotCall = ::RuntimeCall; + pub type PolitestCall = ::RuntimeCall; + pub type PenpalCall = ::RuntimeCall; + pub type AssetHubCall = ::RuntimeCall; + pub type PolimecCall = ::RuntimeCall; pub type PolkadotAccountId = ::AccountId; pub type PolitestAccountId = ::AccountId; @@ -206,16 +192,16 @@ pub mod shortcuts { pub type AssetHubAccountId = ::AccountId; pub type PolimecAccountId = ::AccountId; - pub type PolkadotEvent = ::RuntimeEvent; - pub type PolitestEvent = ::RuntimeEvent; - pub type PenpalEvent = ::RuntimeEvent; - pub type AssetHubEvent = ::RuntimeEvent; - pub type PolimecEvent = ::RuntimeEvent; - - pub type PolkadotSystem = ::System; - pub type PolitestSystem = ::System; - pub type PenpalSystem = ::System; - pub type AssetHubSystem = ::System; - pub type PolimecSystem = ::System; + pub type PolkadotEvent = ::RuntimeEvent; + pub type PolitestEvent = ::RuntimeEvent; + pub type PenpalEvent = ::RuntimeEvent; + pub type AssetHubEvent = ::RuntimeEvent; + pub type PolimecEvent = ::RuntimeEvent; + + pub type PolkadotSystem = ::System; + pub type PolitestSystem = ::System; + pub type PenpalSystem = ::System; + pub type AssetHubSystem = ::System; + pub type PolimecSystem = ::System; } pub use shortcuts::*; diff --git a/integration-tests/src/tests/basic_comms.rs b/integration-tests/src/tests/basic_comms.rs index 3f5139af7..88a0ac151 100644 --- a/integration-tests/src/tests/basic_comms.rs +++ b/integration-tests/src/tests/basic_comms.rs @@ -28,7 +28,7 @@ fn dmp() { remark: "Hello from Polkadot!".as_bytes().to_vec(), }); let sudo_origin = PolkadotOrigin::root(); - let para_id = Politest::para_id(); + let para_id = PolimecNet::para_id(); let xcm = VersionedXcm::from(Xcm(vec![ UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { @@ -38,22 +38,22 @@ fn dmp() { }, ])); - PolkadotRelay::execute_with(|| { + PolkaNet::execute_with(|| { assert_ok!(PolkadotXcmPallet::send(sudo_origin, bx!(Parachain(para_id.into()).into()), bx!(xcm),)); assert_expected_events!( - PolkadotRelay, + PolkaNet, vec![ PolkadotEvent::XcmPallet(pallet_xcm::Event::Sent { .. }) => {}, ] ); }); - Politest::execute_with(|| { + PolimecNet::execute_with(|| { assert_expected_events!( - Politest, + PolimecNet, vec![ - PolitestEvent::System(frame_system::Event::Remarked { sender: _, hash: _ }) => {}, + PolimecEvent::System(frame_system::Event::Remarked { sender: _, hash: _ }) => {}, ] ); }); @@ -62,14 +62,14 @@ fn dmp() { #[test] fn ump() { use polkadot_runtime_parachains::inclusion::{AggregateMessageOrigin, UmpQueueId}; - let burn_transfer = PolkadotCall::Balances(pallet_balances::Call::::transfer { + let burn_transfer = PolkadotCall::Balances(pallet_balances::Call::::transfer_allow_death { dest: PolkadotAccountId::from([0u8; 32]).into(), value: 1_000, }); let here_asset: MultiAsset = (MultiLocation::here(), 1_0_000_000_000u128).into(); - Politest::execute_with(|| { + PolimecNet::execute_with(|| { assert_ok!(PolimecXcmPallet::force_default_xcm_version(PolimecOrigin::root(), Some(3))); assert_ok!(PolimecXcmPallet::send_xcm( @@ -87,9 +87,9 @@ fn ump() { )); }); - PolkadotRelay::execute_with(|| { + PolkaNet::execute_with(|| { assert_expected_events!( - PolkadotRelay, + PolkaNet, vec![ PolkadotEvent::MessageQueue(pallet_message_queue::Event::Processed { id: _, @@ -108,17 +108,17 @@ fn ump() { #[ignore] #[test] fn xcmp() { - let burn_transfer = PolimecCall::Balances(pallet_balances::Call::::transfer { + let burn_transfer = PolimecCall::Balances(pallet_balances::Call::::transfer_allow_death { dest: PolimecAccountId::from([0u8; 32]).into(), value: 1_000, }); let here_asset: MultiAsset = (MultiLocation::here(), 1_0_000_000_000u128).into(); - Penpal::execute_with(|| { + PenNet::execute_with(|| { assert_ok!(PenpalXcmPallet::send_xcm( Here, - MultiLocation::new(1, X1(Parachain(Politest::para_id().into()))), + MultiLocation::new(1, X1(Parachain(PolimecNet::para_id().into()))), Xcm(vec![ WithdrawAsset(vec![here_asset.clone()].into()), BuyExecution { fees: here_asset.clone(), weight_limit: Unlimited }, @@ -131,16 +131,16 @@ fn xcmp() { )); }); - let penpal_account = Politest::sovereign_account_id_of((Parent, Parachain(Penpal::para_id().into())).into()); - let penpal_balance = Politest::account_data_of(penpal_account.clone()).free; + let penpal_account = PolimecNet::sovereign_account_id_of((Parent, Parachain(PenNet::para_id().into())).into()); + let penpal_balance = PolimecNet::account_data_of(penpal_account.clone()).free; dbg!(penpal_account.clone()); dbg!(penpal_balance); - Politest::execute_with(|| { + PolimecNet::execute_with(|| { assert_expected_events!( - Politest, + PolimecNet, vec![ - PolitestEvent::XcmpQueue(cumulus_pallet_xcmp_queue::Event::Success { .. }) => {}, + PolimecEvent::MessageQueue(pallet_message_queue::Event::Processed {success: true, ..}) => {}, ] ); }); diff --git a/integration-tests/src/tests/build_spec.rs b/integration-tests/src/tests/build_spec.rs index d53198888..14d192606 100644 --- a/integration-tests/src/tests/build_spec.rs +++ b/integration-tests/src/tests/build_spec.rs @@ -30,7 +30,7 @@ fn build_spec_testing_node() { let output = std::process::Command::new("../target/release/polimec-node") .arg("build-spec") - .arg("--chain=polimec-testing") + .arg("--chain=politest-populated") .arg("--disable-default-bootnode") .arg("--raw") .output() diff --git a/integration-tests/src/tests/credentials.rs b/integration-tests/src/tests/credentials.rs index 7011ec1bb..01d7269ef 100644 --- a/integration-tests/src/tests/credentials.rs +++ b/integration-tests/src/tests/credentials.rs @@ -24,7 +24,7 @@ use tests::defaults::*; #[test] fn test_jwt_for_create() { let project = default_project_metadata(0, ISSUER.into()); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { let issuer = AccountId32::from(ISSUER); assert_ok!(PolitestBalances::force_set_balance(PolitestOrigin::root(), issuer.into(), 10_000 * PLMC)); let retail_jwt = get_test_jwt(PolitestAccountId::from(ISSUER), InvestorType::Retail); @@ -40,7 +40,7 @@ fn test_jwt_for_create() { #[test] fn test_jwt_verification() { let project = default_project_metadata(0, ISSUER.into()); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { let issuer = AccountId32::from(ISSUER); assert_ok!(PolitestBalances::force_set_balance(PolitestOrigin::root(), issuer.into(), 1000 * PLMC)); // This JWT tokens is signed with a private key that is not the one set in the Pallet Funding configuration in the real runtime. diff --git a/integration-tests/src/tests/ct_migration.rs b/integration-tests/src/tests/ct_migration.rs index 817bc2de1..35030cacc 100644 --- a/integration-tests/src/tests/ct_migration.rs +++ b/integration-tests/src/tests/ct_migration.rs @@ -16,25 +16,24 @@ use crate::*; use pallet_funding::{ - assert_close_enough, traits::VestingDurationCalculation, AcceptedFundingAsset, BidStatus, EvaluatorsOutcome, - MigrationStatus, Multiplier, MultiplierOf, ProjectId, RewardOrSlash, -}; -use polimec_common::{ - credentials::InvestorType, - migration_types::{Migration, MigrationInfo, MigrationOrigin, Migrations, ParticipationType}, + assert_close_enough, traits::VestingDurationCalculation, BidStatus, EvaluatorsOutcome, MigrationStatus, Multiplier, + ProjectId, ProjectsToUpdate, RewardOrSlash, }; +use polimec_common::migration_types::{Migration, MigrationInfo, MigrationOrigin, Migrations, ParticipationType}; use politest_runtime::PolimecFunding; use sp_runtime::{traits::Convert, FixedPointNumber, Perquintill}; use std::collections::HashMap; use tests::defaults::*; + fn execute_cleaner(inst: &mut IntegrationInstantiator) { - Politest::execute_with(|| { - inst.advance_time(::SuccessToSettlementTime::get() + 1u32).unwrap(); + PolitestNet::execute_with(|| { + dbg!(::SuccessToSettlementTime::get() + 25u32); + inst.advance_time(::SuccessToSettlementTime::get() + 25u32).unwrap(); }); } fn mock_hrmp_establishment(project_id: u32) { - Politest::execute_with(|| { - assert_ok!(PolimecFunding::do_set_para_id_for_project(&ISSUER.into(), project_id, ParaId::from(6969u32),)); + PolitestNet::execute_with(|| { + assert_ok!(PolimecFunding::do_set_para_id_for_project(&ISSUER.into(), project_id, ParaId::from(6969u32))); let open_channel_message = xcm::v3::opaque::Instruction::HrmpNewChannelOpenRequest { sender: 6969, @@ -47,14 +46,14 @@ fn mock_hrmp_establishment(project_id: u32) { assert_ok!(PolimecFunding::do_handle_channel_accepted(channel_accepted_message)); }); - Penpal::execute_with(|| { + PenNet::execute_with(|| { println!("penpal events:"); - dbg!(Penpal::events()); + dbg!(PenNet::events()); }); } fn assert_migration_is_ready(project_id: u32) { - Politest::execute_with(|| { + PolitestNet::execute_with(|| { let project_details = pallet_funding::ProjectsDetails::::get(project_id).unwrap(); assert!(project_details.migration_readiness_check.unwrap().is_ready()) }); @@ -62,8 +61,8 @@ fn assert_migration_is_ready(project_id: u32) { fn send_migrations(project_id: ProjectId, accounts: Vec) -> HashMap { let mut output = HashMap::new(); - for account in accounts { - let migrations = Politest::execute_with(|| { + PolitestNet::execute_with(|| { + for account in accounts { assert_ok!(PolimecFunding::migrate_one_participant( PolitestOrigin::signed(account.clone()), project_id, @@ -135,22 +134,24 @@ fn send_migrations(project_id: ProjectId, accounts: Vec) -> HashMap() - }); - if migrations.clone().inner().is_empty() { - panic!("no migrations for account: {:?}", account) + let migrations = + evaluation_migrations.chain(bid_migrations).chain(contribution_migrations).collect::(); + + if migrations.clone().inner().is_empty() { + panic!("no migrations for account: {:?}", account) + } + output.insert(account.clone(), migrations); } - output.insert(account.clone(), migrations); - } + }); output } fn migrations_are_executed(grouped_migrations: Vec) { let all_migrations = grouped_migrations.iter().flat_map(|migrations| migrations.clone().inner()).collect::>(); - Penpal::execute_with(|| { + PenNet::execute_with(|| { assert_expected_events!( - Penpal, + PenNet, vec![ PenpalEvent::PolimecReceiver(polimec_receiver::Event::MigrationExecuted{migration}) => { migration: all_migrations.contains(&migration), @@ -164,7 +165,7 @@ fn migrations_are_executed(grouped_migrations: Vec) { let user = migration_group.clone().inner()[0].origin.user; assert!(migration_group.origins().iter().all(|origin| origin.user == user)); - let user_info = Penpal::account_data_of(user.into()); + let user_info = PenNet::account_data_of(user.into()); assert_close_enough!(user_info.free, migration_group.total_ct_amount(), Perquintill::from_float(0.99)); let vest_scheduled_cts = migration_group @@ -178,6 +179,7 @@ fn migrations_are_executed(grouped_migrations: Vec) { } }) .sum::(); + assert_close_enough!(user_info.frozen, vest_scheduled_cts, Perquintill::from_float(0.99)); } } @@ -192,9 +194,9 @@ fn migrations_are_confirmed(project_id: u32, grouped_migrations: Vec origins }) .collect::>(); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { assert_expected_events!( - Politest, + PolitestNet, vec![ PolitestEvent::PolimecFunding(pallet_funding::Event::MigrationsConfirmed{project_id, migration_origins}) => { project_id: project_id == project_id, @@ -244,7 +246,7 @@ fn migrations_are_confirmed(project_id: u32, grouped_migrations: Vec fn vest_migrations(grouped_migrations: Vec) { let biggest_time = grouped_migrations.iter().map(|migrations| migrations.biggest_vesting_time()).max().unwrap(); - Penpal::execute_with(|| { + PenNet::execute_with(|| { PenpalSystem::set_block_number(biggest_time as u32 + 1u32); }); for migration_group in grouped_migrations { @@ -253,7 +255,7 @@ fn vest_migrations(grouped_migrations: Vec) { // check if any vesting_time is bigger than 1, which means the balance was actually frozen let has_frozen_balance = migration_group.inner().iter().any(|migration| migration.info.vesting_time > 1); if has_frozen_balance { - Penpal::execute_with(|| { + PenNet::execute_with(|| { assert_ok!(pallet_vesting::Pallet::::vest(PenpalOrigin::signed(user.into()))); }); } @@ -264,7 +266,7 @@ fn migrations_are_vested(grouped_migrations: Vec) { for migration_group in grouped_migrations { let user = migration_group.clone().inner()[0].origin.user; assert!(migration_group.origins().iter().all(|origin| origin.user == user)); - let user_info = Penpal::account_data_of(user.into()); + let user_info = PenNet::account_data_of(user.into()); assert_eq!(user_info.frozen, 0); assert_eq!(user_info.free, migration_group.total_ct_amount()); } @@ -273,7 +275,7 @@ fn migrations_are_vested(grouped_migrations: Vec) { #[test] fn migration_check() { let mut inst = IntegrationInstantiator::new(None); - let project_id = Politest::execute_with(|| { + let project_id = PolitestNet::execute_with(|| { let project_id = inst.create_finished_project( default_project_metadata(0, ISSUER.into()), ISSUER.into(), @@ -300,7 +302,7 @@ fn migration_is_sent() { .into_iter() .map(|x| AccountId::from(x)) .collect::>(); - let project_id = Politest::execute_with(|| { + let project_id = PolitestNet::execute_with(|| { inst.create_finished_project( default_project_metadata(0, ISSUER.into()), ISSUER.into(), @@ -310,6 +312,12 @@ fn migration_is_sent() { default_remainder_contributions(), ) }); + + PolitestNet::execute_with(|| { + dbg!(PolimecSystem::block_number()); + dbg!(ProjectsToUpdate::::iter().collect::>()); + }); + execute_cleaner(&mut inst); mock_hrmp_establishment(project_id); @@ -327,7 +335,7 @@ fn migration_is_executed_on_project_and_confirmed_on_polimec() { .into_iter() .map(|x| AccountId::from(x)) .collect::>(); - let project_id = Politest::execute_with(|| { + let project_id = PolitestNet::execute_with(|| { inst.create_finished_project( default_project_metadata(0, ISSUER.into()), ISSUER.into(), @@ -363,7 +371,7 @@ fn vesting_over_several_blocks_on_project() { let community_contributions = default_community_contributions(); let remainder_contributions = default_remainder_contributions(); - let project_id = Politest::execute_with(|| { + let project_id = PolitestNet::execute_with(|| { inst.create_finished_project( default_project_metadata(0, ISSUER.into()), ISSUER.into(), @@ -396,7 +404,7 @@ fn vesting_over_several_blocks_on_project() { fn disallow_duplicated_migrations_on_receiver_pallet() { let mut inst = IntegrationInstantiator::new(None); - let project_id = Politest::execute_with(|| { + let project_id = PolitestNet::execute_with(|| { inst.create_finished_project( default_project_metadata(0, ISSUER.into()), ISSUER.into(), @@ -407,7 +415,7 @@ fn disallow_duplicated_migrations_on_receiver_pallet() { ) }); - let project_details = Politest::execute_with(|| inst.get_project_details(project_id)); + let project_details = PolitestNet::execute_with(|| inst.get_project_details(project_id)); if let EvaluatorsOutcome::Rewarded(info) = project_details.evaluation_round_info.evaluators_outcome { println!("rewarded: {:?}", info); } else { @@ -450,14 +458,14 @@ fn disallow_duplicated_migrations_on_receiver_pallet() { let max_weight = Weight::from_parts(700_000_000, 10_000); let mut instructions = xcm.into_inner(); instructions.push(ReportTransactStatus(QueryResponseInfo { - destination: ParentThen(X1(Parachain(Politest::para_id().into()))).into(), + destination: ParentThen(X1(Parachain(PolitestNet::para_id().into()))).into(), query_id: 69, max_weight, })); let xcm = Xcm(instructions); - let project_multilocation = MultiLocation { parents: 1, interior: X1(Parachain(Penpal::para_id().into())) }; + let project_multilocation = MultiLocation { parents: 1, interior: X1(Parachain(PenNet::para_id().into())) }; - Politest::execute_with(|| { + PolitestNet::execute_with(|| { PolitestXcmPallet::send_xcm(Here, project_multilocation, xcm).unwrap(); }); } @@ -466,9 +474,9 @@ fn disallow_duplicated_migrations_on_receiver_pallet() { // each duplicated migration was skipped (in this case we duplicated all of them) let all_migrations = grouped_migrations.iter().flat_map(|migrations| migrations.clone().inner()).collect::>(); - Penpal::execute_with(|| { + PenNet::execute_with(|| { assert_expected_events!( - Penpal, + PenNet, vec![ PenpalEvent::PolimecReceiver(polimec_receiver::Event::DuplicatedMigrationSkipped{migration}) => { migration: all_migrations.contains(&migration), diff --git a/integration-tests/src/tests/defaults.rs b/integration-tests/src/tests/defaults.rs index 6588d82a2..719f4f0b8 100644 --- a/integration-tests/src/tests/defaults.rs +++ b/integration-tests/src/tests/defaults.rs @@ -13,10 +13,9 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . - use crate::PolitestRuntime; use frame_support::BoundedVec; -pub use pallet_funding::instantiator::{BidParams, ContributionParams, UserToPLMCBalance, UserToUSDBalance}; +pub use pallet_funding::instantiator::{BidParams, ContributionParams, UserToUSDBalance}; use pallet_funding::{ AcceptedFundingAsset, BiddingTicketSizes, ContributingTicketSizes, CurrencyMetadata, ProjectMetadata, ProjectMetadataOf, TicketSize, @@ -27,6 +26,7 @@ use sp_core::H256; use macros::generate_accounts; use politest_runtime::AccountId; use sp_runtime::{traits::ConstU32, Perquintill}; + pub const METADATA: &str = r#"METADATA { "whitepaper":"ipfs_url", @@ -100,7 +100,7 @@ pub fn default_project_metadata(nonce: u32, issuer: AccountId) -> ProjectMetadat offchain_information_hash: Some(metadata_hash(nonce)), } } -pub fn default_evaluations() -> Vec> { +pub fn default_evaluations() -> Vec> { vec![ UserToUSDBalance::new(EVAL_1.into(), 500_000 * PLMC), UserToUSDBalance::new(EVAL_2.into(), 250_000 * PLMC), diff --git a/integration-tests/src/tests/e2e.rs b/integration-tests/src/tests/e2e.rs index 2a4419c6e..65ce2a8ee 100644 --- a/integration-tests/src/tests/e2e.rs +++ b/integration-tests/src/tests/e2e.rs @@ -20,7 +20,7 @@ use itertools::Itertools; use macros::generate_accounts; use pallet_funding::*; use politest_runtime::US_DOLLAR; -use sp_arithmetic::{FixedPointNumber, Percent, Perquintill}; +use sp_arithmetic::{Percent, Perquintill}; use sp_runtime::{traits::CheckedSub, FixedU128}; type UserToCTBalance = Vec<(AccountId, BalanceOf, ProjectId)>; @@ -259,10 +259,6 @@ fn excel_ct_amounts() -> UserToCTBalance { ] } -fn excel_weighted_average_price() -> PriceOf { - PriceOf::::from_float(10.1827469400) -} - #[test] fn evaluation_round_completed() { let mut inst = IntegrationInstantiator::new(None); @@ -271,7 +267,7 @@ fn evaluation_round_completed() { let project = excel_project(inst.get_new_nonce()); let evaluations = excel_evaluators(); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { inst.create_auctioning_project(project, issuer, evaluations); }); } @@ -285,7 +281,7 @@ fn auction_round_completed() { let evaluations = excel_evaluators(); let bids = excel_bidders(); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { let project_id = inst.create_community_contributing_project(project, issuer, evaluations, bids); let wavgp_from_excel = 10.202357561; // Convert the float to a FixedU128 @@ -315,7 +311,7 @@ fn auction_round_completed() { fn community_round_completed() { let mut inst = IntegrationInstantiator::new(None); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { let _ = inst.create_remainder_contributing_project( excel_project(0), ISSUER.into(), @@ -340,7 +336,7 @@ fn community_round_completed() { fn remainder_round_completed() { let mut inst = IntegrationInstantiator::new(None); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { let project_id = inst.create_finished_project( excel_project(0), ISSUER.into(), @@ -377,7 +373,7 @@ fn remainder_round_completed() { fn funds_raised() { let mut inst = IntegrationInstantiator::new(None); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { let project_id = inst.create_finished_project( excel_project(0), ISSUER.into(), @@ -390,7 +386,7 @@ fn funds_raised() { inst.execute(|| { let project_specific_account: AccountId = PolitestFundingPallet::fund_account_id(project_id); let stored_usdt_funded = - PolimecForeignAssets::balance(AcceptedFundingAsset::USDT.to_assethub_id(), project_specific_account); + PolitestForeignAssets::balance(AcceptedFundingAsset::USDT.to_assethub_id(), project_specific_account); let excel_usdt_funded = 1_004_256_0_140_000_000; assert_close_enough!(stored_usdt_funded, excel_usdt_funded, Perquintill::from_float(0.99)); }) @@ -401,7 +397,7 @@ fn funds_raised() { fn ct_minted() { let mut inst = IntegrationInstantiator::new(None); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { let _ = inst.create_finished_project( excel_project(0), ISSUER.into(), @@ -426,7 +422,7 @@ fn ct_minted() { fn ct_migrated() { let mut inst = IntegrationInstantiator::new(None); - let project_id = Politest::execute_with(|| { + let project_id = PolitestNet::execute_with(|| { let project_id = inst.create_finished_project( excel_project(0), ISSUER.into(), @@ -448,18 +444,17 @@ fn ct_migrated() { project_id }); - let project_details = Politest::execute_with(|| inst.get_project_details(project_id)); + let project_details = PolitestNet::execute_with(|| inst.get_project_details(project_id)); assert!(matches!(project_details.evaluation_round_info.evaluators_outcome, EvaluatorsOutcome::Rewarded(_))); // Mock HRMP establishment - Politest::execute_with(|| { - let account_id: PolimecAccountId = ISSUER.into(); + PolitestNet::execute_with(|| { + let _account_id: PolitestAccountId = ISSUER.into(); assert_ok!(PolitestFundingPallet::do_set_para_id_for_project( &ISSUER.into(), project_id, ParaId::from(6969u32), )); - let open_channel_message = xcm::v3::opaque::Instruction::HrmpNewChannelOpenRequest { sender: 6969, max_message_size: 102_300, @@ -471,14 +466,19 @@ fn ct_migrated() { assert_ok!(PolitestFundingPallet::do_handle_channel_accepted(channel_accepted_message)); }); + PenNet::execute_with(|| { + println!("penpal events:"); + dbg!(PenNet::events()); + }); + // Migration is ready - Politest::execute_with(|| { + PolitestNet::execute_with(|| { let project_details = pallet_funding::ProjectsDetails::::get(project_id).unwrap(); assert!(project_details.migration_readiness_check.unwrap().is_ready()) }); excel_ct_amounts().iter().unique().for_each(|item| { - let data = Penpal::account_data_of(item.0.clone()); + let data = PenNet::account_data_of(item.0.clone()); assert_eq!(data.free, 0u128, "Participant balances should be 0 before ct migration"); }); @@ -486,14 +486,14 @@ fn ct_migrated() { let accounts = excel_ct_amounts().iter().map(|item| item.0.clone()).unique().collect::>(); let total_ct_sold = excel_ct_amounts().iter().fold(0, |acc, item| acc + item.1); dbg!(total_ct_sold); - let polimec_sov_acc = Penpal::sovereign_account_id_of((Parent, Parachain(politest::PARA_ID)).into()); - let polimec_fund_balance = Penpal::account_data_of(polimec_sov_acc); + let polimec_sov_acc = PenNet::sovereign_account_id_of((Parent, Parachain(polimec::PARA_ID)).into()); + let polimec_fund_balance = PenNet::account_data_of(polimec_sov_acc); dbg!(polimec_fund_balance); let names = names(); for account in accounts { - Politest::execute_with(|| { + PolitestNet::execute_with(|| { assert_ok!(PolitestFundingPallet::migrate_one_participant( PolitestOrigin::signed(account.clone()), project_id, @@ -505,13 +505,13 @@ fn ct_migrated() { }); } - Penpal::execute_with(|| { - dbg!(Penpal::events()); + PenNet::execute_with(|| { + dbg!(PenNet::events()); }); // Check balances after migration, before vesting excel_ct_amounts().iter().unique().for_each(|item| { - let data = Penpal::account_data_of(item.0.clone()); + let data = PenNet::account_data_of(item.0.clone()); let key: [u8; 32] = item.0.clone().into(); println!("Participant {} has {} CTs. Expected {}", names[&key], data.free.clone(), item.1); dbg!(data.clone()); diff --git a/integration-tests/src/tests/governance.rs b/integration-tests/src/tests/governance.rs index e88af8302..9f3ca5e38 100644 --- a/integration-tests/src/tests/governance.rs +++ b/integration-tests/src/tests/governance.rs @@ -2,10 +2,9 @@ use crate::{polimec::ED, *}; /// Tests for the oracle pallet integration. /// Alice, Bob, Charlie are members of the OracleProvidersMembers. /// Only members should be able to feed data into the oracle. -use frame_support::traits::fungible::Inspect; use frame_support::traits::{ - fungible::{BalancedHold, MutateFreeze, MutateHold, Unbalanced}, - OnInitialize, WithdrawReasons, + fungible::{BalancedHold, Inspect, MutateFreeze, MutateHold, Unbalanced}, + Hooks, WithdrawReasons, }; use macros::generate_accounts; use sp_runtime::{traits::Hash, Digest}; @@ -23,15 +22,15 @@ use polimec_runtime::{ Vesting, }; use tests::defaults::*; -use xcm_emulator::get_account_id_from_seed; +use xcm_emulator::helpers::get_account_id_from_seed; generate_accounts!(PEPE, CARLOS,); /// Test that an account with vested tokens (a lock) can use those tokens for a hold. /// The hold can also be released or slashed while the lock is still in place. #[test] fn vested_tokens_and_holds_work_together() { - Polimec::execute_with(|| { - let alice = Polimec::account_id_of(ALICE); + PolimecNet::execute_with(|| { + let alice = PolimecNet::account_id_of(ALICE); let new_account = create_vested_account(); assert_eq!(Balances::balance(&alice), 220 * PLMC - ED); @@ -79,8 +78,8 @@ fn vested_tokens_and_holds_work_together() { /// Test that an account with vested tokens (a lock) cannot use those tokens for a reserve. #[test] fn vested_tokens_and_reserves_dont_work_together() { - Polimec::execute_with(|| { - let alice = Polimec::account_id_of(ALICE); + PolimecNet::execute_with(|| { + let alice = PolimecNet::account_id_of(ALICE); let new_account = create_vested_account(); assert_eq!(Balances::balance(&alice), 220 * PLMC - ED); @@ -96,8 +95,8 @@ fn vested_tokens_and_reserves_dont_work_together() { /// Test that locks and freezes can be placed on balance that is already reserved. #[test] fn lock_and_freeze_after_reserve_does_work() { - Polimec::execute_with(|| { - let alice = Polimec::account_id_of(ALICE); + PolimecNet::execute_with(|| { + let alice = PolimecNet::account_id_of(ALICE); assert_ok!(Balances::reserve(&alice, 400 * PLMC)); assert_ok!(Balances::set_freeze( @@ -112,13 +111,13 @@ fn lock_and_freeze_after_reserve_does_work() { /// Test that correct members are set with the default genesis config. #[test] fn council_and_technical_committee_members_set_correctly() { - let alice = Polimec::account_id_of(ALICE); - let bob = Polimec::account_id_of(BOB); - let charlie = Polimec::account_id_of(CHARLIE); - let dave = Polimec::account_id_of(DAVE); - let eve = Polimec::account_id_of(EVE); + let alice = PolimecNet::account_id_of(ALICE); + let bob = PolimecNet::account_id_of(BOB); + let charlie = PolimecNet::account_id_of(CHARLIE); + let dave = PolimecNet::account_id_of(DAVE); + let eve = PolimecNet::account_id_of(EVE); let accounts = vec![alice, bob, charlie, dave, eve]; - Politest::execute_with(|| { + PolitestNet::execute_with(|| { assert_same_members(Council::members(), &accounts); assert_same_members(TechnicalCommittee::members(), &accounts); }); @@ -131,21 +130,19 @@ fn council_and_technical_committee_members_set_correctly() { /// 4. Proposal is enacted. #[test] fn democracy_works() { - let alice = Polimec::account_id_of(ALICE); + let alice = PolimecNet::account_id_of(ALICE); // 1. Create a proposal to set the the balance of `account` to 1000 PLMC - Polimec::execute_with(|| { + PolimecNet::execute_with(|| { let account = create_vested_account(); - let bounded_call = Preimage::bound(::RuntimeCall::Balances( - pallet_balances::Call::force_set_balance { who: account.clone().into(), new_free: 1000u128 * PLMC }, - )) + let bounded_call = Preimage::bound(PolimecCall::Balances(pallet_balances::Call::force_set_balance { + who: account.clone().into(), + new_free: 1000u128 * PLMC, + })) .unwrap(); assert_ok!(Democracy::propose(RuntimeOrigin::signed(account.clone()), bounded_call, 100 * PLMC,)); - }); - run_gov_n_blocks(1); - // 2. Proposal is turned into a referendum - // Alice votes on the proposal with 100 PLMC - Polimec::execute_with(|| { + run_gov_n_blocks(1); + assert!(Democracy::referendum_count() == 1); assert_eq!( Balances::balance_frozen( @@ -162,18 +159,14 @@ fn democracy_works() { ), 100 * PLMC ); - }); - run_gov_n_blocks(2); - // 3. Referendum is approved - Polimec::execute_with(|| { - assert_eq!(Democracy::referendum_info(0).unwrap(), ReferendumInfo::Finished { approved: true, end: 4u32 }); - assert!(pallet_scheduler::Agenda::::get(6u32).len() == 1); - }); + run_gov_n_blocks(2); + + assert_eq!(Democracy::referendum_info(0).unwrap(), ReferendumInfo::Finished { approved: true, end: 6u32 }); + assert!(pallet_scheduler::Agenda::::get(8u32).len() == 1); + + run_gov_n_blocks(2); - // 4. Referendum is enacted - run_gov_n_blocks(2); - Polimec::execute_with(|| { assert_eq!(Balances::balance(&get_account_id_from_seed::("NEW_ACCOUNT")), 1000u128 * PLMC); }); } @@ -182,7 +175,7 @@ fn democracy_works() { // Electorate is the total issuance minus the sum of the Growth + Operational treasury. #[test] fn electorate_calculates_correctly() { - Polimec::execute_with(|| { + PolimecNet::execute_with(|| { let total_issuance = Balances::total_issuance(); assert_ok!(Balances::write_balance(&Treasury::account_id(), 1000 * PLMC)); assert_ok!(Balances::write_balance( @@ -201,11 +194,12 @@ fn electorate_calculates_correctly() { fn user_can_vote_with_staked_balance() { // 1. Create a proposal to set the the balance of `account` to 1000 PLMC // 2. Account stakes 100 PLMC. - Polimec::execute_with(|| { + PolimecNet::execute_with(|| { let account = create_vested_account(); - let bounded_call = Preimage::bound(::RuntimeCall::Balances( - pallet_balances::Call::force_set_balance { who: account.clone().into(), new_free: 1000u128 * PLMC }, - )) + let bounded_call = Preimage::bound(PolimecCall::Balances(pallet_balances::Call::force_set_balance { + who: account.clone().into(), + new_free: 1000u128 * PLMC, + })) .unwrap(); assert_ok!(Democracy::propose(RuntimeOrigin::signed(account.clone()), bounded_call, 100 * PLMC)); @@ -218,12 +212,10 @@ fn user_can_vote_with_staked_balance() { )); // Total PLMC reserved for staking (100) + creating proposal (100) = 200 - assert_eq!(Balances::reserved_balance(&account), 200 * PLMC) - }); + assert_eq!(Balances::reserved_balance(&account), 200 * PLMC); + + run_gov_n_blocks(1); - run_gov_n_blocks(1); - // 3. User votes on the proposal with 200 PLMC - Polimec::execute_with(|| { let account = get_account_id_from_seed::("NEW_ACCOUNT"); assert_eq!( Balances::balance_frozen( @@ -240,19 +232,19 @@ fn user_can_vote_with_staked_balance() { ), 200 * PLMC ); - }) + }); } /// Test that treasury proposals can be directly accepted by the council without going through governance. #[test] fn treasury_proposal_accepted_by_council() { - let alice = Polimec::account_id_of(ALICE); - let bob = Polimec::account_id_of(BOB); - let charlie = Polimec::account_id_of(CHARLIE); - let dave = Polimec::account_id_of(DAVE); - let eve = Polimec::account_id_of(EVE); + let alice = PolimecNet::account_id_of(ALICE); + let bob = PolimecNet::account_id_of(BOB); + let charlie = PolimecNet::account_id_of(CHARLIE); + let dave = PolimecNet::account_id_of(DAVE); + let eve = PolimecNet::account_id_of(EVE); let accounts = vec![(alice.clone(), true), (bob, true), (charlie, true), (dave, true), (eve, true)]; - Polimec::execute_with(|| { + PolimecNet::execute_with(|| { // 0. Set the treasury balance to 1000 PLMC assert_ok!(Balances::write_balance(&Treasury::account_id(), 1000 * PLMC)); @@ -281,11 +273,9 @@ fn treasury_proposal_accepted_by_council() { proposal.get_dispatch_info().weight, 100, )); - }); - run_gov_n_blocks(3); + run_gov_n_blocks(3); - Polimec::execute_with(|| { // 5. Beneficiary receives the funds assert_eq!(Balances::balance(&get_account_id_from_seed::("Beneficiary")), 100 * PLMC); }); @@ -295,8 +285,8 @@ fn treasury_proposal_accepted_by_council() { /// The treasury proposal deposit is slashed and sent to the treasury. #[test] fn slashed_treasury_proposal_funds_send_to_treasury() { - let alice = Polimec::account_id_of(ALICE); - Polimec::execute_with(|| { + let alice = PolimecNet::account_id_of(ALICE); + PolimecNet::execute_with(|| { // 0. Set the treasury balance to 1000 PLMC assert_ok!(Balances::write_balance(&Treasury::account_id(), 1000 * PLMC)); let alice_balance = Balances::balance(&alice); @@ -322,8 +312,8 @@ fn slashed_treasury_proposal_funds_send_to_treasury() { /// Test that users can vote in the election-phragmen pallet with their staked balance. #[test] fn user_can_vote_in_election_with_staked_balance() { - let alice = Polimec::account_id_of(ALICE); - Polimec::execute_with(|| { + let alice = PolimecNet::account_id_of(ALICE); + PolimecNet::execute_with(|| { let account = create_vested_account(); assert_ok!(ParachainStaking::delegate( @@ -351,11 +341,9 @@ fn user_can_vote_in_election_with_staked_balance() { Elections::remove_voter(RuntimeOrigin::signed(account.clone())), pallet_elections_phragmen::Error::::VotingPeriodNotEnded ); - }); - run_gov_n_blocks(5); + run_gov_n_blocks(5); - Polimec::execute_with(|| { let account = get_account_id_from_seed::("NEW_ACCOUNT"); assert_ok!(Elections::remove_voter(RuntimeOrigin::signed(account.clone()))); @@ -383,7 +371,7 @@ fn election_phragmen_works() { .map(|i| get_account_id_from_seed::(format!("CANDIDATE_{}", i).as_str())) .collect::>(); // 1. Register candidates for the election. - Polimec::execute_with(|| { + PolimecNet::execute_with(|| { assert_eq!(Elections::candidates().len(), 0); // Alice .. Eve already selected members assert_eq!(Elections::members().len(), 5); @@ -400,18 +388,16 @@ fn election_phragmen_works() { ); for (i, voter) in vec![ALICE, BOB, CHARLIE, DAVE, EVE, FERDIE, ALICE_STASH, BOB_STASH].into_iter().enumerate() { - let voter = Polimec::account_id_of(voter); + let voter = PolimecNet::account_id_of(voter); assert_ok!(Elections::vote( RuntimeOrigin::signed(voter.clone()), candidates[i..(i + 8)].to_vec(), 200 * PLMC, )); } - }); - run_gov_n_blocks(5); + run_gov_n_blocks(5); - Polimec::execute_with(|| { assert_eq!(Elections::candidates().len(), 0); assert_eq!(Elections::members().len(), 9); assert_eq!(Elections::runners_up().len(), 6); @@ -442,7 +428,7 @@ fn assert_same_members(expected: Vec, actual: &Vec) { } fn create_vested_account() -> AccountId { - let alice = Polimec::account_id_of(ALICE); + let alice = PolimecNet::account_id_of(ALICE); let new_account = get_account_id_from_seed::("NEW_ACCOUNT"); // Initially the NEW_ACCOUNT has no PLMC @@ -465,25 +451,22 @@ fn create_vested_account() -> AccountId { fn run_gov_n_blocks(n: usize) { for _ in 0..n { - Polimec::execute_with(|| { - let block_number = polimec_runtime::System::block_number(); - - let header = polimec_runtime::System::finalize(); - - let pre_digest = Digest { logs: vec![] }; - polimec_runtime::System::reset_events(); - - let next_block_number = block_number + 1u32; - polimec_runtime::Vesting::on_initialize(next_block_number); - polimec_runtime::Elections::on_initialize(next_block_number); - polimec_runtime::Council::on_initialize(next_block_number); - polimec_runtime::TechnicalCommittee::on_initialize(next_block_number); - polimec_runtime::Treasury::on_initialize(next_block_number); - polimec_runtime::Democracy::on_initialize(next_block_number); - polimec_runtime::Preimage::on_initialize(next_block_number); - polimec_runtime::Scheduler::on_initialize(next_block_number); - polimec_runtime::System::initialize(&next_block_number, &header.hash(), &pre_digest); - }); + let block_number = polimec_runtime::System::block_number(); + let header = polimec_runtime::System::finalize(); + + let pre_digest = Digest { logs: vec![] }; + polimec_runtime::System::reset_events(); + + let next_block_number = block_number + 1u32; + polimec_runtime::Vesting::on_initialize(next_block_number); + polimec_runtime::Elections::on_initialize(next_block_number); + polimec_runtime::Council::on_initialize(next_block_number); + polimec_runtime::TechnicalCommittee::on_initialize(next_block_number); + polimec_runtime::Treasury::on_initialize(next_block_number); + polimec_runtime::Democracy::on_initialize(next_block_number); + polimec_runtime::Preimage::on_initialize(next_block_number); + polimec_runtime::Scheduler::on_initialize(next_block_number); + polimec_runtime::System::initialize(&next_block_number, &header.hash(), &pre_digest); } } diff --git a/integration-tests/src/tests/oracle.rs b/integration-tests/src/tests/oracle.rs index 981f593c7..33552674d 100644 --- a/integration-tests/src/tests/oracle.rs +++ b/integration-tests/src/tests/oracle.rs @@ -39,16 +39,16 @@ fn values( fn members_can_feed_data() { let mut inst = IntegrationInstantiator::new(None); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { // pallet_funding genesis builder already inputs prices, so we need to advance one block to feed new values. inst.advance_time(1u32).unwrap(); - let alice = Politest::account_id_of(ALICE); + let alice = PolitestNet::account_id_of(ALICE); assert_ok!(Oracle::feed_values(RuntimeOrigin::signed(alice.clone()), values([4.84, 1.0, 1.0, 0.4]))); - let bob = Politest::account_id_of(BOB); + let bob = PolitestNet::account_id_of(BOB); assert_ok!(Oracle::feed_values(RuntimeOrigin::signed(bob.clone()), values([4.84, 1.0, 1.0, 0.4]))); - let charlie = Politest::account_id_of(CHARLIE); + let charlie = PolitestNet::account_id_of(CHARLIE); assert_ok!(Oracle::feed_values(RuntimeOrigin::signed(charlie.clone()), values([4.84, 1.0, 1.0, 0.4]))); let expected_values = HashMap::from([ @@ -67,8 +67,8 @@ fn members_can_feed_data() { #[test] fn non_members_cannot_feed_data() { - Politest::execute_with(|| { - let dave = Politest::account_id_of(DAVE); + PolitestNet::execute_with(|| { + let dave = PolitestNet::account_id_of(DAVE); assert_noop!( Oracle::feed_values(RuntimeOrigin::signed(dave.clone()), values([4.84, 1.0, 1.0, 0.4])), orml_oracle::Error::::NoPermission @@ -79,17 +79,17 @@ fn non_members_cannot_feed_data() { #[test] fn data_is_correctly_combined() { let mut inst = IntegrationInstantiator::new(None); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { // pallet_funding genesis builder already inputs prices, so we need to advance one block to feed new values. inst.advance_time(1u32).unwrap(); - let alice = Politest::account_id_of(ALICE); + let alice = PolitestNet::account_id_of(ALICE); assert_ok!(Oracle::feed_values(RuntimeOrigin::signed(alice.clone()), values([1.0, 1.5, 1.1, 0.11111]))); - let bob = Politest::account_id_of(BOB); + let bob = PolitestNet::account_id_of(BOB); assert_ok!(Oracle::feed_values(RuntimeOrigin::signed(bob.clone()), values([2.0, 1.0, 1.2, 0.22222]))); - let charlie = Politest::account_id_of(CHARLIE); + let charlie = PolitestNet::account_id_of(CHARLIE); assert_ok!(Oracle::feed_values(RuntimeOrigin::signed(charlie.clone()), values([3.0, 0.8, 1.1, 0.33333]))); // Default CombineData implementation is the median value @@ -111,17 +111,17 @@ fn data_is_correctly_combined() { fn pallet_funding_works() { let mut inst = IntegrationInstantiator::new(None); - Politest::execute_with(|| { + PolitestNet::execute_with(|| { // pallet_funding genesis builder already inputs prices, so we need to advance one block to feed new values. inst.advance_time(1u32).unwrap(); - let alice = Politest::account_id_of(ALICE); + let alice = PolitestNet::account_id_of(ALICE); assert_ok!(Oracle::feed_values(RuntimeOrigin::signed(alice.clone()), values([4.84, 1.0, 1.0, 0.4]))); - let bob = Politest::account_id_of(BOB); + let bob = PolitestNet::account_id_of(BOB); assert_ok!(Oracle::feed_values(RuntimeOrigin::signed(bob.clone()), values([4.84, 1.0, 1.0, 0.4]))); - let charlie = Politest::account_id_of(CHARLIE); + let charlie = PolitestNet::account_id_of(CHARLIE); assert_ok!(Oracle::feed_values(RuntimeOrigin::signed(charlie.clone()), values([4.84, 1.0, 1.0, 0.4]))); let _project_id = inst.create_finished_project( diff --git a/integration-tests/src/tests/reserve_backed_transfers.rs b/integration-tests/src/tests/reserve_backed_transfers.rs index 7ea833f99..d54bdd62d 100644 --- a/integration-tests/src/tests/reserve_backed_transfers.rs +++ b/integration-tests/src/tests/reserve_backed_transfers.rs @@ -24,6 +24,7 @@ use frame_support::{ weights::WeightToFee, }; use sp_runtime::DispatchError; +use xcm_emulator::Parachain; const RESERVE_TRANSFER_AMOUNT: u128 = 10_0_000_000_000; // 10 DOT const MAX_REF_TIME: u64 = 5_000_000_000; @@ -33,8 +34,8 @@ fn create_asset_on_asset_hub(asset_id: u32) { if asset_id == 0 { return; } - let admin_account = AssetHub::account_id_of(FERDIE); - AssetHub::execute_with(|| { + let admin_account = AssetNet::account_id_of(FERDIE); + AssetNet::execute_with(|| { assert_ok!(AssetHubAssets::force_create( AssetHubOrigin::root(), asset_id.into(), @@ -46,7 +47,7 @@ fn create_asset_on_asset_hub(asset_id: u32) { } fn mint_asset_on_asset_hub_to(asset_id: u32, recipient: &AssetHubAccountId, amount: u128) { - AssetHub::execute_with(|| { + AssetNet::execute_with(|| { match asset_id { 0 => { assert_ok!(AssetHubBalances::write_balance(recipient, amount)); @@ -60,18 +61,18 @@ fn mint_asset_on_asset_hub_to(asset_id: u32, recipient: &AssetHubAccountId, amou } fn get_polimec_balances(asset_id: u32, user_account: AccountId) -> (u128, u128, u128, u128) { - Polimec::execute_with(|| { + PolimecNet::execute_with(|| { ( - PolimecForeignAssets::balance(asset_id, user_account.clone()), + PolitestForeignAssets::balance(asset_id, user_account.clone()), PolimecBalances::balance(&user_account.clone()), - PolimecForeignAssets::total_issuance(asset_id), + PolitestForeignAssets::total_issuance(asset_id), PolimecBalances::total_issuance(), ) }) } fn get_asset_hub_balances(asset_id: u32, user_account: AccountId, polimec_account: AccountId) -> (u128, u128, u128) { - AssetHub::execute_with(|| { + AssetNet::execute_with(|| { match asset_id { // Asset id 0 equals Dot 0 => ( @@ -97,9 +98,9 @@ fn test_reserve_to_polimec(asset_id: u32) { _ => (PalletInstance(AssetHubAssets::index() as u8), GeneralIndex(asset_id as u128)).into(), }; - let alice_account = Polimec::account_id_of(ALICE); + let alice_account = PolimecNet::account_id_of(ALICE); let polimec_sibling_account = - AssetHub::sovereign_account_id_of((Parent, Parachain(Polimec::para_id().into())).into()); + AssetNet::sovereign_account_id_of((Parent, Parachain(PolimecNet::para_id().into())).into()); let max_weight = Weight::from_parts(MAX_REF_TIME, MAX_PROOF_SIZE); mint_asset_on_asset_hub_to(asset_id, &alice_account, 100_0_000_000_000); @@ -115,10 +116,10 @@ fn test_reserve_to_polimec(asset_id: u32) { let (asset_hub_prev_alice_asset_balance, asset_hub_prev_polimec_asset_balance, asset_hub_prev_asset_issuance) = get_asset_hub_balances(asset_id, alice_account.clone(), polimec_sibling_account.clone()); - AssetHub::execute_with(|| { + AssetNet::execute_with(|| { let asset_transfer: MultiAsset = (asset_hub_asset_id, RESERVE_TRANSFER_AMOUNT).into(); let origin = AssetHubOrigin::signed(alice_account.clone()); - let dest: VersionedMultiLocation = ParentThen(X1(Parachain(Polimec::para_id().into()))).into(); + let dest: VersionedMultiLocation = ParentThen(X1(Parachain(PolimecNet::para_id().into()))).into(); let beneficiary: VersionedMultiLocation = AccountId32 { network: None, id: alice_account.clone().into() }.into(); @@ -138,11 +139,11 @@ fn test_reserve_to_polimec(asset_id: u32) { }); // check the transfer was not blocked by our our xcm configured - Polimec::execute_with(|| { + PolimecNet::execute_with(|| { assert_expected_events!( - Polimec, + PolimecNet, vec![ - PolimecEvent::XcmpQueue(cumulus_pallet_xcmp_queue::Event::Success { .. }) => {}, + PolimecEvent::MessageQueue(pallet_message_queue::Event::Processed {success: true, ..}) => {}, ] ); }); @@ -180,8 +181,12 @@ fn test_reserve_to_polimec(asset_id: u32) { "Polimec Asset issuance should have increased by at least the transfer amount minus the XCM execution fee" ); - assert_eq!( - asset_hub_delta_alice_asset_balance, RESERVE_TRANSFER_AMOUNT, + // We overapproximate the fee for delivering the assets to polimec. The actual fee is + // probably lower. + let fee = system_parachains_constants::polkadot::fee::WeightToFee::weight_to_fee(&max_weight); + assert!( + asset_hub_delta_alice_asset_balance <= RESERVE_TRANSFER_AMOUNT + fee && + asset_hub_delta_alice_asset_balance >= RESERVE_TRANSFER_AMOUNT, "AssetHub alice_account.clone() Asset balance should have decreased by the transfer amount" ); @@ -208,21 +213,21 @@ fn test_polimec_to_reserve(asset_id: u32) { let asset_hub_asset_id: MultiLocation = match asset_id { 0 => Parent.into(), _ => ParentThen(X3( - Parachain(AssetHub::para_id().into()), + Parachain(AssetNet::para_id().into()), PalletInstance(AssetHubAssets::index() as u8), GeneralIndex(asset_id as u128), )) .into(), }; - let alice_account = Polimec::account_id_of(ALICE); + let alice_account = PolimecNet::account_id_of(ALICE); let polimec_sibling_account = - AssetHub::sovereign_account_id_of((Parent, Parachain(Polimec::para_id().into())).into()); + AssetNet::sovereign_account_id_of((Parent, Parachain(PolimecNet::para_id().into())).into()); let max_weight = Weight::from_parts(MAX_REF_TIME, MAX_PROOF_SIZE); mint_asset_on_asset_hub_to(asset_id, &polimec_sibling_account, RESERVE_TRANSFER_AMOUNT + 1_0_000_000_000); - Polimec::execute_with(|| { + PolimecNet::execute_with(|| { assert_ok!(PolimecForeignAssets::mint_into( asset_id, &alice_account, @@ -241,43 +246,34 @@ fn test_polimec_to_reserve(asset_id: u32) { let (asset_hub_prev_alice_asset_balance, asset_hub_prev_polimec_asset_balance, asset_hub_prev_asset_issuance) = get_asset_hub_balances(asset_id, alice_account.clone(), polimec_sibling_account.clone()); - let transferable_asset_plus_exec_fee: MultiAsset = - (asset_hub_asset_id, RESERVE_TRANSFER_AMOUNT + 1_0_000_000_000).into(); - let mut asset_hub_exec_fee: MultiAsset = (asset_hub_asset_id, 1_0_000_000_000u128).into(); - asset_hub_exec_fee.reanchor(&(ParentThen(X1(Parachain(AssetHub::para_id().into()))).into()), Here).unwrap(); - - // construct the XCM to transfer from Polimec to AssetHub's reserve - let transfer_xcm: Xcm = Xcm(vec![ - WithdrawAsset(transferable_asset_plus_exec_fee.clone().into()), - BuyExecution { fees: transferable_asset_plus_exec_fee.clone(), weight_limit: Limited(max_weight) }, - InitiateReserveWithdraw { - assets: All.into(), - reserve: MultiLocation::new(1, X1(Parachain(AssetHub::para_id().into()))), - xcm: Xcm(vec![ - BuyExecution { fees: asset_hub_exec_fee, weight_limit: Limited(max_weight) }, - DepositAsset { - assets: All.into(), - beneficiary: MultiLocation::new(0, AccountId32 { network: None, id: alice_account.clone().into() }), - }, - ]), - }, - ]); - - // do the transfer - Polimec::execute_with(|| { - assert_ok!(PolimecXcmPallet::execute( - PolimecOrigin::signed(alice_account.clone()), - Box::new(VersionedXcm::V3(transfer_xcm)), - max_weight, - )); + PolimecNet::execute_with(|| { + let asset_transfer: MultiAsset = (asset_hub_asset_id, RESERVE_TRANSFER_AMOUNT + 1_0_000_000_000).into(); + let origin = PolimecOrigin::signed(alice_account.clone()); + let dest: VersionedMultiLocation = ParentThen(X1(Parachain(AssetNet::para_id().into()))).into(); + + let beneficiary: VersionedMultiLocation = + AccountId32 { network: None, id: alice_account.clone().into() }.into(); + let assets: VersionedMultiAssets = asset_transfer.into(); + let fee_asset_item = 0; + let weight_limit = Unlimited; + + let call = PolimecXcmPallet::limited_reserve_transfer_assets( + origin, + bx!(dest), + bx!(beneficiary), + bx!(assets), + fee_asset_item, + weight_limit, + ); + assert_ok!(call); }); // check that the xcm was not blocked - AssetHub::execute_with(|| { + AssetNet::execute_with(|| { assert_expected_events!( - AssetHub, + AssetNet, vec![ - AssetHubEvent::XcmpQueue(cumulus_pallet_xcmp_queue::Event::Success {..}) => {}, + AssetHubEvent::MessageQueue(pallet_message_queue::Event::Processed {success: true, ..}) => {}, ] ); }); @@ -331,7 +327,7 @@ fn test_polimec_to_reserve(asset_id: u32) { ); assert!( - asset_hub_delta_asset_issuance <= asset_hub_polkadot_runtime::constants::fee::WeightToFee::weight_to_fee(&max_weight), + asset_hub_delta_asset_issuance <= system_parachains_constants::polkadot::fee::WeightToFee::weight_to_fee(&max_weight), "AssetHub's Asset issuance should not change, since it acts as a reserve for that asset (except for fees which are burnt)" ); } @@ -388,8 +384,8 @@ fn polimec_dot_to_reserve() { #[test] fn test_user_cannot_create_foreign_asset_on_polimec() { - Polimec::execute_with(|| { - let admin = AssetHub::account_id_of(ALICE); + PolimecNet::execute_with(|| { + let admin = AssetNet::account_id_of(ALICE); assert_noop!( PolimecForeignAssets::create( PolimecOrigin::signed(admin.clone()), diff --git a/integration-tests/src/tests/vest.rs b/integration-tests/src/tests/vest.rs index edbe63727..21d8e9a3d 100644 --- a/integration-tests/src/tests/vest.rs +++ b/integration-tests/src/tests/vest.rs @@ -26,14 +26,14 @@ use pallet_vesting::VestingInfo; use polimec_runtime::{Balances, ParachainStaking, PayMaster, RuntimeOrigin, Vesting}; use sp_runtime::Perquintill; use tests::defaults::*; -use xcm_emulator::get_account_id_from_seed; +use xcm_emulator::helpers::get_account_id_from_seed; generate_accounts!(PEPE, CARLOS,); #[test] fn base_vested_can_stake() { - Polimec::execute_with(|| { - let alice = Polimec::account_id_of(ALICE); + PolimecNet::execute_with(|| { + let alice = PolimecNet::account_id_of(ALICE); let coll_1 = get_account_id_from_seed::("COLL_1"); let new_account = get_account_id_from_seed::("NEW_ACCOUNT"); @@ -82,7 +82,7 @@ fn base_vested_can_stake() { // total balance, so if the user had 20 free, 2000 frozen, 2000 held, then the user could only withdraw any amount over 2000. #[test] fn base_can_withdraw_when_free_is_below_frozen_with_hold() { - Polimec::execute_with(|| { + PolimecNet::execute_with(|| { let coll_1 = get_account_id_from_seed::("COLL_1"); Balances::set_balance(&PEPE.into(), 2_020 * PLMC + ED * 2); Balances::set_balance(&CARLOS.into(), 0); @@ -105,7 +105,7 @@ fn base_can_withdraw_when_free_is_below_frozen_with_hold() { // Vested transfer didnt start with the full amount locked, since start date was befire execution assert_eq!(Balances::usable_balance(&CARLOS.into()), 10 * PLMC); - let carlos_acc: PolimecAccountId = CARLOS.into(); + let carlos_acc: AccountId = CARLOS.into(); // PEPE stakes his 20k PLMC, even if most of it is locked (frozen) assert_ok!(ParachainStaking::delegate(RuntimeOrigin::signed(CARLOS.into()), coll_1, 2_000 * PLMC, 0, 0)); @@ -150,7 +150,7 @@ fn base_can_withdraw_when_free_is_below_frozen_with_hold() { // the account is killed and the dust is sent to the treasury. #[test] fn dust_to_treasury() { - Polimec::execute_with(|| { + PolimecNet::execute_with(|| { // Create two new accounts: a sender and a receiver. let sender = get_account_id_from_seed::("SENDER"); let receiver = get_account_id_from_seed::("RECEIVER"); diff --git a/justfile b/justfile index 9685a8522..960fff5a7 100644 --- a/justfile +++ b/justfile @@ -3,11 +3,11 @@ default: @just --list # Build the "Base" Runtime using srtool -build-base-srtool: - srtool build --root -p polimec-runtime --runtime-dir runtimes/base --build-opts="--features=on-chain-release-build" +build-polimec-srtool: + srtool build --root -p polimec-runtime --profile production --runtime-dir runtimes/polimec --build-opts="--features=on-chain-release-build" --no-wasm-std build-rolimec-srtool: - srtool build --root -p polimec-runtime --runtime-dir runtimes/base --build-opts="--features=on-chain-release-build,fast-mode" + srtool build --root -p polimec-runtime --profile production --runtime-dir runtimes/polimec --build-opts="--features=on-chain-release-build,fast-mode" --no-wasm-std # Build the "Testnet" Runtime using srtool @@ -20,10 +20,11 @@ test-integration: cargo test -p integration-tests # src: https://github.com/polkadot-fellows/runtimes/blob/48ccfae6141d2924f579d81e8b1877efd208693f/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs -# Benchmark a specific pallet on the "Base" Runtime -benchmark-runtime pallet="pallet-elections-phragmen" features="runtime-benchmarks": - cargo run --features {{ features }} --release -p polimec-node benchmark pallet \ - --chain=base-polkadot \ +# Benchmark a specific pallet on the "Polimec" Runtime +# TODO: Adjust the `--chain` flag to match the chain you are benchmarking +benchmark-runtime chain="polimec-local" pallet="pallet-elections-phragmen" features="runtime-benchmarks": + cargo run --features {{ features }} --profile production -p polimec-node benchmark pallet \ + --chain={{ chain }} \ --steps=50 \ --repeat=20 \ --pallet={{ pallet }} \ @@ -34,9 +35,10 @@ benchmark-runtime pallet="pallet-elections-phragmen" features="runtime-benchmark # src: https://github.com/paritytech/polkadot-sdk/blob/bc2e5e1fe26e2c2c8ee766ff9fe7be7e212a0c62/substrate/frame/nfts/src/weights.rs # Run the Runtime benchmarks for a specific pallet -benchmark-pallet pallet="pallet-elections-phragmen" features="runtime-benchmarks": - cargo run --features {{ features }} --release -p polimec-node benchmark pallet \ - --chain=base-polkadot \ +# TODO: Adjust the `--chain` flag to match the chain you are benchmarking +benchmark-pallet chain="polimec-local" pallet="pallet-elections-phragmen" features="runtime-benchmarks": + cargo run --features {{ features }} --profile production -p polimec-node benchmark pallet \ + --chain={{ chain }} \ --steps=50 \ --repeat=20 \ --pallet={{ pallet }} \ diff --git a/nodes/parachain/Cargo.toml b/nodes/parachain/Cargo.toml index 94d32faf1..8379173d4 100644 --- a/nodes/parachain/Cargo.toml +++ b/nodes/parachain/Cargo.toml @@ -15,6 +15,7 @@ clap = { workspace = true, features = ["derive"] } log.workspace = true parity-scale-codec = { workspace = true } serde = { workspace = true, features = ["derive"] } +serde_json.workspace = true jsonrpsee = { workspace = true, features = ["server"] } hex-literal.workspace = true color-print = "0.3.5" @@ -73,8 +74,10 @@ xcm.workspace = true # Cumulus cumulus-client-cli.workspace = true +cumulus-client-collator.workspace = true cumulus-client-consensus-aura.workspace = true cumulus-client-consensus-common.workspace = true +cumulus-client-consensus-proposer.workspace = true cumulus-client-network.workspace = true cumulus-client-service.workspace = true cumulus-primitives-core.workspace = true @@ -89,18 +92,17 @@ substrate-build-script-utils.workspace = true [features] default = [] -fast-mode = [ - "polimec-runtime/fast-mode", - "politest-runtime/fast-mode", -] +fast-mode = [ "polimec-runtime/fast-mode", "politest-runtime/fast-mode" ] instant-mode = [ "polimec-runtime/instant-mode", "politest-runtime/instant-mode", ] runtime-benchmarks = [ + "cumulus-primitives-core/runtime-benchmarks", "frame-benchmarking-cli/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "pallet-funding/runtime-benchmarks", + "parachains-common/runtime-benchmarks", "polimec-runtime/runtime-benchmarks", "politest-runtime/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", @@ -121,6 +123,7 @@ try-runtime = [ ] std = [ "cumulus-primitives-core/std", + "cumulus-primitives-parachain-inherent/std", "frame-benchmarking/std", "itertools", "log/std", @@ -134,9 +137,12 @@ std = [ "sp-consensus-aura/std", "sp-core/std", "sp-io/std", + "sp-keystore/std", "sp-offchain/std", "sp-runtime/std", "sp-session/std", + "sp-timestamp/std", "sp-transaction-pool/std", "xcm/std", ] +on-chain-release-build = [] diff --git a/nodes/parachain/src/chain_spec.rs b/nodes/parachain/src/chain_spec.rs index 5867f55b5..cbb5280f3 100644 --- a/nodes/parachain/src/chain_spec.rs +++ b/nodes/parachain/src/chain_spec.rs @@ -17,8 +17,8 @@ // If you feel like getting in touch with us, you can do so at info@polimec.org use cumulus_primitives_core::ParaId; -use politest_runtime::{AccountId, Signature}; -use polkadot_primitives::v5::LOWEST_PUBLIC_ID; +use polimec_runtime::{AccountId, Signature}; +use polkadot_primitives::v6::LOWEST_PUBLIC_ID; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::Properties; use serde::{Deserialize, Serialize}; @@ -36,7 +36,7 @@ pub fn get_from_seed(seed: &str) -> ::Pu } /// The extensions for the [`ChainSpec`]. -#[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)] #[serde(deny_unknown_fields)] pub struct Extensions { /// The relay chain of the Parachain. @@ -51,6 +51,10 @@ impl Extensions { sc_chain_spec::get_extension(chain_spec.extensions()) } } + +/// Generic chain spec for all polkadot-parachain runtimes +pub type GenericChainSpec = sc_service::GenericChainSpec<(), Extensions>; + type AccountPublic = ::Signer; /// Helper function to generate an account ID from seed diff --git a/nodes/parachain/src/chain_spec/polimec.rs b/nodes/parachain/src/chain_spec/polimec.rs index e9a296435..b0ddb5302 100644 --- a/nodes/parachain/src/chain_spec/polimec.rs +++ b/nodes/parachain/src/chain_spec/polimec.rs @@ -18,29 +18,24 @@ //! Polimec Shell chain specification -use crate::chain_spec::Extensions; use cumulus_primitives_core::ParaId; -use polimec_runtime as base_runtime; use sc_service::ChainType; use sp_core::{crypto::UncheckedInto, sr25519}; -use sp_runtime::{BoundedVec, Perbill, Percent}; +use sp_runtime::{traits::ConstU32, BoundedVec, Perbill, Percent}; -use crate::chain_spec::{get_account_id_from_seed, get_properties, DEFAULT_PARA_ID}; -use base_runtime::{ +use crate::chain_spec::{get_account_id_from_seed, get_properties, Extensions, GenericChainSpec, DEFAULT_PARA_ID}; +use polimec_runtime::{ pallet_parachain_staking::{ inflation::{perbill_annual_to_perbill_round, BLOCKS_PER_YEAR}, InflationInfo, Range, }, - AccountId, AuraId as AuthorityId, Balance, BalancesConfig, ElectionsConfig, MinCandidateStk, ParachainInfoConfig, - ParachainStakingConfig, PolkadotXcmConfig, RuntimeGenesisConfig, SessionConfig, SystemConfig, PLMC, + AccountId, AuraId as AuthorityId, Balance, MinCandidateStk, RuntimeGenesisConfig, PLMC, }; -/// The default XCM version to set in genesis config. -const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; - -/// Specialized `ChainSpec` for the shell parachain runtime. pub type ChainSpec = sc_service::GenericChainSpec; +/// The default XCM version to set in genesis config. +const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; const COLLATOR_COMMISSION: Perbill = Perbill::from_percent(10); const PARACHAIN_BOND_RESERVE_PERCENT: Percent = Percent::from_percent(0); const BLOCKS_PER_ROUND: u32 = 2 * 10; @@ -67,13 +62,12 @@ pub fn polimec_inflation_config() -> InflationInfo { } } -pub fn get_base_session_keys(keys: AuthorityId) -> base_runtime::SessionKeys { - base_runtime::SessionKeys { aura: keys } +pub fn get_polimec_session_keys(keys: AuthorityId) -> polimec_runtime::SessionKeys { + polimec_runtime::SessionKeys { aura: keys } } -pub fn get_local_chain_spec() -> Result { +pub fn get_local_chain_spec() -> GenericChainSpec { let properties = get_properties("PLMC", 10, 41); - let wasm = base_runtime::WASM_BINARY.ok_or("No WASM")?; // This account is derived from PalletId("plmc/stk") in the pallet-parachain-staking runtime config. // This operation can be done using https://www.shawntabrizi.com/substrate-js-utilities/ // 1. "Module ID" to Address plmc/stk -> 5EYCAe5ij8xKJ2biBy4zUGNwdNhpz3BaS5iiuseJqTEtWQTc @@ -81,51 +75,42 @@ pub fn get_local_chain_spec() -> Result { const BLOCKCHAIN_OPERATION_TREASURY: [u8; 32] = hex_literal::hex!["6d6f646c706c6d632f73746b0000000000000000000000000000000000000000"]; - Ok(ChainSpec::from_genesis( - "Polimec Base Develop", - "polimec-base", - ChainType::Local, - move || { - base_testnet_genesis( - wasm, - vec![ - (get_account_id_from_seed::("Alice"), None, MinCandidateStk::get()), - (get_account_id_from_seed::("Bob"), None, MinCandidateStk::get()), - ], - polimec_inflation_config(), - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - ], - vec![ - (get_account_id_from_seed::("Alice"), 5 * MinCandidateStk::get()), - (get_account_id_from_seed::("Bob"), 5 * MinCandidateStk::get()), - (get_account_id_from_seed::("Charlie"), 5 * MinCandidateStk::get()), - (get_account_id_from_seed::("Dave"), 5 * MinCandidateStk::get()), - (get_account_id_from_seed::("Eve"), 5 * MinCandidateStk::get()), - (get_account_id_from_seed::("Ferdie"), 5 * MinCandidateStk::get()), - (BLOCKCHAIN_OPERATION_TREASURY.into(), 10_000_000 * PLMC), - ], - DEFAULT_PARA_ID, - ) - }, - vec![], - None, - Some("polimec"), - None, - Some(properties), + GenericChainSpec::builder( + polimec_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), Extensions { relay_chain: "rococo_local_testnet".into(), para_id: DEFAULT_PARA_ID.into() }, + ) + .with_name("Polimec Base Develop") + .with_id("polimec-base") + .with_chain_type(ChainType::Local) + .with_protocol_id("polimec") + .with_properties(properties) + .with_genesis_config_patch(base_testnet_genesis( + vec![ + (get_account_id_from_seed::("Alice"), None, MinCandidateStk::get()), + (get_account_id_from_seed::("Bob"), None, MinCandidateStk::get()), + ], + polimec_inflation_config(), + vec![get_account_id_from_seed::("Alice"), get_account_id_from_seed::("Bob")], + vec![ + (get_account_id_from_seed::("Alice"), 5 * MinCandidateStk::get()), + (get_account_id_from_seed::("Bob"), 5 * MinCandidateStk::get()), + (get_account_id_from_seed::("Charlie"), 5 * MinCandidateStk::get()), + (get_account_id_from_seed::("Dave"), 5 * MinCandidateStk::get()), + (get_account_id_from_seed::("Eve"), 5 * MinCandidateStk::get()), + (get_account_id_from_seed::("Ferdie"), 5 * MinCandidateStk::get()), + (BLOCKCHAIN_OPERATION_TREASURY.into(), 10_000_000 * PLMC), + ], + DEFAULT_PARA_ID, )) + .build() } /// This was used to generate the original genesis config for the Polimec parachain. /// Since then, the genesis `RuntimeGenesisConfig` has been updated. /// This function is kept for historical purposes. #[allow(unused)] -pub fn get_polkadot_base_chain_spec() -> Result { +pub fn get_polkadot_base_chain_spec() -> GenericChainSpec { let properties = get_properties("PLMC", 10, 41); - let wasm = base_runtime::WASM_BINARY.ok_or("No WASM")?; - let id: u32 = 3344; const PLMC_SUDO_ACC: [u8; 32] = @@ -135,41 +120,34 @@ pub fn get_polkadot_base_chain_spec() -> Result { const PLMC_COL_ACC_2: [u8; 32] = hex_literal::hex!["ba48ab77461ef53f9ebfdc94a12c780b57354f986e31eb2504b9e3ed580fab51"]; - Ok(ChainSpec::from_genesis( - "Polimec Polkadot", - "polimec-base", - ChainType::Live, - move || { - base_testnet_genesis( - wasm, - vec![ - (PLMC_COL_ACC_1.into(), None, 2 * MinCandidateStk::get()), - (PLMC_COL_ACC_2.into(), None, 2 * MinCandidateStk::get()), - ], - polimec_inflation_config(), - vec![(PLMC_COL_ACC_1.into()), (PLMC_COL_ACC_2.into())], - vec![ - (PLMC_COL_ACC_1.into(), 4 * MinCandidateStk::get()), - (PLMC_COL_ACC_2.into(), 4 * MinCandidateStk::get()), - (PLMC_SUDO_ACC.into(), 4 * MinCandidateStk::get()), - ], - // PLMC_SUDO_ACC.into(), - id.into(), - ) - }, - vec![], - None, - Some("polimec"), - None, - Some(properties), + GenericChainSpec::builder( + polimec_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), Extensions { relay_chain: "polkadot".into(), para_id: id }, + ) + .with_name("Polimec Polkadot") + .with_id("polimec-base") + .with_chain_type(ChainType::Live) + .with_protocol_id("polimec") + .with_properties(properties) + .with_genesis_config_patch(base_testnet_genesis( + vec![ + (PLMC_COL_ACC_1.into(), None, 2 * MinCandidateStk::get()), + (PLMC_COL_ACC_2.into(), None, 2 * MinCandidateStk::get()), + ], + polimec_inflation_config(), + vec![(PLMC_COL_ACC_1.into()), (PLMC_COL_ACC_2.into())], + vec![ + (PLMC_COL_ACC_1.into(), 4 * MinCandidateStk::get()), + (PLMC_COL_ACC_2.into(), 4 * MinCandidateStk::get()), + (PLMC_SUDO_ACC.into(), 4 * MinCandidateStk::get()), + ], + id.into(), )) + .build() } -pub fn get_rococo_chain_spec() -> Result { +pub fn get_rococo_chain_spec() -> GenericChainSpec { let properties = get_properties("RLMC", 10, 41); - let wasm = base_runtime::WASM_BINARY.ok_or("No WASM")?; - let id: u32 = 3344; const PLMC_COL_ACC_1: [u8; 32] = @@ -177,94 +155,71 @@ pub fn get_rococo_chain_spec() -> Result { const PLMC_COL_ACC_2: [u8; 32] = hex_literal::hex!["ba48ab77461ef53f9ebfdc94a12c780b57354f986e31eb2504b9e3ed580fab51"]; - Ok(ChainSpec::from_genesis( - "Rolimec Rococo", - "polimec-base", - ChainType::Live, - move || { - base_testnet_genesis( - wasm, - vec![ - (PLMC_COL_ACC_1.into(), None, 2 * MinCandidateStk::get()), - (PLMC_COL_ACC_2.into(), None, 2 * MinCandidateStk::get()), - ], - polimec_inflation_config(), - vec![(PLMC_COL_ACC_1.into()), (PLMC_COL_ACC_2.into())], - vec![ - (PLMC_COL_ACC_1.into(), 4 * MinCandidateStk::get()), - (PLMC_COL_ACC_2.into(), 4 * MinCandidateStk::get()), - ], - id.into(), - ) - }, - vec![], - None, - Some("polimec"), - None, - Some(properties), + GenericChainSpec::builder( + polimec_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), Extensions { relay_chain: "rococo".into(), para_id: id }, + ) + .with_name("Rolimec Rococo") + .with_id("polimec-base") + .with_chain_type(ChainType::Live) + .with_protocol_id("polimec") + .with_properties(properties) + .with_genesis_config_patch(base_testnet_genesis( + vec![ + (PLMC_COL_ACC_1.into(), None, 2 * MinCandidateStk::get()), + (PLMC_COL_ACC_2.into(), None, 2 * MinCandidateStk::get()), + ], + polimec_inflation_config(), + vec![(PLMC_COL_ACC_1.into()), (PLMC_COL_ACC_2.into())], + vec![(PLMC_COL_ACC_1.into(), 4 * MinCandidateStk::get()), (PLMC_COL_ACC_2.into(), 4 * MinCandidateStk::get())], + id.into(), )) + .build() } fn base_testnet_genesis( - wasm_binary: &[u8], stakers: Vec<(AccountId, Option, Balance)>, inflation_config: InflationInfo, initial_authorities: Vec, endowed_accounts: Vec<(AccountId, Balance)>, id: ParaId, -) -> RuntimeGenesisConfig { +) -> serde_json::Value { const ENDOWMENT: Balance = 10_000_000 * PLMC; const STASH: Balance = ENDOWMENT / 1000; - RuntimeGenesisConfig { - system: SystemConfig { code: wasm_binary.to_vec(), ..Default::default() }, - balances: BalancesConfig { balances: endowed_accounts.clone() }, - parachain_info: ParachainInfoConfig { parachain_id: id, ..Default::default() }, - parachain_staking: ParachainStakingConfig { - candidates: stakers.iter().map(|(accunt, _, balance)| (accunt.clone(), *balance)).collect::>(), - inflation_config, - delegations: vec![], - collator_commission: COLLATOR_COMMISSION, - parachain_bond_reserve_percent: PARACHAIN_BOND_RESERVE_PERCENT, - blocks_per_round: BLOCKS_PER_ROUND, - num_selected_candidates: NUM_SELECTED_CANDIDATES, + serde_json::json!({ + "balances": { + "balances": endowed_accounts.clone() }, - foreign_assets: Default::default(), - aura: Default::default(), - aura_ext: Default::default(), - parachain_system: Default::default(), - session: SessionConfig { - keys: initial_authorities - .iter() - .map(|acc| { - ( - acc.clone(), - acc.clone(), - get_base_session_keys(Into::<[u8; 32]>::into(acc.clone()).unchecked_into()), - ) - }) - .collect::>(), + "parachainInfo": { + "parachainId": id }, - polkadot_xcm: PolkadotXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION), ..Default::default() }, - transaction_payment: Default::default(), - oracle_providers_membership: polimec_runtime::OracleProvidersMembershipConfig { - members: BoundedVec::truncate_from(initial_authorities), - ..Default::default() + "parachainStaking": { + "candidates": stakers.iter().map(|(accunt, _, balance)| (accunt.clone(), *balance)).collect::>(), + "inflationConfig": inflation_config, + "delegations": [], + "collatorCommission": COLLATOR_COMMISSION, + "parachainBondReservePercent": PARACHAIN_BOND_RESERVE_PERCENT, + "blocksPerRound": BLOCKS_PER_ROUND, + "numSelectedCandidates": NUM_SELECTED_CANDIDATES }, - council: Default::default(), - technical_committee: Default::default(), - democracy: Default::default(), - elections: ElectionsConfig { - members: endowed_accounts - .iter() - .map(|(member, _)| member) - .take((endowed_accounts.len() + 1) / 2) - .cloned() - .map(|member| (member, STASH)) - .collect(), + "session": { + "keys": initial_authorities.iter().map(|acc| { + ( + acc.clone(), + acc.clone(), + get_polimec_session_keys(Into::<[u8; 32]>::into(acc.clone()).unchecked_into()) + ) + }).collect::>() }, - treasury: Default::default(), - vesting: Default::default(), - } + "polkadotXcm": { + "safeXcmVersion": SAFE_XCM_VERSION + }, + "oracleProvidersMembership": { + "members": BoundedVec::>::truncate_from(initial_authorities), + }, + "elections": { + "members": endowed_accounts.iter().map(|(member, _)| member).take((endowed_accounts.len() + 1) / 2).cloned().map(|member| (member, STASH)).collect::>() + } + }) } diff --git a/nodes/parachain/src/chain_spec/politest.rs b/nodes/parachain/src/chain_spec/politest.rs index 70e2bd49c..d958cb777 100644 --- a/nodes/parachain/src/chain_spec/politest.rs +++ b/nodes/parachain/src/chain_spec/politest.rs @@ -19,21 +19,19 @@ //! Polimec Testnet chain specification use cumulus_primitives_core::ParaId; -use frame_benchmarking::frame_support::bounded_vec; use politest_runtime::{ pallet_parachain_staking::{ inflation::{perbill_annual_to_perbill_round, BLOCKS_PER_YEAR}, InflationInfo, Range, }, - AccountId, AuraId as AuthorityId, Balance, BalancesConfig, CouncilConfig, ForeignAssetsConfig, MinCandidateStk, - OracleProvidersMembershipConfig, ParachainInfoConfig, ParachainStakingConfig, PolkadotXcmConfig, Runtime, - RuntimeGenesisConfig, SessionConfig, SudoConfig, SystemConfig, TechnicalCommitteeConfig, EXISTENTIAL_DEPOSIT, PLMC, + AccountId, AuraId as AuthorityId, Balance, MinCandidateStk, OracleProvidersMembershipConfig, Runtime, + RuntimeGenesisConfig, EXISTENTIAL_DEPOSIT, PLMC, }; use sc_service::ChainType; use sp_core::{crypto::UncheckedInto, sr25519}; -use sp_runtime::{traits::AccountIdConversion, Perbill, Percent}; +use sp_runtime::{bounded_vec, traits::AccountIdConversion, Perbill, Percent}; -use crate::chain_spec::{get_account_id_from_seed, DEFAULT_PARA_ID}; +use crate::chain_spec::{get_account_id_from_seed, GenericChainSpec, DEFAULT_PARA_ID}; use super::{get_properties, Extensions}; @@ -67,7 +65,7 @@ pub fn polimec_inflation_config() -> InflationInfo { } } -pub fn get_testnet_session_keys(keys: AuthorityId) -> politest_runtime::SessionKeys { +pub fn get_politest_session_keys(keys: AuthorityId) -> politest_runtime::SessionKeys { politest_runtime::SessionKeys { aura: keys } } @@ -81,8 +79,7 @@ pub fn get_populated_chain_spec() -> Result { "polimec", ChainType::Local, move || { - populated_genesis( - wasm, + testing_genesis( vec![ (get_account_id_from_seed::("Alice"), None, 2 * MinCandidateStk::get()), (get_account_id_from_seed::("Bob"), None, 2 * MinCandidateStk::get()), @@ -110,116 +107,98 @@ pub fn get_populated_chain_spec() -> Result { None, Some(properties), Extensions { relay_chain: "rococo-local".into(), para_id: DEFAULT_PARA_ID.into() }, + wasm, )) } -pub fn get_local_chain_spec() -> Result { - let properties = get_properties("PLMC", 10, 41); - let wasm = politest_runtime::WASM_BINARY.ok_or("No WASM")?; +pub fn get_local_chain_spec() -> GenericChainSpec { + let properties = get_properties("RLMC", 10, 41); - Ok(ChainSpec::from_genesis( - "Politest", - "polimec", - ChainType::Local, - move || { - local_genesis( - wasm, - vec![ - (get_account_id_from_seed::("Alice"), None, 2 * MinCandidateStk::get()), - (get_account_id_from_seed::("Bob"), None, 2 * MinCandidateStk::get()), - ], - polimec_inflation_config(), - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - ], - vec![ - (get_account_id_from_seed::("Alice"), 5 * MinCandidateStk::get()), - (get_account_id_from_seed::("Bob"), 5 * MinCandidateStk::get()), - (get_account_id_from_seed::("Charlie"), 5 * MinCandidateStk::get()), - (get_account_id_from_seed::("Dave"), 5 * MinCandidateStk::get()), - (get_account_id_from_seed::("Eve"), 5 * MinCandidateStk::get()), - (get_account_id_from_seed::("Ferdie"), 5 * MinCandidateStk::get()), - ], - get_account_id_from_seed::("Alice"), - DEFAULT_PARA_ID, - ) - }, - vec![], - None, - None, - None, - Some(properties), + GenericChainSpec::builder( + politest_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), Extensions { relay_chain: "rococo-local".into(), para_id: DEFAULT_PARA_ID.into() }, + ) + .with_name("Rolimec Develop") + .with_id("rolimec-dev") + .with_chain_type(ChainType::Local) + .with_protocol_id("polimec") + .with_properties(properties) + .with_genesis_config_patch(testnet_genesis( + vec![ + (get_account_id_from_seed::("Alice"), None, 2 * MinCandidateStk::get()), + (get_account_id_from_seed::("Bob"), None, 2 * MinCandidateStk::get()), + ], + polimec_inflation_config(), + vec![get_account_id_from_seed::("Alice"), get_account_id_from_seed::("Bob")], + vec![ + (get_account_id_from_seed::("Alice"), 5 * MinCandidateStk::get()), + (get_account_id_from_seed::("Bob"), 5 * MinCandidateStk::get()), + (get_account_id_from_seed::("Charlie"), 5 * MinCandidateStk::get()), + (get_account_id_from_seed::("Dave"), 5 * MinCandidateStk::get()), + (get_account_id_from_seed::("Eve"), 5 * MinCandidateStk::get()), + (get_account_id_from_seed::("Ferdie"), 5 * MinCandidateStk::get()), + ], + get_account_id_from_seed::("Alice"), + DEFAULT_PARA_ID, )) + .build() } #[allow(clippy::too_many_arguments)] -fn local_genesis( - wasm_binary: &[u8], +fn testnet_genesis( stakers: Vec<(AccountId, Option, Balance)>, inflation_config: InflationInfo, initial_authorities: Vec, mut endowed_accounts: Vec<(AccountId, Balance)>, sudo_account: AccountId, id: ParaId, -) -> RuntimeGenesisConfig { +) -> serde_json::Value { let accounts = endowed_accounts.iter().map(|(account, _)| account.clone()).collect::>(); - endowed_accounts - .push((::PalletId::get().into_account_truncating(), EXISTENTIAL_DEPOSIT)); - RuntimeGenesisConfig { - system: SystemConfig { code: wasm_binary.to_vec(), ..Default::default() }, - balances: BalancesConfig { balances: endowed_accounts.clone() }, - foreign_assets: ForeignAssetsConfig { - assets: vec![( + + let funding_accounts = vec![ + (::PalletId::get().into_account_truncating(), EXISTENTIAL_DEPOSIT), + (politest_runtime::TreasuryAccount::get(), EXISTENTIAL_DEPOSIT), + ]; + endowed_accounts.append(&mut funding_accounts.clone()); + + serde_json::json!({ + "balances": { "balances": endowed_accounts.clone() }, + "foreignAssets": { + "assets": vec![( pallet_funding::types::AcceptedFundingAsset::USDT.to_assethub_id(), - ::PalletId::get().into_account_truncating(), + &AccountIdConversion::::into_account_truncating(&::PalletId::get()), false, 10, )], - metadata: vec![], - accounts: vec![], }, - parachain_info: ParachainInfoConfig { parachain_id: id, ..Default::default() }, - parachain_staking: ParachainStakingConfig { - candidates: stakers.iter().map(|(accunt, _, balance)| (accunt.clone(), *balance)).collect::>(), - inflation_config, - delegations: vec![], - collator_commission: COLLATOR_COMMISSION, - parachain_bond_reserve_percent: PARACHAIN_BOND_RESERVE_PERCENT, - blocks_per_round: BLOCKS_PER_ROUND, - num_selected_candidates: NUM_SELECTED_CANDIDATES, + "parachainInfo": { "parachainId": id }, + "parachainStaking": { + "candidates": stakers.iter().map(|(accunt, _, balance)| (accunt.clone(), *balance)).collect::>(), + "inflationConfig": inflation_config, + "collatorCommission": COLLATOR_COMMISSION, + "parachainBondReservePercent": PARACHAIN_BOND_RESERVE_PERCENT, + "blocksPerRound": BLOCKS_PER_ROUND, + "numSelectedCandidates": NUM_SELECTED_CANDIDATES, }, - polimec_funding: Default::default(), - // no need to pass anything to aura, in fact it will panic if we do. Session will take care - // of this. - aura: Default::default(), - aura_ext: Default::default(), - parachain_system: Default::default(), - session: SessionConfig { - keys: initial_authorities + "session": { + "keys": initial_authorities .iter() .map(|acc| { ( acc.clone(), acc.clone(), - get_testnet_session_keys(Into::<[u8; 32]>::into(acc.clone()).unchecked_into()), + get_politest_session_keys(Into::<[u8; 32]>::into(acc.clone()).unchecked_into()), ) }) .collect::>(), }, - polkadot_xcm: PolkadotXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION), ..Default::default() }, - treasury: Default::default(), - sudo: SudoConfig { key: Some(sudo_account) }, - council: CouncilConfig { members: accounts.clone(), phantom: Default::default() }, - technical_committee: TechnicalCommitteeConfig { - members: accounts.clone().into_iter().take(5).collect(), - phantom: Default::default(), + "polkadotXcm": { "safeXcmVersion": Some(SAFE_XCM_VERSION) }, + "sudo": { "key": Some(sudo_account) }, + "council": { "members": accounts.clone() }, + "technicalCommittee": { + "members": accounts.clone().into_iter().take(5).collect::>(), }, - democracy: Default::default(), - elections: Default::default(), - vesting: Default::default(), - oracle_providers_membership: OracleProvidersMembershipConfig { + "oracleProvidersMembership": OracleProvidersMembershipConfig { members: bounded_vec![ get_account_id_from_seed::("Alice"), get_account_id_from_seed::("Bob"), @@ -227,18 +206,14 @@ fn local_genesis( ], phantom: Default::default(), }, - } + }) } #[cfg(feature = "std")] mod testing_helpers { use super::*; pub use macros::generate_accounts; - pub use pallet_funding::{ - instantiator::{TestProjectParams, UserToUSDBalance}, - AuctionPhase, ProjectStatus, *, - }; - pub use politest_runtime::AccountId; + pub use pallet_funding::{instantiator, instantiator::UserToUSDBalance, AuctionPhase, ProjectStatus, *}; pub use sp_core::H256; pub use sp_runtime::{ traits::{ConstU32, Get, PhantomData}, @@ -342,8 +317,7 @@ mod testing_helpers { #[cfg(feature = "std")] #[allow(clippy::too_many_arguments)] -fn populated_genesis( - wasm_binary: &[u8], +fn testing_genesis( stakers: Vec<(AccountId, Option, Balance)>, inflation_config: InflationInfo, initial_authorities: Vec, @@ -351,6 +325,11 @@ fn populated_genesis( sudo_account: AccountId, id: ParaId, ) -> RuntimeGenesisConfig { + use politest_runtime::{ + BalancesConfig, CouncilConfig, ForeignAssetsConfig, ParachainInfoConfig, ParachainStakingConfig, + PolkadotXcmConfig, SessionConfig, SudoConfig, TechnicalCommitteeConfig, + }; + use pallet_funding::instantiator::TestProjectParams; use testing_helpers::*; // only used to generate some values, and not for chain interactions @@ -386,7 +365,7 @@ fn populated_genesis( .push((::PalletId::get().into_account_truncating(), EXISTENTIAL_DEPOSIT)); endowed_accounts.push((::ContributionTreasury::get(), EXISTENTIAL_DEPOSIT)); RuntimeGenesisConfig { - system: SystemConfig { code: wasm_binary.to_vec(), ..Default::default() }, + system: Default::default(), oracle_providers_membership: OracleProvidersMembershipConfig { members: bounded_vec![ get_account_id_from_seed::("Alice"), @@ -487,7 +466,7 @@ fn populated_genesis( ( acc.clone(), acc.clone(), - get_testnet_session_keys(Into::<[u8; 32]>::into(acc.clone()).unchecked_into()), + get_politest_session_keys(Into::<[u8; 32]>::into(acc.clone()).unchecked_into()), ) }) .collect::>(), diff --git a/nodes/parachain/src/cli.rs b/nodes/parachain/src/cli.rs index 83acd6c25..64c2be050 100644 --- a/nodes/parachain/src/cli.rs +++ b/nodes/parachain/src/cli.rs @@ -40,8 +40,11 @@ pub enum Subcommand { /// Remove the whole chain. PurgeChain(cumulus_client_cli::PurgeChainCmd), - /// Export the genesis state of the parachain. - ExportGenesisState(cumulus_client_cli::ExportGenesisStateCommand), + /// Export the genesis head data of the parachain. + /// + /// Head data is the encoded block header. + #[command(alias = "export-genesis-state")] + ExportGenesisHead(cumulus_client_cli::ExportGenesisHeadCommand), /// Export the genesis wasm of the parachain. ExportGenesisWasm(cumulus_client_cli::ExportGenesisWasmCommand), @@ -51,12 +54,9 @@ pub enum Subcommand { #[command(subcommand)] Benchmark(frame_benchmarking_cli::BenchmarkCmd), - /// Try some testing command against a specified runtime state. - #[cfg(feature = "try-runtime")] - TryRuntime(try_runtime_cli::TryRuntimeCmd), - - /// Errors since the binary was not build with `--features try-runtime`. - #[cfg(not(feature = "try-runtime"))] + /// Try-runtime has migrated to a standalone + /// [CLI](). The subcommand exists as a stub and + /// deprecation notice. It will be removed entirely some time after Janurary 2024. TryRuntime, } diff --git a/nodes/parachain/src/command.rs b/nodes/parachain/src/command.rs index ef045dbbe..a52a2a832 100644 --- a/nodes/parachain/src/command.rs +++ b/nodes/parachain/src/command.rs @@ -18,8 +18,8 @@ use std::{net::SocketAddr, path::PathBuf}; use cumulus_primitives_core::ParaId; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; -use log::{info, warn}; -use politest_runtime::Block; +use log::info; +use polimec_runtime::Block; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, SharedParams, SubstrateCli, @@ -95,15 +95,15 @@ fn load_spec(id: &str) -> std::result::Result, String> { "rolimec" => Box::new(chain_spec::polimec::ChainSpec::from_json_bytes(rolimec_chain_spec)?), // TODO: add politest live // "politest" => Box::new(chain_spec::politest::get_()?), - "polimec-local" => Box::new(chain_spec::polimec::get_local_chain_spec()?), - "rolimec-local" => Box::new(chain_spec::polimec::get_rococo_chain_spec()?), - "politest-local" => Box::new(chain_spec::politest::get_local_chain_spec()?), + "polimec-local" => Box::new(chain_spec::polimec::get_local_chain_spec()), + "rolimec-local" => Box::new(chain_spec::polimec::get_rococo_chain_spec()), + "politest-local" => Box::new(chain_spec::politest::get_local_chain_spec()), #[cfg(feature = "std")] "politest-populated" => Box::new(chain_spec::politest::get_populated_chain_spec()?), // -- Fallback (generic chainspec) "" => { log::warn!("No ChainSpec.id specified, so using default one, based on polimec-rococo-local"); - Box::new(chain_spec::politest::get_local_chain_spec()?) + Box::new(chain_spec::politest::get_local_chain_spec()) }, // A custom chainspec path path => { @@ -215,10 +215,14 @@ pub fn run() -> Result<()> { }) }, Some(Subcommand::ExportBlocks(cmd)) => { - construct_async_run!(|components, cli, cmd, config| Ok(cmd.run(components.client, config.database))) + construct_async_run!(|components, cli, cmd, config| { + Ok(cmd.run(components.client, config.database)) + }) }, Some(Subcommand::ExportState(cmd)) => { - construct_async_run!(|components, cli, cmd, config| Ok(cmd.run(components.client, config.chain_spec))) + construct_async_run!(|components, cli, cmd, config| { + Ok(cmd.run(components.client, config.chain_spec)) + }) }, Some(Subcommand::ImportBlocks(cmd)) => { construct_async_run!(|components, cli, cmd, config| { @@ -239,19 +243,22 @@ pub fn run() -> Result<()> { [RelayChainCli::executable_name()].iter().chain(cli.relay_chain_args.iter()), ); - let polkadot_config = - SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, config.tokio_handle.clone()) - .map_err(|err| format!("Relay chain argument error: {}", err))?; + let polkadot_config = SubstrateCli::create_configuration( + &polkadot_cli, + &polkadot_cli, + config.tokio_handle.clone(), + ) + .map_err(|err| format!("Relay chain argument error: {}", err))?; cmd.run(config, polkadot_config) }) }, - Some(Subcommand::ExportGenesisState(cmd)) => { + Some(Subcommand::ExportGenesisHead(cmd)) => { let runner = cli.create_runner(cmd)?; runner.sync_run(|config| { let partials = new_partial(&config)?; - cmd.run(&*config.chain_spec, &*partials.client) + cmd.run(partials.client) }) }, Some(Subcommand::ExportGenesisWasm(cmd)) => { @@ -278,11 +285,13 @@ pub fn run() -> Result<()> { cmd.run(partials.client) }), #[cfg(not(feature = "runtime-benchmarks"))] - BenchmarkCmd::Storage(_) => Err(sc_cli::Error::Input( - "Compile with --features=runtime-benchmarks \ + BenchmarkCmd::Storage(_) => + return Err(sc_cli::Error::Input( + "Compile with --features=runtime-benchmarks \ to enable storage benchmarks." - .into(), - )), + .into(), + ) + .into()), #[cfg(feature = "runtime-benchmarks")] BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { let partials = new_partial(&config)?; @@ -298,28 +307,7 @@ pub fn run() -> Result<()> { _ => Err("Benchmarking sub-command unsupported".into()), } }, - #[cfg(feature = "try-runtime")] - Some(Subcommand::TryRuntime(cmd)) => { - use parachains_common::MILLISECS_PER_BLOCK; - use try_runtime_cli::block_building_info::timestamp_with_aura_info; - - let runner = cli.create_runner(cmd)?; - - type HostFunctions = (sp_io::SubstrateHostFunctions, frame_benchmarking::benchmarking::HostFunctions); - - // grab the task manager. - let registry = &runner.config().prometheus_config.as_ref().map(|cfg| &cfg.registry); - let task_manager = sc_service::TaskManager::new(runner.config().tokio_handle.clone(), *registry) - .map_err(|e| format!("Error: {:?}", e))?; - - let info_provider = timestamp_with_aura_info(MILLISECS_PER_BLOCK); - - runner.async_run(|_| Ok((cmd.run::(Some(info_provider)), task_manager))) - }, - #[cfg(not(feature = "try-runtime"))] - Some(Subcommand::TryRuntime) => Err("Try-runtime was not enabled when building the node. \ - You can enable it with `--features try-runtime`." - .into()), + Some(Subcommand::TryRuntime) => Err("The `try-runtime` subcommand has been migrated to a standalone CLI (https://github.com/paritytech/try-runtime-cli). It is no longer being maintained here and will be removed entirely some time after January 2024. Please remove this subcommand from your runtime and use the standalone CLI.".into()), None => { let runner = cli.create_runner(&cli.run.normalize())?; let collator_options = cli.run.collator_options(); @@ -344,32 +332,32 @@ pub fn run() -> Result<()> { let id = ParaId::from(para_id); let parachain_account = - AccountIdConversion::::into_account_truncating(&id); + AccountIdConversion::::into_account_truncating( + &id, + ); let tokio_handle = config.tokio_handle.clone(); - let polkadot_config = SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, tokio_handle) - .map_err(|err| format!("Relay chain argument error: {}", err))?; + let polkadot_config = + SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, tokio_handle) + .map_err(|err| format!("Relay chain argument error: {}", err))?; info!("Parachain Account: {parachain_account}"); info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); - if !collator_options.relay_chain_rpc_urls.is_empty() && !cli.relay_chain_args.is_empty() { - warn!( - "Detected relay chain node arguments together with --relay-chain-rpc-url. \ - This command starts a minimal Polkadot node that only uses a \ - network-related subset of all relay chain CLI options." - ); - } - - crate::service::start_parachain_node(config, polkadot_config, collator_options, id, hwbench) - .await - .map(|r| r.0) - .map_err(Into::into) + crate::service::start_parachain_node( + config, + polkadot_config, + collator_options, + id, + hwbench, + ) + .await + .map(|r| r.0) + .map_err(Into::into) }) }, } } - impl DefaultConfigurationValues for RelayChainCli { fn p2p_listen_port() -> u16 { 30334 diff --git a/nodes/parachain/src/main.rs b/nodes/parachain/src/main.rs index e431dfd9c..7d45dcaba 100644 --- a/nodes/parachain/src/main.rs +++ b/nodes/parachain/src/main.rs @@ -19,11 +19,10 @@ #![warn(missing_docs)] mod chain_spec; -#[macro_use] -mod service; mod cli; mod command; mod rpc; +mod service; fn main() -> sc_cli::Result<()> { command::run() diff --git a/nodes/parachain/src/rpc.rs b/nodes/parachain/src/rpc.rs index f3c64d83c..75d054060 100644 --- a/nodes/parachain/src/rpc.rs +++ b/nodes/parachain/src/rpc.rs @@ -20,15 +20,14 @@ use std::sync::Arc; -use sc_client_api::AuxStore; +use polimec_runtime::{opaque::Block, AccountId, Balance, Nonce}; + pub use sc_rpc::DenyUnsafe; use sc_transaction_pool_api::TransactionPool; use sp_api::ProvideRuntimeApi; use sp_block_builder::BlockBuilder; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; -use politest_runtime::{opaque::Block, AccountId, Balance, Nonce}; - /// A type representing all RPC extensions. pub type RpcExtension = jsonrpsee::RpcModule<()>; @@ -47,7 +46,6 @@ pub fn create_full(deps: FullDeps) -> Result + HeaderBackend - + AuxStore + HeaderMetadata + Send + Sync diff --git a/nodes/parachain/src/service.rs b/nodes/parachain/src/service.rs index 3597a7170..5e2b6420a 100644 --- a/nodes/parachain/src/service.rs +++ b/nodes/parachain/src/service.rs @@ -21,17 +21,21 @@ use std::{sync::Arc, time::Duration}; use cumulus_client_cli::CollatorOptions; // Local Runtime Types -use politest_runtime::{opaque::Block, RuntimeApi}; +use polimec_runtime::{ + opaque::{Block, Hash}, + RuntimeApi, +}; // Cumulus Imports -use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, SlotProportion}; -use cumulus_client_consensus_common::{ParachainBlockImport as TParachainBlockImport, ParachainConsensus}; +use cumulus_client_collator::service::CollatorService; +use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; +use cumulus_client_consensus_proposer::Proposer; use cumulus_client_service::{ - build_network, build_relay_chain_interface, prepare_node_config, start_collator, start_full_node, - BuildNetworkParams, StartCollatorParams, StartFullNodeParams, + build_network, build_relay_chain_interface, prepare_node_config, start_relay_chain_tasks, BuildNetworkParams, + CollatorSybilResistance, DARecoveryProfile, StartRelayChainTasksParams, }; -use cumulus_primitives_core::ParaId; -use cumulus_relay_chain_interface::RelayChainInterface; +use cumulus_primitives_core::{relay_chain::CollatorPair, ParaId}; +use cumulus_relay_chain_interface::{OverseerHandle, RelayChainInterface}; // Substrate Imports use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; @@ -53,11 +57,11 @@ impl sc_executor::NativeExecutionDispatch for ParachainNativeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; fn dispatch(method: &str, data: &[u8]) -> Option> { - politest_runtime::api::dispatch(method, data) + polimec_runtime::api::dispatch(method, data) } fn native_version() -> sc_executor::NativeVersion { - politest_runtime::native_version() + polimec_runtime::native_version() } } @@ -69,23 +73,20 @@ type ParachainBackend = TFullBackend; type ParachainBlockImport = TParachainBlockImport, ParachainBackend>; +/// Assembly of PartialComponents (enough to run chain ops subcommands) +pub type Service = PartialComponents< + ParachainClient, + ParachainBackend, + (), + sc_consensus::DefaultImportQueue, + sc_transaction_pool::FullPool, + (ParachainBlockImport, Option, Option), +>; /// Starts a `ServiceBuilder` for a full service. /// /// Use this macro if you don't actually need the full service, but just the builder in order to /// be able to perform chain operations. -pub fn new_partial( - config: &Configuration, -) -> Result< - PartialComponents< - ParachainClient, - ParachainBackend, - (), - sc_consensus::DefaultImportQueue, - sc_transaction_pool::FullPool, - (ParachainBlockImport, Option, Option), - >, - sc_service::Error, -> { +pub fn new_partial(config: &Configuration) -> Result { let telemetry = config .telemetry_endpoints .clone() @@ -187,7 +188,6 @@ async fn start_node_impl( .await .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; - let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); @@ -203,6 +203,7 @@ async fn start_node_impl( spawn_handle: task_manager.spawn_handle(), relay_chain_interface: relay_chain_interface.clone(), import_queue: params.import_queue, + sybil_resistance_level: CollatorSybilResistance::Resistant, // because of Aura }) .await?; @@ -258,8 +259,11 @@ async fn start_node_impl( // Here you can check whether the hardware meets your chains' requirements. Putting a link // in there and swapping out the requirements for your own are probably a good idea. The // requirements for a para-chain are dictated by its relay-chain. - if !SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench) && validator { - log::warn!("⚠️ The hardware does not meet the minimal requirements for role 'Authority'."); + match SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench) { + Err(err) if validator => { + log::warn!("⚠️ The hardware does not meet the minimal requirements {} for role \'Authority'.", err); + }, + _ => {}, } if let Some(ref mut telemetry) = telemetry { @@ -282,8 +286,21 @@ async fn start_node_impl( let overseer_handle = relay_chain_interface.overseer_handle().map_err(|e| sc_service::Error::Application(Box::new(e)))?; + start_relay_chain_tasks(StartRelayChainTasksParams { + client: client.clone(), + announce_block: announce_block.clone(), + para_id, + relay_chain_interface: relay_chain_interface.clone(), + task_manager: &mut task_manager, + da_recovery_profile: if validator { DARecoveryProfile::Collator } else { DARecoveryProfile::FullNode }, + import_queue: import_queue_service, + relay_chain_slot_duration, + recovery_handle: Box::new(overseer_handle.clone()), + sync_service: sync_service.clone(), + })?; + if validator { - let parachain_consensus = build_consensus( + start_consensus( client.clone(), block_import, prometheus_registry.as_ref(), @@ -293,42 +310,12 @@ async fn start_node_impl( transaction_pool, sync_service.clone(), params.keystore_container.keystore(), - force_authoring, - para_id, - )?; - - let spawner = task_manager.spawn_handle(); - let params = StartCollatorParams { - para_id, - block_status: client.clone(), - announce_block, - client: client.clone(), - task_manager: &mut task_manager, - relay_chain_interface, - spawner, - parachain_consensus, - import_queue: import_queue_service, - collator_key: collator_key.expect("Command line arguments do not allow this. qed"), relay_chain_slot_duration, - recovery_handle: Box::new(overseer_handle), - sync_service, - }; - - start_collator(params).await?; - } else { - let params = StartFullNodeParams { - client: client.clone(), - announce_block, - task_manager: &mut task_manager, para_id, - relay_chain_interface, - relay_chain_slot_duration, - import_queue: import_queue_service, - recovery_handle: Box::new(overseer_handle), - sync_service, - }; - - start_full_node(params)?; + collator_key.expect("Command line arguments do not allow this. qed"), + overseer_handle, + announce_block, + )?; } start_network.start_network(); @@ -343,32 +330,30 @@ fn build_import_queue( config: &Configuration, telemetry: Option, task_manager: &TaskManager, -) -> Result, sc_service::Error> { +) -> Result, sc_service::Error> { let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; - cumulus_client_consensus_aura::import_queue::( - cumulus_client_consensus_aura::ImportQueueParams { - block_import, - client, - create_inherent_data_providers: move |_, _| async move { - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); - - Ok((slot, timestamp)) - }, - registry: config.prometheus_registry(), - spawner: &task_manager.spawn_essential_handle(), - telemetry, + Ok(cumulus_client_consensus_aura::equivocation_import_queue::fully_verifying_import_queue::< + sp_consensus_aura::sr25519::AuthorityPair, + _, + _, + _, + _, + >( + client, + block_import, + move |_, _| async move { + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); + Ok(timestamp) }, - ) - .map_err(Into::into) + slot_duration, + &task_manager.spawn_essential_handle(), + config.prometheus_registry(), + telemetry, + )) } -fn build_consensus( +fn start_consensus( client: Arc, block_import: ParachainBlockImport, prometheus_registry: Option<&Registry>, @@ -378,9 +363,17 @@ fn build_consensus( transaction_pool: Arc>, sync_oracle: Arc>, keystore: KeystorePtr, - force_authoring: bool, + relay_chain_slot_duration: Duration, para_id: ParaId, -) -> Result>, sc_service::Error> { + collator_key: CollatorPair, + overseer_handle: OverseerHandle, + announce_block: Arc>) + Send + Sync>, +) -> Result<(), sc_service::Error> { + use cumulus_client_consensus_aura::collators::basic::{self as basic_aura, Params as BasicAuraParams}; + + // NOTE: because we use Aura here explicitly, we can use `CollatorSybilResistance::Resistant` + // when starting the network. + let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( @@ -391,46 +384,34 @@ fn build_consensus( telemetry.clone(), ); - let params = BuildAuraConsensusParams { - proposer_factory, - create_inherent_data_providers: move |_, (relay_parent, validation_data)| { - let relay_chain_interface = relay_chain_interface.clone(); - async move { - let parachain_inherent = cumulus_primitives_parachain_inherent::ParachainInherentData::create_at( - relay_parent, - &relay_chain_interface, - &validation_data, - para_id, - ) - .await; - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); - - let parachain_inherent = parachain_inherent.ok_or_else(|| { - Box::::from("Failed to create parachain inherent") - })?; - Ok((slot, timestamp, parachain_inherent)) - } - }, + let proposer = Proposer::new(proposer_factory); + + let collator_service = + CollatorService::new(client.clone(), Arc::new(task_manager.spawn_handle()), announce_block, client.clone()); + + let params = BasicAuraParams { + create_inherent_data_providers: move |_, ()| async move { Ok(()) }, block_import, para_client: client, - backoff_authoring_blocks: Option::<()>::None, + relay_client: relay_chain_interface, sync_oracle, keystore, - force_authoring, + collator_key, + para_id, + overseer_handle, slot_duration, - // We got around 500ms for proposing - block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32), - // And a maximum of 750ms if slots are skipped - max_block_proposal_slot_portion: Some(SlotProportion::new(1f32 / 16f32)), - telemetry, + relay_chain_slot_duration, + proposer, + collator_service, + // Very limited proposal time. + authoring_duration: Duration::from_millis(500), + collation_request_receiver: None, }; - Ok(AuraConsensus::build::(params)) + let fut = basic_aura::run::(params); + task_manager.spawn_essential_handle().spawn("aura", None, fut); + + Ok(()) } /// Start a parachain node. diff --git a/pallets/democracy/Cargo.toml b/pallets/democracy/Cargo.toml index 2a194acbf..b608599dc 100644 --- a/pallets/democracy/Cargo.toml +++ b/pallets/democracy/Cargo.toml @@ -37,18 +37,18 @@ std = [ "frame-benchmarking?/std", "frame-support/std", "frame-system/std", + "log/std", "pallet-balances/std", "pallet-preimage/std", "pallet-scheduler/std", "parity-scale-codec/std", "scale-info/std", "serde", + "serde?/std", "sp-core/std", "sp-io/std", "sp-runtime/std", "sp-std/std", - "log/std", - "serde?/std" ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/pallets/democracy/src/benchmarking.rs b/pallets/democracy/src/benchmarking.rs index ea76b349c..da1f89151 100644 --- a/pallets/democracy/src/benchmarking.rs +++ b/pallets/democracy/src/benchmarking.rs @@ -20,7 +20,6 @@ use frame_support::{ traits::{fungible::Mutate, Currency, EnsureOrigin, Get, OnInitialize, UnfilteredDispatchable}, }; use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin}; -use sp_core::H256; use sp_runtime::{traits::Bounded, BoundedVec}; const REFERENDUM_COUNT_HINT: u32 = 10; @@ -39,7 +38,7 @@ fn make_proposal(n: u32) -> BoundedCallOf { ::Preimages::bound(call).unwrap() } -fn add_proposal(n: u32) -> Result { +fn add_proposal(n: u32) -> Result { let other = funded_account::("proposer", n); let value = T::MinimumDeposit::get(); let proposal = make_proposal::(n); @@ -48,7 +47,7 @@ fn add_proposal(n: u32) -> Result(n: u32) -> (ReferendumIndex, H256, PreimageHash) { +fn add_referendum(n: u32) -> (ReferendumIndex, T::Hash, T::Hash) { let vote_threshold = VoteThreshold::SimpleMajority; let proposal = make_proposal::(n); let hash = proposal.hash(); @@ -73,7 +72,7 @@ fn assert_has_event(generic_event: ::RuntimeEvent) { } // note a new preimage. -fn note_preimage() -> PreimageHash { +fn note_preimage() -> T::Hash { use core::sync::atomic::{AtomicU8, Ordering}; use sp_std::borrow::Cow; // note a new preimage on every function invoke. diff --git a/pallets/democracy/src/lib.rs b/pallets/democracy/src/lib.rs index b57ef1eaa..552e6167a 100644 --- a/pallets/democracy/src/lib.rs +++ b/pallets/democracy/src/lib.rs @@ -154,7 +154,7 @@ use frame_support::{ fungible::{Credit, Inspect, MutateFreeze, MutateHold}, schedule::{v3::Named as ScheduleNamed, DispatchTime}, tokens::{imbalance::OnUnbalanced, Precision}, - Bounded, EnsureOrigin, Get, Hash as PreimageHash, LockIdentifier, QueryPreimage, StorePreimage, + Bounded, EnsureOrigin, Get, LockIdentifier, QueryPreimage, StorePreimage, }, weights::Weight, }; @@ -195,7 +195,7 @@ type BalanceOf = <::Fungible as Inspect< = Credit<::AccountId, ::Fungible>; pub type CallOf = ::RuntimeCall; -pub type BoundedCallOf = Bounded>; +pub type BoundedCallOf = Bounded, ::Hashing>; type AccountIdLookupOf = <::Lookup as StaticLookup>::Source; #[frame_support::pallet] @@ -209,7 +209,6 @@ pub mod pallet { }, }; use frame_system::pallet_prelude::*; - use sp_core::H256; /// The current storage version. const STORAGE_VERSION: StorageVersion = StorageVersion::new(1); @@ -223,10 +222,10 @@ pub mod pallet { type RuntimeEvent: From> + IsType<::RuntimeEvent>; /// The Scheduler. - type Scheduler: ScheduleNamed, CallOf, Self::PalletsOrigin>; + type Scheduler: ScheduleNamed, CallOf, Self::PalletsOrigin, Hasher = Self::Hashing>; /// The Preimage provider. - type Preimages: QueryPreimage + StorePreimage; + type Preimages: QueryPreimage + StorePreimage; /// The overarching hold reason. type RuntimeHoldReason: From; @@ -417,20 +416,18 @@ pub mod pallet { /// (until when it may not be resubmitted) and who vetoed it. #[pallet::storage] pub type Blacklist = - StorageMap<_, Identity, H256, (BlockNumberFor, BoundedVec)>; + StorageMap<_, Identity, T::Hash, (BlockNumberFor, BoundedVec)>; /// Record of all proposals that have been subject to emergency cancellation. #[pallet::storage] - pub type Cancellations = StorageMap<_, Identity, H256, bool, ValueQuery>; + pub type Cancellations = StorageMap<_, Identity, T::Hash, bool, ValueQuery>; /// General information concerning any proposal or referendum. - /// The `PreimageHash` refers to the preimage of the `Preimages` provider which can be a JSON - /// dump or IPFS hash of a JSON file. /// /// Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove) /// large preimages. #[pallet::storage] - pub type MetadataOf = StorageMap<_, Blake2_128Concat, MetadataOwner, PreimageHash>; + pub type MetadataOf = StorageMap<_, Blake2_128Concat, MetadataOwner, T::Hash>; #[pallet::genesis_config] #[derive(frame_support::DefaultNoBound)] @@ -470,9 +467,9 @@ pub mod pallet { /// An account has cancelled a previous delegation operation. Undelegated { account: T::AccountId }, /// An external proposal has been vetoed. - Vetoed { who: T::AccountId, proposal_hash: PreimageHash, until: BlockNumberFor }, + Vetoed { who: T::AccountId, proposal_hash: T::Hash, until: BlockNumberFor }, /// A proposal_hash has been blacklisted permanently. - Blacklisted { proposal_hash: PreimageHash }, + Blacklisted { proposal_hash: T::Hash }, /// An account has voted in a referendum Voted { voter: T::AccountId, ref_index: ReferendumIndex, vote: AccountVote> }, /// An account has secconded a proposal @@ -484,14 +481,14 @@ pub mod pallet { /// Metadata owner. owner: MetadataOwner, /// Preimage hash. - hash: PreimageHash, + hash: T::Hash, }, /// Metadata for a proposal or a referendum has been cleared. MetadataCleared { /// Metadata owner. owner: MetadataOwner, /// Preimage hash. - hash: PreimageHash, + hash: T::Hash, }, /// Metadata has been transferred to new owner. MetadataTransferred { @@ -500,7 +497,7 @@ pub mod pallet { /// New metadata owner. owner: MetadataOwner, /// Preimage hash. - hash: PreimageHash, + hash: T::Hash, }, } @@ -764,7 +761,7 @@ pub mod pallet { #[pallet::weight(T::WeightInfo::fast_track())] pub fn fast_track( origin: OriginFor, - proposal_hash: PreimageHash, + proposal_hash: T::Hash, voting_period: BlockNumberFor, delay: BlockNumberFor, ) -> DispatchResult { @@ -807,7 +804,7 @@ pub mod pallet { /// Weight: `O(V + log(V))` where V is number of `existing vetoers` #[pallet::call_index(8)] #[pallet::weight(T::WeightInfo::veto_external())] - pub fn veto_external(origin: OriginFor, proposal_hash: PreimageHash) -> DispatchResult { + pub fn veto_external(origin: OriginFor, proposal_hash: T::Hash) -> DispatchResult { let who = T::VetoOrigin::ensure_origin(origin)?; if let Some((ext_proposal, _)) = NextExternal::::get() { @@ -1016,7 +1013,7 @@ pub mod pallet { #[pallet::weight((T::WeightInfo::blacklist(), DispatchClass::Operational))] pub fn blacklist( origin: OriginFor, - proposal_hash: H256, + proposal_hash: T::Hash, maybe_ref_index: Option, ) -> DispatchResult { T::BlacklistOrigin::ensure_origin(origin)?; @@ -1106,7 +1103,7 @@ pub mod pallet { (MetadataOwner::Referendum(_), None) => T::WeightInfo::clear_referendum_metadata(), } )] - pub fn set_metadata(origin: OriginFor, owner: MetadataOwner, maybe_hash: Option) -> DispatchResult { + pub fn set_metadata(origin: OriginFor, owner: MetadataOwner, maybe_hash: Option) -> DispatchResult { match owner { MetadataOwner::External => { let (_, threshold) = >::get().ok_or(Error::::NoProposal)?; diff --git a/pallets/democracy/src/tests.rs b/pallets/democracy/src/tests.rs index cd7659a90..3fd9875ff 100644 --- a/pallets/democracy/src/tests.rs +++ b/pallets/democracy/src/tests.rs @@ -14,7 +14,7 @@ use super::*; use crate as pallet_democracy; use frame_support::{ - assert_noop, assert_ok, ord_parameter_types, parameter_types, + assert_noop, assert_ok, derive_impl, ord_parameter_types, parameter_types, traits::{ fungible::InspectFreeze, ConstU32, ConstU64, Contains, EqualPrivilegeOnly, OnInitialize, SortedMembers, StorePreimage, @@ -22,7 +22,6 @@ use frame_support::{ weights::Weight, }; use frame_system::{EnsureRoot, EnsureSigned, EnsureSignedBy}; -use sp_core::H256; use sp_runtime::{ traits::{BadOrigin, BlakeTwo256, Hash, IdentityLookup}, BuildStorage, Perbill, @@ -70,38 +69,20 @@ parameter_types! { Weight::from_parts(frame_support::weights::constants::WEIGHT_REF_TIME_PER_SECOND, u64::MAX), ); } +#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Test { type AccountData = pallet_balances::AccountData; type AccountId = u64; type BaseCallFilter = BaseFilter; type Block = Block; - type BlockHashCount = ConstU64<250>; - type BlockLength = (); - type BlockWeights = BlockWeights; - type DbWeight = (); - type Hash = H256; - type Hashing = BlakeTwo256; type Lookup = IdentityLookup; - type MaxConsumers = frame_support::traits::ConstU32<16>; - type Nonce = u64; - type OnKilledAccount = (); - type OnNewAccount = (); - type OnSetCode = (); - type PalletInfo = PalletInfo; - type RuntimeCall = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type RuntimeOrigin = RuntimeOrigin; - type SS58Prefix = (); - type SystemWeightInfo = (); - type Version = (); } parameter_types! { pub MaximumSchedulerWeight: Weight = Perbill::from_percent(80) * BlockWeights::get().max_block; } impl pallet_preimage::Config for Test { - type BaseDeposit = (); - type ByteDeposit = (); + type Consideration = (); type Currency = Balances; type ManagerOrigin = EnsureRoot; type RuntimeEvent = RuntimeEvent; @@ -133,6 +114,7 @@ impl pallet_balances::Config for Test { type MaxReserves = (); type ReserveIdentifier = [u8; 8]; type RuntimeEvent = RuntimeEvent; + type RuntimeFreezeReason = RuntimeFreezeReason; type RuntimeHoldReason = RuntimeHoldReason; type WeightInfo = (); } @@ -286,7 +268,7 @@ fn tally(r: ReferendumIndex) -> Tally { } /// note a new preimage without registering. -fn note_preimage(who: u64) -> PreimageHash { +fn note_preimage(who: u64) -> ::Hash { use std::sync::atomic::{AtomicU8, Ordering}; // note a new preimage on every function invoke. static COUNTER: AtomicU8 = AtomicU8::new(0); diff --git a/pallets/elections-phragmen/Cargo.toml b/pallets/elections-phragmen/Cargo.toml index a25219461..369ec8ef1 100644 --- a/pallets/elections-phragmen/Cargo.toml +++ b/pallets/elections-phragmen/Cargo.toml @@ -30,7 +30,6 @@ sp-staking.workspace = true pallet-balances.workspace = true sp-core.workspace = true sp-tracing.workspace = true -substrate-test-utils.workspace = true [features] default = [ "std" ] diff --git a/pallets/elections-phragmen/src/lib.rs b/pallets/elections-phragmen/src/lib.rs index c478c7d22..304d14b4b 100644 --- a/pallets/elections-phragmen/src/lib.rs +++ b/pallets/elections-phragmen/src/lib.rs @@ -1216,39 +1216,14 @@ mod tests { traits::{fungible::InspectFreeze, ConstU32, ConstU64, OnInitialize}, }; use frame_system::ensure_signed; - use sp_core::H256; - use sp_runtime::{ - testing::Header, - traits::{BlakeTwo256, IdentityLookup}, - BuildStorage, - }; - use substrate_test_utils::assert_eq_uvec; + use sp_runtime::{testing::Header, traits::IdentityLookup, BuildStorage}; #[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Test { type AccountData = pallet_balances::AccountData; type AccountId = u64; - type BaseCallFilter = frame_support::traits::Everything; type Block = Block; - type BlockHashCount = ConstU64<250>; - type BlockLength = (); - type BlockWeights = (); - type DbWeight = (); - type Hash = H256; - type Hashing = BlakeTwo256; type Lookup = IdentityLookup; - type MaxConsumers = ConstU32<16>; - type Nonce = u64; - type OnKilledAccount = (); - type OnNewAccount = (); - type OnSetCode = (); - type PalletInfo = PalletInfo; - type RuntimeCall = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type RuntimeOrigin = RuntimeOrigin; - type SS58Prefix = (); - type SystemWeightInfo = (); - type Version = (); } impl pallet_balances::Config for Test { @@ -1263,6 +1238,7 @@ mod tests { type MaxReserves = (); type ReserveIdentifier = [u8; 8]; type RuntimeEvent = RuntimeEvent; + type RuntimeFreezeReason = RuntimeFreezeReason; type RuntimeHoldReason = RuntimeHoldReason; type WeightInfo = (); } @@ -3086,4 +3062,24 @@ mod tests { assert_ok!(Elections::clean_defunct_voters(RuntimeOrigin::root(), 4, 2)); }) } + + #[macro_export] + macro_rules! assert_eq_uvec { + ( $x:expr, $y:expr $(,)? ) => { + $crate::__assert_eq_uvec!($x, $y); + $crate::__assert_eq_uvec!($y, $x); + }; + } + + #[macro_export] + #[doc(hidden)] + macro_rules! __assert_eq_uvec { + ( $x:expr, $y:expr ) => { + $x.iter().for_each(|e| { + if !$y.contains(e) { + panic!("vectors not equal: {:?} != {:?}", $x, $y); + } + }); + }; + } } diff --git a/pallets/funding/Cargo.toml b/pallets/funding/Cargo.toml index ab9998c3d..7aca9552f 100644 --- a/pallets/funding/Cargo.toml +++ b/pallets/funding/Cargo.toml @@ -12,10 +12,10 @@ version.workspace = true [dependencies] serde = { workspace = true } -parity-scale-codec = { version = "3.6.5", features = [ +parity-scale-codec = { workspace = true, features = [ "derive", ], default-features = false } -scale-info = { version = "2.9.0", default-features = false, features = [ +scale-info = { workspace = true, default-features = false, features = [ "derive", ] } tokio = { version = "1", features = ["full"], optional = true } @@ -36,14 +36,10 @@ parachains-common.workspace = true sp-core.workspace = true pallet-balances.workspace = true sp-io.workspace = true -pallet-timestamp.workspace = true -xcm-builder.workspace = true xcm.workspace = true polimec-xcm-executor.workspace = true pallet-xcm.workspace = true -polkadot-runtime.workspace = true -polkadot-runtime-parachains.workspace = true -polkadot-parachain.workspace = true +polkadot-parachain-primitives.workspace = true polimec-receiver.workspace = true assert_matches2 = { workspace = true, optional = true } polimec-common-test-utils = { workspace = true, optional = true } @@ -56,6 +52,7 @@ pallet-assets.workspace = true pallet-linear-release.workspace = true polimec-common-test-utils.workspace = true macros.workspace = true +xcm-builder.workspace = true xcm-executor.workspace = true [features] @@ -81,9 +78,7 @@ std = [ "polimec-common/std", "polimec-receiver/std", "polimec-xcm-executor/std", - "polkadot-parachain/std", - "polkadot-runtime-parachains/std", - "polkadot-runtime/std", + "polkadot-parachain-primitives/std", "scale-info/std", "serde/std", "sp-arithmetic/std", @@ -106,13 +101,13 @@ runtime-benchmarks = [ "pallet-linear-release/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", "polimec-common-test-utils", + "polimec-common-test-utils?/runtime-benchmarks", "polimec-common/runtime-benchmarks", "polimec-receiver/runtime-benchmarks", "polimec-xcm-executor/runtime-benchmarks", - "polkadot-parachain/runtime-benchmarks", - "polkadot-runtime-parachains/runtime-benchmarks", - "polkadot-runtime/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "xcm-builder/runtime-benchmarks", "xcm-executor/runtime-benchmarks", @@ -126,10 +121,9 @@ try-runtime = [ "pallet-linear-release/try-runtime", "pallet-timestamp/try-runtime", "pallet-xcm/try-runtime", + "polimec-common-test-utils?/try-runtime", "polimec-common/try-runtime", "polimec-receiver/try-runtime", "polimec-xcm-executor/try-runtime", - "polkadot-runtime-parachains/try-runtime", - "polkadot-runtime/try-runtime", "sp-runtime/try-runtime", ] diff --git a/pallets/funding/src/benchmarking.rs b/pallets/funding/src/benchmarking.rs index 8041cb76e..c2331e742 100644 --- a/pallets/funding/src/benchmarking.rs +++ b/pallets/funding/src/benchmarking.rs @@ -41,7 +41,7 @@ use scale_info::prelude::format; use sp_arithmetic::Percent; use sp_core::H256; use sp_io::hashing::blake2_256; -use sp_runtime::traits::{BlakeTwo256, Get, Member, TrailingZeroInput}; +use sp_runtime::traits::{BlakeTwo256, Get, Member, TrailingZeroInput, Zero}; const METADATA: &str = r#" { @@ -393,7 +393,15 @@ mod benchmarks { whitelist_account!(issuer); let project_metadata = default_project::(inst.get_new_nonce(), issuer.clone()); - inst.mint_plmc_to(vec![UserToPLMCBalance::new(issuer.clone(), ed * 2u64.into())]); + let metadata_deposit = T::ContributionTokenCurrency::calc_metadata_deposit( + project_metadata.token_information.name.as_slice(), + project_metadata.token_information.symbol.as_slice(), + ); + let ct_treasury_account_deposit = T::ContributionTokenCurrency::deposit_required(0); + inst.mint_plmc_to(vec![UserToPLMCBalance::new( + issuer.clone(), + ed * 2u64.into() + metadata_deposit + ct_treasury_account_deposit, + )]); let jwt = get_mock_jwt(issuer.clone(), InvestorType::Institutional, generate_did_from_account(issuer.clone())); #[extrinsic_call] @@ -544,7 +552,7 @@ mod benchmarks { // Events frame_system::Pallet::::assert_last_event( - Event::::EnglishAuctionStarted { project_id, when: current_block.into() }.into(), + Event::::EnglishAuctionStarted { project_id, when: current_block }.into(), ); } @@ -2652,7 +2660,7 @@ mod benchmarks { // Events let current_block = inst.current_block(); frame_system::Pallet::::assert_last_event( - Event::::CandleAuctionStarted { project_id, when: current_block.into() }.into(), + Event::::CandleAuctionStarted { project_id, when: current_block }.into(), ); } @@ -2769,9 +2777,11 @@ mod benchmarks { // automatic transition to candle inst.advance_time(1u32.into()).unwrap(); - // testing always produced this random ending - let random_ending: BlockNumberFor = 9176u32.into(); - frame_system::Pallet::::set_block_number(random_ending + 2u32.into()); + let project_details = inst.get_project_details(project_id); + let candle_block_end = project_details.phase_transition_points.candle_auction.end().unwrap(); + // probably the last block will always be after random end + let random_ending: BlockNumberFor = candle_block_end; + frame_system::Pallet::::set_block_number(random_ending); inst.bid_for_users(project_id, rejected_bids).unwrap(); @@ -2796,7 +2806,10 @@ mod benchmarks { // Storage let stored_details = ProjectsDetails::::get(project_id).unwrap(); assert_eq!(stored_details.status, ProjectStatus::CommunityRound); - + assert!( + stored_details.phase_transition_points.random_candle_ending.unwrap() < + stored_details.phase_transition_points.candle_auction.end().unwrap() + ); let accepted_bids_count = Bids::::iter_prefix_values((project_id,)).filter(|b| matches!(b.status, BidStatus::Accepted)).count(); let rejected_bids_count = @@ -3014,7 +3027,7 @@ mod benchmarks { frame_system::Pallet::::set_block_number(last_funding_block + 1u32.into()); - let insertion_block_number = inst.current_block() + T::ManualAcceptanceDuration::get().into() + 1u32.into(); + let insertion_block_number = inst.current_block() + T::ManualAcceptanceDuration::get() + 1u32.into(); fill_projects_to_update::(x, insertion_block_number); #[block] @@ -3072,7 +3085,7 @@ mod benchmarks { frame_system::Pallet::::set_block_number(last_funding_block + 1u32.into()); - let insertion_block_number = inst.current_block() + T::ManualAcceptanceDuration::get().into() + 1u32.into(); + let insertion_block_number = inst.current_block() + T::ManualAcceptanceDuration::get() + 1u32.into(); fill_projects_to_update::(x, insertion_block_number); #[block] @@ -3150,7 +3163,7 @@ mod benchmarks { frame_system::Pallet::::set_block_number(last_funding_block + 1u32.into()); - let insertion_block_number = inst.current_block() + T::SuccessToSettlementTime::get().into(); + let insertion_block_number = inst.current_block() + T::SuccessToSettlementTime::get(); fill_projects_to_update::(x, insertion_block_number); #[block] diff --git a/pallets/funding/src/functions.rs b/pallets/funding/src/functions.rs index 1ab43e0ff..1ededb192 100644 --- a/pallets/funding/src/functions.rs +++ b/pallets/funding/src/functions.rs @@ -850,8 +850,8 @@ impl Pallet { let contribution_token_treasury_account = T::ContributionTreasury::get(); T::ContributionTokenCurrency::touch( project_id, - contribution_token_treasury_account.clone(), - contribution_token_treasury_account.clone(), + &contribution_token_treasury_account, + &contribution_token_treasury_account, )?; let (liquidity_pools_ct_amount, long_term_holder_bonus_ct_amount) = @@ -1473,7 +1473,7 @@ impl Pallet { // * Update storage * if !T::ContributionTokenCurrency::contains(&project_id, &bid.bidder) { ct_account_created = true; - T::ContributionTokenCurrency::touch(project_id, bid.bidder.clone(), bid.bidder.clone())?; + T::ContributionTokenCurrency::touch(project_id, &bid.bidder, &bid.bidder)?; } T::ContributionTokenCurrency::mint_into(project_id, &bid.bidder, ct_amount)?; Bids::::insert((project_id, bidder, bid_id), &bid); @@ -1522,11 +1522,7 @@ impl Pallet { // * Update storage * if !T::ContributionTokenCurrency::contains(&project_id, &contribution.contributor) { ct_account_created = true; - T::ContributionTokenCurrency::touch( - project_id, - contribution.contributor.clone(), - contribution.contributor.clone(), - )?; + T::ContributionTokenCurrency::touch(project_id, &contribution.contributor, &contribution.contributor)?; } T::ContributionTokenCurrency::mint_into(project_id, &contribution.contributor, ct_amount)?; Contributions::::insert((project_id, contributor, contribution_id), contribution); @@ -1638,11 +1634,7 @@ impl Pallet { // * Update storage * if !T::ContributionTokenCurrency::contains(&project_id, &evaluation.evaluator) { ct_account_created = true; - T::ContributionTokenCurrency::touch( - project_id, - evaluation.evaluator.clone(), - evaluation.evaluator.clone(), - )?; + T::ContributionTokenCurrency::touch(project_id, &evaluation.evaluator, &evaluation.evaluator)?; } T::ContributionTokenCurrency::mint_into(project_id, &evaluation.evaluator, total_reward_amount)?; evaluation.rewarded_or_slashed = Some(RewardOrSlash::Reward(total_reward_amount)); @@ -2137,23 +2129,17 @@ impl Pallet { }) .ok_or(XcmError::BadOrigin)?; - let accept_channel_relay_call = - polkadot_runtime::RuntimeCall::Hrmp(polkadot_runtime_parachains::hrmp::Call::< - polkadot_runtime::Runtime, - >::hrmp_accept_open_channel { - sender: ParaId::from(sender), - }) - .encode(); - - let request_channel_relay_call = - polkadot_runtime::RuntimeCall::Hrmp(polkadot_runtime_parachains::hrmp::Call::< - polkadot_runtime::Runtime, - >::hrmp_init_open_channel { - recipient: ParaId::from(sender), - proposed_max_capacity: T::RequiredMaxCapacity::get(), - proposed_max_message_size: T::RequiredMaxMessageSize::get(), - }) - .encode(); + let mut accept_channel_relay_call = vec![60u8, 1]; + let sender_id = ParaId::from(sender).encode(); + accept_channel_relay_call.extend_from_slice(&sender_id); + + let mut request_channel_relay_call = vec![60u8, 0]; + let recipient = ParaId::from(sender).encode(); + request_channel_relay_call.extend_from_slice(&recipient); + let proposed_max_capacity = T::RequiredMaxCapacity::get().encode(); + request_channel_relay_call.extend_from_slice(&proposed_max_capacity); + let proposed_max_message_size = T::RequiredMaxMessageSize::get().encode(); + request_channel_relay_call.extend_from_slice(&proposed_max_message_size); let xcm: Xcm<()> = Xcm(vec![ WithdrawAsset(vec![EXECUTION_DOT.clone()].into()), @@ -2271,18 +2257,17 @@ impl Pallet { } // * Update storage * - let call: ::RuntimeCall = - Call::migration_check_response { query_id: Default::default(), response: Default::default() }.into(); + let call = Call::::migration_check_response { query_id: Default::default(), response: Default::default() }; let query_id_holdings = pallet_xcm::Pallet::::new_notify_query( project_multilocation.clone(), - call.clone().into(), + ::RuntimeCall::from(call.clone()), now + QUERY_RESPONSE_TIME_WINDOW_BLOCKS.into(), Here, ); let query_id_pallet = pallet_xcm::Pallet::::new_notify_query( project_multilocation.clone(), - call.into(), + ::RuntimeCall::from(call), now + QUERY_RESPONSE_TIME_WINDOW_BLOCKS.into(), Here, ); diff --git a/pallets/funding/src/lib.rs b/pallets/funding/src/lib.rs index 23de69446..69170c16c 100644 --- a/pallets/funding/src/lib.rs +++ b/pallets/funding/src/lib.rs @@ -130,7 +130,7 @@ use polimec_common::{ credentials::{Did, EnsureOriginWithCredentials, InvestorType, UntrustedToken}, migration_types::*, }; -use polkadot_parachain::primitives::Id as ParaId; +use polkadot_parachain_primitives::primitives::Id as ParaId; use sp_arithmetic::traits::{One, Saturating}; use sp_runtime::{traits::AccountIdConversion, FixedPointNumber, FixedPointOperand, FixedU128}; use sp_std::{marker::PhantomData, prelude::*}; @@ -401,7 +401,7 @@ pub mod pallet { type RequiredMaxMessageSize: Get; /// The runtime enum constructed by the construct_runtime macro - type RuntimeCall: Parameter + IsType<::RuntimeCall> + From>; + type RuntimeCall: Parameter + IsType<::RuntimeCall> + From>; /// The event enum constructed by the construct_runtime macro type RuntimeEvent: From> @@ -1705,14 +1705,16 @@ pub mod pallet { ::Balance: Into>, { fn build(&self) { + #[cfg(any(feature = "std", feature = "runtime-benchmarks"))] + { + ::SetPrices::set_prices(); + } #[cfg(feature = "std")] { type GenesisInstantiator = instantiator::Instantiator::AllPalletsWithoutSystem, ::RuntimeEvent>; let inst = GenesisInstantiator::::new(None); - ::SetPrices::set_prices(); instantiator::async_features::create_multiple_projects_at(inst, self.starting_projects.clone()); - frame_system::Pallet::::set_block_number(0u32.into()); } } diff --git a/pallets/funding/src/mock.rs b/pallets/funding/src/mock.rs index efc5f8295..fdd85762b 100644 --- a/pallets/funding/src/mock.rs +++ b/pallets/funding/src/mock.rs @@ -67,9 +67,10 @@ pub const fn free_deposit() -> Balance { use frame_support::traits::{Everything, OriginTrait}; use frame_system::RawOrigin as SystemRawOrigin; -use polkadot_parachain::primitives::Sibling; +use polkadot_parachain_primitives::primitives::Sibling; use sp_runtime::traits::{ConvertBack, Get, TryConvert}; use xcm_builder::{EnsureXcmOrigin, FixedWeightBounds, ParentIsPreset, SiblingParachainConvertsVia}; +use xcm_executor::traits::XcmAssetTransfers; pub struct SignedToAccountIndex(PhantomData<(RuntimeOrigin, AccountId, Network)>); @@ -95,10 +96,7 @@ pub type LocationToAccountId = ( // Sibling parachain origins convert to AccountId via the `ParaId::into`. SiblingParachainConvertsVia, ); -#[cfg(feature = "runtime-benchmarks")] -parameter_types! { - pub ReachableDest: Option = Some(Parent.into()); -} + parameter_types! { pub UniversalLocation: InteriorMultiLocation = ( GlobalConsensus(Polkadot), @@ -110,6 +108,42 @@ parameter_types! { pub const HereLocation: MultiLocation = MultiLocation::here(); } + +pub struct MockPrepared; +impl PreparedMessage for MockPrepared { + fn weight_of(&self) -> Weight { + Weight::zero() + } +} + +pub struct MockXcmExecutor; +impl XcmAssetTransfers for MockXcmExecutor { + type AssetTransactor = (); + type IsReserve = (); + type IsTeleporter = (); +} + +impl ExecuteXcm for MockXcmExecutor { + type Prepared = MockPrepared; + + fn prepare(_message: Xcm) -> core::result::Result> { + Ok(MockPrepared) + } + + fn execute( + _origin: impl Into, + _pre: Self::Prepared, + _id: &mut XcmHash, + _weight_credit: Weight, + ) -> Outcome { + Outcome::Complete(Weight::zero()) + } + + fn charge_fees(_location: impl Into, _fees: MultiAssets) -> XcmResult { + Ok(()) + } +} + impl pallet_xcm::Config for TestRuntime { type AdminOrigin = EnsureRoot; // ^ Override for AdvertisedXcmVersion default @@ -119,8 +153,6 @@ impl pallet_xcm::Config for TestRuntime { type ExecuteXcmOrigin = EnsureXcmOrigin; type MaxLockers = ConstU32<8>; type MaxRemoteLockConsumers = ConstU32<0>; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; type RemoteLockConsumerIdentifier = (); type RuntimeCall = RuntimeCall; type RuntimeEvent = RuntimeEvent; @@ -135,7 +167,7 @@ impl pallet_xcm::Config for TestRuntime { type XcmExecuteFilter = Everything; // ^ Disable dispatchable execute on the XCM pallet. // Needs to be `Everything` for local testing. - type XcmExecutor = (); + type XcmExecutor = MockXcmExecutor; type XcmReserveTransferFilter = Everything; type XcmRouter = (); type XcmTeleportFilter = Everything; @@ -224,6 +256,7 @@ impl system::Config for TestRuntime { type RuntimeCall = RuntimeCall; type RuntimeEvent = RuntimeEvent; type RuntimeOrigin = RuntimeOrigin; + type RuntimeTask = RuntimeTask; type SS58Prefix = ConstU16<42>; type SystemWeightInfo = (); type Version = (); @@ -242,8 +275,9 @@ impl pallet_balances::Config for TestRuntime { type MaxHolds = ConstU32<1024>; type MaxLocks = frame_support::traits::ConstU32<1024>; type MaxReserves = frame_support::traits::ConstU32<1024>; - type ReserveIdentifier = RuntimeHoldReason; + type ReserveIdentifier = [u8; 8]; type RuntimeEvent = RuntimeEvent; + type RuntimeFreezeReason = RuntimeFreezeReason; type RuntimeHoldReason = RuntimeHoldReason; type WeightInfo = (); } diff --git a/pallets/funding/src/tests.rs b/pallets/funding/src/tests.rs index de8f7c373..94afe42e1 100644 --- a/pallets/funding/src/tests.rs +++ b/pallets/funding/src/tests.rs @@ -29,13 +29,13 @@ use defaults::*; use frame_support::{ assert_err, assert_noop, assert_ok, traits::{ - fungible::{Inspect as FungibleInspect, InspectHold as FungibleInspectHold}, + fungible::{Inspect as FungibleInspect, InspectHold as FungibleInspectHold, Mutate}, Get, }, }; use itertools::Itertools; use parachains_common::DAYS; -use polimec_common::{credentials::*, ReleaseSchedule}; +use polimec_common::ReleaseSchedule; use polimec_common_test_utils::{generate_did_from_account, get_mock_jwt}; use sp_arithmetic::{traits::Zero, Percent, Perquintill}; use sp_runtime::{BuildStorage, TokenError}; @@ -377,7 +377,12 @@ mod creation { inst.mint_plmc_to(default_plmc_balances()); inst.execute(|| { - assert_ok!(Balances::transfer(RuntimeOrigin::signed(EVALUATOR_1), EVALUATOR_2, PLMC)); + assert_ok!(Balances::transfer( + &EVALUATOR_1, + &EVALUATOR_2, + PLMC, + frame_support::traits::tokens::Preservation::Preserve + )); }); } @@ -5888,7 +5893,7 @@ mod funding_end { // we want to test ct mints on treasury of 1 over the consumer limit, // and we already minted 3 contribution tokens on previous tests. for i in 0..consumer_limit + 1u32 - 3u32 { - let _project_98_percent = inst.create_finished_project( + let _ = inst.create_finished_project( with_different_metadata(project_metadata.clone()), ISSUER_1 + i + 1000, default_evaluations(), diff --git a/pallets/funding/src/types.rs b/pallets/funding/src/types.rs index fe579f583..435903d68 100644 --- a/pallets/funding/src/types.rs +++ b/pallets/funding/src/types.rs @@ -25,7 +25,7 @@ use crate::{ use frame_support::{pallet_prelude::*, traits::tokens::Balance as BalanceT}; use frame_system::pallet_prelude::BlockNumberFor; use polimec_common::migration_types::{Migration, MigrationInfo, MigrationOrigin, ParticipationType}; -use polkadot_parachain::primitives::Id as ParaId; +use polkadot_parachain_primitives::primitives::Id as ParaId; use serde::{Deserialize, Serialize}; use sp_arithmetic::{FixedPointNumber, FixedPointOperand}; use sp_runtime::traits::{CheckedDiv, Convert, Get, Zero}; @@ -163,9 +163,11 @@ pub mod storage_types { traits::{One, Saturating, Zero}, Percent, }; + #[derive(Clone, Encode, Decode, Eq, PartialEq, RuntimeDebug, MaxEncodedLen, TypeInfo)] #[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] - pub struct ProjectMetadata { + + pub struct ProjectMetadata { /// Token Metadata pub token_information: CurrencyMetadata, /// Mainnet Token Max Supply @@ -190,7 +192,7 @@ pub mod storage_types { pub offchain_information_hash: Option, } - impl, Price: FixedPointNumber, Hash, AccountId> + impl + PartialOrd + Copy, Price: FixedPointNumber, Hash, AccountId> ProjectMetadata { /// Validate issuer metadata for the following checks: @@ -450,11 +452,11 @@ pub mod inner_types { #[derive(Clone, Copy, Encode, Decode, Eq, PartialEq, RuntimeDebug, MaxEncodedLen, TypeInfo)] #[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] - pub struct TicketSize { + pub struct TicketSize { pub usd_minimum_per_participation: Option, pub usd_maximum_per_did: Option, } - impl TicketSize { + impl TicketSize { pub fn new(usd_minimum_per_participation: Option, usd_maximum_per_did: Option) -> Self { Self { usd_minimum_per_participation, usd_maximum_per_did } } @@ -497,12 +499,12 @@ pub mod inner_types { #[derive(Clone, Copy, Encode, Decode, Eq, PartialEq, RuntimeDebug, MaxEncodedLen, TypeInfo)] #[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] - pub struct BiddingTicketSizes { + pub struct BiddingTicketSizes { pub professional: TicketSize, pub institutional: TicketSize, pub phantom: PhantomData<(Price, Balance)>, } - impl BiddingTicketSizes { + impl BiddingTicketSizes { pub fn is_valid(&self, usd_bounds: Vec>) -> Result<(), ValidityError> { for bound in usd_bounds { match bound { @@ -523,13 +525,13 @@ pub mod inner_types { #[derive(Clone, Copy, Encode, Decode, Eq, PartialEq, RuntimeDebug, MaxEncodedLen, TypeInfo)] #[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] - pub struct ContributingTicketSizes { + pub struct ContributingTicketSizes { pub retail: TicketSize, pub professional: TicketSize, pub institutional: TicketSize, pub phantom: PhantomData<(Price, Balance)>, } - impl ContributingTicketSizes { + impl ContributingTicketSizes { pub fn is_valid(&self, usd_bounds: Vec>) -> Result<(), ValidityError> { for bound in usd_bounds { match bound { diff --git a/pallets/linear-release/src/mock.rs b/pallets/linear-release/src/mock.rs index 69627b302..ad8d4372b 100644 --- a/pallets/linear-release/src/mock.rs +++ b/pallets/linear-release/src/mock.rs @@ -17,12 +17,11 @@ use super::*; use crate::{self as pallet_vesting}; use frame_support::{ - parameter_types, - traits::{ConstU32, ConstU64, WithdrawReasons}, + derive_impl, parameter_types, + traits::{VariantCount, WithdrawReasons}, }; -use sp_core::H256; use sp_runtime::{ - traits::{BlakeTwo256, Identity, IdentityLookup}, + traits::{Identity, IdentityLookup}, BuildStorage, Deserialize, Serialize, }; @@ -37,30 +36,12 @@ frame_support::construct_runtime!( } ); +#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Test { type AccountData = pallet_balances::AccountData; type AccountId = u64; - type BaseCallFilter = frame_support::traits::Everything; type Block = Block; - type BlockHashCount = ConstU64<250>; - type BlockLength = (); - type BlockWeights = (); - type DbWeight = (); - type Hash = H256; - type Hashing = BlakeTwo256; type Lookup = IdentityLookup; - type MaxConsumers = frame_support::traits::ConstU32<16>; - type Nonce = u64; - type OnKilledAccount = (); - type OnNewAccount = (); - type OnSetCode = (); - type PalletInfo = PalletInfo; - type RuntimeCall = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type RuntimeOrigin = RuntimeOrigin; - type SS58Prefix = (); - type SystemWeightInfo = (); - type Version = (); } parameter_types! { @@ -70,20 +51,12 @@ parameter_types! { pub static ExistentialDeposit: u64 = 10u64.pow(7); } +#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)] impl pallet_balances::Config for Test { type AccountStore = System; - type Balance = u64; - type DustRemoval = (); type ExistentialDeposit = ExistentialDeposit; type FreezeIdentifier = RuntimeHoldReason; - type MaxFreezes = ConstU32<10>; - type MaxHolds = ConstU32<10>; - type MaxLocks = ConstU32<10>; - type MaxReserves = ConstU32<10>; - type ReserveIdentifier = RuntimeHoldReason; - type RuntimeEvent = RuntimeEvent; type RuntimeHoldReason = MockRuntimeHoldReason; - type WeightInfo = (); } parameter_types! { @@ -124,6 +97,9 @@ pub enum MockRuntimeHoldReason { Reason, Reason2, } +impl VariantCount for MockRuntimeHoldReason { + const VARIANT_COUNT: u32 = 2; +} #[derive(Default)] pub struct ExtBuilder { diff --git a/pallets/linear-release/src/tests.rs b/pallets/linear-release/src/tests.rs index cef17ad50..901e860b3 100644 --- a/pallets/linear-release/src/tests.rs +++ b/pallets/linear-release/src/tests.rs @@ -14,8 +14,9 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -use frame_support::{assert_noop, assert_ok, assert_storage_noop, dispatch::EncodeLike}; +use frame_support::{assert_noop, assert_ok, assert_storage_noop}; use frame_system::RawOrigin; +use parity_scale_codec::EncodeLike; use sp_runtime::{ traits::{BadOrigin, Identity}, TokenError, diff --git a/pallets/oracle-ocw/src/lib.rs b/pallets/oracle-ocw/src/lib.rs index f576fb535..7bcf193cd 100644 --- a/pallets/oracle-ocw/src/lib.rs +++ b/pallets/oracle-ocw/src/lib.rs @@ -80,7 +80,7 @@ pub mod pallet { /// The cryptographic interface for the offchain worker to sign transactions. type AppCrypto: AppCrypto; /// List of members that are allowed to send transactions. - type Members: frame_support::traits::Contains; + type Members: frame_support::traits::Contains>; /// Interval between price fetches in block numbers. /// The interval is started at block `n % FetchInterval == 0` type FetchInterval: Get>; diff --git a/pallets/oracle-ocw/src/mock.rs b/pallets/oracle-ocw/src/mock.rs index 6227c74e9..78deb9cf6 100644 --- a/pallets/oracle-ocw/src/mock.rs +++ b/pallets/oracle-ocw/src/mock.rs @@ -20,8 +20,8 @@ use super::*; use crate as pallet_oracle_ocw; use frame_support::{ - construct_runtime, parameter_types, - traits::{ConstU32, ConstU64, Everything, Hooks, IsInVec, Time}, + construct_runtime, derive_impl, parameter_types, + traits::{ConstU32, ConstU64, Hooks, IsInVec, Time}, }; use parking_lot::RwLock; use sp_core::{ @@ -30,47 +30,31 @@ use sp_core::{ OffchainDbExt, OffchainWorkerExt, TransactionPoolExt, }, sr25519::Signature, - Pair, Public, H256, + Pair, Public, }; use sp_keystore::{testing::MemoryKeystore, Keystore, KeystoreExt}; use sp_runtime::{ testing::TestXt, - traits::{BlakeTwo256, Extrinsic as ExtrinsicT, IdentifyAccount, IdentityLookup, Verify}, + traits::{Extrinsic as ExtrinsicT, IdentifyAccount, IdentityLookup, Verify}, BuildStorage, }; use sp_std::cell::RefCell; use std::sync::Arc; +type Block = frame_system::mocking::MockBlock; pub type Extrinsic = TestXt; pub type AccountId = <::Signer as IdentifyAccount>::AccountId; pub type AccountPublic = ::Signer; type OracleKey = u64; type OracleValue = FixedU128; +#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Test { - type AccountData = (); + type AccountData = pallet_balances::AccountData; type AccountId = sp_core::sr25519::Public; - type BaseCallFilter = Everything; type Block = Block; - type BlockHashCount = ConstU64<250>; - type BlockLength = (); - type BlockWeights = (); - type DbWeight = (); - type Hash = H256; - type Hashing = BlakeTwo256; type Lookup = IdentityLookup; - type MaxConsumers = ConstU32<16>; type Nonce = u64; - type OnKilledAccount = (); - type OnNewAccount = (); - type OnSetCode = (); - type PalletInfo = PalletInfo; - type RuntimeCall = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type RuntimeOrigin = RuntimeOrigin; - type SS58Prefix = (); - type SystemWeightInfo = (); - type Version = (); } thread_local! { @@ -167,8 +151,6 @@ where } } -type Block = frame_system::mocking::MockBlock; - construct_runtime!( pub enum Test { diff --git a/pallets/parachain-staking/src/auto_compound.rs b/pallets/parachain-staking/src/auto_compound.rs index 8bb04ca8c..900df941c 100644 --- a/pallets/parachain-staking/src/auto_compound.rs +++ b/pallets/parachain-staking/src/auto_compound.rs @@ -25,10 +25,10 @@ use crate::{ }, types::{Bond, BondAdjust, Delegator}, }; -use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, traits::Get, RuntimeDebug}; +use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, traits::Get}; use parity_scale_codec::{Decode, Encode}; use scale_info::TypeInfo; -use sp_runtime::{traits::Saturating, BoundedVec, Percent}; +use sp_runtime::{traits::Saturating, BoundedVec, Percent, RuntimeDebug}; use sp_std::prelude::*; /// Represents the auto-compounding amount for a delegation. diff --git a/pallets/parachain-staking/src/benchmarks.rs b/pallets/parachain-staking/src/benchmarks.rs index 59fdc9106..a381d7f4f 100644 --- a/pallets/parachain-staking/src/benchmarks.rs +++ b/pallets/parachain-staking/src/benchmarks.rs @@ -23,7 +23,7 @@ use crate::{ AwardedPts, BalanceOf, Call, CandidateBondLessRequest, Config, DelegationAction, Pallet, ParachainBondConfig, ParachainBondInfo, Points, Range, RewardPayment, Round, ScheduledRequest, Staked, TopDelegations, }; -use frame_benchmarking::{account, benchmarks, impl_benchmark_test_suite, vec}; +use frame_benchmarking::{account, benchmarks, impl_benchmark_test_suite}; use frame_support::traits::{ fungible::{Inspect, Mutate}, Get, OnFinalize, OnInitialize, @@ -32,7 +32,7 @@ use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin}; #[cfg(test)] use sp_runtime::BuildStorage; use sp_runtime::{Perbill, Percent}; -use sp_std::{default::Default, vec::Vec}; +use sp_std::{default::Default, vec, vec::Vec}; /// Minimum collator candidate stake fn min_candidate_stk() -> BalanceOf { diff --git a/pallets/parachain-staking/src/delegation_requests.rs b/pallets/parachain-staking/src/delegation_requests.rs index 5ee672e2f..c2fe8b68f 100644 --- a/pallets/parachain-staking/src/delegation_requests.rs +++ b/pallets/parachain-staking/src/delegation_requests.rs @@ -26,10 +26,10 @@ use crate::{ }, Delegator, DelegatorStatus, }; -use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, traits::Get, RuntimeDebug}; +use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, traits::Get}; use parity_scale_codec::{Decode, Encode}; use scale_info::TypeInfo; -use sp_runtime::traits::Saturating; +use sp_runtime::{traits::Saturating, RuntimeDebug}; use sp_std::{vec, vec::Vec}; /// An action that can be performed upon a delegation diff --git a/pallets/parachain-staking/src/migrations.rs b/pallets/parachain-staking/src/migrations.rs index f6726523b..adbc2f525 100644 --- a/pallets/parachain-staking/src/migrations.rs +++ b/pallets/parachain-staking/src/migrations.rs @@ -27,9 +27,12 @@ use frame_support::traits::{ Currency, Get, LockIdentifier, LockableCurrency, ReservableCurrency, }; #[allow(unused_imports)] -use frame_support::{dispatch::DispatchError, log, migration, storage::unhashed}; +use frame_support::{migration, storage::unhashed}; +use log; use parity_scale_codec::Encode; use sp_core::hexdisplay::HexDisplay; +#[cfg(feature = "try-runtime")] +use sp_runtime::DispatchError; #[allow(unused_imports)] use sp_std::vec::Vec; diff --git a/pallets/parachain-staking/src/mock.rs b/pallets/parachain-staking/src/mock.rs index b8866b904..141454729 100644 --- a/pallets/parachain-staking/src/mock.rs +++ b/pallets/parachain-staking/src/mock.rs @@ -20,17 +20,13 @@ use crate as pallet_parachain_staking; use crate::{pallet, AwardedPts, Config, Event as ParachainStakingEvent, InflationInfo, Points, Range}; use frame_support::{ - construct_runtime, parameter_types, - traits::{Everything, OnFinalize, OnInitialize}, + construct_runtime, derive_impl, parameter_types, + traits::{OnFinalize, OnInitialize}, weights::{constants::RocksDbWeight, Weight}, }; use frame_system::pallet_prelude::BlockNumberFor; -use sp_core::H256; use sp_io; -use sp_runtime::{ - traits::{BlakeTwo256, IdentityLookup}, - BuildStorage, Perbill, Percent, -}; +use sp_runtime::{traits::IdentityLookup, BuildStorage, Perbill, Percent}; pub type AccountId = u64; pub type Balance = u128; @@ -58,31 +54,17 @@ parameter_types! { pub const AvailableBlockRatio: Perbill = Perbill::one(); pub const SS58Prefix: u8 = 42; } + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Test { type AccountData = pallet_balances::AccountData; type AccountId = AccountId; - type BaseCallFilter = Everything; type Block = Block; type BlockHashCount = BlockHashCount; - type BlockLength = (); - type BlockWeights = (); type DbWeight = RocksDbWeight; - type Hash = H256; - type Hashing = BlakeTwo256; type Lookup = IdentityLookup; - type MaxConsumers = frame_support::traits::ConstU32<16>; - type Nonce = u64; - type OnKilledAccount = (); - type OnNewAccount = (); - type OnSetCode = (); - type PalletInfo = PalletInfo; - type RuntimeCall = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type RuntimeOrigin = RuntimeOrigin; - type SS58Prefix = SS58Prefix; - type SystemWeightInfo = (); - type Version = (); } + parameter_types! { pub const ExistentialDeposit: u128 = 1; pub const MaxHolds: u32 = 10; @@ -99,6 +81,7 @@ impl pallet_balances::Config for Test { type MaxReserves = (); type ReserveIdentifier = [u8; 4]; type RuntimeEvent = RuntimeEvent; + type RuntimeFreezeReason = RuntimeFreezeReason; type RuntimeHoldReason = RuntimeHoldReason; type WeightInfo = (); } diff --git a/pallets/polimec-receiver/Cargo.toml b/pallets/polimec-receiver/Cargo.toml index e140d08b2..9580f0f07 100644 --- a/pallets/polimec-receiver/Cargo.toml +++ b/pallets/polimec-receiver/Cargo.toml @@ -21,7 +21,7 @@ frame-support.workspace = true frame-system.workspace = true sp-std.workspace = true polkadot-runtime-parachains.workspace = true -polkadot-parachain.workspace = true +polkadot-parachain-primitives.workspace = true polimec-common.workspace = true sp-runtime.workspace = true @@ -40,7 +40,7 @@ runtime-benchmarks = [ "frame-support/runtime-benchmarks", "frame-system/runtime-benchmarks", "polimec-common/runtime-benchmarks", - "polkadot-parachain/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", "polkadot-runtime-parachains/runtime-benchmarks", "sp-runtime/runtime-benchmarks", ] @@ -50,7 +50,7 @@ std = [ "frame-support/std", "frame-system/std", "polimec-common/std", - "polkadot-parachain/std", + "polkadot-parachain-primitives/std", "polkadot-runtime-parachains/std", "scale-info/std", "serde/std", diff --git a/pallets/polimec-receiver/src/lib.rs b/pallets/polimec-receiver/src/lib.rs index e41692fc0..11e431965 100644 --- a/pallets/polimec-receiver/src/lib.rs +++ b/pallets/polimec-receiver/src/lib.rs @@ -28,7 +28,7 @@ pub mod pallet { }; use frame_system::pallet_prelude::*; use polimec_common::migration_types::{Migration, MigrationInfo, MigrationOrigin, Migrations, ParticipationType}; - use polkadot_parachain::primitives::{Id as ParaId, Sibling}; + use polkadot_parachain_primitives::primitives::{Id as ParaId, Sibling}; use polkadot_runtime_parachains::origin::{ensure_parachain, Origin as ParachainOrigin}; use sp_runtime::traits::{AccountIdConversion, Convert}; use sp_std::prelude::*; diff --git a/pallets/sandbox/Cargo.toml b/pallets/sandbox/Cargo.toml index 70da9fbde..f46bf3bb5 100644 --- a/pallets/sandbox/Cargo.toml +++ b/pallets/sandbox/Cargo.toml @@ -51,8 +51,9 @@ runtime-benchmarks = [ "pallet-assets/runtime-benchmarks", "pallet-balances/runtime-benchmarks", "pallet-funding/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polimec-common/runtime-benchmarks", "sp-runtime/runtime-benchmarks", - "polimec-common/runtime-benchmarks" ] std = [ "frame-benchmarking?/std", @@ -64,13 +65,13 @@ std = [ "pallet-insecure-randomness-collective-flip/std", "parachains-common/std", "parity-scale-codec/std", + "polimec-common/std", "scale-info/std", "sp-arithmetic/std", "sp-core/std", "sp-io/std", "sp-runtime/std", "sp-std/std", - "polimec-common/std", ] try-runtime = [ "frame-support/try-runtime", @@ -79,6 +80,6 @@ try-runtime = [ "pallet-balances/try-runtime", "pallet-funding/try-runtime", "pallet-insecure-randomness-collective-flip/try-runtime", + "polimec-common/try-runtime", "sp-runtime/try-runtime", - "polimec-common/try-runtime" ] diff --git a/pallets/xcm-executor/Cargo.toml b/pallets/xcm-executor/Cargo.toml index ccaab5306..ec54a6a6f 100644 --- a/pallets/xcm-executor/Cargo.toml +++ b/pallets/xcm-executor/Cargo.toml @@ -13,7 +13,7 @@ version.workspace = true [dependencies] impl-trait-for-tuples = "0.2.2" environmental = { version = "1.1.4", default-features = false } -parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } +parity-scale-codec = { workspace = true, default-features = false, features = ["derive"] } xcm.workspace = true sp-std.workspace = true sp-io.workspace = true diff --git a/pallets/xcm-executor/src/config.rs b/pallets/xcm-executor/src/config.rs index 5332f8117..9e5be2b74 100644 --- a/pallets/xcm-executor/src/config.rs +++ b/pallets/xcm-executor/src/config.rs @@ -18,9 +18,10 @@ use crate::polimec_traits::HrmpHandler; use frame_support::{ - dispatch::{Dispatchable, GetDispatchInfo, Parameter, PostDispatchInfo}, + dispatch::{GetDispatchInfo, Parameter, PostDispatchInfo}, traits::{Contains, ContainsPair, Get, PalletsInfoAccess}, }; +use sp_runtime::traits::Dispatchable; use xcm::v3::prelude::*; use xcm_executor::traits::{ AssetExchange, AssetLock, CallDispatcher, ClaimAssets, ConvertOrigin, DropAssets, ExportXcm, FeeManager, @@ -47,6 +48,10 @@ pub trait Config { /// Combinations of (Asset, Location) pairs which we trust as teleporters. type IsTeleporter: ContainsPair; + /// A list of (Origin, Target) pairs allowing a given Origin to be substituted with its + /// corresponding Target pair. + type Aliasers: ContainsPair; + /// This chain's Universal Location. type UniversalLocation: Get; diff --git a/pallets/xcm-executor/src/lib.rs b/pallets/xcm-executor/src/lib.rs index 3fdb1f323..a04c573c9 100644 --- a/pallets/xcm-executor/src/lib.rs +++ b/pallets/xcm-executor/src/lib.rs @@ -231,22 +231,16 @@ impl ExecuteXcm for XcmExecutor ExecuteXcm for XcmExecutor ExecuteXcm for XcmExecutor xcm_executor::traits::XcmAssetTransfers for XcmExecutor { + type AssetTransactor = Config::AssetTransactor; + type IsReserve = Config::IsReserve; + type IsTeleporter = Config::IsTeleporter; +} + #[derive(Debug)] pub struct ExecutorError { pub index: u32, @@ -318,63 +318,9 @@ impl XcmExecutor { } } - #[cfg(feature = "runtime-benchmarks")] - pub fn bench_process(&mut self, xcm: Xcm) -> Result<(), ExecutorError> { - self.process(xcm) - } - - fn process(&mut self, xcm: Xcm) -> Result<(), ExecutorError> { - log::trace!( - target: "xcm::process", - "origin: {:?}, total_surplus/refunded: {:?}/{:?}, error_handler_weight: {:?}", - self.origin_ref(), - self.total_surplus, - self.total_refunded, - self.error_handler_weight, - ); - let mut result = Ok(()); - for (i, instr) in xcm.0.into_iter().enumerate() { - match &mut result { - r @ Ok(()) => { - // Initialize the recursion count only the first time we hit this code in our - // potential recursive execution. - let inst_res = recursion_count::using_once(&mut 1, || { - recursion_count::with(|count| { - if *count > RECURSION_LIMIT { - return Err(XcmError::ExceedsStackLimit); - } - *count = count.saturating_add(1); - Ok(()) - }) - // This should always return `Some`, but let's play it safe. - .unwrap_or(Ok(()))?; - - // Ensure that we always decrement the counter whenever we finish processing - // the instruction. - defer! { - recursion_count::with(|count| { - *count = count.saturating_sub(1); - }); - } - - self.process_instruction(instr) - }); - if let Err(e) = inst_res { - log::trace!(target: "xcm::execute", "!!! ERROR: {:?}", e); - *r = Err(ExecutorError { index: i as u32, xcm_error: e, weight: Weight::zero() }); - } - }, - Err(ref mut error) => - if let Ok(x) = Config::Weigher::instr_weight(&instr) { - error.weight.saturating_accrue(x) - }, - } - } - result - } - /// Execute any final operations after having executed the XCM message. - /// This includes refunding surplus weight, trapping extra holding funds, and returning any errors during execution. + /// This includes refunding surplus weight, trapping extra holding funds, and returning any + /// errors during execution. pub fn post_process(mut self, xcm_weight: Weight) -> Outcome { // We silently drop any error from our attempt to refund the surplus as it's a charitable // thing so best-effort is all we will do. @@ -416,10 +362,7 @@ impl XcmExecutor { /// Send an XCM, charging fees from Holding as needed. fn send(&mut self, dest: MultiLocation, msg: Xcm<()>, reason: FeeReason) -> Result { let (ticket, fee) = validate_send::(dest, msg)?; - if !Config::FeeManager::is_waived(self.origin_ref(), reason) { - let paid = self.holding.try_take(fee.into()).map_err(|_| XcmError::NotHoldingFees)?; - Config::FeeManager::handle_fee(paid.into()); - } + self.take_fee(fee, reason)?; Config::XcmSender::deliver(ticket).map_err(Into::into) } @@ -469,13 +412,148 @@ impl XcmExecutor { let current_surplus = self.total_surplus.saturating_sub(self.total_refunded); if current_surplus.any_gt(Weight::zero()) { self.total_refunded.saturating_accrue(current_surplus); - if let Some(w) = self.trader.refund_weight(current_surplus) { + if let Some(w) = self.trader.refund_weight(current_surplus, &self.context) { self.subsume_asset(w)?; } } Ok(()) } + fn take_fee(&mut self, fee: MultiAssets, reason: FeeReason) -> XcmResult { + if Config::FeeManager::is_waived(self.origin_ref(), reason) { + return Ok(()) + } + log::trace!( + target: "xcm::fees", + "taking fee: {:?} from origin_ref: {:?} in fees_mode: {:?} for a reason: {:?}", + fee, + self.origin_ref(), + self.fees_mode, + reason, + ); + let paid = if self.fees_mode.jit_withdraw { + let origin = self.origin_ref().ok_or(XcmError::BadOrigin)?; + for asset in fee.inner() { + Config::AssetTransactor::withdraw_asset(&asset, origin, Some(&self.context))?; + } + fee + } else { + self.holding.try_take(fee.into()).map_err(|_| XcmError::NotHoldingFees)?.into() + }; + Config::FeeManager::handle_fee(paid, Some(&self.context), reason); + Ok(()) + } + + /// Calculates what `local_querier` would be from the perspective of `destination`. + fn to_querier( + local_querier: Option, + destination: &MultiLocation, + ) -> Result, XcmError> { + Ok(match local_querier { + None => None, + Some(q) => Some( + q.reanchored(&destination, Config::UniversalLocation::get()).map_err(|_| XcmError::ReanchorFailed)?, + ), + }) + } + + /// Send a bare `QueryResponse` message containing `response` informed by the given `info`. + /// + /// The `local_querier` argument is the querier (if any) specified from the *local* perspective. + fn respond( + &mut self, + local_querier: Option, + response: Response, + info: QueryResponseInfo, + fee_reason: FeeReason, + ) -> Result { + let querier = Self::to_querier(local_querier, &info.destination)?; + let QueryResponseInfo { destination, query_id, max_weight } = info; + let instruction = QueryResponse { query_id, response, max_weight, querier }; + let message = Xcm(vec![instruction]); + self.send(destination, message, fee_reason) + } + + fn try_reanchor( + asset: MultiAsset, + destination: &MultiLocation, + ) -> Result<(MultiAsset, InteriorMultiLocation), XcmError> { + let reanchor_context = Config::UniversalLocation::get(); + let asset = asset.reanchored(&destination, reanchor_context).map_err(|()| XcmError::ReanchorFailed)?; + Ok((asset, reanchor_context)) + } + + fn try_reanchor_multilocation( + location: MultiLocation, + destination: &MultiLocation, + ) -> Result<(MultiLocation, InteriorMultiLocation), XcmError> { + let reanchor_context = Config::UniversalLocation::get(); + let location = location.reanchored(&destination, reanchor_context).map_err(|_| XcmError::ReanchorFailed)?; + Ok((location, reanchor_context)) + } + + /// NOTE: Any assets which were unable to be reanchored are introduced into `failed_bin`. + fn reanchored(mut assets: Assets, dest: &MultiLocation, maybe_failed_bin: Option<&mut Assets>) -> MultiAssets { + let reanchor_context = Config::UniversalLocation::get(); + assets.reanchor(dest, reanchor_context, maybe_failed_bin); + assets.into_assets_iter().collect::>().into() + } + + #[cfg(feature = "runtime-benchmarks")] + pub fn bench_process(&mut self, xcm: Xcm) -> Result<(), ExecutorError> { + self.process(xcm) + } + + fn process(&mut self, xcm: Xcm) -> Result<(), ExecutorError> { + log::trace!( + target: "xcm::process", + "origin: {:?}, total_surplus/refunded: {:?}/{:?}, error_handler_weight: {:?}", + self.origin_ref(), + self.total_surplus, + self.total_refunded, + self.error_handler_weight, + ); + let mut result = Ok(()); + for (i, instr) in xcm.0.into_iter().enumerate() { + match &mut result { + r @ Ok(()) => { + // Initialize the recursion count only the first time we hit this code in our + // potential recursive execution. + let inst_res = recursion_count::using_once(&mut 1, || { + recursion_count::with(|count| { + if *count > RECURSION_LIMIT { + return Err(XcmError::ExceedsStackLimit) + } + *count = count.saturating_add(1); + Ok(()) + }) + // This should always return `Some`, but let's play it safe. + .unwrap_or(Ok(()))?; + + // Ensure that we always decrement the counter whenever we finish processing + // the instruction. + defer! { + recursion_count::with(|count| { + *count = count.saturating_sub(1); + }); + } + + self.process_instruction(instr) + }); + if let Err(e) = inst_res { + log::trace!(target: "xcm::execute", "!!! ERROR: {:?}", e); + *r = Err(ExecutorError { index: i as u32, xcm_error: e, weight: Weight::zero() }); + } + }, + Err(ref mut error) => + if let Ok(x) = Config::Weigher::instr_weight(&instr) { + error.weight.saturating_accrue(x) + }, + } + } + result + } + /// Process a single XCM instruction, mutating the state of the XCM virtual machine. fn process_instruction(&mut self, instr: Instruction) -> Result<(), XcmError> { log::trace!( @@ -531,9 +609,10 @@ impl XcmExecutor { // We only trust the origin to send us assets that they identify as their // sovereign assets. ensure!(Config::IsTeleporter::contains(asset, &origin), XcmError::UntrustedTeleportLocation); - // We should check that the asset can actually be teleported in (for this to be in error, there - // would need to be an accounting violation by one of the trusted chains, so it's unlikely, but we - // don't want to punish a possibly innocent chain/user). + // We should check that the asset can actually be teleported in (for this to be + // in error, there would need to be an accounting violation by one of the + // trusted chains, so it's unlikely, but we don't want to punish a possibly + // innocent chain/user). Config::AssetTransactor::can_check_in(&origin, asset, &self.context)?; } for asset in assets.into_inner().into_iter() { @@ -544,21 +623,79 @@ impl XcmExecutor { }, Transact { origin_kind, require_weight_at_most, mut call } => { // We assume that the Relay-chain is allowed to use transact on this parachain. - let origin = *self.origin_ref().ok_or(XcmError::BadOrigin)?; + let origin = *self.origin_ref().ok_or_else(|| { + log::trace!( + target: "xcm::process_instruction::transact", + "No origin provided", + ); + + XcmError::BadOrigin + })?; // TODO: #2841 #TRANSACTFILTER allow the trait to issue filters for the relay-chain - let message_call = call.take_decoded().map_err(|_| XcmError::FailedToDecode)?; - ensure!(Config::SafeCallFilter::contains(&message_call), XcmError::NoPermission); - let dispatch_origin = - Config::OriginConverter::convert_origin(origin, origin_kind).map_err(|_| XcmError::BadOrigin)?; + let message_call = call.take_decoded().map_err(|_| { + log::trace!( + target: "xcm::process_instruction::transact", + "Failed to decode call", + ); + + XcmError::FailedToDecode + })?; + + log::trace!( + target: "xcm::process_instruction::transact", + "Processing call: {message_call:?}", + ); + + if !Config::SafeCallFilter::contains(&message_call) { + log::trace!( + target: "xcm::process_instruction::transact", + "Call filtered by `SafeCallFilter`", + ); + + return Err(XcmError::NoPermission) + } + + let dispatch_origin = Config::OriginConverter::convert_origin(origin, origin_kind).map_err(|_| { + log::trace!( + target: "xcm::process_instruction::transact", + "Failed to convert origin {origin:?} and origin kind {origin_kind:?} to a local origin." + ); + + XcmError::BadOrigin + })?; + + log::trace!( + target: "xcm::process_instruction::transact", + "Dispatching with origin: {dispatch_origin:?}", + ); + let weight = message_call.get_dispatch_info().weight; - ensure!(weight.all_lte(require_weight_at_most), XcmError::MaxWeightInvalid); + + if !weight.all_lte(require_weight_at_most) { + log::trace!( + target: "xcm::process_instruction::transact", + "Max {weight} bigger than require at most {require_weight_at_most}", + ); + + return Err(XcmError::MaxWeightInvalid) + } + let maybe_actual_weight = match Config::CallDispatcher::dispatch(message_call, dispatch_origin) { Ok(post_info) => { + log::trace!( + target: "xcm::process_instruction::transact", + "Dispatch successful: {post_info:?}" + ); self.transact_status = MaybeErrorCode::Success; post_info.actual_weight }, Err(error_and_info) => { + log::trace!( + target: "xcm::process_instruction::transact", + "Dispatch failed {error_and_info:?}" + ); + self.transact_status = error_and_info.error.encode().into(); error_and_info.post_info.actual_weight }, @@ -600,8 +737,8 @@ impl XcmExecutor { Ok(()) }, ReportError(response_info) => { - // Report the given result by sending a QueryResponse XCM to a previously given outcome - // destination if one was registered. + // Report the given result by sending a QueryResponse XCM to a previously given + // outcome destination if one was registered. self.respond( self.cloned_origin(), Response::ExecutionResult(self.error), @@ -613,14 +750,14 @@ impl XcmExecutor { DepositAsset { assets, beneficiary } => { let deposited = self.holding.saturating_take(assets); for asset in deposited.into_assets_iter() { - Config::AssetTransactor::deposit_asset(&asset, &beneficiary, &self.context)?; + Config::AssetTransactor::deposit_asset(&asset, &beneficiary, Some(&self.context))?; } Ok(()) }, DepositReserveAsset { assets, dest, xcm } => { let deposited = self.holding.saturating_take(assets); for asset in deposited.assets_iter() { - Config::AssetTransactor::deposit_asset(&asset, &dest, &self.context)?; + Config::AssetTransactor::deposit_asset(&asset, &dest, Some(&self.context))?; } // Note that we pass `None` as `maybe_failed_bin` and drop any assets which cannot // be reanchored because we have already called `deposit_asset` on all assets. @@ -675,7 +812,7 @@ impl XcmExecutor { if let Some(weight) = Option::::from(weight_limit) { // pay for `weight` using up to `fees` of the holding register. let max_fee = self.holding.try_take(fees.into()).map_err(|_| XcmError::NotHoldingFees)?; - let unspent = self.trader.buy_weight(weight, max_fee)?; + let unspent = self.trader.buy_weight(weight, max_fee, &self.context)?; self.subsume_assets(unspent)?; } Ok(()) @@ -802,10 +939,12 @@ impl XcmExecutor { Ok(()) }, ExportMessage { network, destination, xcm } => { - // The actual message sent to the bridge for forwarding is prepended with `UniversalOrigin` - // and `DescendOrigin` in order to ensure that the message is executed with this Origin. + // The actual message sent to the bridge for forwarding is prepended with + // `UniversalOrigin` and `DescendOrigin` in order to ensure that the message is + // executed with this Origin. // - // Prepend the desired message with instructions which effectively rewrite the origin. + // Prepend the desired message with instructions which effectively rewrite the + // origin. // // This only works because the remote chain empowers the bridge // to speak for the local network. @@ -819,7 +958,7 @@ impl XcmExecutor { // generally have their own lanes. let (ticket, fee) = validate_export::(network, channel, universal_source, destination, xcm)?; - self.take_fee(fee, FeeReason::Export(network))?; + self.take_fee(fee, FeeReason::Export { network, destination })?; Config::MessageExporter::deliver(ticket)?; Ok(()) }, @@ -848,8 +987,9 @@ impl XcmExecutor { RequestUnlock { asset, locker } => { let origin = *self.origin_ref().ok_or(XcmError::BadOrigin)?; let remote_asset = Self::try_reanchor(asset.clone(), &locker)?.0; + let remote_target = Self::try_reanchor_multilocation(origin, &locker)?.0; let reduce_ticket = Config::AssetLocker::prepare_reduce_unlockable(locker, asset, origin)?; - let msg = Xcm::<()>(vec![UnlockAsset { asset: remote_asset, target: origin }]); + let msg = Xcm::<()>(vec![UnlockAsset { asset: remote_asset, target: remote_target }]); let (ticket, price) = validate_send::(locker, msg)?; self.take_fee(price, FeeReason::RequestUnlock)?; reduce_ticket.enact()?; @@ -882,7 +1022,15 @@ impl XcmExecutor { self.context.topic = None; Ok(()) }, - AliasOrigin(_) => Err(XcmError::NoPermission), + AliasOrigin(target) => { + let origin = self.origin_ref().ok_or(XcmError::BadOrigin)?; + if Config::Aliasers::contains(origin, &target) { + self.context.origin = Some(target); + Ok(()) + } else { + Err(XcmError::NoPermission) + } + }, UnpaidExecution { check_origin, .. } => { ensure!(check_origin.is_none() || self.context.origin == check_origin, XcmError::BadOrigin); Ok(()) @@ -892,72 +1040,4 @@ impl XcmExecutor { HrmpChannelClosing { .. } => Err(XcmError::Unimplemented), } } - - fn take_fee(&mut self, fee: MultiAssets, reason: FeeReason) -> XcmResult { - if Config::FeeManager::is_waived(self.origin_ref(), reason) { - return Ok(()); - } - let paid = if self.fees_mode.jit_withdraw { - let origin = self.origin_ref().ok_or(XcmError::BadOrigin)?; - for asset in fee.inner() { - Config::AssetTransactor::withdraw_asset(&asset, origin, Some(&self.context))?; - } - fee - } else { - self.holding.try_take(fee.into()).map_err(|_| XcmError::NotHoldingFees)?.into() - }; - Config::FeeManager::handle_fee(paid); - Ok(()) - } - - /// Calculates what `local_querier` would be from the perspective of `destination`. - fn to_querier( - local_querier: Option, - destination: &MultiLocation, - ) -> Result, XcmError> { - Ok(match local_querier { - None => None, - Some(q) => Some( - q.reanchored(&destination, Config::UniversalLocation::get()).map_err(|_| XcmError::ReanchorFailed)?, - ), - }) - } - - /// Send a bare `QueryResponse` message containing `response` informed by the given `info`. - /// - /// The `local_querier` argument is the querier (if any) specified from the *local* perspective. - fn respond( - &mut self, - local_querier: Option, - response: Response, - info: QueryResponseInfo, - fee_reason: FeeReason, - ) -> Result { - let querier = Self::to_querier(local_querier, &info.destination)?; - let QueryResponseInfo { destination, query_id, max_weight } = info; - let instruction = QueryResponse { query_id, response, max_weight, querier }; - let message = Xcm(vec![instruction]); - let (ticket, fee) = validate_send::(destination, message)?; - if !Config::FeeManager::is_waived(self.origin_ref(), fee_reason) { - let paid = self.holding.try_take(fee.into()).map_err(|_| XcmError::NotHoldingFees)?; - Config::FeeManager::handle_fee(paid.into()); - } - Config::XcmSender::deliver(ticket).map_err(Into::into) - } - - fn try_reanchor( - asset: MultiAsset, - destination: &MultiLocation, - ) -> Result<(MultiAsset, InteriorMultiLocation), XcmError> { - let reanchor_context = Config::UniversalLocation::get(); - let asset = asset.reanchored(&destination, reanchor_context).map_err(|()| XcmError::ReanchorFailed)?; - Ok((asset, reanchor_context)) - } - - /// NOTE: Any assets which were unable to be reanchored are introduced into `failed_bin`. - fn reanchored(mut assets: Assets, dest: &MultiLocation, maybe_failed_bin: Option<&mut Assets>) -> MultiAssets { - let reanchor_context = Config::UniversalLocation::get(); - assets.reanchor(dest, reanchor_context, maybe_failed_bin); - assets.into_assets_iter().collect::>().into() - } } diff --git a/polimec-common/common/src/credentials/mod.rs b/polimec-common/common/src/credentials/mod.rs index 04eba15d3..35b408964 100644 --- a/polimec-common/common/src/credentials/mod.rs +++ b/polimec-common/common/src/credentials/mod.rs @@ -14,12 +14,12 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -use frame_support::{pallet_prelude::*, parameter_types, traits::OriginTrait, Deserialize, RuntimeDebug, Serialize}; +use frame_support::{pallet_prelude::*, parameter_types, traits::OriginTrait, Deserialize, Serialize}; use pallet_timestamp::Now; use parity_scale_codec::{Decode, Encode}; use scale_info::{prelude::string::String, TypeInfo}; use serde::{de::Error, ser::SerializeStruct, Serializer}; -use sp_runtime::{traits::BadOrigin, DeserializeOwned}; +use sp_runtime::{traits::BadOrigin, DeserializeOwned, RuntimeDebug}; pub use jwt_compact::{ alg::{Ed25519, VerifyingKey}, diff --git a/polimec-common/common/src/lib.rs b/polimec-common/common/src/lib.rs index a3e5e7d20..06b8705d7 100644 --- a/polimec-common/common/src/lib.rs +++ b/polimec-common/common/src/lib.rs @@ -16,8 +16,9 @@ #![cfg_attr(not(feature = "std"), no_std)] -use frame_support::{pallet_prelude::*, traits::tokens::fungible, RuntimeDebug}; +use frame_support::{pallet_prelude::*, traits::tokens::fungible}; use itertools::Itertools; +use sp_runtime::RuntimeDebug; use sp_std::prelude::*; pub mod credentials; diff --git a/polimec-common/test-utils/Cargo.toml b/polimec-common/test-utils/Cargo.toml index 6aec7087d..8aed4fbc0 100644 --- a/polimec-common/test-utils/Cargo.toml +++ b/polimec-common/test-utils/Cargo.toml @@ -33,3 +33,8 @@ std = [ "polimec-common/std", "reqwest", ] +try-runtime = [ "frame-support/try-runtime", "polimec-common/try-runtime" ] +runtime-benchmarks = [ + "frame-support/runtime-benchmarks", + "polimec-common/runtime-benchmarks", +] diff --git a/runtimes/polimec/Cargo.toml b/runtimes/polimec/Cargo.toml index ec1d33786..ac26219b6 100644 --- a/runtimes/polimec/Cargo.toml +++ b/runtimes/polimec/Cargo.toml @@ -49,10 +49,12 @@ pallet-democracy.workspace = true pallet-elections-phragmen.workspace = true pallet-identity.workspace = true pallet-membership.workspace = true +pallet-message-queue.workspace = true pallet-multisig.workspace = true +pallet-scheduler.workspace = true pallet-preimage.workspace = true pallet-proxy.workspace = true -pallet-scheduler.workspace = true +polkadot-primitives.workspace = true pallet-session.workspace = true pallet-sudo.workspace = true pallet-timestamp.workspace = true @@ -72,10 +74,11 @@ sp-session.workspace = true sp-std.workspace = true sp-transaction-pool.workspace = true sp-version.workspace = true +sp-genesis-builder.workspace = true # Polkadot pallet-xcm.workspace = true -polkadot-parachain.workspace = true +polkadot-parachain-primitives.workspace = true polkadot-runtime-common.workspace = true xcm.workspace = true xcm-builder.workspace = true @@ -133,6 +136,7 @@ std = [ "pallet-elections-phragmen/std", "pallet-identity/std", "pallet-membership/std", + "pallet-message-queue/std", "pallet-multisig/std", "pallet-oracle-ocw/std", "pallet-parachain-staking/std", @@ -153,7 +157,8 @@ std = [ "parity-scale-codec/std", "polimec-common/std", "polimec-xcm-executor/std", - "polkadot-parachain/std", + "polkadot-parachain-primitives/std", + "polkadot-primitives/std", "polkadot-runtime-common/std", "scale-info/std", "shared-configuration/std", @@ -162,6 +167,7 @@ std = [ "sp-consensus-aura/std", "sp-core/std", "sp-debug-derive/std", + "sp-genesis-builder/std", "sp-inherents/std", "sp-offchain/std", "sp-runtime/std", @@ -174,9 +180,12 @@ std = [ ] runtime-benchmarks = [ + "cumulus-pallet-dmp-queue/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-session-benchmarking/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "cumulus-primitives-utility/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", "frame-system-benchmarking/runtime-benchmarks", @@ -188,6 +197,7 @@ runtime-benchmarks = [ "pallet-elections-phragmen/runtime-benchmarks", "pallet-identity/runtime-benchmarks", "pallet-membership/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", "pallet-oracle-ocw/runtime-benchmarks", "pallet-parachain-staking/runtime-benchmarks", @@ -200,9 +210,11 @@ runtime-benchmarks = [ "pallet-utility/runtime-benchmarks", "pallet-vesting/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", "polimec-common/runtime-benchmarks", "polimec-xcm-executor/runtime-benchmarks", - "polkadot-parachain/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", + "polkadot-primitives/runtime-benchmarks", "polkadot-runtime-common/runtime-benchmarks", "shared-configuration/runtime-benchmarks", "sp-runtime/runtime-benchmarks", @@ -229,6 +241,7 @@ try-runtime = [ "pallet-elections-phragmen/try-runtime", "pallet-identity/try-runtime", "pallet-membership/try-runtime", + "pallet-message-queue/try-runtime", "pallet-multisig/try-runtime", "pallet-oracle-ocw/try-runtime", "pallet-parachain-staking/try-runtime", @@ -245,6 +258,7 @@ try-runtime = [ "pallet-xcm/try-runtime", "parachain-info/try-runtime", "polimec-common/try-runtime", + "polimec-xcm-executor/try-runtime", "polkadot-runtime-common/try-runtime", "shared-configuration/try-runtime", "sp-runtime/try-runtime", diff --git a/runtimes/polimec/src/custom_migrations/deposit_dust.rs b/runtimes/polimec/src/custom_migrations/deposit_dust.rs index 880bf6528..52f4dad7a 100644 --- a/runtimes/polimec/src/custom_migrations/deposit_dust.rs +++ b/runtimes/polimec/src/custom_migrations/deposit_dust.rs @@ -18,7 +18,9 @@ use crate::*; // Substrate -use frame_support::{log, traits::tokens::Precision::Exact}; +use frame_support::traits::tokens::Precision::Exact; +#[cfg(feature = "try-runtime")] +use log; pub struct DepositDust; impl frame_support::traits::OnRuntimeUpgrade for DepositDust { diff --git a/runtimes/polimec/src/custom_migrations/init_pallet.rs b/runtimes/polimec/src/custom_migrations/init_pallet.rs index b5d2479cd..e8ec37872 100644 --- a/runtimes/polimec/src/custom_migrations/init_pallet.rs +++ b/runtimes/polimec/src/custom_migrations/init_pallet.rs @@ -17,11 +17,10 @@ #[allow(unused_imports)] use crate::*; -// Substrate use frame_support::traits::{GetStorageVersion, PalletInfoAccess, StorageVersion}; #[cfg(feature = "try-runtime")] -use frame_support::dispatch::DispatchError; +use sp_runtime::DispatchError; pub struct InitializePallet + PalletInfoAccess>( sp_std::marker::PhantomData, diff --git a/runtimes/polimec/src/custom_migrations/unhashed_migration.rs b/runtimes/polimec/src/custom_migrations/unhashed_migration.rs index a2acb28b5..0b74932a2 100644 --- a/runtimes/polimec/src/custom_migrations/unhashed_migration.rs +++ b/runtimes/polimec/src/custom_migrations/unhashed_migration.rs @@ -18,7 +18,7 @@ use crate::*; // Substrate -use frame_support::{log, storage::unhashed}; +use frame_support::storage::unhashed; use sp_runtime::AccountId32; #[cfg(feature = "try-runtime")] @@ -27,6 +27,9 @@ use sp_core::crypto::Ss58Codec; #[cfg(feature = "try-runtime")] use pallet_vesting::Vesting; +#[cfg(feature = "try-runtime")] +use log; + // The `VestingInfo` fields from `pallet_vesting` are private, so we need to define them here. #[derive(parity_scale_codec::Encode, parity_scale_codec::Decode, sp_runtime::RuntimeDebug, Eq, PartialEq)] struct VestingInfo { diff --git a/runtimes/polimec/src/lib.rs b/runtimes/polimec/src/lib.rs index 9860c9452..7fcfa18a6 100644 --- a/runtimes/polimec/src/lib.rs +++ b/runtimes/polimec/src/lib.rs @@ -18,31 +18,38 @@ // `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. #![recursion_limit = "256"] -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ - construct_runtime, parameter_types, + construct_runtime, + genesis_builder_helper::{build_config, create_default_config}, + parameter_types, traits::{ - fungible::{Credit, Inspect}, - tokens, AsEnsureOriginWithArg, ConstU32, Contains, EitherOfDiverse, InstanceFilter, PrivilegeCmp, + fungible::{Credit, HoldConsideration, Inspect}, + tokens::{self, PayFromAccount, UnityAssetBalanceConversion}, + AsEnsureOriginWithArg, ConstU32, Contains, EitherOfDiverse, InstanceFilter, LinearStoragePrice, PrivilegeCmp, + TransformOrigin, }, weights::{ConstantMultiplier, Weight}, }; -use frame_system::{EnsureRoot, EnsureRootWithSuccess, EnsureSigned}; +use frame_system::{EnsureNever, EnsureRoot, EnsureRootWithSuccess, EnsureSigned}; use pallet_democracy::GetElectorate; use pallet_oracle_ocw::types::AssetName; -use parachains_common::AssetIdForTrustBackedAssets as AssetId; +use parachains_common::{ + message_queue::{NarrowOriginToSibling, ParaIdToSibling}, + AssetIdForTrustBackedAssets as AssetId, +}; use parity_scale_codec::Encode; -use polkadot_runtime_common::{BlockHashCount, CurrencyToVote, SlowAdjustingFeeUpdate}; +use polkadot_runtime_common::{ + xcm_sender::NoPriceForMessageDelivery, BlockHashCount, CurrencyToVote, SlowAdjustingFeeUpdate, +}; use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, traits::{ - AccountIdLookup, BlakeTwo256, Block as BlockT, Convert, ConvertInto, IdentifyAccount, OpaqueKeys, Verify, + AccountIdLookup, BlakeTwo256, Block as BlockT, Convert, ConvertInto, IdentifyAccount, IdentityLookup, + OpaqueKeys, Verify, }, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, FixedU128, MultiSignature, SaturatedConversion, @@ -51,13 +58,15 @@ use sp_std::{cmp::Ordering, prelude::*}; use sp_version::RuntimeVersion; // XCM Imports -use polimec_xcm_executor::XcmExecutor; -use xcm_config::{XcmConfig, XcmOriginToTransactDispatchOrigin}; +use xcm_config::XcmOriginToTransactDispatchOrigin; + +#[cfg(not(feature = "runtime-benchmarks"))] +use xcm_config::XcmConfig; pub use pallet_parachain_staking; // Polimec Shared Imports pub use shared_configuration::{ - assets::*, currency::*, fee::*, funding::*, governance::*, identity::*, proxy::*, staking::*, weights::*, + assets::*, currency::*, fee::*, funding::*, governance::*, identity::*, proxy::*, staking::*, time::*, weights::*, }; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; pub use sp_runtime::{MultiAddress, Perbill, Permill}; @@ -135,12 +144,12 @@ pub type Migrations = migrations::Unreleased; /// The runtime migrations per release. #[allow(missing_docs)] pub mod migrations { - // Not warn for unused imports in this module. - - use crate::custom_migrations::{deposit_dust::DepositDust, unhashed_migration::UnhashedMigration}; - + use crate::Runtime; /// Unreleased migrations. Add new ones here: - pub type Unreleased = (UnhashedMigration, DepositDust); + pub type Unreleased = ( + cumulus_pallet_xcmp_queue::migration::v4::MigrationToV4, + pallet_identity::migration::versioned::V0ToV1, + ); } /// Executive: handles dispatch to the various modules. @@ -190,10 +199,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("polimec-mainnet"), impl_name: create_runtime_str!("polimec-mainnet"), authoring_version: 1, - spec_version: 0_005_007, + spec_version: 0_006_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 1, + transaction_version: 2, state_version: 1, }; @@ -314,6 +323,8 @@ impl frame_system::Config for Runtime { type RuntimeEvent = RuntimeEvent; /// The ubiquitous origin type. type RuntimeOrigin = RuntimeOrigin; + /// The ubiquitous task type. + type RuntimeTask = RuntimeTask; /// This is used as an identifier of the chain. 42 is the generic substrate prefix. type SS58Prefix = SS58Prefix; /// Weight information for the extrinsics of this pallet. @@ -356,6 +367,7 @@ impl pallet_balances::Config for Runtime { type MaxReserves = MaxReserves; type ReserveIdentifier = [u8; 8]; type RuntimeEvent = RuntimeEvent; + type RuntimeFreezeReason = RuntimeFreezeReason; type RuntimeHoldReason = RuntimeHoldReason; type WeightInfo = pallet_balances::weights::SubstrateWeight; } @@ -397,13 +409,20 @@ impl pallet_assets::Config for Runtime { impl cumulus_pallet_parachain_system::Config for Runtime { type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; - type DmpMessageHandler = DmpQueue; + type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< + Runtime, + RELAY_CHAIN_SLOT_DURATION_MILLIS, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, + >; + type DmpQueue = frame_support::traits::EnqueueWithOrigin; type OnSystemEvent = (); type OutboundXcmpMessageSource = XcmpQueue; type ReservedDmpWeight = ReservedDmpWeight; type ReservedXcmpWeight = ReservedXcmpWeight; type RuntimeEvent = RuntimeEvent; type SelfParaId = parachain_info::Pallet; + type WeightInfo = cumulus_pallet_parachain_system::weights::SubstrateWeight; type XcmpMessageHandler = XcmpQueue; } @@ -411,22 +430,50 @@ impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} +parameter_types! { + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; +} + impl cumulus_pallet_xcmp_queue::Config for Runtime { type ChannelInfo = ParachainSystem; type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; - type ExecuteOverweightOrigin = EnsureRoot; - type PriceForSiblingDelivery = (); + type MaxInboundSuspended = sp_core::ConstU32<1_000>; + type PriceForSiblingDelivery = NoPriceForMessageDelivery; type RuntimeEvent = RuntimeEvent; - type VersionWrapper = (); + type VersionWrapper = PolkadotXcm; type WeightInfo = cumulus_pallet_xcmp_queue::weights::SubstrateWeight; - type XcmExecutor = XcmExecutor; + type XcmpQueue = TransformOrigin; } impl cumulus_pallet_dmp_queue::Config for Runtime { - type ExecuteOverweightOrigin = EnsureRoot; + type DmpSink = frame_support::traits::EnqueueWithOrigin; + type RuntimeEvent = RuntimeEvent; + type WeightInfo = cumulus_pallet_dmp_queue::weights::SubstrateWeight; +} + +parameter_types! { + pub MessageQueueServiceWeight: Weight = Perbill::from_percent(35) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_message_queue::Config for Runtime { + type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; + type MaxStale = sp_core::ConstU32<8>; + #[cfg(feature = "runtime-benchmarks")] + type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor; + #[cfg(not(feature = "runtime-benchmarks"))] + type MessageProcessor = xcm_builder::ProcessXcmMessage< + AggregateMessageOrigin, + polimec_xcm_executor::XcmExecutor, + RuntimeCall, + >; + // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: + type QueueChangeHandler = NarrowOriginToSibling; + type QueuePausedQuery = NarrowOriginToSibling; type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; + type ServiceWeight = MessageQueueServiceWeight; + type Size = u32; + type WeightInfo = pallet_message_queue::weights::SubstrateWeight; } impl pallet_session::Config for Runtime { @@ -457,17 +504,29 @@ impl tokens::imbalance::OnUnbalanced> for ToTreasury { } } +parameter_types! { + pub TreasuryAccount: AccountId = Treasury::account_id(); +} + impl pallet_treasury::Config for Runtime { type ApproveOrigin = EitherOfDiverse< EnsureRoot, pallet_collective::EnsureProportionAtLeast, >; + type AssetKind = (); + type BalanceConverter = UnityAssetBalanceConversion; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); + type Beneficiary = AccountId; + type BeneficiaryLookup = IdentityLookup; type Burn = Burn; type BurnDestination = (); type Currency = Balances; type MaxApprovals = MaxApprovals; type OnSlash = Treasury; type PalletId = TreasuryId; + type Paymaster = PayFromAccount; + type PayoutPeriod = PayoutPeriod; type ProposalBond = ProposalBond; type ProposalBondMaximum = (); type ProposalBondMinimum = ProposalBondMinimum; @@ -625,10 +684,18 @@ impl pallet_scheduler::Config for Runtime { type WeightInfo = (); } +parameter_types! { + pub const PreimageHoldReason: RuntimeHoldReason = + RuntimeHoldReason::Preimage(pallet_preimage::HoldReason::Preimage); +} + impl pallet_preimage::Config for Runtime { - // TODO: Check this base deposit value. - type BaseDeposit = PreimageBaseDeposit; - type ByteDeposit = (); + type Consideration = HoldConsideration< + AccountId, + Balances, + PreimageHoldReason, + LinearStoragePrice, + >; type Currency = Balances; type ManagerOrigin = EnsureRoot; type RuntimeEvent = RuntimeEvent; @@ -683,6 +750,7 @@ parameter_types! { pub RootOperatorAccountId: AccountId = AccountId::from([0xffu8; 32]); pub const MaxFeedValues: u32 = 4; // max 4 values allowd to feed in one call (USDT, USDC, DOT, PLMC). } + impl orml_oracle::Config for Runtime { type CombineData = orml_oracle::DefaultCombineData; type MaxFeedValues = MaxFeedValues; @@ -780,6 +848,7 @@ where } impl pallet_vesting::Config for Runtime { + type BlockNumberProvider = System; type BlockNumberToBalance = ConvertInto; type Currency = Balances; type MinVestedTransfer = shared_configuration::vesting::MinVestedTransfer; @@ -824,16 +893,22 @@ impl pallet_proxy::Config for Runtime { impl pallet_identity::Config for Runtime { type BasicDeposit = BasicDeposit; + type ByteDeposit = ByteDeposit; type Currency = Balances; - type FieldDeposit = FieldDeposit; type ForceOrigin = EnsureRoot; - type MaxAdditionalFields = MaxAdditionalFields; + type IdentityInformation = pallet_identity::legacy::IdentityInfo; type MaxRegistrars = MaxRegistrars; type MaxSubAccounts = MaxSubAccounts; + type MaxSuffixLength = MaxSuffixLength; + type MaxUsernameLength = MaxUsernameLength; + type OffchainSignature = Signature; + type PendingUsernameExpiration = PendingUsernameExpiration; type RegistrarOrigin = EnsureRoot; type RuntimeEvent = RuntimeEvent; + type SigningPublicKey = ::Signer; type Slashed = Treasury; type SubAccountDeposit = SubAccountDeposit; + type UsernameAuthorityOrigin = EnsureNever; type WeightInfo = pallet_identity::weights::SubstrateWeight; } @@ -871,6 +946,7 @@ construct_runtime!( PolkadotXcm: pallet_xcm = 31, CumulusXcm: cumulus_pallet_xcm = 32, DmpQueue: cumulus_pallet_dmp_queue = 33, + MessageQueue: pallet_message_queue = 34, // Governance Treasury: pallet_treasury = 40, @@ -878,7 +954,7 @@ construct_runtime!( Council: pallet_collective:: = 42, TechnicalCommittee: pallet_collective:: = 43, Elections: pallet_elections_phragmen::{Pallet, Call, Storage, Event, Config, HoldReason, FreezeReason} = 44, - Preimage: pallet_preimage::{Pallet, Call, Storage, Event} = 45, + Preimage: pallet_preimage::{Pallet, Call, Storage, Event, HoldReason} = 45, Scheduler: pallet_scheduler::{Pallet, Call, Storage, Event} = 46, // Oracle @@ -908,7 +984,7 @@ mod benches { // XCM helpers. [cumulus_pallet_xcmp_queue, XcmpQueue] - [pallet_xcm, PolkadotXcm] + [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] // Governance [pallet_treasury, Treasury] @@ -954,6 +1030,7 @@ impl_runtime_apis! { fn metadata() -> OpaqueMetadata { OpaqueMetadata::new(Runtime::metadata().into()) } + fn metadata_at_version(version: u32) -> Option { Runtime::metadata_at_version(version) } @@ -1096,26 +1173,54 @@ impl_runtime_apis! { use frame_benchmarking::{Benchmarking, BenchmarkList}; use frame_support::traits::StorageInfoTrait; use frame_system_benchmarking::Pallet as SystemBench; + use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; use cumulus_pallet_session_benchmarking::Pallet as SessionBench; let mut list = Vec::::new(); list_benchmarks!(list, extra); let storage_info = AllPalletsWithSystem::storage_info(); - return (list, storage_info) + (list, storage_info) } fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch}; + use frame_benchmarking::{BenchmarkError, Benchmarking, BenchmarkBatch}; use frame_system_benchmarking::Pallet as SystemBench; - impl frame_system_benchmarking::Config for Runtime {} + impl frame_system_benchmarking::Config for Runtime { + fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); + Ok(()) + } + + fn verify_set_code() { + System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); + } + } - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; impl cumulus_pallet_session_benchmarking::Config for Runtime {} + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + use xcm::latest::prelude::*; + use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + /// TODO: Update these benchmarks once we enable PLMC Teleportation + impl pallet_xcm::benchmarking::Config for Runtime { + fn reachable_dest() -> Option { + Some(crate::xcm_config::AssetHubLocation::get()) + } + + fn reserve_transferable_asset_and_dest() -> Option<(MultiAsset, MultiLocation)> { + Some(( + MultiAsset { + fun: Fungible(EXISTENTIAL_DEPOSIT), + id: Concrete(Parent.into()) + }, + crate::xcm_config::AssetHubLocation::get(), + )) + } + } use frame_support::traits::WhitelistedStorageKeys; let whitelist = AllPalletsWithSystem::whitelisted_storage_keys(); @@ -1127,31 +1232,19 @@ impl_runtime_apis! { Ok(batches) } } -} - -struct CheckInherents; - -impl cumulus_pallet_parachain_system::CheckInherents for CheckInherents { - fn check_inherents( - block: &Block, - relay_state_proof: &cumulus_pallet_parachain_system::RelayChainStateProof, - ) -> sp_inherents::CheckInherentsResult { - let relay_chain_slot = - relay_state_proof.read_slot().expect("Could not read the relay chain slot from the proof"); - let inherent_data = cumulus_primitives_timestamp::InherentDataProvider::from_relay_chain_slot_and_duration( - relay_chain_slot, - sp_std::time::Duration::from_secs(6), - ) - .create_inherent_data() - .expect("Could not create the timestamp inherent data"); + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } - inherent_data.check_extrinsics(block) + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } } } cumulus_pallet_parachain_system::register_validate_block! { Runtime = Runtime, BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, - CheckInherents = CheckInherents, } diff --git a/runtimes/polimec/src/xcm_config.rs b/runtimes/polimec/src/xcm_config.rs index aded98b0b..e455888ab 100644 --- a/runtimes/polimec/src/xcm_config.rs +++ b/runtimes/polimec/src/xcm_config.rs @@ -16,7 +16,7 @@ use super::{ AccountId, AllPalletsWithSystem, AssetId as AssetIdPalletAssets, Balance, Balances, EnsureRoot, ForeignAssets, - ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, + ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, Vec, WeightToFee, XcmpQueue, }; use core::marker::PhantomData; @@ -30,14 +30,14 @@ use polimec_xcm_executor::{ polimec_traits::{JustTry, Properties, ShouldExecute}, XcmExecutor, }; -use polkadot_parachain::primitives::Sibling; +use polkadot_parachain_primitives::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; use sp_runtime::traits::MaybeEquivalence; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowTopLevelPaidExecutionFrom, CreateMatcher, CurrencyAdapter, DenyReserveTransferToRelayChain, DenyThenTry, - EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, FungiblesAdapter, IsConcrete, MatchXcm, + AllowTopLevelPaidExecutionFrom, CreateMatcher, DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, + FixedRateOfFungible, FixedWeightBounds, FungibleAdapter, FungiblesAdapter, IsConcrete, MatchXcm, MatchedConvertedConcreteId, MintLocation, NoChecking, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WithComputedOrigin, @@ -68,6 +68,7 @@ parameter_types! { Parachain(ParachainInfo::parachain_id().into()), ).into(); pub const HereLocation: MultiLocation = MultiLocation::here(); + pub AssetHubLocation: MultiLocation = (Parent, Parachain(1000)).into(); pub CheckAccount: AccountId = PolkadotXcm::check_account(); /// The check account that is allowed to mint assets locally. Used for PLMC teleport /// checking once enabled. @@ -91,7 +92,7 @@ pub type LocationToAccountId = ( ); /// Means for transacting assets on this chain. -pub type CurrencyTransactor = CurrencyAdapter< +pub type FungibleTransactor = FungibleAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: @@ -164,7 +165,7 @@ pub struct AssetHubAssetsAsReserve; impl ContainsPair for AssetHubAssetsAsReserve { fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool { // location must be the AssetHub parachain - let asset_hub_loc = MultiLocation::new(1, X1(Parachain(1000))); + let asset_hub_loc = AssetHubLocation::get(); if &asset_hub_loc != origin { return false } @@ -174,6 +175,16 @@ impl ContainsPair for AssetHubAssetsAsReserve { } } } +impl Contains<(MultiLocation, Vec)> for AssetHubAssetsAsReserve { + fn contains(item: &(MultiLocation, Vec)) -> bool { + // We allow all signed origins to send back the AssetHub reserve assets. + let (_, assets) = item; + assets.iter().all(|asset| match asset.id { + Concrete(id) => SupportedAssets::contains(&id), + _ => false, + }) + } +} /// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, /// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can @@ -246,13 +257,14 @@ pub type Barrier = DenyThenTry< pub type Reserves = AssetHubAssetsAsReserve; /// Means for transacting assets on this chain. -/// CurrencyTransaction is a CurrencyAdapter that allows for transacting PLMC. +/// FungibleTransactor is a FungibleAdapter that allows for transacting PLMC. /// ForeignAssetsAdapter is a FungiblesAdapter that allows for transacting foreign assets. /// Currently we only support DOT, USDT and USDC. -pub type AssetTransactors = (CurrencyTransactor, ForeignAssetsAdapter); +pub type AssetTransactors = (FungibleTransactor, ForeignAssetsAdapter); pub struct XcmConfig; impl polimec_xcm_executor::Config for XcmConfig { + type Aliasers = (); type AssetClaims = PolkadotXcm; type AssetExchanger = (); type AssetLocker = (); @@ -301,26 +313,6 @@ pub type XcmRouter = ( XcmpQueue, ); -#[cfg(feature = "runtime-benchmarks")] -parameter_types! { - pub ReachableDest: Option = Some(Parent.into()); -} - -pub struct XcmExecuteFilter; -impl Contains<(MultiLocation, Xcm)> for XcmExecuteFilter { - fn contains(item_call_pair: &(MultiLocation, Xcm)) -> bool { - let (origin, xcm) = item_call_pair; - let allowed_origin = matches!(origin, MultiLocation { parents: 0, interior: X1(AccountId32 { .. }) }); - let allowed_xcm = match xcm.0[..] { - [WithdrawAsset { .. }, BuyExecution { .. }, InitiateReserveWithdraw { reserve, .. }] => { - matches!(reserve, MultiLocation { parents: 1, interior: X1(Parachain(1000)) }) - }, - _ => false, - }; - allowed_origin && allowed_xcm - } -} - impl pallet_xcm::Config for Runtime { type AdminOrigin = EnsureRoot; // ^ Override for AdvertisedXcmVersion default @@ -330,8 +322,6 @@ impl pallet_xcm::Config for Runtime { type ExecuteXcmOrigin = EnsureXcmOrigin; type MaxLockers = ConstU32<8>; type MaxRemoteLockConsumers = ConstU32<0>; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; type RemoteLockConsumerIdentifier = (); type RuntimeCall = RuntimeCall; type RuntimeEvent = RuntimeEvent; @@ -342,12 +332,12 @@ impl pallet_xcm::Config for Runtime { type UniversalLocation = UniversalLocation; type Weigher = FixedWeightBounds; type WeightInfo = pallet_xcm::TestWeightInfo; - type XcmExecuteFilter = XcmExecuteFilter; + type XcmExecuteFilter = Nothing; // ^ Disable dispatchable execute on the XCM pallet. // Needs to be `Everything` for local testing. type XcmExecutor = XcmExecutor; - // We do not support Reserve-based transfers with Polimec as Reserve. - type XcmReserveTransferFilter = Nothing; + // We only allow reserve based transfers of AssetHub reserve assets back to AssetHub. + type XcmReserveTransferFilter = AssetHubAssetsAsReserve; type XcmRouter = XcmRouter; // We do not allow teleportation of PLMC or other assets. // TODO: change this once we enable PLMC teleports diff --git a/runtimes/politest/Cargo.toml b/runtimes/politest/Cargo.toml index 53a7fb725..3d535e90c 100644 --- a/runtimes/politest/Cargo.toml +++ b/runtimes/politest/Cargo.toml @@ -50,16 +50,18 @@ pallet-democracy.workspace = true pallet-elections-phragmen.workspace = true pallet-identity.workspace = true pallet-membership.workspace = true +pallet-message-queue.workspace = true +pallet-multisig.workspace = true +pallet-preimage.workspace = true +pallet-proxy.workspace = true +pallet-sudo.workspace = true pallet-scheduler.workspace = true pallet-session.workspace = true -pallet-sudo.workspace = true pallet-timestamp.workspace = true pallet-transaction-payment.workspace = true pallet-transaction-payment-rpc-runtime-api.workspace = true pallet-treasury.workspace = true pallet-utility.workspace = true -pallet-multisig.workspace = true -pallet-preimage.workspace = true pallet-insecure-randomness-collective-flip.workspace = true pallet-vesting.workspace = true pallet-parachain-staking.workspace = true @@ -77,10 +79,11 @@ sp-session.workspace = true sp-std.workspace = true sp-transaction-pool.workspace = true sp-version.workspace = true +sp-genesis-builder.workspace = true # Polkadot pallet-xcm.workspace = true -polkadot-parachain.workspace = true +polkadot-parachain-primitives.workspace = true polkadot-runtime-common.workspace = true xcm.workspace = true xcm-builder.workspace = true @@ -96,7 +99,6 @@ cumulus-pallet-session-benchmarking.workspace = true cumulus-pallet-xcm.workspace = true cumulus-pallet-xcmp-queue.workspace = true cumulus-primitives-core.workspace = true -cumulus-primitives-timestamp.workspace = true cumulus-primitives-utility.workspace = true parachain-info.workspace = true polkadot-primitives.workspace = true @@ -120,7 +122,6 @@ std = [ "cumulus-pallet-xcm/std", "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-core/std", - "cumulus-primitives-timestamp/std", "cumulus-primitives-utility/std", "frame-benchmarking?/std", "frame-executive/std", @@ -144,10 +145,12 @@ std = [ "pallet-insecure-randomness-collective-flip/std", "pallet-linear-release/std", "pallet-membership/std", + "pallet-message-queue/std", "pallet-multisig/std", "pallet-oracle-ocw/std", "pallet-parachain-staking/std", "pallet-preimage/std", + "pallet-proxy/std", "pallet-scheduler/std", "pallet-session/std", "pallet-sudo/std", @@ -163,7 +166,7 @@ std = [ "parity-scale-codec/std", "polimec-common/std", "polimec-xcm-executor/std", - "polkadot-parachain/std", + "polkadot-parachain-primitives/std", "polkadot-primitives/std", "polkadot-runtime-common/std", "scale-info/std", @@ -172,6 +175,8 @@ std = [ "sp-block-builder/std", "sp-consensus-aura/std", "sp-core/std", + "sp-debug-derive/std", + "sp-genesis-builder/std", "sp-inherents/std", "sp-io/std", "sp-offchain/std", @@ -183,13 +188,15 @@ std = [ "xcm-builder/std", "xcm-executor/std", "xcm/std", - "sp-debug-derive/std" ] runtime-benchmarks = [ + "cumulus-pallet-dmp-queue/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-session-benchmarking/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "cumulus-primitives-utility/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", "frame-system-benchmarking/runtime-benchmarks", @@ -204,10 +211,12 @@ runtime-benchmarks = [ "pallet-identity/runtime-benchmarks", "pallet-linear-release/runtime-benchmarks", "pallet-membership/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", "pallet-oracle-ocw/runtime-benchmarks", "pallet-parachain-staking/runtime-benchmarks", "pallet-preimage/runtime-benchmarks", + "pallet-proxy/runtime-benchmarks", "pallet-scheduler/runtime-benchmarks", "pallet-sudo/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", @@ -215,9 +224,10 @@ runtime-benchmarks = [ "pallet-utility/runtime-benchmarks", "pallet-vesting/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", "polimec-common/runtime-benchmarks", "polimec-xcm-executor/runtime-benchmarks", - "polkadot-parachain/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", "polkadot-primitives/runtime-benchmarks", "polkadot-runtime-common/runtime-benchmarks", "shared-configuration/runtime-benchmarks", @@ -251,10 +261,12 @@ try-runtime = [ "pallet-insecure-randomness-collective-flip/try-runtime", "pallet-linear-release/try-runtime", "pallet-membership/try-runtime", + "pallet-message-queue/try-runtime", "pallet-multisig/try-runtime", "pallet-oracle-ocw/try-runtime", "pallet-parachain-staking/try-runtime", "pallet-preimage/try-runtime", + "pallet-proxy/try-runtime", "pallet-scheduler/try-runtime", "pallet-session/try-runtime", "pallet-sudo/try-runtime", diff --git a/runtimes/politest/src/lib.rs b/runtimes/politest/src/lib.rs index 14b1f490a..e9fa5e3bf 100644 --- a/runtimes/politest/src/lib.rs +++ b/runtimes/politest/src/lib.rs @@ -22,25 +22,34 @@ #[macro_use] extern crate frame_benchmarking; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ - construct_runtime, ord_parameter_types, parameter_types, + construct_runtime, + genesis_builder_helper::{build_config, create_default_config}, + ord_parameter_types, parameter_types, traits::{ - fungible::{Credit, Inspect}, - tokens, AsEnsureOriginWithArg, ConstU32, Contains, Currency, EitherOfDiverse, PrivilegeCmp, WithdrawReasons, + fungible::{Credit, HoldConsideration, Inspect}, + tokens::{self, PayFromAccount, UnityAssetBalanceConversion}, + AsEnsureOriginWithArg, ConstU32, Contains, Currency, EitherOfDiverse, LinearStoragePrice, PrivilegeCmp, + TransformOrigin, WithdrawReasons, }, weights::{ConstantMultiplier, Weight}, }; -use frame_system::{EnsureRoot, EnsureRootWithSuccess, EnsureSigned}; +use frame_system::{EnsureNever, EnsureRoot, EnsureRootWithSuccess, EnsureSigned}; pub use parachains_common::{ - impls::DealWithFees, opaque, AccountId, AssetIdForTrustBackedAssets as AssetId, AuraId, Balance, BlockNumber, Hash, - Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, MINUTES, - NORMAL_DISPATCH_RATIO, SLOT_DURATION, + impls::DealWithFees, + message_queue::{NarrowOriginToSibling, ParaIdToSibling}, + opaque, AccountId, AssetIdForTrustBackedAssets as AssetId, AuraId, Balance, BlockNumber, Hash, Header, Nonce, + Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, MINUTES, NORMAL_DISPATCH_RATIO, + SLOT_DURATION, }; use parity_scale_codec::Encode; use polimec_common::credentials::EnsureInvestor; // Polkadot imports -use polkadot_runtime_common::{BlockHashCount, CurrencyToVote, SlowAdjustingFeeUpdate}; +use polkadot_runtime_common::{ + xcm_sender::NoPriceForMessageDelivery, BlockHashCount, CurrencyToVote, SlowAdjustingFeeUpdate, +}; use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; #[cfg(any(feature = "std", test))] @@ -49,10 +58,10 @@ use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, traits::{ AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT, Convert, ConvertBack, ConvertInto, - OpaqueKeys, Verify, + IdentityLookup, OpaqueKeys, Verify, }, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, FixedU128, MultiAddress, SaturatedConversion, + ApplyExtrinsicResult, FixedU128, MultiAddress, Perbill, SaturatedConversion, }; use pallet_democracy::GetElectorate; @@ -63,7 +72,6 @@ use sp_version::NativeVersion; use sp_version::RuntimeVersion; // XCM Imports -use polimec_xcm_executor::XcmExecutor; pub use xcm_config::XcmConfig; pub mod xcm_config; pub use crate::xcm_config::*; @@ -241,6 +249,8 @@ impl frame_system::Config for Runtime { type RuntimeEvent = RuntimeEvent; /// The ubiquitous origin type. type RuntimeOrigin = RuntimeOrigin; + /// The ubiquitous task type. + type RuntimeTask = RuntimeTask; /// This is used as an identifier of the chain. 42 is the generic substrate prefix. type SS58Prefix = SS58Prefix; /// Weight information for the extrinsics of this pallet. @@ -273,8 +283,9 @@ impl pallet_balances::Config for Runtime { type MaxHolds = MaxLocks; type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; - type ReserveIdentifier = RuntimeHoldReason; + type ReserveIdentifier = [u8; 8]; type RuntimeEvent = RuntimeEvent; + type RuntimeFreezeReason = RuntimeFreezeReason; type RuntimeHoldReason = RuntimeHoldReason; type WeightInfo = (); } @@ -303,15 +314,26 @@ impl pallet_sudo::Config for Runtime { type WeightInfo = (); } +parameter_types! { + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; +} + impl cumulus_pallet_parachain_system::Config for Runtime { type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; - type DmpMessageHandler = DmpQueue; + type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< + Runtime, + RELAY_CHAIN_SLOT_DURATION_MILLIS, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, + >; + type DmpQueue = frame_support::traits::EnqueueWithOrigin; type OnSystemEvent = (); type OutboundXcmpMessageSource = XcmpQueue; type ReservedDmpWeight = ReservedDmpWeight; type ReservedXcmpWeight = ReservedXcmpWeight; type RuntimeEvent = RuntimeEvent; type SelfParaId = ParachainInfo; + type WeightInfo = cumulus_pallet_parachain_system::weights::SubstrateWeight; type XcmpMessageHandler = XcmpQueue; } @@ -323,18 +345,42 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ChannelInfo = ParachainSystem; type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = xcm_config::XcmOriginToTransactDispatchOrigin; - type ExecuteOverweightOrigin = EnsureRoot; - type PriceForSiblingDelivery = (); + type MaxInboundSuspended = sp_core::ConstU32<1_000>; + type PriceForSiblingDelivery = NoPriceForMessageDelivery; type RuntimeEvent = RuntimeEvent; type VersionWrapper = PolkadotXcm; - type WeightInfo = (); - type XcmExecutor = XcmExecutor; + type WeightInfo = cumulus_pallet_xcmp_queue::weights::SubstrateWeight; + type XcmpQueue = TransformOrigin; } impl cumulus_pallet_dmp_queue::Config for Runtime { - type ExecuteOverweightOrigin = EnsureRoot; + type DmpSink = frame_support::traits::EnqueueWithOrigin; + type RuntimeEvent = RuntimeEvent; + type WeightInfo = cumulus_pallet_dmp_queue::weights::SubstrateWeight; +} + +parameter_types! { + pub MessageQueueServiceWeight: Weight = Perbill::from_percent(35) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_message_queue::Config for Runtime { + type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; + type MaxStale = sp_core::ConstU32<8>; + #[cfg(feature = "runtime-benchmarks")] + type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor; + #[cfg(not(feature = "runtime-benchmarks"))] + type MessageProcessor = xcm_builder::ProcessXcmMessage< + AggregateMessageOrigin, + polimec_xcm_executor::XcmExecutor, + RuntimeCall, + >; + // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: + type QueueChangeHandler = NarrowOriginToSibling; + type QueuePausedQuery = NarrowOriginToSibling; type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; + type ServiceWeight = MessageQueueServiceWeight; + type Size = u32; + type WeightInfo = pallet_message_queue::weights::SubstrateWeight; } impl pallet_session::Config for Runtime { @@ -372,16 +418,27 @@ impl pallet_treasury::Config for Runtime { EnsureRoot, pallet_collective::EnsureProportionAtLeast, >; + type AssetKind = (); + type BalanceConverter = UnityAssetBalanceConversion; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); + type Beneficiary = AccountId; + type BeneficiaryLookup = IdentityLookup; type Burn = Burn; type BurnDestination = (); type Currency = Balances; type MaxApprovals = MaxApprovals; type OnSlash = Treasury; type PalletId = TreasuryId; + type Paymaster = PayFromAccount; + type PayoutPeriod = PayoutPeriod; type ProposalBond = ProposalBond; type ProposalBondMaximum = (); type ProposalBondMinimum = ProposalBondMinimum; - type RejectOrigin = EnsureRoot; + type RejectOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionAtLeast, + >; type RuntimeEvent = RuntimeEvent; type SpendFunds = (); type SpendOrigin = frame_support::traits::NeverEnsureOrigin; @@ -532,10 +589,18 @@ impl pallet_scheduler::Config for Runtime { type WeightInfo = (); } +parameter_types! { + pub const PreimageHoldReason: RuntimeHoldReason = + RuntimeHoldReason::Preimage(pallet_preimage::HoldReason::Preimage); +} + impl pallet_preimage::Config for Runtime { - // TODO: Check this base deposit value. - type BaseDeposit = PreimageBaseDeposit; - type ByteDeposit = (); + type Consideration = HoldConsideration< + AccountId, + Balances, + PreimageHoldReason, + LinearStoragePrice, + >; type Currency = Balances; type ManagerOrigin = EnsureRoot; type RuntimeEvent = RuntimeEvent; @@ -561,16 +626,22 @@ impl pallet_multisig::Config for Runtime { impl pallet_identity::Config for Runtime { type BasicDeposit = BasicDeposit; + type ByteDeposit = ByteDeposit; type Currency = Balances; - type FieldDeposit = FieldDeposit; type ForceOrigin = EnsureRoot; - type MaxAdditionalFields = MaxAdditionalFields; + type IdentityInformation = pallet_identity::legacy::IdentityInfo; type MaxRegistrars = MaxRegistrars; type MaxSubAccounts = MaxSubAccounts; + type MaxSuffixLength = MaxSuffixLength; + type MaxUsernameLength = MaxUsernameLength; + type OffchainSignature = Signature; + type PendingUsernameExpiration = PendingUsernameExpiration; type RegistrarOrigin = EnsureRoot; type RuntimeEvent = RuntimeEvent; + type SigningPublicKey = ::Signer; type Slashed = Treasury; type SubAccountDeposit = SubAccountDeposit; + type UsernameAuthorityOrigin = EnsureNever; type WeightInfo = pallet_identity::weights::SubstrateWeight; } @@ -878,7 +949,9 @@ where Some((call, (address, signature, extra))) } } + impl pallet_vesting::Config for Runtime { + type BlockNumberProvider = System; type BlockNumberToBalance = ConvertInto; type Currency = Balances; type MinVestedTransfer = MinVestedTransfer; @@ -927,7 +1000,7 @@ construct_runtime!( Council: pallet_collective:: = 42, TechnicalCommittee: pallet_collective:: = 43, Elections: pallet_elections_phragmen::{Pallet, Call, Storage, Event, Config, HoldReason, FreezeReason} = 44, - Preimage: pallet_preimage::{Pallet, Call, Storage, Event} = 45, + Preimage: pallet_preimage::{Pallet, Call, Storage, Event, HoldReason} = 45, Scheduler: pallet_scheduler::{Pallet, Call, Storage, Event} = 46, // Polimec Core @@ -951,6 +1024,7 @@ construct_runtime!( CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 84, // Queue and pass DMP messages on to be executed. DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 85, + MessageQueue: pallet_message_queue = 86, } ); @@ -1177,31 +1251,18 @@ impl_runtime_apis! { Ok(batches) } } -} - -struct CheckInherents; - -impl cumulus_pallet_parachain_system::CheckInherents for CheckInherents { - fn check_inherents( - block: &Block, - relay_state_proof: &cumulus_pallet_parachain_system::RelayChainStateProof, - ) -> sp_inherents::CheckInherentsResult { - let relay_chain_slot = - relay_state_proof.read_slot().expect("Could not read the relay chain slot from the proof"); - - let inherent_data = cumulus_primitives_timestamp::InherentDataProvider::from_relay_chain_slot_and_duration( - relay_chain_slot, - sp_std::time::Duration::from_secs(6), - ) - .create_inherent_data() - .expect("Could not create the timestamp inherent data"); + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } - inherent_data.check_extrinsics(block) + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } } } cumulus_pallet_parachain_system::register_validate_block! { Runtime = Runtime, BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, - CheckInherents = CheckInherents, } diff --git a/runtimes/politest/src/xcm_config.rs b/runtimes/politest/src/xcm_config.rs index 3728a4310..3b3d0f309 100644 --- a/runtimes/politest/src/xcm_config.rs +++ b/runtimes/politest/src/xcm_config.rs @@ -34,14 +34,14 @@ use polimec_xcm_executor::{ polimec_traits::{JustTry, Properties, ShouldExecute}, XcmExecutor, }; -use polkadot_parachain::primitives::Sibling; +use polkadot_parachain_primitives::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; use sp_runtime::traits::MaybeEquivalence; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowTopLevelPaidExecutionFrom, CreateMatcher, CurrencyAdapter, DenyReserveTransferToRelayChain, DenyThenTry, - EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, FungiblesAdapter, IsConcrete, MatchXcm, + AllowTopLevelPaidExecutionFrom, CreateMatcher, DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, + FixedRateOfFungible, FixedWeightBounds, FungibleAdapter, FungiblesAdapter, IsConcrete, MatchXcm, MatchedConvertedConcreteId, MintLocation, NoChecking, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WithComputedOrigin, @@ -95,7 +95,7 @@ pub type LocationToAccountId = ( ); /// Means for transacting assets on this chain. -pub type CurrencyTransactor = CurrencyAdapter< +pub type FungibleTransactor = FungibleAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: @@ -250,13 +250,14 @@ pub type Barrier = DenyThenTry< pub type Reserves = AssetHubAssetsAsReserve; /// Means for transacting assets on this chain. -/// CurrencyTransaction is a CurrencyAdapter that allows for transacting PLMC. +/// FungibleTransactor is a FungibleAdapter that allows for transacting PLMC. /// ForeignAssetsAdapter is a FungiblesAdapter that allows for transacting foreign assets. /// Currently we only support DOT, USDT and USDC. -pub type AssetTransactors = (CurrencyTransactor, ForeignAssetsAdapter); +pub type AssetTransactors = (FungibleTransactor, ForeignAssetsAdapter); pub struct XcmConfig; impl polimec_xcm_executor::Config for XcmConfig { + type Aliasers = (); type AssetClaims = PolkadotXcm; type AssetExchanger = (); type AssetLocker = (); @@ -334,8 +335,6 @@ impl pallet_xcm::Config for Runtime { type ExecuteXcmOrigin = EnsureXcmOrigin; type MaxLockers = ConstU32<8>; type MaxRemoteLockConsumers = ConstU32<0>; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; type RemoteLockConsumerIdentifier = (); type RuntimeCall = RuntimeCall; type RuntimeEvent = RuntimeEvent; diff --git a/runtimes/shared-configuration/Cargo.toml b/runtimes/shared-configuration/Cargo.toml index 136df9071..163784bdf 100644 --- a/runtimes/shared-configuration/Cargo.toml +++ b/runtimes/shared-configuration/Cargo.toml @@ -27,6 +27,7 @@ frame-support.workspace = true sp-arithmetic.workspace = true parachains-common.workspace = true sp-std.workspace = true +sp-runtime.workspace = true pallet-funding.workspace = true orml-traits.workspace = true pallet-transaction-payment.workspace = true @@ -52,6 +53,7 @@ std = [ "parity-scale-codec/std", "scale-info/std", "sp-arithmetic/std", + "sp-runtime/std", "sp-std/std", ] runtime-benchmarks = [ @@ -60,6 +62,8 @@ runtime-benchmarks = [ "pallet-balances/runtime-benchmarks", "pallet-funding/runtime-benchmarks", "pallet-parachain-staking/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", ] try-runtime = [ "frame-support/try-runtime", @@ -69,4 +73,5 @@ try-runtime = [ "pallet-funding/try-runtime", "pallet-parachain-staking/try-runtime", "pallet-transaction-payment/try-runtime", + "sp-runtime/try-runtime", ] diff --git a/runtimes/shared-configuration/src/funding.rs b/runtimes/shared-configuration/src/funding.rs index 07188dcd5..eec81cc54 100644 --- a/runtimes/shared-configuration/src/funding.rs +++ b/runtimes/shared-configuration/src/funding.rs @@ -22,14 +22,14 @@ use sp_arithmetic::{FixedU128, Percent}; use sp_std::{collections::btree_map::BTreeMap, vec, vec::Vec}; #[cfg(feature = "instant-mode")] -pub const EVALUATION_DURATION: BlockNumber = 1; +pub const EVALUATION_DURATION: BlockNumber = 3; #[cfg(feature = "fast-mode")] pub const EVALUATION_DURATION: BlockNumber = 28; #[cfg(not(any(feature = "fast-mode", feature = "instant-mode")))] pub const EVALUATION_DURATION: BlockNumber = 28 * crate::DAYS; #[cfg(feature = "instant-mode")] -pub const AUCTION_INITIALIZE_PERIOD_DURATION: BlockNumber = 1; +pub const AUCTION_INITIALIZE_PERIOD_DURATION: BlockNumber = 3; #[cfg(feature = "fast-mode")] pub const AUCTION_INITIALIZE_PERIOD_DURATION: BlockNumber = 7; #[cfg(not(any(feature = "fast-mode", feature = "instant-mode")))] @@ -50,14 +50,14 @@ pub const CANDLE_AUCTION_DURATION: BlockNumber = 5; pub const CANDLE_AUCTION_DURATION: BlockNumber = 3 * crate::DAYS; #[cfg(feature = "instant-mode")] -pub const COMMUNITY_FUNDING_DURATION: BlockNumber = 1; +pub const COMMUNITY_FUNDING_DURATION: BlockNumber = 3; #[cfg(feature = "fast-mode")] pub const COMMUNITY_FUNDING_DURATION: BlockNumber = 10; #[cfg(not(any(feature = "fast-mode", feature = "instant-mode")))] pub const COMMUNITY_FUNDING_DURATION: BlockNumber = 5 * crate::DAYS; #[cfg(feature = "instant-mode")] -pub const REMAINDER_FUNDING_DURATION: BlockNumber = 1; +pub const REMAINDER_FUNDING_DURATION: BlockNumber = 3; #[cfg(feature = "fast-mode")] pub const REMAINDER_FUNDING_DURATION: BlockNumber = 10; #[cfg(not(any(feature = "fast-mode", feature = "instant-mode")))] @@ -71,14 +71,14 @@ pub const CONTRIBUTION_VESTING_DURATION: BlockNumber = 365; pub const CONTRIBUTION_VESTING_DURATION: BlockNumber = 365 * crate::DAYS; #[cfg(feature = "instant-mode")] -pub const MANUAL_ACCEPTANCE_DURATION: BlockNumber = 1; +pub const MANUAL_ACCEPTANCE_DURATION: BlockNumber = 3; #[cfg(feature = "fast-mode")] pub const MANUAL_ACCEPTANCE_DURATION: BlockNumber = 3; #[cfg(not(any(feature = "fast-mode", feature = "instant-mode")))] pub const MANUAL_ACCEPTANCE_DURATION: BlockNumber = 3 * crate::DAYS; #[cfg(feature = "instant-mode")] -pub const SUCCESS_TO_SETTLEMENT_TIME: BlockNumber = 1; +pub const SUCCESS_TO_SETTLEMENT_TIME: BlockNumber = 4; #[cfg(feature = "fast-mode")] pub const SUCCESS_TO_SETTLEMENT_TIME: BlockNumber = 4; #[cfg(not(any(feature = "fast-mode", feature = "instant-mode")))] diff --git a/runtimes/shared-configuration/src/governance.rs b/runtimes/shared-configuration/src/governance.rs index 5ef964b9e..7c7e72c95 100644 --- a/runtimes/shared-configuration/src/governance.rs +++ b/runtimes/shared-configuration/src/governance.rs @@ -117,6 +117,7 @@ parameter_types! { // Extras pub const PreimageBaseDeposit: Balance = deposit(2, 64); + pub const PreimageByteDeposit: Balance = deposit(0, 1); pub const MaxProposals: u32 = 10; pub const MaxVotes: u32 = 100; pub const MaxBlacklisted: u32 = 100; @@ -128,6 +129,7 @@ parameter_types! { pub const SpendPeriod: BlockNumber = SPEND_PERIOD; pub const Burn: Permill = Permill::zero(); pub const MaxApprovals: u32 = 100; + pub const PayoutPeriod: BlockNumber = 0; pub const TreasuryId: PalletId = PalletId(*b"plmc/tsy"); // Elections phragmen diff --git a/runtimes/shared-configuration/src/identity.rs b/runtimes/shared-configuration/src/identity.rs index b8c8af52d..d9481d4ee 100644 --- a/runtimes/shared-configuration/src/identity.rs +++ b/runtimes/shared-configuration/src/identity.rs @@ -14,14 +14,16 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -use crate::{Balance, MILLI_PLMC, PLMC}; +use crate::{deposit, Balance, PLMC}; use frame_support::parameter_types; parameter_types! { /// The basic deposit to create an identity. pub const BasicDeposit: Balance = 20 * PLMC; /// Deposit for each additional field. - pub const FieldDeposit: Balance = 200 * MILLI_PLMC; + pub const ByteDeposit: Balance = deposit(0, 1); + + pub const PendingUsernameExpiration: u32 = 0; /// The deposit needed to create a sub-account. /// We do not allow sub-accounts so can be 0. /// Should be set to a non-zero value if sub-accounts are allowed. @@ -33,4 +35,8 @@ parameter_types! { pub const MaxAdditionalFields: u32 = 100; /// Max number of registrars that can be set. pub const MaxRegistrars: u32 = 3; + /// Max length of username suffix. + pub const MaxSuffixLength: u32 = 0; + /// Max length of username. + pub const MaxUsernameLength: u32 = 0; } diff --git a/runtimes/shared-configuration/src/lib.rs b/runtimes/shared-configuration/src/lib.rs index 0a9f4f3d0..4cdc41c89 100644 --- a/runtimes/shared-configuration/src/lib.rs +++ b/runtimes/shared-configuration/src/lib.rs @@ -24,6 +24,7 @@ pub mod governance; pub mod identity; pub mod proxy; pub mod staking; +pub mod time; pub mod weights; /// Common types @@ -36,4 +37,5 @@ pub use funding::*; pub use governance::*; pub use identity::*; pub use staking::*; +pub use time::*; pub use weights::*; diff --git a/runtimes/shared-configuration/src/proxy.rs b/runtimes/shared-configuration/src/proxy.rs index 3e39a786a..de4d96a14 100644 --- a/runtimes/shared-configuration/src/proxy.rs +++ b/runtimes/shared-configuration/src/proxy.rs @@ -15,8 +15,9 @@ // along with this program. If not, see . use crate::{deposit, Balance}; -use frame_support::{parameter_types, RuntimeDebug}; +use frame_support::parameter_types; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; +use sp_runtime::RuntimeDebug; #[derive( Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, RuntimeDebug, MaxEncodedLen, scale_info::TypeInfo, diff --git a/runtimes/shared-configuration/src/time.rs b/runtimes/shared-configuration/src/time.rs new file mode 100644 index 000000000..a6fb15907 --- /dev/null +++ b/runtimes/shared-configuration/src/time.rs @@ -0,0 +1,24 @@ +// Polimec Blockchain – https://www.polimec.org/ +// Copyright (C) Polimec 2022. All rights reserved. + +// The Polimec Blockchain 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. + +// The Polimec Blockchain 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 this program. If not, see . + +/// Maximum number of blocks simultaneously accepted by the Runtime, not yet included +/// into the relay chain. +pub const UNINCLUDED_SEGMENT_CAPACITY: u32 = 1; +/// How many parachain blocks are processed by the relay chain per parent. Limits the +/// number of blocks authored per slot. +pub const BLOCK_PROCESSING_VELOCITY: u32 = 1; +/// Relay chain slot duration, in milliseconds. +pub const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 405e55c4b..0d65c8360 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.74.0" -components = [ "rustfmt", "clippy", "rust-analyzer" ] +channel = "1.75.0" +components = [ "rustfmt", "clippy", "rust-analyzer", "rust-src" ] targets = [ "wasm32-unknown-unknown" ] \ No newline at end of file