From 3d0bcddd600f61dfb3780feda86b2173e19e6bf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Andr=C3=A9s=20Dorado=20Su=C3=A1rez?= Date: Wed, 26 Jun 2024 01:58:37 -0500 Subject: [PATCH] Update to polkadot-sdk v1.12.0 (#409) * change(cargo): initiate updating dependencies * change(cargo): format files / update dependencies / patch broken dependencies * change(pallet-communities): explicitly define ItemConfig * change(pallet-communities-manager): use pallet-communities' ItemConfig for managing memberships * change(cargo): apply frame-contrib#14 * change(runtime-common): update definitions to XCMv4 * change(kusama-runtime-constants): update definitions to XCMv4 * wip(virto-common): use XCMv3 as the version for structuring locations over `MultiLocationAssetId`s * change(pallets): update pallets to use new features present in PSDK v1.12 * change(pallets): prune unused pallets * change(cargo): remove crate patch / update dependencies * wip(kreivo-runtime): adjust parameters for runtime * change(kreivo-runtime): adjust xcm to use latest * change: update deps / lint * fix: lint * fix(kreivo-runtime): output WASM in builds * change(node): adjustments in cli settings * change(kreivo-runtime): update version * change(justfile): adjust to new TOML format * change(virto-node): update to latest template * change(kreivo-runtime): include missing impls for aura * fix(kreivo-runtime): missing feature propagation / invalid visiblity for RuntimeApi * fix(virto-node): misaligned version for json_rpsee dependency * fix(virto-node): format * change(zombienet): adjust configs * fix(kreivo-runtime): use specific CreateOrigin for runtime benchmarks * fix: lint * [ci] calculate weights (#414) Co-authored-by: pandres95 <2502577+pandres95@users.noreply.github.com> * change: version bump --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- Cargo.lock | 4165 +++++++++-------- Cargo.toml | 303 +- common/Cargo.toml | 78 +- common/src/multilocation_asset_id.rs | 98 +- node/Cargo.toml | 179 +- node/README.md | 18 + node/build.rs | 16 - node/src/benchmarking.rs | 112 - node/src/chain_spec/kreivo.rs | 12 +- node/src/chain_spec/mod.rs | 29 +- node/src/cli.rs | 41 +- node/src/command.rs | 314 +- node/src/main.rs | 20 +- node/src/rpc.rs | 41 +- node/src/service.rs | 596 +-- node/tests/benchmark_storage_works.rs | 45 - node/tests/common.rs | 143 - node/tests/polkadot_argument_parsing.rs | 39 - node/tests/polkadot_mdns_issue.rs | 33 - node/tests/purge_chain_works.rs | 54 - node/tests/running_the_node_and_interrupt.rs | 33 - pallets/asset-registry/Cargo.toml | 52 - pallets/asset-registry/README.md | 1 - pallets/asset-registry/src/benchmarking.rs | 42 - pallets/asset-registry/src/lib.rs | 170 - pallets/asset-registry/src/mock.rs | 144 - pallets/asset-registry/src/tests.rs | 209 - pallets/asset-registry/src/weights.rs | 102 - pallets/burner/Cargo.toml | 67 - pallets/burner/README.md | 1 - pallets/burner/src/benchmarking.rs | 29 - pallets/burner/src/lib.rs | 132 - pallets/burner/src/mock.rs | 116 - pallets/burner/src/tests.rs | 15 - pallets/burner/src/weights.rs | 59 - pallets/communities-manager/Cargo.toml | 161 +- .../communities-manager/src/benchmarking.rs | 8 +- pallets/communities-manager/src/lib.rs | 4 +- .../src/mock/collective.rs | 12 +- pallets/communities-manager/src/mock/mod.rs | 67 +- pallets/communities/Cargo.toml | 159 +- pallets/communities/src/benchmarking.rs | 18 +- pallets/communities/src/functions.rs | 36 +- pallets/communities/src/lib.rs | 30 +- pallets/communities/src/mock.rs | 96 +- pallets/communities/src/origin.rs | 22 +- pallets/communities/src/tests/governance.rs | 20 - pallets/communities/src/types.rs | 2 - pallets/payments/Cargo.toml | 134 +- pallets/payments/src/mock.rs | 76 +- runtime/common/src/impls.rs | 65 +- runtime/kreivo/Cargo.toml | 459 +- runtime/kreivo/src/apis.rs | 401 ++ runtime/kreivo/src/collective/mod.rs | 25 +- runtime/kreivo/src/collective/tracks.rs | 5 +- runtime/kreivo/src/communities/mod.rs | 10 +- runtime/kreivo/src/constants.rs | 2 +- runtime/kreivo/src/lib.rs | 429 +- .../kreivo/src/weights/pallet_communities.rs | 124 +- .../src/weights/pallet_communities_manager.rs | 16 +- runtime/kreivo/src/weights/pallet_payments.rs | 40 +- runtime/kreivo/src/weights/xcm/mod.rs | 54 +- runtime/kreivo/src/xcm_config.rs | 91 +- runtime/kreivo/src/xcm_config/communities.rs | 38 +- runtime/kusama-runtime-constants/Cargo.toml | 4 +- runtime/kusama-runtime-constants/src/lib.rs | 21 +- .../src/tests/reserve_transfer.rs | 4 +- zombienet/kreivo-kusama-local.toml | 6 +- zombienet/kreivo-rococo-local.toml | 4 +- 69 files changed, 4224 insertions(+), 5927 deletions(-) create mode 100644 node/README.md delete mode 100644 node/src/benchmarking.rs delete mode 100644 node/tests/benchmark_storage_works.rs delete mode 100644 node/tests/common.rs delete mode 100644 node/tests/polkadot_argument_parsing.rs delete mode 100644 node/tests/polkadot_mdns_issue.rs delete mode 100644 node/tests/purge_chain_works.rs delete mode 100644 node/tests/running_the_node_and_interrupt.rs delete mode 100644 pallets/asset-registry/Cargo.toml delete mode 100644 pallets/asset-registry/README.md delete mode 100644 pallets/asset-registry/src/benchmarking.rs delete mode 100644 pallets/asset-registry/src/lib.rs delete mode 100644 pallets/asset-registry/src/mock.rs delete mode 100644 pallets/asset-registry/src/tests.rs delete mode 100644 pallets/asset-registry/src/weights.rs delete mode 100644 pallets/burner/Cargo.toml delete mode 100644 pallets/burner/README.md delete mode 100644 pallets/burner/src/benchmarking.rs delete mode 100644 pallets/burner/src/lib.rs delete mode 100644 pallets/burner/src/mock.rs delete mode 100644 pallets/burner/src/tests.rs delete mode 100644 pallets/burner/src/weights.rs create mode 100644 runtime/kreivo/src/apis.rs diff --git a/Cargo.lock b/Cargo.lock index a70d6c13..a017939a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,11 +23,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ - "gimli 0.28.1", + "gimli 0.29.0", ] [[package]] @@ -71,17 +71,6 @@ dependencies = [ "subtle 2.5.0", ] -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom 0.2.15", - "once_cell", - "version_check", -] - [[package]] name = "ahash" version = "0.8.11" @@ -172,9 +161,9 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" dependencies = [ "windows-sys 0.52.0", ] @@ -191,9 +180,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.83" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "approx" @@ -206,16 +195,16 @@ dependencies = [ [[package]] name = "aquamarine" -version = "0.3.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760" +checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" dependencies = [ "include_dir", "itertools 0.10.5", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.66", ] [[package]] @@ -429,20 +418,6 @@ dependencies = [ "hashbrown 0.13.2", ] -[[package]] -name = "ark-scale" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51bd73bb6ddb72630987d37fa963e99196896c0d0ea81b7c894567e74a2f83af" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", - "parity-scale-codec", - "scale-info", -] - [[package]] name = "ark-scale" version = "0.0.12" @@ -460,7 +435,7 @@ dependencies = [ [[package]] name = "ark-secret-scalar" version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-ec", "ark-ff", @@ -509,7 +484,7 @@ dependencies = [ [[package]] name = "ark-transcript" version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-ff", "ark-serialize", @@ -519,12 +494,6 @@ dependencies = [ "sha3", ] -[[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.3" @@ -546,12 +515,6 @@ dependencies = [ "nodrop", ] -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "arrayvec" version = "0.7.4" @@ -583,7 +546,7 @@ dependencies = [ "proc-macro2", "quote", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", ] [[package]] @@ -597,21 +560,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "assert_cmd" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" -dependencies = [ - "anstyle", - "bstr", - "doc-comment", - "predicates 3.1.0", - "predicates-core", - "predicates-tree", - "wait-timeout", -] - [[package]] name = "assert_matches" version = "1.5.0" @@ -620,22 +568,21 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" [[package]] name = "assets-common" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "cumulus-primitives-core", "frame-support", "impl-trait-for-tuples", "log", "pallet-asset-conversion", - "pallet-asset-tx-payment", "pallet-xcm", "parachains-common", "parity-scale-codec", "scale-info", "sp-api", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -660,16 +607,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener-strategy 0.5.2", + "event-listener-strategy", "futures-core", "pin-project-lite 0.2.14", ] [[package]] name = "async-executor" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" +checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0" dependencies = [ "async-task", "concurrent-queue", @@ -712,17 +659,17 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" +checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" dependencies = [ - "async-lock 3.3.0", + "async-lock 3.4.0", "cfg-if", "concurrent-queue", "futures-io", "futures-lite 2.3.0", "parking", - "polling 3.7.0", + "polling 3.7.2", "rustix 0.38.34", "slab", "tracing", @@ -740,12 +687,12 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 4.0.3", - "event-listener-strategy 0.4.0", + "event-listener 5.3.1", + "event-listener-strategy", "pin-project-lite 0.2.14", ] @@ -779,12 +726,12 @@ dependencies = [ [[package]] name = "async-signal" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda" +checksum = "794f185324c2f00e771cd9f1ae8b5ac68be2ca7abb129a87afd6e86d228bc54d" dependencies = [ - "async-io 2.3.2", - "async-lock 3.3.0", + "async-io 2.3.3", + "async-lock 3.4.0", "atomic-waker", "cfg-if", "futures-core", @@ -809,7 +756,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -837,17 +784,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "autocfg" version = "1.3.0" @@ -856,23 +792,23 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ - "addr2line 0.21.0", + "addr2line 0.22.0", "cc", "cfg-if", "libc", "miniz_oxide", - "object 0.32.2", + "object 0.36.0", "rustc-demangle", ] [[package]] name = "bandersnatch_vrfs" version = "0.0.4" -source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-bls12-381", "ark-ec", @@ -882,7 +818,7 @@ dependencies = [ "ark-std", "dleq_vrf", "fflonk", - "merlin 3.0.0", + "merlin", "rand_chacha 0.3.1", "rand_core 0.6.4", "ring 0.1.0", @@ -916,6 +852,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "base64ct" version = "1.6.0" @@ -933,8 +875,8 @@ dependencies = [ [[package]] name = "binary-merkle-tree" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "13.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "hash-db", "log", @@ -967,7 +909,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -976,19 +918,31 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ - "bitcoin_hashes", - "rand 0.8.5", - "rand_core 0.6.4", - "serde", - "unicode-normalization", + "bitcoin_hashes 0.11.0", ] +[[package]] +name = "bitcoin-internals" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" + [[package]] name = "bitcoin_hashes" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" +[[package]] +name = "bitcoin_hashes" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +dependencies = [ + "bitcoin-internals", + "hex-conservative", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -1080,18 +1034,6 @@ dependencies = [ "constant_time_eq 0.3.0", ] -[[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", -] - [[package]] name = "block-buffer" version = "0.9.0" @@ -1110,23 +1052,13 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", -] - [[package]] name = "blocking" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ "async-channel 2.3.1", - "async-lock 3.3.0", "async-task", "futures-io", "futures-lite 2.3.0", @@ -1135,9 +1067,9 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.1.9" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca548b6163b872067dc5eb82fd130c56881435e30367d2073594a3d9744120dd" +checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" dependencies = [ "log", "parity-scale-codec", @@ -1156,8 +1088,8 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.6.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "scale-info", @@ -1180,17 +1112,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "bstr" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" -dependencies = [ - "memchr", - "regex-automata 0.4.6", - "serde", -] - [[package]] name = "build-helper" version = "0.1.1" @@ -1291,9 +1212,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.97" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4" +checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" dependencies = [ "jobserver", "libc", @@ -1391,6 +1312,19 @@ dependencies = [ "unsigned-varint", ] +[[package]] +name = "cid" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3" +dependencies = [ + "core2", + "multibase", + "multihash 0.18.1", + "serde", + "unsigned-varint", +] + [[package]] name = "cipher" version = "0.2.5" @@ -1411,20 +1345,11 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ckb-merkle-mountain-range" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ccb671c5921be8a84686e6212ca184cb1d7c51cadcdbfcbd1cc3f042f5dfb8" -dependencies = [ - "cfg-if", -] - [[package]] name = "clang-sys" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", @@ -1433,9 +1358,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" dependencies = [ "clap_builder", "clap_derive", @@ -1443,9 +1368,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" dependencies = [ "anstream", "anstyle", @@ -1456,21 +1381,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" [[package]] name = "coarsetime" @@ -1493,12 +1418,43 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "color-print" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee543c60ff3888934877a5671f45494dd27ed4ba25c6670b9a7576b7ed7a8c0" +dependencies = [ + "color-print-proc-macro", +] + +[[package]] +name = "color-print-proc-macro" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ff1a80c5f3cb1ca7c06ffdd71b6a6dd6d8f896c42141fbd43f50ed28dcdb93" +dependencies = [ + "nom", + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "colorchoice" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "comfy-table" version = "7.1.1" @@ -1506,7 +1462,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" dependencies = [ "strum 0.26.2", - "strum_macros 0.26.2", + "strum_macros 0.26.4", "unicode-width", ] @@ -1522,7 +1478,7 @@ dependencies = [ "ark-std", "fflonk", "getrandom_or_panic", - "merlin 3.0.0", + "merlin", "rand_chacha 0.3.1", ] @@ -1681,7 +1637,7 @@ dependencies = [ "gimli 0.27.3", "hashbrown 0.13.2", "log", - "regalloc2", + "regalloc2 0.6.1", "smallvec", "target-lexicon", ] @@ -1755,11 +1711,26 @@ dependencies = [ "wasmtime-types", ] +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + [[package]] name = "crc32fast" -version = "1.4.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] @@ -1794,9 +1765,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" @@ -1847,16 +1818,6 @@ dependencies = [ "subtle 2.5.0", ] -[[package]] -name = "crypto-mac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" -dependencies = [ - "generic-array 0.14.7", - "subtle 2.5.0", -] - [[package]] name = "ctr" version = "0.9.2" @@ -1868,8 +1829,8 @@ dependencies = [ [[package]] name = "cumulus-client-cli" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "clap", "parity-scale-codec", @@ -1877,6 +1838,7 @@ dependencies = [ "sc-cli", "sc-client-api", "sc-service", + "sp-blockchain", "sp-core", "sp-runtime", "url", @@ -1884,15 +1846,15 @@ dependencies = [ [[package]] name = "cumulus-client-collator" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", "futures", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", @@ -1907,16 +1869,16 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" 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", "parity-scale-codec", @@ -1949,8 +1911,8 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1978,8 +1940,8 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "anyhow", "async-trait", @@ -1992,55 +1954,56 @@ dependencies = [ ] [[package]] -name = "cumulus-client-consensus-relay-chain" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +name = "cumulus-client-network" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", - "cumulus-client-consensus-common", - "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures", - "parking_lot 0.12.2", - "sc-consensus", - "sp-api", - "sp-block-builder", + "futures-timer", + "parity-scale-codec", + "parking_lot 0.12.3", + "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/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" 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.2", - "polkadot-node-primitives", - "polkadot-parachain-primitives", - "polkadot-primitives", "sc-client-api", - "sp-blockchain", - "sp-consensus", - "sp-core", + "scale-info", + "sp-api", + "sp-crypto-hashing", + "sp-inherents", "sp-runtime", "sp-state-machine", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-trie", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2063,8 +2026,8 @@ dependencies = [ [[package]] name = "cumulus-client-service" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -2093,14 +2056,15 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-core", + "sp-io", "sp-runtime", "sp-transaction-pool", ] [[package]] name = "cumulus-pallet-aura-ext" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -2112,13 +2076,13 @@ dependencies = [ "sp-application-crypto", "sp-consensus-aura", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "cumulus-pallet-parachain-system" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2134,36 +2098,38 @@ dependencies = [ "pallet-message-queue", "parity-scale-codec", "polkadot-parachain-primitives", + "polkadot-runtime-common", "polkadot-runtime-parachains", "scale-info", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-inherents", "sp-io", "sp-runtime", "sp-state-machine", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-trie", "sp-version", "staging-xcm", + "staging-xcm-builder", "trie-db", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.6.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "cumulus-pallet-session-benchmarking" -version = "3.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "9.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -2171,13 +2137,13 @@ dependencies = [ "pallet-session", "parity-scale-codec", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "cumulus-pallet-xcm" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2186,14 +2152,14 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "staging-xcm", ] [[package]] name = "cumulus-pallet-xcmp-queue" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -2210,15 +2176,16 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "staging-xcm", + "staging-xcm-builder", "staging-xcm-executor", ] [[package]] name = "cumulus-primitives-aura" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2226,13 +2193,13 @@ dependencies = [ "sp-api", "sp-consensus-aura", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "cumulus-primitives-core" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2241,72 +2208,66 @@ dependencies = [ "scale-info", "sp-api", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-trie", "staging-xcm", ] [[package]] name = "cumulus-primitives-parachain-inherent" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" 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 8.0.0", - "sp-storage 13.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-trie", - "tracing", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.2.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "sp-externalities 0.19.0", - "sp-runtime-interface 17.0.0", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-trie", ] [[package]] name = "cumulus-primitives-timestamp" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "cumulus-primitives-core", "futures", "parity-scale-codec", "sp-inherents", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-timestamp", ] [[package]] name = "cumulus-primitives-utility" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "cumulus-primitives-core", "frame-support", "log", - "pallet-xcm-benchmarks", + "pallet-asset-conversion", "parity-scale-codec", "polkadot-runtime-common", "polkadot-runtime-parachains", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2314,8 +2275,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2338,8 +2299,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2356,16 +2317,16 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", "futures", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "polkadot-availability-recovery", "polkadot-collator-protocol", "polkadot-core-primitives", @@ -2378,6 +2339,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", + "polkadot-service", "sc-authority-discovery", "sc-client-api", "sc-network", @@ -2397,8 +2359,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2425,7 +2387,7 @@ dependencies = [ "sp-core", "sp-runtime", "sp-state-machine", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-version", "thiserror", "tokio", @@ -2436,31 +2398,18 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives", "sp-runtime", "sp-state-machine", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-trie", ] -[[package]] -name = "curve25519-dalek" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" -dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", - "subtle 2.5.0", - "zeroize", -] - [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -2499,7 +2448,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -2517,9 +2466,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.122" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb497fad022245b29c2a0351df572e2d67c1046bcef2260ebc022aec81efea82" +checksum = "273dcfd3acd4e1e276af13ed2a43eea7001318823e7a726a6b3ed39b4acc0b82" dependencies = [ "cc", "cxxbridge-flags", @@ -2529,9 +2478,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.122" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9327c7f9fbd6329a200a5d4aa6f674c60ab256525ff0084b52a889d4e4c60cee" +checksum = "d8b2766fbd92be34e9ed143898fce6c572dc009de39506ed6903e5a05b68914e" dependencies = [ "cc", "codespan-reporting", @@ -2539,24 +2488,37 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "cxxbridge-flags" -version = "1.0.122" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c799a4a846f1c0acb9f36bb9c6272d9b3d9457f3633c7753c6057270df13c" +checksum = "839fcd5e43464614ffaa989eaf1c139ef1f0c51672a1ed08023307fa1b909ccd" [[package]] name = "cxxbridge-macro" -version = "1.0.122" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928bc249a7e3cd554fd2e8e08a426e9670c50bbfc9a621653cfa9accc9641783" +checksum = "4b2c1c1776b986979be68bb2285da855f8d8a35851a769fca8740df7c3d07877" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", ] [[package]] @@ -2648,7 +2610,7 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -2744,23 +2706,23 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "dleq_vrf" version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-ec", "ark-ff", - "ark-scale 0.0.11", + "ark-scale", "ark-secret-scalar", "ark-serialize", "ark-std", @@ -2769,12 +2731,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "doc-comment" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" - [[package]] name = "docify" version = "0.2.8" @@ -2796,9 +2752,9 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.64", + "syn 2.0.66", "termcolor", - "toml 0.8.13", + "toml 0.8.14", "walkdir", ] @@ -2857,10 +2813,20 @@ dependencies = [ "digest 0.10.7", "elliptic-curve", "rfc6979", - "signature", + "serdect", + "signature 2.2.0", "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" @@ -2868,35 +2834,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ "pkcs8", - "signature", + "signature 2.2.0", ] [[package]] name = "ed25519-dalek" -version = "2.1.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ - "curve25519-dalek 4.1.2", - "ed25519", - "rand_core 0.6.4", + "curve25519-dalek 3.2.0", + "ed25519 1.5.3", + "rand 0.7.3", "serde", - "sha2 0.10.8", - "subtle 2.5.0", + "sha2 0.9.9", "zeroize", ] [[package]] -name = "ed25519-zebra" -version = "3.1.0" +name = "ed25519-dalek" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ - "curve25519-dalek 3.2.0", - "hashbrown 0.12.3", - "hex", + "curve25519-dalek 4.1.2", + "ed25519 2.2.3", "rand_core 0.6.4", - "sha2 0.9.9", + "serde", + "sha2 0.10.8", + "subtle 2.5.0", "zeroize", ] @@ -2907,7 +2873,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ "curve25519-dalek 4.1.2", - "ed25519", + "ed25519 2.2.3", "hashbrown 0.14.5", "hex", "rand_core 0.6.4", @@ -2917,9 +2883,9 @@ dependencies = [ [[package]] name = "either" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" [[package]] name = "elliptic-curve" @@ -2936,6 +2902,7 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sec1", + "serdect", "subtle 2.5.0", "zeroize", ] @@ -2958,24 +2925,36 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "enum-as-inner" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "enumflags2" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -2986,7 +2965,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -3043,43 +3022,22 @@ dependencies = [ [[package]] name = "event-listener" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite 0.2.14", -] - -[[package]] -name = "event-listener" -version = "5.3.0" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ "concurrent-queue", "parking", "pin-project-lite 0.2.14", ] -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.3", - "pin-project-lite 0.2.14", -] - [[package]] name = "event-listener-strategy" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 5.3.0", + "event-listener 5.3.1", "pin-project-lite 0.2.14", ] @@ -3094,41 +3052,30 @@ dependencies = [ [[package]] name = "expander" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a718c0675c555c5f976fff4ea9e2c150fa06cefa201cadef87cfbf9324075881" -dependencies = [ - "blake3", - "fs-err", - "proc-macro2", - "quote", -] - -[[package]] -name = "expander" -version = "2.1.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e83c02035136f1592a47964ea60c05a50e4ed8b5892cfac197063850898d4d" +checksum = "e2c470c71d91ecbd179935b24170459e926382eaaa86b590b78814e180d8a8e2" dependencies = [ "blake2 0.10.6", + "file-guard", "fs-err", - "prettier-please", + "prettyplease 0.2.20", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] -name = "fake-simd" -version = "0.1.2" +name = "fallible-iterator" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fallible-iterator" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" [[package]] name = "fastrand" @@ -3147,9 +3094,9 @@ checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "fatality" -version = "0.0.6" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad875162843b0d046276327afe0136e9ed3a23d5a754210fb6f1f33610d39ab" +checksum = "ec6f82451ff7f0568c6181287189126d492b5654e30a788add08027b6363d019" dependencies = [ "fatality-proc-macro", "thiserror", @@ -3157,23 +3104,22 @@ dependencies = [ [[package]] name = "fatality-proc-macro" -version = "0.0.6" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5aa1e3ae159e592ad222dc90c5acbad632b527779ba88486abe92782ab268bd" +checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" dependencies = [ - "expander 0.0.4", - "indexmap 1.9.3", - "proc-macro-crate 1.3.1", + "expander", + "indexmap 2.2.6", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 1.0.109", - "thiserror", + "syn 2.0.66", ] [[package]] name = "fc-pallet-referenda-tracks" version = "1.0.0" -source = "git+https://github.com/virto-network/frame-contrib?branch=main#eca8a811d8ea72e0dfe927b668a11b1bf383d117" +source = "git+https://github.com/virto-network/frame-contrib?branch=main#367c7f985a306714e0d0a2639da201730a8736ac" dependencies = [ "fc-traits-tracks", "frame-benchmarking", @@ -3186,13 +3132,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "fc-traits-memberships" version = "0.1.0" -source = "git+https://github.com/virto-network/frame-contrib?branch=main#eca8a811d8ea72e0dfe927b668a11b1bf383d117" +source = "git+https://github.com/virto-network/frame-contrib?branch=main#367c7f985a306714e0d0a2639da201730a8736ac" dependencies = [ "frame-support", "parity-scale-codec", @@ -3202,7 +3148,7 @@ dependencies = [ [[package]] name = "fc-traits-tracks" version = "0.1.0" -source = "git+https://github.com/virto-network/frame-contrib?branch=main#eca8a811d8ea72e0dfe927b668a11b1bf383d117" +source = "git+https://github.com/virto-network/frame-contrib?branch=main#367c7f985a306714e0d0a2639da201730a8736ac" dependencies = [ "frame-support", "pallet-referenda", @@ -3240,7 +3186,7 @@ dependencies = [ "ark-poly", "ark-serialize", "ark-std", - "merlin 3.0.0", + "merlin", ] [[package]] @@ -3249,6 +3195,16 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +[[package]] +name = "file-guard" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21ef72acf95ec3d7dbf61275be556299490a245f017cf084bd23b4f68cf9407c" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "file-per-thread-logger" version = "0.1.6" @@ -3283,7 +3239,7 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "scale-info", ] @@ -3331,10 +3287,25 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "fork-tree" -version = "3.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "12.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", ] @@ -3348,6 +3319,16 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "forwarded-header-value" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" +dependencies = [ + "nonempty", + "thiserror", +] + [[package]] name = "fragile" version = "2.0.0" @@ -3356,8 +3337,8 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "frame-support-procedural", @@ -3373,19 +3354,19 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-runtime-interface 17.0.0", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "static_assertions", ] [[package]] name = "frame-benchmarking-cli" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "32.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "Inflector", - "array-bytes 6.2.3", + "array-bytes", "chrono", "clap", "comfy-table", @@ -3394,7 +3375,7 @@ dependencies = [ "frame-system", "gethostname", "handlebars", - "itertools 0.10.5", + "itertools 0.11.0", "lazy_static", "linked-hash-map", "log", @@ -3402,6 +3383,7 @@ dependencies = [ "rand 0.8.5", "rand_pcg", "sc-block-builder", + "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", @@ -3414,34 +3396,35 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-database", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keystore", "sp-runtime", "sp-state-machine", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-trie", - "sp-wasm-interface 14.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "thiserror", "thousands", ] [[package]] name = "frame-election-provider-solution-type" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "13.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "frame-election-provider-support" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -3452,14 +3435,15 @@ dependencies = [ "sp-core", "sp-npos-elections", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "frame-executive" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ + "aquamarine", "frame-support", "frame-system", "frame-try-runtime", @@ -3469,8 +3453,8 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] @@ -3485,34 +3469,13 @@ dependencies = [ "serde", ] -[[package]] -name = "frame-remote-externalities" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" -dependencies = [ - "futures", - "indicatif", - "jsonrpsee", - "log", - "parity-scale-codec", - "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", - "spinners", - "substrate-rpc-client", - "tokio", - "tokio-retry", -] - [[package]] name = "frame-support" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "aquamarine", - "array-bytes 6.2.3", + "array-bytes", "bitflags 1.3.2", "docify", "environmental", @@ -3531,8 +3494,8 @@ dependencies = [ "sp-api", "sp-arithmetic", "sp-core", - "sp-core-hashing-proc-macro", - "sp-debug-derive 8.0.0", + "sp-crypto-hashing-proc-macro", + "sp-debug-derive 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-genesis-builder", "sp-inherents", "sp-io", @@ -3540,8 +3503,8 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-state-machine", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-weights", "static_assertions", "tt-call", @@ -3549,49 +3512,49 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "23.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse 0.1.5", - "expander 2.1.0", + "derive-syn-parse 0.2.0", + "expander", "frame-support-procedural-tools", - "itertools 0.10.5", + "itertools 0.11.0", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", - "sp-core-hashing", - "syn 2.0.64", + "sp-crypto-hashing", + "syn 2.0.66", ] [[package]] name = "frame-support-procedural-tools" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "10.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "3.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "11.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "frame-system" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "cfg-if", "docify", @@ -3603,15 +3566,15 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-version", "sp-weights", ] [[package]] name = "frame-system-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -3620,13 +3583,13 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "frame-system-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "sp-api", @@ -3634,14 +3597,14 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.34.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "parity-scale-codec", "sp-api", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] @@ -3764,7 +3727,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -3901,7 +3864,7 @@ version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" dependencies = [ - "fallible-iterator", + "fallible-iterator 0.2.0", "indexmap 1.9.3", "stable_deref_trait", ] @@ -3911,6 +3874,16 @@ name = "gimli" version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +dependencies = [ + "fallible-iterator 0.3.0", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "glob" @@ -3919,16 +3892,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] -name = "globset" -version = "0.4.14" +name = "governor" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata 0.4.6", - "regex-syntax 0.8.3", + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand 0.8.5", + "smallvec", + "spinning_top", ] [[package]] @@ -3963,9 +3943,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.5.0" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" dependencies = [ "log", "pest", @@ -3995,9 +3975,6 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.8", -] [[package]] name = "hashbrown" @@ -4005,7 +3982,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.11", + "ahash", ] [[package]] @@ -4014,7 +3991,7 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.11", + "ahash", "allocator-api2", "serde", ] @@ -4042,18 +4019,15 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.1.19" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hermit-abi" -version = "0.3.9" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "hex" @@ -4061,6 +4035,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex-conservative" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" + [[package]] name = "hex-literal" version = "0.4.1" @@ -4086,16 +4066,6 @@ dependencies = [ "digest 0.9.0", ] -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac 0.11.0", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.12.1" @@ -4166,9 +4136,9 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" @@ -4184,9 +4154,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.28" +version = "0.14.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" dependencies = [ "bytes", "futures-channel", @@ -4217,10 +4187,9 @@ dependencies = [ "hyper", "log", "rustls 0.21.12", - "rustls-native-certs", + "rustls-native-certs 0.6.3", "tokio", - "tokio-rustls", - "webpki-roots 0.25.4", + "tokio-rustls 0.24.1", ] [[package]] @@ -4257,6 +4226,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "idna" version = "0.5.0" @@ -4283,7 +4262,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" dependencies = [ - "async-io 2.3.2", + "async-io 2.3.3", "core-foundation", "fnv", "futures", @@ -4371,19 +4350,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" -[[package]] -name = "indicatif" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" -dependencies = [ - "console", - "instant", - "number_prefix", - "portable-atomic", - "unicode-width", -] - [[package]] name = "inout" version = "0.1.3" @@ -4395,9 +4361,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] @@ -4522,115 +4488,95 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "367a292944c07385839818bb71c8d76611138e2dedb0677d035b8da21d29c78b" +checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" dependencies = [ "jsonrpsee-core", - "jsonrpsee-http-client", "jsonrpsee-proc-macros", "jsonrpsee-server", "jsonrpsee-types", "jsonrpsee-ws-client", + "tokio", "tracing", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8b3815d9f5d5de348e5f162b316dc9cdf4548305ebb15b4eb9328e66cf27d7a" +checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" dependencies = [ "futures-util", "http", "jsonrpsee-core", - "jsonrpsee-types", "pin-project", - "rustls-native-certs", + "rustls-native-certs 0.7.0", + "rustls-pki-types", "soketto", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.25.0", "tokio-util", "tracing", - "webpki-roots 0.25.4", + "url", ] [[package]] name = "jsonrpsee-core" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5dde66c53d6dcdc8caea1874a45632ec0fcf5b437789f1e45766a1512ce803" +checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" dependencies = [ "anyhow", - "arrayvec 0.7.4", - "async-lock 2.8.0", "async-trait", "beef", - "futures-channel", "futures-timer", "futures-util", - "globset", "hyper", "jsonrpsee-types", - "parking_lot 0.12.2", + "parking_lot 0.12.3", + "pin-project", "rand 0.8.5", "rustc-hash", "serde", "serde_json", - "soketto", "thiserror", "tokio", + "tokio-stream", "tracing", ] [[package]] -name = "jsonrpsee-http-client" -version = "0.16.3" +name = "jsonrpsee-proc-macros" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5f9fabdd5d79344728521bb65e3106b49ec405a78b66fbff073b72b389fa43" -dependencies = [ - "async-trait", - "hyper", - "hyper-rustls", - "jsonrpsee-core", - "jsonrpsee-types", - "rustc-hash", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44e8ab85614a08792b9bff6c8feee23be78c98d0182d4c622c05256ab553892a" +checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0" dependencies = [ "heck 0.4.1", - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.66", ] [[package]] name = "jsonrpsee-server" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4d945a6008c9b03db3354fb3c83ee02d2faa9f2e755ec1dfb69c3551b8f4ba" +checksum = "12d8b6a9674422a8572e0b0abb12feeb3f2aeda86528c80d0350c2bd0923ab41" dependencies = [ - "futures-channel", "futures-util", "http", "hyper", "jsonrpsee-core", "jsonrpsee-types", + "pin-project", + "route-recognizer", "serde", "serde_json", "soketto", + "thiserror", "tokio", "tokio-stream", "tokio-util", @@ -4640,28 +4586,28 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245ba8e5aa633dd1c1e4fae72bce06e71f42d34c14a2767c6b4d173b57bee5e5" +checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" dependencies = [ "anyhow", "beef", "serde", "serde_json", "thiserror", - "tracing", ] [[package]] name = "jsonrpsee-ws-client" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e1b3975ed5d73f456478681a417128597acd6a2487855fdb7b4a3d4d195bf5e" +checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070" dependencies = [ "http", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", + "url", ] [[package]] @@ -4674,6 +4620,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", + "serdect", "sha2 0.10.8", ] @@ -4694,7 +4641,7 @@ checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" [[package]] name = "kreivo-runtime" -version = "0.12.1" +version = "0.13.0" dependencies = [ "assets-common", "cumulus-pallet-aura-ext", @@ -4702,6 +4649,7 @@ dependencies = [ "cumulus-pallet-session-benchmarking", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", + "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-timestamp", "cumulus-primitives-utility", @@ -4760,7 +4708,7 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-transaction-pool", "sp-version", "sp-weights", @@ -4783,7 +4731,7 @@ dependencies = [ "sp-core", "sp-runtime", "sp-weights", - "staging-xcm", + "staging-xcm-builder", ] [[package]] @@ -4802,7 +4750,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parking_lot 0.12.2", + "parking_lot 0.12.3", ] [[package]] @@ -4813,7 +4761,7 @@ checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "regex", "rocksdb", "smallvec", @@ -4844,9 +4792,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.154" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libloading" @@ -4938,7 +4886,7 @@ dependencies = [ "multihash 0.17.0", "multistream-select", "once_cell", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "pin-project", "quick-protobuf", "rand 0.8.5", @@ -4958,9 +4906,9 @@ dependencies = [ "futures", "libp2p-core", "log", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "smallvec", - "trust-dns-resolver", + "trust-dns-resolver 0.22.0", ] [[package]] @@ -4992,7 +4940,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" dependencies = [ "bs58 0.4.0", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "log", "multiaddr", "multihash 0.17.0", @@ -5048,7 +4996,7 @@ dependencies = [ "smallvec", "socket2 0.4.10", "tokio", - "trust-dns-proto", + "trust-dns-proto 0.22.0", "void", ] @@ -5120,7 +5068,7 @@ dependencies = [ "libp2p-identity", "libp2p-tls", "log", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "quinn-proto", "rand 0.8.5", "rustls 0.20.9", @@ -5207,7 +5155,7 @@ dependencies = [ "rustls 0.20.9", "thiserror", "webpki", - "x509-parser", + "x509-parser 0.14.0", "yasna", ] @@ -5236,12 +5184,12 @@ dependencies = [ "futures-rustls", "libp2p-core", "log", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "quicksink", "rw-stream-sink", "soketto", "url", - "webpki-roots 0.22.6", + "webpki-roots", ] [[package]] @@ -5332,9 +5280,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.16" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" dependencies = [ "cc", "pkg-config", @@ -5388,9 +5336,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lioness" @@ -5404,6 +5352,60 @@ dependencies = [ "keystream", ] +[[package]] +name = "litep2p" +version = "0.3.0" +source = "git+https://github.com/paritytech/litep2p?rev=e03a6023882db111beeb24d8c0ceaac0721d3f0f#e03a6023882db111beeb24d8c0ceaac0721d3f0f" +dependencies = [ + "async-trait", + "bs58 0.4.0", + "bytes", + "cid 0.10.1", + "ed25519-dalek 1.0.1", + "futures", + "futures-timer", + "hex-literal", + "indexmap 2.2.6", + "libc", + "mockall", + "multiaddr", + "multihash 0.17.0", + "network-interface", + "nohash-hasher", + "parking_lot 0.12.3", + "pin-project", + "prost 0.11.9", + "prost-build 0.11.9", + "quinn", + "rand 0.8.5", + "rcgen", + "ring 0.16.20", + "rustls 0.20.9", + "serde", + "sha2 0.10.8", + "simple-dns", + "smallvec", + "snow", + "socket2 0.5.7", + "static_assertions", + "str0m", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tokio-util", + "tracing", + "trust-dns-resolver 0.23.2", + "uint", + "unsigned-varint", + "url", + "webpki", + "x25519-dalek 2.0.1", + "x509-parser 0.15.1", + "yasna", + "zeroize", +] + [[package]] name = "lock_api" version = "0.4.12" @@ -5446,9 +5448,9 @@ dependencies = [ [[package]] name = "lz4" -version = "1.24.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" +checksum = "d6eab492fe7f8651add23237ea56dbf11b3c4ff762ab83d40a47f11433421f91" dependencies = [ "libc", "lz4-sys", @@ -5456,9 +5458,9 @@ dependencies = [ [[package]] name = "lz4-sys" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +checksum = "e9764018d143cc854c9f17f0b907de70f14393b1f502da6375dce70f00514eb3" dependencies = [ "cc", "libc", @@ -5482,7 +5484,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -5496,7 +5498,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -5507,7 +5509,7 @@ checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -5518,30 +5520,15 @@ checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.64", + "syn 2.0.66", ] -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - [[package]] name = "match_cfg" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" -[[package]] -name = "matchers" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" -dependencies = [ - "regex-automata 0.1.10", -] - [[package]] name = "matchers" version = "0.1.0" @@ -5569,9 +5556,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memfd" @@ -5591,6 +5578,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memmap2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.8.0" @@ -5609,18 +5605,6 @@ dependencies = [ "hash-db", ] -[[package]] -name = "merlin" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.5.1", - "zeroize", -] - [[package]] name = "merlin" version = "3.0.0" @@ -5652,9 +5636,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" dependencies = [ "adler", ] @@ -5686,7 +5670,7 @@ dependencies = [ "hashlink", "lioness", "log", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "rand 0.8.5", "rand_chacha 0.3.1", "rand_distr", @@ -5697,8 +5681,8 @@ dependencies = [ [[package]] name = "mmr-gadget" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "29.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "log", @@ -5716,10 +5700,9 @@ dependencies = [ [[package]] name = "mmr-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "anyhow", "jsonrpsee", "parity-scale-codec", "serde", @@ -5741,7 +5724,7 @@ dependencies = [ "fragile", "lazy_static", "mockall_derive", - "predicates 2.1.5", + "predicates", "predicates-tree", ] @@ -5798,7 +5781,7 @@ dependencies = [ "blake3", "core2", "digest 0.10.7", - "multihash-derive 0.8.0", + "multihash-derive 0.8.1", "sha2 0.10.8", "sha3", "unsigned-varint", @@ -5810,10 +5793,14 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", "core2", "digest 0.10.7", - "multihash-derive 0.8.0", + "multihash-derive 0.8.1", "sha2 0.10.8", + "sha3", "unsigned-varint", ] @@ -5849,16 +5836,16 @@ dependencies = [ [[package]] name = "multihash-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 1.1.3", "proc-macro-error", "proc-macro2", "quote", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", ] [[package]] @@ -5874,16 +5861,16 @@ dependencies = [ [[package]] name = "multihash-derive-impl" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38685e08adb338659871ecfc6ee47ba9b22dcc8abcf6975d379cc49145c3040" +checksum = "3958713ce794e12f7c6326fac9aa274c68d74c4881dd37b3e2662b8a2046bb19" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 2.0.0", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", - "synstructure", + "syn 2.0.66", + "synstructure 0.13.1", ] [[package]] @@ -5892,6 +5879,12 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + [[package]] name = "multistream-select" version = "0.12.1" @@ -5908,9 +5901,9 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.32.5" +version = "0.32.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ea4908d4f23254adda3daa60ffef0f1ac7b8c3e9a864cf3cc154b251908a2ef" +checksum = "7b5c17de023a86f59ed79891b2e5d5a94c705dbe904a5b5c9c952ea6221b03e4" dependencies = [ "approx", "matrixmultiply", @@ -5935,9 +5928,9 @@ 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", ] @@ -6014,6 +6007,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "network-interface" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1" +dependencies = [ + "cc", + "libc", + "thiserror", + "winapi", +] + [[package]] name = "nix" version = "0.24.3" @@ -6027,15 +6032,22 @@ dependencies = [ [[package]] name = "nix" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ "bitflags 2.5.0", "cfg-if", + "cfg_aliases", "libc", ] +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + [[package]] name = "no-std-net" version = "0.6.0" @@ -6064,6 +6076,18 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonempty" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + [[package]] name = "normalize-line-endings" version = "0.3.0" @@ -6155,12 +6179,6 @@ dependencies = [ "libc", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "object" version = "0.30.4" @@ -6182,6 +6200,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434" +dependencies = [ + "memchr", +] + [[package]] name = "oid-registry" version = "0.6.1" @@ -6209,12 +6236,60 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "openssl" +version = "0.10.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +dependencies = [ + "bitflags 2.5.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "openssl-probe" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "openssl-src" +version = "300.3.1+3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -6233,7 +6308,7 @@ dependencies = [ "futures-timer", "orchestra-proc-macro", "pin-project", - "prioritized-metered-channel 0.6.1", + "prioritized-metered-channel", "thiserror", "tracing", ] @@ -6244,7 +6319,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355" dependencies = [ - "expander 2.1.0", + "expander", "indexmap 2.2.6", "itertools 0.11.0", "petgraph", @@ -6271,12 +6346,13 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "10.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-api", @@ -6284,13 +6360,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-asset-rate" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6299,13 +6375,13 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-asset-tx-payment" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6317,13 +6393,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-assets" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "29.1.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6333,13 +6409,13 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-aura" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "frame-system", @@ -6350,13 +6426,13 @@ dependencies = [ "sp-application-crypto", "sp-consensus-aura", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "frame-system", @@ -6366,13 +6442,13 @@ dependencies = [ "sp-application-crypto", "sp-authority-discovery", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "frame-system", @@ -6380,13 +6456,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-babe" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6404,13 +6480,13 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-bags-list" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "aquamarine", "docify", @@ -6425,15 +6501,16 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-balances" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -6441,13 +6518,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "frame-system", @@ -6461,15 +6538,15 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-beefy-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "binary-merkle-tree", "frame-support", "frame-system", @@ -6486,13 +6563,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-state-machine", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-bounties" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6504,13 +6581,32 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", +] + +[[package]] +name = "pallet-broker" +version = "0.6.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" +dependencies = [ + "bitvec", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-child-bounties" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6523,32 +6619,33 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-collator-selection" -version = "3.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "9.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "pallet-authorship", + "pallet-balances", "pallet-session", "parity-scale-codec", "rand 0.8.5", "scale-info", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-collective" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6559,7 +6656,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] @@ -6583,7 +6680,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "staging-xcm", "virto-common", ] @@ -6610,14 +6707,14 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "virto-common", ] [[package]] name = "pallet-conviction-voting" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6628,13 +6725,13 @@ dependencies = [ "serde", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-democracy" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6646,13 +6743,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-election-provider-multi-phase" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6668,14 +6765,14 @@ dependencies = [ "sp-io", "sp-npos-elections", "sp-runtime", - "sp-std 8.0.0", - "strum 0.24.1", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "strum 0.26.2", ] [[package]] name = "pallet-election-provider-support-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6683,13 +6780,13 @@ dependencies = [ "parity-scale-codec", "sp-npos-elections", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-elections-phragmen" -version = "5.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "29.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6702,13 +6799,13 @@ dependencies = [ "sp-npos-elections", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-fast-unstake" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "docify", "frame-benchmarking", @@ -6721,13 +6818,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6744,29 +6841,30 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-identity" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "enumflags2", "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-im-online" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6780,13 +6878,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-indices" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6797,13 +6895,13 @@ dependencies = [ "sp-io", "sp-keyring", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-membership" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6814,14 +6912,15 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-message-queue" -version = "7.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "31.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ + "environmental", "frame-benchmarking", "frame-support", "frame-system", @@ -6832,14 +6931,14 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-weights", ] [[package]] name = "pallet-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6851,13 +6950,13 @@ dependencies = [ "sp-io", "sp-mmr-primitives", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-multisig" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6867,13 +6966,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-nfts" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "22.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "enumflags2", "frame-benchmarking", @@ -6885,13 +6984,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-nis" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -6901,13 +7000,13 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-nomination-pools" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "25.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "frame-system", @@ -6919,14 +7018,14 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-nomination-pools-benchmarking" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6938,26 +7037,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-runtime-interface 17.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-nomination-pools-runtime-api" -version = "1.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "23.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", "sp-api", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-offences" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "frame-system", @@ -6968,13 +7067,13 @@ dependencies = [ "serde", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-offences-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6992,7 +7091,25 @@ dependencies = [ "scale-info", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", +] + +[[package]] +name = "pallet-parameters" +version = "0.1.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] @@ -7015,13 +7132,13 @@ dependencies = [ "sp-io", "sp-keystore", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-preimage" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -7032,13 +7149,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-proxy" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -7047,17 +7164,18 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-ranked-collective" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", @@ -7065,13 +7183,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-recovery" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -7080,13 +7198,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-referenda" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "assert_matches", "frame-benchmarking", @@ -7099,13 +7217,13 @@ dependencies = [ "sp-arithmetic", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-root-testing" -version = "1.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "4.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "frame-system", @@ -7114,13 +7232,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-scheduler" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "29.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "docify", "frame-benchmarking", @@ -7131,14 +7249,14 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-weights", ] [[package]] name = "pallet-session" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "frame-system", @@ -7153,14 +7271,14 @@ dependencies = [ "sp-session", "sp-staking", "sp-state-machine", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-trie", ] [[package]] name = "pallet-session-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -7171,31 +7289,31 @@ dependencies = [ "rand 0.8.5", "sp-runtime", "sp-session", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-society" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "parity-scale-codec", - "rand_chacha 0.2.2", + "rand_chacha 0.3.1", "scale-info", "sp-arithmetic", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-staking" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7205,31 +7323,31 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", - "rand_chacha 0.2.2", + "rand_chacha 0.3.1", "scale-info", "serde", "sp-application-crypto", "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-staking-reward-curve" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "11.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "pallet-staking-reward-fn" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "19.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "log", "sp-arithmetic", @@ -7237,8 +7355,8 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "14.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "sp-api", @@ -7247,8 +7365,8 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "29.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -7259,13 +7377,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-sudo" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "docify", "frame-benchmarking", @@ -7275,13 +7393,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "docify", "frame-benchmarking", @@ -7293,15 +7411,15 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-timestamp", ] [[package]] name = "pallet-tips" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -7314,13 +7432,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-transaction-payment" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "frame-system", @@ -7330,13 +7448,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-transaction-payment-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "30.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -7351,8 +7469,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -7363,8 +7481,8 @@ dependencies = [ [[package]] name = "pallet-treasury" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "docify", "frame-benchmarking", @@ -7377,13 +7495,13 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-utility" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -7393,13 +7511,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-vesting" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -7408,13 +7526,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-whitelist" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -7423,13 +7541,13 @@ dependencies = [ "scale-info", "sp-api", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "pallet-xcm" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -7443,16 +7561,17 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "xcm-fee-payment-runtime-api", ] [[package]] name = "pallet-xcm-benchmarks" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-benchmarking", "frame-support", @@ -7462,7 +7581,7 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -7470,41 +7589,50 @@ dependencies = [ [[package]] name = "parachains-common" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" 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 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "staging-parachain-info", "staging-xcm", - "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", - "westend-runtime-constants", ] [[package]] -name = "parity-db" +name = "parity-bip39" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" +dependencies = [ + "bitcoin_hashes 0.13.0", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "unicode-normalization", +] + +[[package]] +name = "parity-db" version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" @@ -7516,8 +7644,8 @@ dependencies = [ "libc", "log", "lz4", - "memmap2", - "parking_lot 0.12.2", + "memmap2 0.5.10", + "parking_lot 0.12.3", "rand 0.8.5", "siphasher", "snap", @@ -7582,9 +7710,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core 0.9.10", @@ -7612,7 +7740,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.1", + "redox_syscall 0.5.2", "smallvec", "windows-targets 0.52.5", ] @@ -7624,19 +7752,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" [[package]] -name = "paste" -version = "1.0.15" +name = "password-hash" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle 2.5.0", +] [[package]] -name = "pbkdf2" -version = "0.8.0" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" -dependencies = [ - "crypto-mac 0.11.0", -] +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -7645,6 +7775,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", + "password-hash", ] [[package]] @@ -7699,7 +7830,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -7740,7 +7871,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -7763,9 +7894,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" +checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" dependencies = [ "atomic-waker", "fastrand 2.1.0", @@ -7796,13 +7927,13 @@ checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" [[package]] name = "polkadot-approval-distribution" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bitvec", "futures", "futures-timer", - "itertools 0.10.5", + "itertools 0.11.0", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", @@ -7816,8 +7947,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "always-assert", "futures", @@ -7832,8 +7963,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "derive_more", "fatality", @@ -7855,8 +7986,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "fatality", @@ -7872,13 +8003,24 @@ dependencies = [ "sc-network", "schnellru", "thiserror", + "tokio", "tracing-gum", ] +[[package]] +name = "polkadot-ckb-merkle-mountain-range" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4b44320e5f7ce2c18227537a3032ae5b2c476a7e8eddba45333e1011fc31b92" +dependencies = [ + "cfg-if", + "itertools 0.10.5", +] + [[package]] name = "polkadot-cli" -version = "1.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "cfg-if", "clap", @@ -7898,15 +8040,15 @@ dependencies = [ "sp-io", "sp-keyring", "sp-maybe-compressed-blob", + "sp-runtime", "substrate-build-script-utils", "thiserror", - "try-runtime-cli", ] [[package]] name = "polkadot-collator-protocol" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bitvec", "fatality", @@ -7927,26 +8069,26 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "polkadot-dispute-distribution" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "derive_more", "fatality", "futures", "futures-timer", - "indexmap 1.9.3", + "indexmap 2.2.6", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7964,8 +8106,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -7978,8 +8120,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "futures-timer", @@ -7993,14 +8135,15 @@ dependencies = [ "sc-network-common", "sp-application-crypto", "sp-core", + "sp-crypto-hashing", "sp-keystore", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "always-assert", "async-trait", @@ -8008,7 +8151,7 @@ dependencies = [ "fatality", "futures", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -8022,8 +8165,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "parity-scale-codec", @@ -8040,16 +8183,16 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bitvec", "derive_more", "futures", "futures-timer", - "itertools 0.10.5", + "itertools 0.11.0", "kvdb", - "merlin 2.0.1", + "merlin", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -8059,10 +8202,10 @@ dependencies = [ "polkadot-primitives", "rand 0.8.5", "rand_chacha 0.3.1", - "rand_core 0.5.1", + "rand_core 0.6.4", "sc-keystore", "schnellru", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "sp-application-crypto", "sp-consensus", "sp-consensus-slots", @@ -8073,8 +8216,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bitvec", "futures", @@ -8095,8 +8238,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bitvec", "fatality", @@ -8107,6 +8250,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "polkadot-statement-table", + "schnellru", "sp-keystore", "thiserror", "tracing-gum", @@ -8114,8 +8258,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "polkadot-node-subsystem", @@ -8129,8 +8273,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "futures", @@ -8150,8 +8294,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "polkadot-node-metrics", @@ -8164,8 +8308,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "futures-timer", @@ -8181,8 +8325,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "fatality", "futures", @@ -8200,8 +8344,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "futures", @@ -8217,8 +8361,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "6.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bitvec", "fatality", @@ -8234,8 +8378,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bitvec", "fatality", @@ -8245,22 +8389,22 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "schnellru", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "always-assert", + "array-bytes", "blake3", "cfg-if", "futures", "futures-timer", - "is_executable", - "libc", "parity-scale-codec", "pin-project", "polkadot-core-primitives", @@ -8273,8 +8417,6 @@ dependencies = [ "rand 0.8.5", "slotmap", "sp-core", - "sp-maybe-compressed-blob", - "sp-wasm-interface 14.0.0", "tempfile", "thiserror", "tokio", @@ -8283,8 +8425,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "polkadot-node-primitives", @@ -8299,14 +8441,14 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "cfg-if", "cpu-time", "futures", "landlock", "libc", + "nix 0.28.0", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", @@ -8315,18 +8457,18 @@ dependencies = [ "sc-executor-wasmtime", "seccompiler", "sp-core", - "sp-externalities 0.19.0", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-io", - "sp-tracing 10.0.0", - "substrate-build-script-utils", + "sp-tracing 16.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-runtime-api" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "polkadot-node-metrics", @@ -8340,17 +8482,18 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "lazy_static", "log", "mick-jaeger", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-primitives", "sc-network", + "sc-network-types", "sp-core", "thiserror", "tokio", @@ -8358,8 +8501,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bs58 0.5.1", "futures", @@ -8367,7 +8510,7 @@ dependencies = [ "log", "parity-scale-codec", "polkadot-primitives", - "prioritized-metered-channel 0.5.1", + "prioritized-metered-channel", "sc-cli", "sc-service", "sc-tracing", @@ -8377,8 +8520,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -8394,15 +8537,17 @@ dependencies = [ "rand 0.8.5", "sc-authority-discovery", "sc-network", - "strum 0.24.1", + "sc-network-types", + "sp-runtime", + "strum 0.26.2", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-primitives" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bitvec", "bounded-vec", @@ -8410,7 +8555,7 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "serde", "sp-application-crypto", "sp-consensus-babe", @@ -8424,8 +8569,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -8434,8 +8579,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "bitvec", @@ -8449,6 +8594,7 @@ dependencies = [ "polkadot-statement-table", "sc-client-api", "sc-network", + "sc-network-types", "sc-transaction-pool-api", "smallvec", "sp-api", @@ -8462,19 +8608,19 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "derive_more", "fatality", "futures", "futures-channel", - "itertools 0.10.5", + "itertools 0.11.0", "kvdb", "parity-db", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.3", "pin-project", "polkadot-node-jaeger", "polkadot-node-metrics", @@ -8484,7 +8630,7 @@ dependencies = [ "polkadot-node-subsystem-types", "polkadot-overseer", "polkadot-primitives", - "prioritized-metered-channel 0.5.1", + "prioritized-metered-channel", "rand 0.8.5", "sc-client-api", "schnellru", @@ -8497,14 +8643,14 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "futures", "futures-timer", "orchestra", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -8519,8 +8665,8 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "6.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bounded-collections", "derive_more", @@ -8530,17 +8676,18 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-weights", ] [[package]] name = "polkadot-primitives" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bitvec", "hex-literal", + "log", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain-primitives", @@ -8557,13 +8704,13 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "polkadot-rpc" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -8579,6 +8726,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", @@ -8594,8 +8742,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bitvec", "frame-benchmarking", @@ -8609,6 +8757,7 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-broker", "pallet-election-provider-multi-phase", "pallet-fast-unstake", "pallet-identity", @@ -8619,7 +8768,6 @@ dependencies = [ "pallet-transaction-payment", "pallet-treasury", "pallet-vesting", - "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-parachains", @@ -8636,7 +8784,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -8645,21 +8793,21 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bs58 0.5.1", "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "polkadot-runtime-parachains" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -8673,6 +8821,7 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-broker", "pallet-message-queue", "pallet-session", "pallet-staking", @@ -8690,6 +8839,7 @@ dependencies = [ "serde", "sp-api", "sp-application-crypto", + "sp-arithmetic", "sp-core", "sp-inherents", "sp-io", @@ -8697,7 +8847,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "staging-xcm", "staging-xcm-executor", "static_assertions", @@ -8705,10 +8855,11 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", + "bitvec", "frame-benchmarking", "frame-benchmarking-cli", "frame-support", @@ -8722,13 +8873,12 @@ dependencies = [ "log", "mmr-gadget", "pallet-babe", - "pallet-im-online", "pallet-staking", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "parity-db", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -8810,28 +8960,30 @@ dependencies = [ "sp-runtime", "sp-session", "sp-state-machine", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-timestamp", "sp-transaction-pool", "sp-version", "sp-weights", + "staging-xcm", "substrate-prometheus-endpoint", "thiserror", "tracing-gum", "westend-runtime", + "xcm-fee-payment-runtime-api", ] [[package]] name = "polkadot-statement-distribution" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "arrayvec 0.7.4", "bitvec", "fatality", "futures", "futures-timer", - "indexmap 1.9.3", + "indexmap 2.2.6", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -8846,12 +8998,35 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "polkadot-primitives", "sp-core", + "tracing-gum", +] + +[[package]] +name = "polkavm" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94" +dependencies = [ + "libc", + "log", + "polkavm-assembler", + "polkavm-common", + "polkavm-linux-raw", +] + +[[package]] +name = "polkavm-assembler" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1" +dependencies = [ + "log", ] [[package]] @@ -8859,6 +9034,9 @@ name = "polkavm-common" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" +dependencies = [ + "log", +] [[package]] name = "polkavm-derive" @@ -8878,7 +9056,7 @@ dependencies = [ "polkavm-common", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -8888,9 +9066,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" dependencies = [ "polkavm-derive-impl", - "syn 2.0.64", + "syn 2.0.66", +] + +[[package]] +name = "polkavm-linker" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c7be503e60cf56c0eb785f90aaba4b583b36bff00e93997d93fef97f9553c39" +dependencies = [ + "gimli 0.28.1", + "hashbrown 0.14.5", + "log", + "object 0.32.2", + "polkavm-common", + "regalloc2 0.9.3", + "rustc-demangle", ] +[[package]] +name = "polkavm-linux-raw" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120" + [[package]] name = "polling" version = "2.8.0" @@ -8909,13 +9108,13 @@ dependencies = [ [[package]] name = "polling" -version = "3.7.0" +version = "3.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" +checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi 0.3.9", + "hermit-abi 0.4.0", "pin-project-lite 0.2.14", "rustix 0.38.34", "tracing", @@ -8977,17 +9176,6 @@ dependencies = [ "regex", ] -[[package]] -name = "predicates" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" -dependencies = [ - "anstyle", - "difflib", - "predicates-core", -] - [[package]] name = "predicates-core" version = "1.0.6" @@ -9004,21 +9192,11 @@ 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.64", -] - [[package]] name = "prettyplease" -version = "0.1.11" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28f53e8b192565862cf99343194579a022eb9c7dd3a8d03134734803c7b3125" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ "proc-macro2", "syn 1.0.109", @@ -9031,7 +9209,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -9047,22 +9225,6 @@ dependencies = [ "uint", ] -[[package]] -name = "prioritized-metered-channel" -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" @@ -9081,12 +9243,12 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "thiserror", + "toml 0.5.11", ] [[package]] @@ -9139,14 +9301,14 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "proc-macro2" -version = "1.0.82" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" dependencies = [ "unicode-ident", ] @@ -9161,7 +9323,7 @@ dependencies = [ "fnv", "lazy_static", "memchr", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "thiserror", ] @@ -9173,7 +9335,7 @@ checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "prometheus-client-derive-encode", ] @@ -9185,7 +9347,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -9195,7 +9357,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", ] [[package]] @@ -9209,17 +9381,38 @@ dependencies = [ "itertools 0.10.5", "lazy_static", "log", - "multimap", + "multimap 0.8.3", "petgraph", - "prettyplease 0.1.11", - "prost", - "prost-types", + "prettyplease 0.1.25", + "prost 0.11.9", + "prost-types 0.11.9", "regex", "syn 1.0.109", "tempfile", "which", ] +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes", + "heck 0.5.0", + "itertools 0.11.0", + "log", + "multimap 0.10.0", + "once_cell", + "petgraph", + "prettyplease 0.2.20", + "prost 0.12.6", + "prost-types 0.12.6", + "regex", + "syn 2.0.66", + "tempfile", +] + [[package]] name = "prost-derive" version = "0.11.9" @@ -9233,13 +9426,35 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "prost-types" version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "prost", + "prost 0.11.9", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", ] [[package]] @@ -9251,6 +9466,21 @@ dependencies = [ "cc", ] +[[package]] +name = "quanta" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -9291,23 +9521,54 @@ dependencies = [ ] [[package]] -name = "quinn-proto" -version = "0.9.6" +name = "quinn" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" +checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e" dependencies = [ "bytes", - "rand 0.8.5", - "ring 0.16.20", + "pin-project-lite 0.2.14", + "quinn-proto", + "quinn-udp", "rustc-hash", "rustls 0.20.9", - "slab", "thiserror", - "tinyvec", + "tokio", "tracing", "webpki", ] +[[package]] +name = "quinn-proto" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring 0.16.20", + "rustc-hash", + "rustls 0.20.9", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-udp" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4" +dependencies = [ + "libc", + "quinn-proto", + "socket2 0.4.10", + "tracing", + "windows-sys 0.42.0", +] + [[package]] name = "quote" version = "1.0.36" @@ -9413,6 +9674,15 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "raw-cpuid" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd" +dependencies = [ + "bitflags 2.5.0", +] + [[package]] name = "rawpointer" version = "0.2.1" @@ -9471,9 +9741,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" dependencies = [ "bitflags 2.5.0", ] @@ -9491,13 +9761,12 @@ dependencies = [ [[package]] name = "reed-solomon-novelpoly" -version = "1.0.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58130877ca403ab42c864fbac74bb319a0746c07a634a92a5cfc7f54af272582" +checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" dependencies = [ "derive_more", "fs-err", - "itertools 0.11.0", "static_init", "thiserror", ] @@ -9519,7 +9788,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -9534,16 +9803,29 @@ dependencies = [ "smallvec", ] +[[package]] +name = "regalloc2" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +dependencies = [ + "hashbrown 0.13.2", + "log", + "rustc-hash", + "slice-group-by", + "smallvec", +] + [[package]] name = "regex" -version = "1.10.4" +version = "1.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.6", - "regex-syntax 0.8.3", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", ] [[package]] @@ -9557,13 +9839,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.3", + "regex-syntax 0.8.4", ] [[package]] @@ -9574,9 +9856,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "resolv-conf" @@ -9611,7 +9893,7 @@ dependencies = [ "blake2 0.10.6", "common", "fflonk", - "merlin 3.0.0", + "merlin", ] [[package]] @@ -9665,10 +9947,11 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "binary-merkle-tree", + "bitvec", "frame-benchmarking", "frame-executive", "frame-support", @@ -9693,7 +9976,6 @@ dependencies = [ "pallet-elections-phragmen", "pallet-grandpa", "pallet-identity", - "pallet-im-online", "pallet-indices", "pallet-membership", "pallet-message-queue", @@ -9701,6 +9983,7 @@ dependencies = [ "pallet-multisig", "pallet-nis", "pallet-offences", + "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", @@ -9732,6 +10015,7 @@ dependencies = [ "scale-info", "serde", "serde_derive", + "serde_json", "smallvec", "sp-api", "sp-arithmetic", @@ -9739,6 +10023,7 @@ dependencies = [ "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", + "sp-consensus-grandpa", "sp-core", "sp-genesis-builder", "sp-inherents", @@ -9748,8 +10033,8 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-transaction-pool", "sp-version", "staging-xcm", @@ -9757,12 +10042,13 @@ dependencies = [ "staging-xcm-executor", "static_assertions", "substrate-wasm-builder", + "xcm-fee-payment-runtime-api", ] [[package]] name = "rococo-runtime-constants" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "polkadot-primitives", @@ -9772,8 +10058,15 @@ dependencies = [ "sp-runtime", "sp-weights", "staging-xcm", + "staging-xcm-builder", ] +[[package]] +name = "route-recognizer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" + [[package]] name = "rpassword" version = "7.3.1" @@ -9859,7 +10152,7 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -9942,7 +10235,7 @@ dependencies = [ "bitflags 2.5.0", "errno", "libc", - "linux-raw-sys 0.4.13", + "linux-raw-sys 0.4.14", "windows-sys 0.52.0", ] @@ -9966,10 +10259,24 @@ checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", "ring 0.17.8", - "rustls-webpki", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki 0.102.4", + "subtle 2.5.0", + "zeroize", +] + [[package]] name = "rustls-native-certs" version = "0.6.3" @@ -9977,7 +10284,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.1.2", + "rustls-pki-types", "schannel", "security-framework", ] @@ -9991,6 +10311,22 @@ dependencies = [ "base64 0.21.7", ] +[[package]] +name = "rustls-pemfile" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -10001,6 +10337,17 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "rustls-webpki" +version = "0.102.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + [[package]] name = "rustversion" version = "1.0.17" @@ -10055,34 +10402,36 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "4.1.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "23.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "log", "sp-core", - "sp-wasm-interface 14.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "thiserror", ] [[package]] name = "sc-authority-discovery" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.34.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "futures", "futures-timer", "ip_network", "libp2p", + "linked_hash_set", "log", - "multihash 0.18.1", + "multihash 0.17.0", "multihash-codetable", "parity-scale-codec", - "prost", - "prost-build", + "prost 0.12.6", + "prost-build 0.12.6", "rand 0.8.5", "sc-client-api", "sc-network", + "sc-network-types", "sp-api", "sp-authority-discovery", "sp-blockchain", @@ -10095,8 +10444,8 @@ dependencies = [ [[package]] name = "sc-basic-authorship" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.34.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "futures-timer", @@ -10117,8 +10466,8 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.33.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "sp-api", @@ -10132,13 +10481,13 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "docify", "log", - "memmap2", + "memmap2 0.9.4", "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", @@ -10149,38 +10498,40 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", + "sp-crypto-hashing", "sp-genesis-builder", "sp-io", "sp-runtime", "sp-state-machine", + "sp-tracing 16.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "sc-chain-spec-derive" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "11.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "sc-cli" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.36.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", - "bip39", + "array-bytes", "chrono", "clap", "fdlimit", "futures", - "itertools 0.10.5", + "itertools 0.11.0", "libp2p-identity", "log", "names", + "parity-bip39", "parity-scale-codec", "rand 0.8.5", "regex", @@ -10209,14 +10560,14 @@ dependencies = [ [[package]] name = "sc-client-api" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "fnv", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -10225,19 +10576,19 @@ dependencies = [ "sp-consensus", "sp-core", "sp-database", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-runtime", "sp-state-machine", "sp-statement-store", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-trie", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.35.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "hash-db", "kvdb", @@ -10247,7 +10598,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sc-client-api", "sc-state-db", "schnellru", @@ -10262,17 +10613,17 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.33.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "futures", "futures-timer", - "libp2p-identity", "log", "mockall", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sc-client-api", + "sc-network-types", "sc-utils", "serde", "sp-api", @@ -10287,8 +10638,8 @@ dependencies = [ [[package]] name = "sc-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.34.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "futures", @@ -10316,8 +10667,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.34.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "fork-tree", @@ -10327,7 +10678,7 @@ dependencies = [ "num-rational", "num-traits", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sc-client-api", "sc-consensus", "sc-consensus-epochs", @@ -10342,6 +10693,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-core", + "sp-crypto-hashing", "sp-inherents", "sp-keystore", "sp-runtime", @@ -10351,8 +10703,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.34.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "jsonrpsee", @@ -10373,22 +10725,23 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "13.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", "fnv", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sc-client-api", "sc-consensus", "sc-network", "sc-network-gossip", "sc-network-sync", + "sc-network-types", "sc-utils", "sp-api", "sp-application-crypto", @@ -10397,24 +10750,25 @@ dependencies = [ "sp-consensus", "sp-consensus-beefy", "sp-core", + "sp-crypto-hashing", "sp-keystore", - "sp-mmr-primitives", "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/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "13.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sc-consensus-beefy", "sc-rpc", "serde", @@ -10426,8 +10780,8 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.33.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10439,11 +10793,11 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.19.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "ahash 0.8.11", - "array-bytes 6.2.3", + "ahash", + "array-bytes", "async-trait", "dyn-clone", "finality-grandpa", @@ -10452,7 +10806,7 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "rand 0.8.5", "sc-block-builder", "sc-chain-spec", @@ -10462,6 +10816,7 @@ dependencies = [ "sc-network-common", "sc-network-gossip", "sc-network-sync", + "sc-network-types", "sc-telemetry", "sc-transaction-pool-api", "sc-utils", @@ -10473,6 +10828,7 @@ dependencies = [ "sp-consensus", "sp-consensus-grandpa", "sp-core", + "sp-crypto-hashing", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -10481,8 +10837,8 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.19.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "finality-grandpa", "futures", @@ -10501,8 +10857,8 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.33.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "futures", @@ -10524,60 +10880,73 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.32.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sc-executor-common", + "sc-executor-polkavm", "sc-executor-wasmtime", "schnellru", "sp-api", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-io", "sp-panic-handler", - "sp-runtime-interface 17.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-trie", "sp-version", - "sp-wasm-interface 14.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "tracing", ] [[package]] name = "sc-executor-common" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.29.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ + "polkavm", "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface 14.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "thiserror", "wasm-instrument", ] +[[package]] +name = "sc-executor-polkavm" +version = "0.29.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" +dependencies = [ + "log", + "polkavm", + "sc-executor-common", + "sp-wasm-interface 20.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", +] + [[package]] name = "sc-executor-wasmtime" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.29.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "anyhow", "cfg-if", "libc", "log", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 17.0.0", - "sp-wasm-interface 14.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "wasmtime", ] [[package]] name = "sc-informant" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.33.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "ansi_term", "futures", @@ -10593,11 +10962,11 @@ dependencies = [ [[package]] name = "sc-keystore" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "25.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", - "parking_lot 0.12.2", + "array-bytes", + "parking_lot 0.12.3", "serde_json", "sp-application-crypto", "sp-core", @@ -10607,23 +10976,23 @@ dependencies = [ [[package]] name = "sc-mixnet" -version = "0.1.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.4.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "arrayvec 0.7.4", "blake2 0.10.6", "bytes", "futures", "futures-timer", - "libp2p-identity", "log", "mixnet", "multiaddr", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sc-client-api", "sc-network", + "sc-network-types", "sc-transaction-pool-api", "sp-api", "sp-consensus", @@ -10636,14 +11005,15 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.34.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", "asynchronous-codec", "bytes", + "cid 0.9.0", "either", "fnv", "futures", @@ -10651,16 +11021,22 @@ dependencies = [ "ip_network", "libp2p", "linked_hash_set", + "litep2p", "log", "mockall", + "once_cell", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "partial_sort", "pin-project", + "prost 0.12.6", + "prost-build 0.12.6", "rand 0.8.5", "sc-client-api", "sc-network-common", + "sc-network-types", "sc-utils", + "schnellru", "serde", "serde_json", "smallvec", @@ -10673,42 +11049,24 @@ dependencies = [ "tokio", "tokio-stream", "unsigned-varint", + "void", "wasm-timer", "zeroize", ] -[[package]] -name = "sc-network-bitswap" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" -dependencies = [ - "async-channel 1.9.0", - "cid", - "futures", - "libp2p-identity", - "log", - "prost", - "prost-build", - "sc-client-api", - "sc-network", - "sp-blockchain", - "sp-runtime", - "thiserror", - "unsigned-varint", -] - [[package]] name = "sc-network-common" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.33.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "bitflags 1.3.2", "futures", "libp2p-identity", "parity-scale-codec", - "prost-build", + "prost-build 0.12.6", "sc-consensus", + "sc-network-types", "sp-consensus", "sp-consensus-grandpa", "sp-runtime", @@ -10716,10 +11074,10 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.34.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "ahash 0.8.11", + "ahash", "futures", "futures-timer", "libp2p", @@ -10727,6 +11085,7 @@ dependencies = [ "sc-network", "sc-network-common", "sc-network-sync", + "sc-network-types", "schnellru", "sp-runtime", "substrate-prometheus-endpoint", @@ -10735,19 +11094,19 @@ dependencies = [ [[package]] name = "sc-network-light" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.33.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "futures", - "libp2p-identity", "log", "parity-scale-codec", - "prost", - "prost-build", + "prost 0.12.6", + "prost-build 0.12.6", "sc-client-api", "sc-network", + "sc-network-types", "sp-blockchain", "sp-core", "sp-runtime", @@ -10756,10 +11115,10 @@ dependencies = [ [[package]] name = "sc-network-sync" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.33.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", "fork-tree", @@ -10769,12 +11128,13 @@ dependencies = [ "log", "mockall", "parity-scale-codec", - "prost", - "prost-build", + "prost 0.12.6", + "prost-build 0.12.6", "sc-client-api", "sc-consensus", "sc-network", "sc-network-common", + "sc-network-types", "sc-utils", "schnellru", "smallvec", @@ -10792,10 +11152,10 @@ dependencies = [ [[package]] name = "sc-network-transactions" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.33.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "futures", "libp2p", "log", @@ -10803,18 +11163,33 @@ dependencies = [ "sc-network", "sc-network-common", "sc-network-sync", + "sc-network-types", "sc-utils", "sp-consensus", "sp-runtime", "substrate-prometheus-endpoint", ] +[[package]] +name = "sc-network-types" +version = "0.10.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" +dependencies = [ + "bs58 0.5.1", + "libp2p-identity", + "litep2p", + "multiaddr", + "multihash 0.17.0", + "rand 0.8.5", + "thiserror", +] + [[package]] name = "sc-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "29.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "bytes", "fnv", "futures", @@ -10826,16 +11201,17 @@ dependencies = [ "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "rand 0.8.5", "sc-client-api", "sc-network", "sc-network-common", + "sc-network-types", "sc-transaction-pool-api", "sc-utils", "sp-api", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-keystore", "sp-offchain", "sp-runtime", @@ -10845,8 +11221,8 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.17.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10854,14 +11230,14 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "29.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -10886,8 +11262,8 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.33.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10906,10 +11282,15 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "11.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ + "forwarded-header-value", + "futures", + "governor", "http", + "hyper", + "ip_network", "jsonrpsee", "log", "serde_json", @@ -10921,21 +11302,24 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.34.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "futures", "futures-util", "hex", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", + "rand 0.8.5", "sc-chain-spec", "sc-client-api", + "sc-rpc", "sc-transaction-pool-api", "sc-utils", + "schnellru", "serde", "sp-api", "sp-blockchain", @@ -10950,8 +11334,8 @@ dependencies = [ [[package]] name = "sc-service" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.35.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "directories", @@ -10961,7 +11345,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "sc-chain-spec", @@ -10972,11 +11356,11 @@ dependencies = [ "sc-informant", "sc-keystore", "sc-network", - "sc-network-bitswap", "sc-network-common", "sc-network-light", "sc-network-sync", "sc-network-transactions", + "sc-network-types", "sc-rpc", "sc-rpc-server", "sc-rpc-spec-v2", @@ -10986,18 +11370,19 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", + "schnellru", "serde", "serde_json", "sp-api", "sp-blockchain", "sp-consensus", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-keystore", "sp-runtime", "sp-session", "sp-state-machine", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", @@ -11013,24 +11398,23 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.30.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sp-core", ] [[package]] name = "sc-storage-monitor" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.16.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "clap", "fs4", "log", - "sc-client-db", "sp-core", "thiserror", "tokio", @@ -11038,8 +11422,8 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.34.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -11057,8 +11441,8 @@ dependencies = [ [[package]] name = "sc-sysinfo" -version = "6.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "derive_more", "futures", @@ -11071,22 +11455,24 @@ dependencies = [ "serde", "serde_json", "sp-core", + "sp-crypto-hashing", "sp-io", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "sc-telemetry" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "15.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "chrono", "futures", "libp2p", "log", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", + "sc-network", "sc-utils", "serde", "serde_json", @@ -11096,17 +11482,17 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "ansi_term", - "atty", "chrono", + "is-terminal", "lazy_static", "libc", "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "regex", "rustc-hash", "sc-client-api", @@ -11117,28 +11503,28 @@ dependencies = [ "sp-core", "sp-rpc", "sp-runtime", - "sp-tracing 10.0.0", + "sp-tracing 16.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "thiserror", "tracing", - "tracing-log 0.1.4", - "tracing-subscriber 0.2.25", + "tracing-log", + "tracing-subscriber", ] [[package]] name = "sc-tracing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "11.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "sc-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "futures", @@ -11146,7 +11532,7 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sc-client-api", "sc-transaction-pool-api", "sc-utils", @@ -11154,8 +11540,9 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", + "sp-crypto-hashing", "sp-runtime", - "sp-tracing 10.0.0", + "sp-tracing 16.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -11163,8 +11550,8 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "futures", @@ -11179,15 +11566,15 @@ dependencies = [ [[package]] name = "sc-utils" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "14.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-channel 1.9.0", "futures", "futures-timer", "lazy_static", "log", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "prometheus", "sp-arithmetic", ] @@ -11233,29 +11620,11 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" dependencies = [ - "ahash 0.8.11", + "ahash", "cfg-if", "hashbrown 0.13.2", ] -[[package]] -name = "schnorrkel" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "curve25519-dalek 2.1.3", - "getrandom 0.1.16", - "merlin 2.0.1", - "rand 0.7.3", - "rand_core 0.5.1", - "sha2 0.8.2", - "subtle 2.5.0", - "zeroize", -] - [[package]] name = "schnorrkel" version = "0.10.2" @@ -11265,7 +11634,7 @@ dependencies = [ "arrayref", "arrayvec 0.7.4", "curve25519-dalek-ng", - "merlin 3.0.0", + "merlin", "rand_core 0.6.4", "sha2 0.9.9", "subtle-ng", @@ -11278,12 +11647,14 @@ 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 3.0.0", + "merlin", "rand_core 0.6.4", + "serde_bytes", "sha2 0.10.8", "subtle 2.5.0", "zeroize", @@ -11311,6 +11682,21 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "sctp-proto" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f64cef148d3295c730c3cb340b0b252a4d570b1c7d4bf0808f88540b0a888bc" +dependencies = [ + "bytes", + "crc", + "fxhash", + "log", + "rand 0.8.5", + "slab", + "thiserror", +] + [[package]] name = "sec1" version = "0.7.3" @@ -11321,6 +11707,7 @@ dependencies = [ "der", "generic-array 0.14.7", "pkcs8", + "serdect", "subtle 2.5.0", "zeroize", ] @@ -11410,22 +11797,31 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.202" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" dependencies = [ "serde_derive", ] +[[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.202" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -11448,6 +11844,16 @@ dependencies = [ "serde", ] +[[package]] +name = "serdect" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" +dependencies = [ + "base16ct", + "serde", +] + [[package]] name = "sha-1" version = "0.9.8" @@ -11461,6 +11867,18 @@ dependencies = [ "opaque-debug 0.3.1", ] +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", + "sha1-asm", +] + [[package]] name = "sha1" version = "0.10.6" @@ -11473,15 +11891,12 @@ dependencies = [ ] [[package]] -name = "sha2" -version = "0.8.2" +name = "sha1-asm" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" +checksum = "286acebaf8b67c1130aedffad26f594eff0c1292389158135327d2e23aed582b" dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", + "cc", ] [[package]] @@ -11542,6 +11957,12 @@ 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" @@ -11565,10 +11986,20 @@ dependencies = [ "wide", ] +[[package]] +name = "simple-dns" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694" +dependencies = [ + "bitflags 2.5.0", +] + [[package]] name = "simple-mermaid" -version = "0.1.0" -source = "git+https://github.com/kianenigma/simple-mermaid.git?branch=main#e48b187bcfd5cc75111acd9d241f1bd36604344b" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" [[package]] name = "siphasher" @@ -11593,14 +12024,14 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "enumn", "parity-scale-codec", "paste", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] @@ -11651,7 +12082,7 @@ dependencies = [ "chacha20", "crossbeam-queue", "derive_more", - "ed25519-zebra 4.0.3", + "ed25519-zebra", "either", "event-listener 2.5.3", "fnv", @@ -11662,13 +12093,13 @@ dependencies = [ "hmac 0.12.1", "itertools 0.11.0", "libsecp256k1", - "merlin 3.0.0", + "merlin", "no-std-net", "nom", "num-bigint", "num-rational", "num-traits", - "pbkdf2 0.12.2", + "pbkdf2", "pin-project", "poly1305", "rand 0.8.5", @@ -11712,7 +12143,7 @@ dependencies = [ "log", "lru 0.11.1", "no-std-net", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", @@ -11782,13 +12213,13 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "sha-1", + "sha-1 0.9.8", ] [[package]] name = "sp-api" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "hash-db", "log", @@ -11796,11 +12227,12 @@ dependencies = [ "scale-info", "sp-api-proc-macro", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-metadata-ir", "sp-runtime", + "sp-runtime-interface 24.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-state-machine", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-trie", "sp-version", "thiserror", @@ -11808,42 +12240,43 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "15.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "Inflector", "blake2 0.10.6", - "expander 2.1.0", - "proc-macro-crate 2.0.0", + "expander", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "sp-application-crypto" -version = "23.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "30.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-io", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "sp-arithmetic" -version = "16.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "23.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ + "docify", "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "static_assertions", ] @@ -11867,37 +12300,35 @@ dependencies = [ [[package]] name = "sp-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", "sp-runtime", - "sp-std 8.0.0", ] [[package]] name = "sp-block-builder" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "sp-api", "sp-inherents", "sp-runtime", - "sp-std 8.0.0", ] [[package]] name = "sp-blockchain" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "schnellru", "sp-api", "sp-consensus", @@ -11909,8 +12340,8 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.32.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "futures", @@ -11924,8 +12355,8 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.32.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "parity-scale-codec", @@ -11935,14 +12366,13 @@ dependencies = [ "sp-consensus-slots", "sp-inherents", "sp-runtime", - "sp-std 8.0.0", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.32.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "parity-scale-codec", @@ -11954,14 +12384,13 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std 8.0.0", "sp-timestamp", ] [[package]] name = "sp-consensus-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "13.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11970,17 +12399,18 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", + "sp-crypto-hashing", "sp-io", + "sp-keystore", "sp-mmr-primitives", "sp-runtime", - "sp-std 8.0.0", - "strum 0.24.1", + "strum 0.26.2", ] [[package]] name = "sp-consensus-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "13.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "finality-grandpa", "log", @@ -11992,59 +12422,58 @@ dependencies = [ "sp-core", "sp-keystore", "sp-runtime", - "sp-std 8.0.0", ] [[package]] name = "sp-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.32.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 8.0.0", "sp-timestamp", ] [[package]] name = "sp-core" -version = "21.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "bandersnatch_vrfs", - "bip39", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", "bs58 0.5.1", "dyn-clonable", - "ed25519-zebra 3.1.0", + "ed25519-zebra", "futures", "hash-db", "hash256-std-hasher", "impl-serde", - "itertools 0.10.5", + "itertools 0.11.0", + "k256", "libsecp256k1", "log", - "merlin 2.0.1", + "merlin", + "parity-bip39", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "paste", "primitive-types", "rand 0.8.5", "scale-info", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "secp256k1", "secrecy", "serde", - "sp-core-hashing", - "sp-debug-derive 8.0.0", - "sp-externalities 0.19.0", - "sp-runtime-interface 17.0.0", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-crypto-hashing", + "sp-debug-derive 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "ss58-registry", "substrate-bip39", "thiserror", @@ -12053,33 +12482,10 @@ dependencies = [ "zeroize", ] -[[package]] -name = "sp-core-hashing" -version = "9.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" -dependencies = [ - "blake2b_simd", - "byteorder", - "digest 0.10.7", - "sha2 0.10.8", - "sha3", - "twox-hash", -] - -[[package]] -name = "sp-core-hashing-proc-macro" -version = "9.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" -dependencies = [ - "quote", - "sp-core-hashing", - "syn 2.0.64", -] - [[package]] name = "sp-crypto-ec-utils" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk#d5fe478e4fe2d62b0800888ae77b00ff0ba28b28" +source = "git+https://github.com/paritytech/polkadot-sdk#c4b3c1c6c6e492c4196e06fbba824a58e8119a3b" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -12092,104 +12498,128 @@ dependencies = [ "ark-ed-on-bls12-377-ext", "ark-ed-on-bls12-381-bandersnatch", "ark-ed-on-bls12-381-bandersnatch-ext", - "ark-scale 0.0.12", - "sp-runtime-interface 24.0.0", + "ark-scale", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk)", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.1.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.8", + "sha3", + "twox-hash", +] + +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" +dependencies = [ + "quote", + "sp-crypto-hashing", + "syn 2.0.66", ] [[package]] name = "sp-database" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "10.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "kvdb", - "parking_lot 0.12.2", + "parking_lot 0.12.3", ] [[package]] name = "sp-debug-derive" -version = "8.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "14.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#d5fe478e4fe2d62b0800888ae77b00ff0ba28b28" +source = "git+https://github.com/paritytech/polkadot-sdk#c4b3c1c6c6e492c4196e06fbba824a58e8119a3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "sp-externalities" -version = "0.19.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.25.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk#d5fe478e4fe2d62b0800888ae77b00ff0ba28b28" +source = "git+https://github.com/paritytech/polkadot-sdk#c4b3c1c6c6e492c4196e06fbba824a58e8119a3b" dependencies = [ "environmental", "parity-scale-codec", - "sp-storage 19.0.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] [[package]] name = "sp-genesis-builder" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.8.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ + "parity-scale-codec", + "scale-info", "serde_json", "sp-api", "sp-runtime", - "sp-std 8.0.0", ] [[package]] name = "sp-inherents" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0", "thiserror", ] [[package]] name = "sp-io" -version = "23.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "30.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bytes", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "libsecp256k1", "log", "parity-scale-codec", + "polkavm-derive", "rustversion", "secp256k1", "sp-core", - "sp-externalities 0.19.0", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-keystore", - "sp-runtime-interface 17.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-state-machine", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-trie", "tracing", "tracing-core", @@ -12197,31 +12627,29 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "24.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "31.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "lazy_static", "sp-core", "sp-runtime", - "strum 0.24.1", + "strum 0.26.2", ] [[package]] name = "sp-keystore" -version = "0.27.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.34.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "sp-core", - "sp-externalities 0.19.0", - "thiserror", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "sp-maybe-compressed-blob" -version = "4.1.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "11.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "thiserror", "zstd 0.12.4", @@ -12229,49 +12657,46 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.6.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-metadata", "parity-scale-codec", "scale-info", - "sp-std 8.0.0", ] [[package]] name = "sp-mixnet" -version = "0.1.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.4.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", - "sp-std 8.0.0", ] [[package]] name = "sp-mmr-primitives" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "ckb-merkle-mountain-range", "log", "parity-scale-codec", + "polkadot-ckb-merkle-mountain-range", "scale-info", "serde", "sp-api", "sp-core", - "sp-debug-derive 8.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-runtime", - "sp-std 8.0.0", "thiserror", ] [[package]] name = "sp-npos-elections" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "scale-info", @@ -12279,13 +12704,12 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-runtime", - "sp-std 8.0.0", ] [[package]] name = "sp-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "sp-api", "sp-core", @@ -12294,8 +12718,8 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "8.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "13.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "backtrace", "lazy_static", @@ -12304,8 +12728,8 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "6.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "rustc-hash", "serde", @@ -12314,14 +12738,15 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "24.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "31.0.1" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "docify", "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", + "num-traits", "parity-scale-codec", "paste", "rand 0.8.5", @@ -12332,77 +12757,78 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-io", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-weights", ] [[package]] name = "sp-runtime-interface" -version = "17.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "24.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", + "polkavm-derive", "primitive-types", - "sp-externalities 0.19.0", - "sp-runtime-interface-proc-macro 11.0.0", - "sp-std 8.0.0", - "sp-storage 13.0.0", - "sp-tracing 10.0.0", - "sp-wasm-interface 14.0.0", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "static_assertions", ] [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#d5fe478e4fe2d62b0800888ae77b00ff0ba28b28" +source = "git+https://github.com/paritytech/polkadot-sdk#c4b3c1c6c6e492c4196e06fbba824a58e8119a3b" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive", "primitive-types", - "sp-externalities 0.25.0", - "sp-runtime-interface-proc-macro 17.0.0", - "sp-std 14.0.0", - "sp-storage 19.0.0", - "sp-tracing 16.0.0", - "sp-wasm-interface 20.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk)", "static_assertions", ] [[package]] name = "sp-runtime-interface-proc-macro" -version = "11.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "17.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "Inflector", - "expander 2.1.0", - "proc-macro-crate 2.0.0", + "expander", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#d5fe478e4fe2d62b0800888ae77b00ff0ba28b28" +source = "git+https://github.com/paritytech/polkadot-sdk#c4b3c1c6c6e492c4196e06fbba824a58e8119a3b" dependencies = [ "Inflector", - "expander 2.1.0", + "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "sp-session" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "scale-info", @@ -12411,13 +12837,12 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", - "sp-std 8.0.0", ] [[package]] name = "sp-staking" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -12425,24 +12850,22 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 8.0.0", ] [[package]] name = "sp-state-machine" -version = "0.28.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.35.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "rand 0.8.5", "smallvec", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-panic-handler", - "sp-std 8.0.0", "sp-trie", "thiserror", "tracing", @@ -12451,12 +12874,12 @@ dependencies = [ [[package]] name = "sp-statement-store" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "10.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "aes-gcm", "curve25519-dalek 4.1.2", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "hkdf", "parity-scale-codec", "rand 0.8.5", @@ -12465,89 +12888,86 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", - "sp-externalities 0.19.0", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-runtime", - "sp-runtime-interface 17.0.0", - "sp-std 8.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "thiserror", "x25519-dalek 2.0.1", ] [[package]] name = "sp-std" -version = "8.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "14.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#d5fe478e4fe2d62b0800888ae77b00ff0ba28b28" +source = "git+https://github.com/paritytech/polkadot-sdk#c4b3c1c6c6e492c4196e06fbba824a58e8119a3b" [[package]] name = "sp-storage" -version = "13.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "19.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 8.0.0", - "sp-std 8.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#d5fe478e4fe2d62b0800888ae77b00ff0ba28b28" +source = "git+https://github.com/paritytech/polkadot-sdk#c4b3c1c6c6e492c4196e06fbba824a58e8119a3b" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 14.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] [[package]] name = "sp-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents", "sp-runtime", - "sp-std 8.0.0", "thiserror", ] [[package]] name = "sp-tracing" -version = "10.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "16.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", - "sp-std 8.0.0", "tracing", "tracing-core", - "tracing-subscriber 0.2.25", + "tracing-subscriber", ] [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#d5fe478e4fe2d62b0800888ae77b00ff0ba28b28" +source = "git+https://github.com/paritytech/polkadot-sdk#c4b3c1c6c6e492c4196e06fbba824a58e8119a3b" dependencies = [ "parity-scale-codec", "tracing", "tracing-core", - "tracing-subscriber 0.3.18", + "tracing-subscriber", ] [[package]] name = "sp-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "sp-api", "sp-runtime", @@ -12555,8 +12975,8 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "26.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "async-trait", "parity-scale-codec", @@ -12564,29 +12984,26 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std 8.0.0", "sp-trie", ] [[package]] name = "sp-trie" -version = "22.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "29.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "ahash 0.8.11", + "ahash", "hash-db", - "hashbrown 0.13.2", "lazy_static", "memory-db", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "rand 0.8.5", "scale-info", "schnellru", "sp-core", - "sp-externalities 0.19.0", - "sp-std 8.0.0", + "sp-externalities 0.25.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "thiserror", "tracing", "trie-db", @@ -12595,49 +13012,48 @@ dependencies = [ [[package]] name = "sp-version" -version = "22.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "29.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-core-hashing-proc-macro", + "sp-crypto-hashing-proc-macro", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-version-proc-macro", "thiserror", ] [[package]] name = "sp-version-proc-macro" -version = "8.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "13.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "sp-wasm-interface" -version = "14.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "20.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 8.0.0", "wasmtime", ] [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#d5fe478e4fe2d62b0800888ae77b00ff0ba28b28" +source = "git+https://github.com/paritytech/polkadot-sdk#c4b3c1c6c6e492c4196e06fbba824a58e8119a3b" dependencies = [ "impl-trait-for-tuples", "log", @@ -12646,8 +13062,8 @@ dependencies = [ [[package]] name = "sp-weights" -version = "20.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -12655,8 +13071,7 @@ dependencies = [ "serde", "smallvec", "sp-arithmetic", - "sp-debug-derive 8.0.0", - "sp-std 8.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] @@ -12672,14 +13087,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] -name = "spinners" -version = "4.1.1" +name = "spinning_top" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ef947f358b9c238923f764c72a4a9d42f2d637c46e059dbd319d6e7cfb4f82" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" dependencies = [ - "lazy_static", - "maplit", - "strum 0.24.1", + "lock_api", ] [[package]] @@ -12715,8 +13128,8 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" -version = "0.1.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.7.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -12724,14 +13137,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", ] [[package]] name = "staging-xcm" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ + "array-bytes", "bounded-collections", "derivative", "environmental", @@ -12746,8 +13160,8 @@ dependencies = [ [[package]] name = "staging-xcm-builder" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "frame-system", @@ -12760,7 +13174,7 @@ dependencies = [ "sp-arithmetic", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-weights", "staging-xcm", "staging-xcm-executor", @@ -12768,8 +13182,8 @@ dependencies = [ [[package]] name = "staging-xcm-executor" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "environmental", "frame-benchmarking", @@ -12782,7 +13196,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-weights", "staging-xcm", ] @@ -12821,6 +13235,26 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "str0m" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3f10d3f68e60168d81110410428a435dbde28cc5525f5f7c6fdec92dbdc2800" +dependencies = [ + "combine", + "crc", + "hmac 0.12.1", + "once_cell", + "openssl", + "openssl-sys", + "rand 0.8.5", + "sctp-proto", + "serde", + "sha-1 0.10.1", + "thiserror", + "tracing", +] + [[package]] name = "strobe-rs" version = "0.8.1" @@ -12845,15 +13279,15 @@ name = "strum" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" -dependencies = [ - "strum_macros 0.24.3", -] [[package]] name = "strum" version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +dependencies = [ + "strum_macros 0.26.4", +] [[package]] name = "strum_macros" @@ -12870,39 +13304,38 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "substrate-bip39" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a7590dc041b9bc2825e52ce5af8416c73dbe9d0654402bfd4b4941938b94d8f" +version = "0.4.7" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "hmac 0.11.0", - "pbkdf2 0.8.0", + "hmac 0.12.1", + "pbkdf2", "schnorrkel 0.11.4", - "sha2 0.9.9", + "sha2 0.10.8", "zeroize", ] [[package]] name = "substrate-build-script-utils" -version = "3.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "11.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" [[package]] name = "substrate-frame-rpc-system" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "28.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12920,8 +13353,8 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "0.17.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "hyper", "log", @@ -12930,23 +13363,10 @@ dependencies = [ "tokio", ] -[[package]] -name = "substrate-rpc-client" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" -dependencies = [ - "async-trait", - "jsonrpsee", - "log", - "sc-rpc-api", - "serde", - "sp-runtime", -] - [[package]] name = "substrate-state-trie-migration-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "27.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12962,18 +13382,19 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "5.0.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "17.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "ansi_term", "build-helper", "cargo_metadata", + "console", "filetime", "parity-wasm", + "polkavm-linker", "sp-maybe-compressed-blob", - "strum 0.24.1", + "strum 0.26.2", "tempfile", - "toml 0.7.8", + "toml 0.8.14", "walkdir", "wasm-opt", ] @@ -13009,9 +13430,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.64" +version = "2.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad3dee41f36859875573074334c200d1add8e4a87bb37113ebd31d926b7b11f" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" dependencies = [ "proc-macro2", "quote", @@ -13030,6 +13451,17 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "system-configuration" version = "0.5.1" @@ -13102,9 +13534,9 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.60" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] @@ -13126,18 +13558,18 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "thiserror-impl" -version = "1.0.60" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -13256,16 +13688,16 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.37.0" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ "backtrace", "bytes", "libc", "mio", "num_cpus", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "pin-project-lite 0.2.14", "signal-hook-registry", "socket2 0.5.7", @@ -13275,33 +13707,33 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] -name = "tokio-retry" -version = "0.3.0" +name = "tokio-rustls" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "pin-project", - "rand 0.8.5", + "rustls 0.21.12", "tokio", ] [[package]] name = "tokio-rustls" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" dependencies = [ - "rustls 0.21.12", + "rustls 0.22.4", + "rustls-pki-types", "tokio", ] @@ -13317,6 +13749,21 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite", +] + [[package]] name = "tokio-util" version = "0.7.11" @@ -13342,26 +13789,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.19.15", -] - -[[package]] -name = "toml" -version = "0.8.13" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" +checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.13", + "toml_edit 0.22.14", ] [[package]] @@ -13373,19 +13808,6 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.2.6", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.5.40", -] - [[package]] name = "toml_edit" version = "0.20.7" @@ -13410,15 +13832,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.13" +version = "0.22.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" +checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" dependencies = [ "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.8", + "winnow 0.6.13", ] [[package]] @@ -13427,6 +13849,10 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite 0.2.14", "tower-layer", "tower-service", "tracing", @@ -13482,7 +13908,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -13507,8 +13933,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "coarsetime", "polkadot-primitives", @@ -13518,25 +13944,14 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "5.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ - "expander 2.1.0", - "proc-macro-crate 2.0.0", + "expander", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.64", -] - -[[package]] -name = "tracing-log" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" -dependencies = [ - "log", - "once_cell", - "tracing-core", + "syn 2.0.66", ] [[package]] @@ -13550,65 +13965,32 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" -dependencies = [ - "ansi_term", - "chrono", - "lazy_static", - "matchers 0.0.1", - "parking_lot 0.11.2", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log 0.1.4", - "tracing-serde", -] - [[package]] name = "tracing-subscriber" version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ - "matchers 0.1.0", + "matchers", "nu-ansi-term", "once_cell", + "parking_lot 0.12.3", "regex", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", - "tracing-log 0.2.0", + "tracing-log", ] [[package]] name = "trie-db" -version = "0.28.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" +checksum = "0c992b4f40c234a074d48a757efeabb1a6be88af84c0c23f7ca158950cb0ae7f" dependencies = [ "hash-db", - "hashbrown 0.13.2", "log", "rustc-hex", "smallvec", @@ -13632,7 +14014,7 @@ dependencies = [ "async-trait", "cfg-if", "data-encoding", - "enum-as-inner", + "enum-as-inner 0.5.1", "futures-channel", "futures-io", "futures-util", @@ -13649,6 +14031,31 @@ dependencies = [ "url", ] +[[package]] +name = "trust-dns-proto" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.6.0", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand 0.8.5", + "smallvec", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + [[package]] name = "trust-dns-resolver" version = "0.22.0" @@ -13660,13 +14067,34 @@ dependencies = [ "ipconfig", "lazy_static", "lru-cache", - "parking_lot 0.12.2", + "parking_lot 0.12.3", + "resolv-conf", + "smallvec", + "thiserror", + "tokio", + "tracing", + "trust-dns-proto 0.22.0", +] + +[[package]] +name = "trust-dns-resolver" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" +dependencies = [ + "cfg-if", + "futures-util", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot 0.12.3", + "rand 0.8.5", "resolv-conf", "smallvec", "thiserror", "tokio", "tracing", - "trust-dns-proto", + "trust-dns-proto 0.23.2", ] [[package]] @@ -13675,48 +14103,32 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "try-runtime-cli" -version = "0.10.0-dev" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" -dependencies = [ - "async-trait", - "clap", - "frame-remote-externalities", - "frame-try-runtime", - "hex", - "log", - "parity-scale-codec", - "sc-cli", - "sc-executor", - "serde", - "serde_json", - "sp-api", - "sp-consensus-aura", - "sp-consensus-babe", - "sp-core", - "sp-debug-derive 8.0.0", - "sp-externalities 0.19.0", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-rpc", - "sp-runtime", - "sp-state-machine", - "sp-timestamp", - "sp-transaction-storage-proof", - "sp-version", - "sp-weights", - "substrate-rpc-client", - "zstd 0.12.4", -] - [[package]] name = "tt-call" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + [[package]] name = "twox-hash" version = "1.6.3" @@ -13776,9 +14188,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "unicode-xid" @@ -13806,6 +14218,7 @@ dependencies = [ "bytes", "futures-io", "futures-util", + "tokio-util", ] [[package]] @@ -13822,20 +14235,26 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna 0.5.0", "percent-encoding", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "valuable" @@ -13873,38 +14292,31 @@ dependencies = [ [[package]] name = "virto-node" -version = "0.12.1" +version = "0.13.0" dependencies = [ - "assert_cmd", - "async-trait", "clap", + "color-print", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", - "cumulus-client-consensus-relay-chain", - "cumulus-client-network", "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", + "docify", "frame-benchmarking", "frame-benchmarking-cli", - "frame-system", "futures", - "hex-literal", "jsonrpsee", "kreivo-runtime", "log", - "nix 0.27.1", - "pallet-asset-tx-payment", "pallet-transaction-payment-rpc", "parachains-common", "parity-scale-codec", "polkadot-cli", "polkadot-primitives", - "polkadot-service", "sc-basic-authorship", "sc-chain-spec", "sc-cli", @@ -13913,6 +14325,7 @@ dependencies = [ "sc-executor", "sc-network", "sc-network-sync", + "sc-offchain", "sc-rpc", "sc-service", "sc-sysinfo", @@ -13925,27 +14338,16 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-blockchain", - "sp-consensus", "sp-consensus-aura", "sp-core", - "sp-inherents", "sp-io", - "sp-keyring", "sp-keystore", - "sp-offchain", "sp-runtime", - "sp-session", "sp-timestamp", - "sp-transaction-pool", "staging-xcm", "substrate-build-script-utils", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", - "substrate-state-trie-migration-rpc", - "tempfile", - "tokio", - "try-runtime-cli", - "wait-timeout", ] [[package]] @@ -13956,9 +14358,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "w3f-bls" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7335e4c132c28cc43caef6adb339789e599e39adbe78da0c4d547fad48cbc331" +checksum = "9c5da5fa2c6afa2c9158eaa7cd9aee249765eb32b5fb0c63ad8b9e79336a47ec" dependencies = [ "ark-bls12-377", "ark-bls12-381", @@ -13978,15 +14380,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - [[package]] name = "waker-fn" version = "1.2.0" @@ -14054,7 +14447,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", "wasm-bindgen-shared", ] @@ -14088,7 +14481,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -14101,9 +14494,9 @@ checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-instrument" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa1dafb3e60065305741e83db35c6c2584bb3725b692b5b66148a38d72ace6cd" +checksum = "2a47ecb37b9734d1085eaa5ae1a81e60801fd8c28d4cabdd8aedb982021918bc" dependencies = [ "parity-wasm", ] @@ -14437,16 +14830,10 @@ dependencies = [ "webpki", ] -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "westend-runtime" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "binary-merkle-tree", "bitvec", @@ -14477,7 +14864,6 @@ dependencies = [ "pallet-fast-unstake", "pallet-grandpa", "pallet-identity", - "pallet-im-online", "pallet-indices", "pallet-membership", "pallet-message-queue", @@ -14538,8 +14924,8 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", "sp-transaction-pool", "sp-version", "staging-xcm", @@ -14547,12 +14933,13 @@ dependencies = [ "staging-xcm-executor", "substrate-wasm-builder", "westend-runtime-constants", + "xcm-fee-payment-runtime-api", ] [[package]] name = "westend-runtime-constants" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "frame-support", "polkadot-primitives", @@ -14562,6 +14949,7 @@ dependencies = [ "sp-runtime", "sp-weights", "staging-xcm", + "staging-xcm-builder", ] [[package]] @@ -14578,9 +14966,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.7.19" +version = "0.7.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab6594190de06d718a5dbc5fa781ab62f8903797056480e549ca74add6b7065" +checksum = "8a040b111774ab63a19ef46bbc149398ab372b4ccdcfd719e9814dbd7dfd76c8" dependencies = [ "bytemuck", "safe_arch", @@ -14651,6 +15039,21 @@ dependencies = [ "windows-targets 0.52.5", ] +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -14867,9 +15270,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.8" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" dependencies = [ "memchr", ] @@ -14934,15 +15337,47 @@ dependencies = [ "time", ] +[[package]] +name = "x509-parser" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "xcm-fee-payment-runtime-api" +version = "0.1.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0)", + "sp-weights", + "staging-xcm", +] + [[package]] name = "xcm-procedural" -version = "1.0.0" -source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.5.0#b20a9cb40b2af12c56ea33c6d11104a162ea3d2e" +version = "7.0.0" +source = "git+https://github.com/virto-network/polkadot-sdk?branch=release-virto-v1.12.0#a5ec6b76cbb4aad28244fa61341856cc823d57bc" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] @@ -14954,7 +15389,7 @@ dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.2", + "parking_lot 0.12.3", "rand 0.8.5", "static_assertions", ] @@ -14985,14 +15420,14 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -15005,7 +15440,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.64", + "syn 2.0.66", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 217be27f..4c1c01b0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,208 +1,207 @@ [workspace] -members = ["node", "runtime/kreivo", "common"] - exclude = ["xcm-emulator"] +members = ["node", "runtime/kreivo", "common"] resolver = "2" [profile.release] panic = "unwind" [profile.production] +codegen-units = 1 inherits = "release" lto = true -codegen-units = 1 [profile.test] debug = 0 [workspace.package] authors = ['Virto Team '] -license = "GPL-3.0-only" +edition = "2021" homepage = 'https://github.com/virto-network/virto-node' +license = "GPL-3.0-only" repository = 'https://github.com/virto-network/virto-node' -edition = "2021" - [workspace.dependencies] # common async-trait = "0.1" -clap = { version = "4.4.2" } -parity-scale-codec = { version = "3.6.4", default-features = false, features = [ - "derive", -] } -futures = { version = "0.3.28" } -hex-literal = { version = "0.4.1" } -log = { version = "0.4.20" } -serde = { version = "1.0.188", default-features = false, features = [ - "derive" -] } +clap = {version = "4.5.3"} +futures = {version = "0.3.28"} +hex-literal = {version = "0.4.1"} +jsonrpsee = {version = "0.22"} +log = {version = "0.4.20"} +parity-scale-codec = {version = "3.6.4", default-features = false, features = [ + "derive", +]} +scale-info = {version = "2.10.0", default-features = false, features = [ + "derive", +]} +serde = {version = "1.0.188", default-features = false, features = [ + "derive", +]} serde_json = "1.0.104" -scale-info = { version = "2.10.0", default-features = false, features = [ - "derive", -] } smallvec = "1.11" # Local dependencies -kreivo-runtime = { path = "runtime/kreivo" } -jsonrpsee = { version = "0.16.2" } +kreivo-runtime = {path = "runtime/kreivo"} # Virto Pallets -pallet-asset-registry = { default-features = false, path = "pallets/asset-registry" } -pallet-burner = { default-features = false, path = "pallets/burner" } -pallet-payments = { default-features = false, path = "pallets/payments" } -pallet-communities = { default-features = false, path = "pallets/communities" } -pallet-communities-manager = { default-features = false, path = "pallets/communities-manager" } +pallet-asset-registry = {default-features = false, path = "pallets/asset-registry"} +pallet-burner = {default-features = false, path = "pallets/burner"} +pallet-communities = {default-features = false, path = "pallets/communities"} +pallet-communities-manager = {default-features = false, path = "pallets/communities-manager"} +pallet-payments = {default-features = false, path = "pallets/payments"} -virto-common = { default-features = false, path = "common" } -runtime-common = { default-features = false, path = "runtime/common" } -kusama-runtime-constants = { default-features = false, path = "runtime/kusama-runtime-constants" } +kusama-runtime-constants = {default-features = false, path = "runtime/kusama-runtime-constants"} +runtime-common = {default-features = false, path = "runtime/common"} +virto-common = {default-features = false, path = "common"} # Frame Contrib -fc-traits-memberships = { git = "https://github.com/virto-network/frame-contrib", branch = "main", default-features = false } -fc-traits-tracks = { git = "https://github.com/virto-network/frame-contrib", branch = "main", default-features = false } -pallet-referenda-tracks = { git = "https://github.com/virto-network/frame-contrib", branch = "main", package="fc-pallet-referenda-tracks", default-features = false } +fc-traits-memberships = {git = "https://github.com/virto-network/frame-contrib", branch = "main", default-features = false} +fc-traits-tracks = {git = "https://github.com/virto-network/frame-contrib", branch = "main", default-features = false} +pallet-referenda-tracks = {git = "https://github.com/virto-network/frame-contrib", branch = "main", package = "fc-pallet-referenda-tracks", default-features = false} # Substrate std -try-runtime-cli = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -frame-benchmarking-cli = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -frame-rpc-system = { package = "substrate-frame-rpc-system", git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-transaction-payment-rpc = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-basic-authorship = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-chain-spec = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-consensus = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-cli = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-client-api = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-executor = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-service = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-telemetry = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-transaction-pool = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-network = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-network-sync = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-rpc = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-tracing = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-sysinfo = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-blockchain = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-consensus = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-keyring = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -substrate-prometheus-endpoint = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -substrate-state-trie-migration-rpc = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } +frame-benchmarking-cli = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-transaction-payment-rpc = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-basic-authorship = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-chain-spec = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-cli = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-client-api = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-consensus = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-executor = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-network = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-network-sync = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-offchain = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-rpc = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-service = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-sysinfo = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-telemetry = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-tracing = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-transaction-pool = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-blockchain = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-consensus = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-keyring = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +substrate-frame-rpc-system = {package = "substrate-frame-rpc-system", git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +substrate-prometheus-endpoint = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +substrate-state-trie-migration-rpc = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} # Substrate non-std -frame-benchmarking = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-io = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-core = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-session = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-timestamp = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-block-builder = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-keystore = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-offchain = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-api = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-consensus-aura = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-transaction-pool = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sc-transaction-pool-api = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } - +frame-benchmarking = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sc-transaction-pool-api = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-api = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-block-builder = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-consensus-aura = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-core = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-io = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-keystore = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-offchain = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-session = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-timestamp = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-transaction-pool = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} # Substrate Runtime -sp-runtime = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-inherents = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-arithmetic = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-genesis-builder = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-std = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-version = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -sp-weights = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } +sp-arithmetic = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-genesis-builder = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-inherents = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-runtime = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-std = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-version = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +sp-weights = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} # Build Dependencies -substrate-build-script-utils = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -substrate-wasm-builder = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } +substrate-build-script-utils = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +substrate-wasm-builder = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} ## Substrate FRAME Dependencies -frame-try-runtime = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -frame-executive = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -frame-support = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -frame-system = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -frame-system-benchmarking = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } +frame-executive = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +frame-support = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +frame-system = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +frame-system-benchmarking = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +frame-system-rpc-runtime-api = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +frame-try-runtime = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} ## Substrate Pallet Dependencies -pallet-asset-tx-payment = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-assets = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-aura = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-authorship = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-balances = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-collective = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-contracts = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-contracts-primitives = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-democracy = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-identity = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-insecure-randomness-collective-flip = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-multisig = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-nfts = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-preimage = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-proxy = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-ranked-collective = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-referenda = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-remark = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-scheduler = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-session = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-sudo = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-timestamp = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-transaction-payment = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-treasury = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-uniques = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-utility = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-vesting = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } +pallet-asset-tx-payment = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-assets = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-aura = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-authorship = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-balances = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-collective = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-contracts = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-contracts-primitives = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-democracy = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-identity = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-insecure-randomness-collective-flip = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-multisig = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-nfts = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-preimage = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-proxy = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-ranked-collective = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-referenda = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-remark = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-scheduler = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-session = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-sudo = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-timestamp = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-transaction-payment = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-transaction-payment-rpc-runtime-api = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-treasury = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-uniques = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-utility = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-vesting = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} # Cumulus client dependencies -cumulus-client-cli = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-client-collator = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-client-consensus-aura = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-client-consensus-relay-chain = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-client-consensus-common = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-client-consensus-proposer = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-client-service = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-client-network = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-relay-chain-interface = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } +cumulus-client-cli = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-client-collator = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-client-consensus-aura = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-client-consensus-common = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-client-consensus-proposer = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-client-consensus-relay-chain = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-client-network = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-client-parachain-inherent = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-client-service = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-primitives-aura = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0", default-features = false} +cumulus-primitives-parachain-inherent = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-relay-chain-interface = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} # Cumulus runtime dependencies -assets-common = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-pallet-aura-ext = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-pallet-parachain-system = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-pallet-xcm = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-pallet-xcmp-queue = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-ping = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-primitives-core = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-primitives-timestamp = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-primitives-utility = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-collator-selection = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -parachains-common = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -parachain-info = { package = "staging-parachain-info", default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -cumulus-pallet-session-benchmarking = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-message-queue = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } +assets-common = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-pallet-aura-ext = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-pallet-parachain-system = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-pallet-session-benchmarking = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-pallet-xcm = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-pallet-xcmp-queue = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-ping = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-primitives-core = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-primitives-timestamp = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +cumulus-primitives-utility = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-collator-selection = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-message-queue = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +parachain-info = {package = "staging-parachain-info", default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +parachains-common = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} # Polkadot -polkadot-cli = { features = [ - "rococo-native", -], git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -polkadot-primitives = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0", default-features = false } -polkadot-service = { git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -polkadot-runtime-parachains = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } +polkadot-cli = {features = [ + "rococo-native", +], git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +polkadot-primitives = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0", default-features = false} +polkadot-runtime-parachains = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +polkadot-service = {git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} # Polkadot Dependencies -pallet-xcm = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -polkadot-core-primitives = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -polkadot-parachain-primitives = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -polkadot-runtime-common = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -xcm = { package = "staging-xcm", default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -xcm-builder = { package = "staging-xcm-builder", default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -xcm-executor = { package = "staging-xcm-executor", default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -xcm-simulator = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } -pallet-xcm-benchmarks = { default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.5.0" } +pallet-xcm = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +pallet-xcm-benchmarks = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +polkadot-core-primitives = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +polkadot-parachain-primitives = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +polkadot-runtime-common = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +xcm = {package = "staging-xcm", default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +xcm-builder = {package = "staging-xcm-builder", default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +xcm-executor = {package = "staging-xcm-executor", default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} +xcm-simulator = {default-features = false, git = "https://github.com/virto-network/polkadot-sdk", branch = "release-virto-v1.12.0"} # Dev dependencies assert_cmd = "2.0" -nix = { version = "0.27.1", features = ["signal"] } +nix = {version = "0.27.1", features = ["signal"]} tempfile = "3.7" -tokio = { version = "1.32.0", features = ["macros", "time", "parking_lot"] } +tokio = {version = "1.32.0", features = ["macros", "time", "parking_lot"]} wait-timeout = "0.2" diff --git a/common/Cargo.toml b/common/Cargo.toml index 9df28cb7..5148a6bd 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -1,47 +1,47 @@ [package] -name = "virto-common" -version = "0.1.0" -edition = "2021" + name = "virto-common" + version = "0.1.0" + edition = "2021" [dependencies] -bs58 = { version = "0.5.0", default-features = false } -wasm-bindgen = { version = "0.2.87", optional = true } + bs58 = { version = "0.5.0", default-features = false } + wasm-bindgen = { version = "0.2.87", optional = true } -cumulus-primitives-core = { workspace = true, optional = true } -frame-support = { workspace = true, optional = true } -pallet-payments = { workspace = true, optional = true } -parity-scale-codec = { workspace = true, optional = true } -scale-info = { workspace = true, optional = true } -serde = { workspace = true, optional = true, default-features = false } -sp-runtime = { workspace = true, optional = true } -xcm = { workspace = true, optional = true } + cumulus-primitives-core = { workspace = true, optional = true } + frame-support = { workspace = true, optional = true } + pallet-payments = { workspace = true, optional = true } + parity-scale-codec = { workspace = true, optional = true } + scale-info = { workspace = true, optional = true } + serde = { workspace = true, optional = true, default-features = false } + sp-runtime = { workspace = true, optional = true } + xcm = { workspace = true, optional = true } [dev-dependencies] -frame-support = { workspace = true, features = ["std"] } + frame-support = { workspace = true, features = ["std"] } [features] -default = ["std"] -std = [ - "bs58/std", - "cumulus-primitives-core?/std", - "frame-support?/std", - "pallet-payments?/std", - "parity-scale-codec?/std", - "scale-info?/std", - "serde?/std", - "sp-runtime?/std", - "xcm?/std", -] -alloc = [] -js = ["alloc", "wasm-bindgen"] -nightly = [] -runtime = [ - "dep:cumulus-primitives-core", - "dep:frame-support", - "dep:pallet-payments", - "dep:parity-scale-codec", - "dep:serde", - "dep:scale-info", - "dep:sp-runtime", - "dep:xcm", -] + default = ["std"] + std = [ + "bs58/std", + "cumulus-primitives-core?/std", + "frame-support?/std", + "pallet-payments?/std", + "parity-scale-codec?/std", + "scale-info?/std", + "serde?/std", + "sp-runtime?/std", + "xcm?/std", + ] + alloc = [] + js = ["alloc", "wasm-bindgen"] + nightly = [] + runtime = [ + "dep:cumulus-primitives-core", + "dep:frame-support", + "dep:pallet-payments", + "dep:parity-scale-codec", + "dep:serde", + "dep:scale-info", + "dep:sp-runtime", + "dep:xcm", + ] diff --git a/common/src/multilocation_asset_id.rs b/common/src/multilocation_asset_id.rs index 86594aa9..f6ac03cb 100644 --- a/common/src/multilocation_asset_id.rs +++ b/common/src/multilocation_asset_id.rs @@ -52,11 +52,10 @@ impl From for FungibleAssetLocation { #[cfg(feature = "runtime")] pub mod runtime { use super::{FungibleAssetLocation, Para}; - use cumulus_primitives_core::MultiLocation; use sp_runtime::traits::MaybeEquivalence; - use xcm::v3::{ + use xcm::latest::{ Junction::{GeneralIndex, GlobalConsensus, PalletInstance, Parachain}, - Junctions, NetworkId, + Location, NetworkId, }; impl TryFrom for super::NetworkId { @@ -83,72 +82,63 @@ pub mod runtime { } pub struct AsFungibleAssetLocation; - impl MaybeEquivalence for AsFungibleAssetLocation { - fn convert(value: &MultiLocation) -> Option { - match *value { - MultiLocation { - parents: 2, - interior: Junctions::X1(GlobalConsensus(network)), - } => Some(FungibleAssetLocation::External { - network: network.try_into().ok()?, + impl MaybeEquivalence for AsFungibleAssetLocation { + fn convert(value: &Location) -> Option { + match value.unpack() { + (2, [GlobalConsensus(network)]) => Some(FungibleAssetLocation::External { + network: (*network).try_into().ok()?, child: None, }), - MultiLocation { - parents: 2, - interior: - Junctions::X4(GlobalConsensus(network), Parachain(id), PalletInstance(pallet), GeneralIndex(index)), - } => Some(FungibleAssetLocation::External { - network: network.try_into().ok()?, - child: Some(Para { - id: id.try_into().ok()?, - pallet, - index: index.try_into().ok()?, - }), - }), - MultiLocation { - parents: 1, - interior: Junctions::X3(Parachain(id), PalletInstance(pallet), GeneralIndex(index)), - } => Some(FungibleAssetLocation::Sibling(Para { - id: id.try_into().ok()?, - pallet, - index: index.try_into().ok()?, - })), - MultiLocation { - parents: 0, - interior: Junctions::X2(PalletInstance(13), GeneralIndex(index)), - } => Some(FungibleAssetLocation::Here( - index.try_into().expect("as it is here, we the types will match; qed"), + (2, [GlobalConsensus(network), Parachain(id), PalletInstance(pallet), GeneralIndex(index)]) => { + Some(FungibleAssetLocation::External { + network: (*network).try_into().ok()?, + child: Some(Para { + id: (*id).try_into().ok()?, + pallet: *pallet, + index: (*index).try_into().ok()?, + }), + }) + } + (1, [Parachain(id), PalletInstance(pallet), GeneralIndex(index)]) => { + Some(FungibleAssetLocation::Sibling(Para { + id: (*id).try_into().ok()?, + pallet: *pallet, + index: (*index).try_into().ok()?, + })) + } + (0, [PalletInstance(13), GeneralIndex(index)]) => Some(FungibleAssetLocation::Here( + (*index) + .try_into() + .expect("as it is here, we the types will match; qed"), )), _ => None, } } - fn convert_back(value: &FungibleAssetLocation) -> Option { + fn convert_back(value: &FungibleAssetLocation) -> Option { match *value { - FungibleAssetLocation::Here(index) => Some(MultiLocation { - parents: 0, - interior: Junctions::X2(PalletInstance(13), GeneralIndex(index.into())), - }), - FungibleAssetLocation::Sibling(Para { id, pallet, index }) => Some(MultiLocation { - parents: 1, - interior: Junctions::X3(Parachain(id.into()), PalletInstance(pallet), GeneralIndex(index.into())), - }), - FungibleAssetLocation::External { network, child: None } => Some(MultiLocation { - parents: 2, - interior: Junctions::X1(GlobalConsensus(network.into())), - }), + FungibleAssetLocation::Here(index) => { + Some(Location::new(0, [PalletInstance(13), GeneralIndex(index.into())])) + } + FungibleAssetLocation::Sibling(Para { id, pallet, index }) => Some(Location::new( + 1, + [Parachain(id.into()), PalletInstance(pallet), GeneralIndex(index.into())], + )), + FungibleAssetLocation::External { network, child: None } => { + Some(Location::new(2, [GlobalConsensus(network.into())])) + } FungibleAssetLocation::External { network, child: Some(Para { id, pallet, index }), - } => Some(MultiLocation { - parents: 2, - interior: Junctions::X4( + } => Some(Location::new( + 2, + [ GlobalConsensus(network.into()), Parachain(id.into()), PalletInstance(pallet), GeneralIndex(index.into()), - ), - }), + ], + )), } } } diff --git a/node/Cargo.toml b/node/Cargo.toml index 9b456582..b1bd7a35 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -1,129 +1,98 @@ [package] -name = "virto-node" -version = "0.12.1" -authors = ['Virto Team '] +authors.workspace = true +build = "build.rs" +edition.workspace = true +homepage.workspace = true license = "GPL-3.0-only" -homepage = 'https://github.com/virto-network/virto-node' -repository = 'https://github.com/virto-network/virto-node' -edition = "2021" +name = "virto-node" +publish = false +repository.workspace = true +version = "0.13.0" [[bin]] name = "virto-node" path = "src/main.rs" [dependencies] -async-trait = { workspace = true } -clap = { workspace = true } -parity-scale-codec = { workspace = true } -futures = { workspace = true } -hex-literal = { workspace = true } -log = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } +clap = {version = "4.5.3", features = ["derive"]} +codec = {package = "parity-scale-codec", version = "3.6.12"} +docify = "0.2.8" +futures = "0.3.28" +jsonrpsee = {version = "0.22", features = ["server"]} +log = {workspace = true, default-features = true} +serde = {features = ["derive"], workspace = true, default-features = true} +serde_json = {workspace = true, default-features = true} # Local -kreivo-runtime = { workspace = true, optional = true } -jsonrpsee = { workspace = true, features = ["server"] } +kreivo-runtime = {workspace = true, default-features = true} +parachains-common = {workspace = true} # Substrate -frame-benchmarking = { workspace = true, features = ["std"] } -frame-benchmarking-cli = { workspace = true } -sp-runtime = { workspace = true } -sp-io = { workspace = true, features = ["std"] } -sp-core = { workspace = true, features = ["std"] } -sp-consensus = { workspace = true } -sp-session = { workspace = true, features = ["std"] } -sc-consensus = { workspace = true } -sc-cli = { workspace = true } -sc-client-api = { workspace = true } -sc-executor = { workspace = true } -sc-service = { workspace = true } -sc-telemetry = { workspace = true } -sc-transaction-pool = { workspace = true } -sp-transaction-pool = { workspace = true, features = ["std"] } -sc-network = { workspace = true } -sc-network-sync = { workspace = true } -sc-basic-authorship = { workspace = true } -sp-timestamp = { workspace = true, features = ["std"] } -sp-inherents = { workspace = true } -sp-blockchain = { workspace = true } -sp-block-builder = { workspace = true, features = ["std"] } -sp-keyring = { workspace = true } -sp-keystore = { workspace = true, features = ["std"] } -sc-chain-spec = { workspace = true } -sc-rpc = { workspace = true } -sc-tracing = { workspace = true } -sp-offchain = { workspace = true, features = ["std"] } -sp-api = { workspace = true, features = ["std"] } -sp-consensus-aura = { workspace = true, features = ["std"] } -sc-sysinfo = { workspace = true } -substrate-prometheus-endpoint = { workspace = true } -try-runtime-cli = { workspace = true, optional = true } -sc-transaction-pool-api = { workspace = true } -frame-system = { workspace = true } -frame-rpc-system = { workspace = true } -pallet-asset-tx-payment = { workspace = true } -pallet-transaction-payment-rpc = { workspace = true } -substrate-state-trie-migration-rpc = { workspace = true } +frame-benchmarking = {workspace = true} +frame-benchmarking-cli = {workspace = true} +pallet-transaction-payment-rpc = {workspace = true} +substrate-prometheus-endpoint = {workspace = true} +sc-basic-authorship = {workspace = true} +sc-chain-spec = {workspace = true} +sc-cli = {workspace = true} +sc-client-api = {workspace = true} +sc-consensus = {workspace = true} +sc-executor = {workspace = true} +sc-network = {workspace = true} +sc-network-sync = {workspace = true} +sc-offchain = {workspace = true} +sc-rpc = {workspace = true} +sc-service = {workspace = true} +sc-sysinfo = {workspace = true} +sc-telemetry = {workspace = true} +sc-tracing = {workspace = true} +sc-transaction-pool = {workspace = true} +sc-transaction-pool-api = {workspace = true} +sp-api = {workspace = true} +sp-block-builder = {workspace = true} +sp-blockchain = {workspace = true} +sp-consensus-aura = {workspace = true} +sp-core = {workspace = true} +sp-io = {workspace = true} +sp-keystore = {workspace = true} +sp-runtime = {workspace = true} +sp-timestamp = {workspace = true} +substrate-frame-rpc-system = {workspace = true} # Polkadot -polkadot-cli = { workspace = true } -polkadot-primitives = { workspace = true } -polkadot-service = { workspace = true } -xcm = { workspace = true, features = ["std"] } +polkadot-cli = {workspace = true} +polkadot-primitives = {workspace = true} +xcm = {workspace = true, default-features = false} # Cumulus -cumulus-client-cli = { workspace = true } -cumulus-client-collator = { workspace = true } -cumulus-client-consensus-aura = { workspace = true } -cumulus-client-consensus-relay-chain = { workspace = true } -cumulus-client-consensus-common = { workspace = true } -cumulus-client-consensus-proposer = { workspace = true } -cumulus-client-service = { workspace = true } -cumulus-client-network = { workspace = true } -cumulus-primitives-core = { workspace = true, features = ["std"] } -cumulus-primitives-parachain-inherent = { workspace = true } -cumulus-relay-chain-interface = { workspace = true } - -parachains-common = { workspace = true } +color-print = "0.3.4" +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-service = {workspace = true} +cumulus-primitives-core = {workspace = true} +cumulus-primitives-parachain-inherent = {workspace = true} +cumulus-relay-chain-interface = {workspace = true} [build-dependencies] -substrate-build-script-utils = { workspace = true } - -[dev-dependencies] -assert_cmd = { workspace = true } -nix = { workspace = true } -tempfile = "3.3.0" -tokio = { workspace = true } -wait-timeout = { workspace = true } -# purge_chain_works works with rococo-local and needs to allow this -polkadot-cli = { workspace = true } +substrate-build-script-utils = {workspace = true} [features] -default = ["kreivo-runtime"] -testnet = [ - "kreivo-runtime?/testnet" -] +default = [] runtime-benchmarks = [ - "cumulus-primitives-core/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", - "frame-benchmarking-cli/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "kreivo-runtime?/runtime-benchmarks", - "pallet-asset-tx-payment/runtime-benchmarks", - "parachains-common/runtime-benchmarks", - "polkadot-cli/runtime-benchmarks", - "polkadot-primitives/runtime-benchmarks", - "polkadot-service/runtime-benchmarks", - "sc-service/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "frame-benchmarking-cli/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "kreivo-runtime/runtime-benchmarks", + "polkadot-cli/runtime-benchmarks", + "polkadot-primitives/runtime-benchmarks", + "sc-service/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", ] try-runtime = [ - "frame-system/try-runtime", - "kreivo-runtime?/try-runtime", - "pallet-asset-tx-payment/try-runtime", - "polkadot-cli/try-runtime", - "polkadot-service/try-runtime", - "sp-runtime/try-runtime", - "try-runtime-cli/try-runtime", + "kreivo-runtime/try-runtime", + "polkadot-cli/try-runtime", + "sp-runtime/try-runtime", ] diff --git a/node/README.md b/node/README.md new file mode 100644 index 00000000..350272c7 --- /dev/null +++ b/node/README.md @@ -0,0 +1,18 @@ +# Node + +ℹ️ A node - in Polkadot - is a binary executable, whose primary purpose is to execute the [runtime](../runtime/README.md). + +🔗 It communicates with other nodes in the network, and aims for +[consensus](https://wiki.polkadot.network/docs/learn-consensus) among them. + +⚙️ It acts as a remote procedure call (RPC) server, allowing interaction with the blockchain. + +👉 Learn more about the architecture, and a difference between a node and a runtime +[here](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/wasm_meta_protocol/index.html). + +👇 Here are the most important files in this node template: + +- [`chain_spec.rs`](./src/chain_spec.rs): A chain specification is a source code file that defines the chain's +initial (genesis) state. +- [`service.rs`](./src/service.rs): This file defines the node implementation. +It's a place to configure consensus-related topics. diff --git a/node/build.rs b/node/build.rs index ae164d6c..a5b17353 100644 --- a/node/build.rs +++ b/node/build.rs @@ -1,19 +1,3 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Substrate is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Substrate is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Cumulus. If not, see . - use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed}; fn main() { diff --git a/node/src/benchmarking.rs b/node/src/benchmarking.rs deleted file mode 100644 index c9b983f0..00000000 --- a/node/src/benchmarking.rs +++ /dev/null @@ -1,112 +0,0 @@ -use std::{sync::Arc, time::Duration}; - -use cumulus_primitives_parachain_inherent::MockValidationDataInherentDataProvider; -use parity_scale_codec::Encode; -use sc_client_api::BlockBackend; -use sp_core::Pair; -use sp_inherents::{InherentData, InherentDataProvider}; -use sp_keyring::Sr25519Keyring; -use sp_runtime::{generic, OpaqueExtrinsic, SaturatedConversion}; - -use crate::service::ParachainClient; - -/// Generates `System::Remark` extrinsics for the benchmarks. -/// -/// Note: Should only be used for benchmarking. -pub struct RemarkBuilder { - client: Arc>, -} - -impl RemarkBuilder { - /// Creates a new [`Self`] from the given client. - pub fn new(client: Arc>) -> Self { - Self { client } - } -} - -#[cfg(feature = "kreivo-runtime")] -impl frame_benchmarking_cli::ExtrinsicBuilder for RemarkBuilder { - fn pallet(&self) -> &str { - "system" - } - - fn extrinsic(&self) -> &str { - "remark" - } - - fn build(&self, nonce: u32) -> Result { - use kreivo_runtime as runtime; - - let call: runtime::RuntimeCall = runtime::SystemCall::remark { remark: vec![] }.into(); - let period = runtime::BlockHashCount::get() - .checked_next_power_of_two() - .map(|c| c / 2) - .unwrap_or(2) as u64; - let best_block = self.client.chain_info().best_number; - let tip = 0; - let extra: runtime::SignedExtra = ( - frame_system::CheckNonZeroSender::::new(), - frame_system::CheckSpecVersion::::new(), - frame_system::CheckTxVersion::::new(), - frame_system::CheckGenesis::::new(), - frame_system::CheckEra::::from(generic::Era::mortal(period, best_block.saturated_into())), - frame_system::CheckNonce::::from(nonce), - frame_system::CheckWeight::::new(), - pallet_asset_tx_payment::ChargeAssetTxPayment::::from(tip, None), - ); - - let genesis_hash = self.client.block_hash(0).ok().flatten().expect("Genesis block exists"); - let best_hash = self.client.chain_info().best_hash; - let payload = runtime::SignedPayload::from_raw( - call.clone(), - extra.clone(), - ( - (), - runtime::VERSION.spec_version, - runtime::VERSION.transaction_version, - genesis_hash, - best_hash, - (), - (), - (), - ), - ); - - let sender = Sr25519Keyring::Bob.pair(); - let signature = payload.using_encoded(|x| sender.sign(x)); - let extrinsic = runtime::UncheckedExtrinsic::new_signed( - call, - sp_runtime::AccountId32::from(sender.public()).into(), - runtime::Signature::Sr25519(signature), - extra, - ); - - Ok(extrinsic.into()) - } -} - -/// Generates inherent data for the `benchmark overhead` command. -pub fn inherent_benchmark_data() -> sc_cli::Result { - let mut inherent_data = InherentData::new(); - - let timestamp = sp_timestamp::InherentDataProvider::new(Duration::ZERO.into()); - futures::executor::block_on(timestamp.provide_inherent_data(&mut inherent_data)) - .map_err(|e| format!("creating inherent data: {e:?}"))?; - - let parachain_inherent = MockValidationDataInherentDataProvider { - current_para_block: 1, - relay_offset: 0, - relay_blocks_per_para_block: 1, - para_blocks_per_relay_epoch: 0, - relay_randomness_config: (), - xcm_config: Default::default(), - raw_downward_messages: Default::default(), - raw_horizontal_messages: Default::default(), - additional_key_values: Default::default(), - }; - - futures::executor::block_on(parachain_inherent.provide_inherent_data(&mut inherent_data)) - .map_err(|e| format!("creating inherent data: {e:?}"))?; - - Ok(inherent_data) -} diff --git a/node/src/chain_spec/kreivo.rs b/node/src/chain_spec/kreivo.rs index 1696c464..655b84fe 100644 --- a/node/src/chain_spec/kreivo.rs +++ b/node/src/chain_spec/kreivo.rs @@ -43,11 +43,11 @@ pub fn kreivo_rococo_chain_spec_local() -> ChainSpec { vec![ ( get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed::("Alice"), + get_collator_keys_from_seed("Alice"), ), ( get_account_id_from_seed::("Bob"), - get_collator_keys_from_seed::("Bob"), + get_collator_keys_from_seed("Bob"), ), ], vec![ @@ -92,11 +92,11 @@ pub fn kreivo_kusama_chain_spec_local() -> ChainSpec { vec![ ( get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed::("Alice"), + get_collator_keys_from_seed("Alice"), ), ( get_account_id_from_seed::("Bob"), - get_collator_keys_from_seed::("Bob"), + get_collator_keys_from_seed("Bob"), ), ], vec![ @@ -143,11 +143,11 @@ pub fn local_testnet_config() -> ChainSpec { vec![ ( get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed::("Alice"), + get_collator_keys_from_seed("Alice"), ), ( get_account_id_from_seed::("Bob"), - get_collator_keys_from_seed::("Bob"), + get_collator_keys_from_seed("Bob"), ), ], vec![ diff --git a/node/src/chain_spec/mod.rs b/node/src/chain_spec/mod.rs index f5987839..b6777e04 100644 --- a/node/src/chain_spec/mod.rs +++ b/node/src/chain_spec/mod.rs @@ -1,38 +1,23 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Cumulus is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Cumulus. If not, see . - -use parachains_common::{AccountId, Signature}; +use parachains_common::{AccountId, AuraId, Signature}; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use serde::{Deserialize, Serialize}; use sp_core::{Pair, Public}; use sp_runtime::traits::{IdentifyAccount, Verify}; -#[cfg(feature = "kreivo-runtime")] pub mod kreivo; +pub use kreivo::ChainSpec; /// The default XCM version to set in genesis config. const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; -/// Generic extensions for Parachain ChainSpecs. +/// The extensions for the [`ChainSpec`]. #[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)] -#[serde(deny_unknown_fields)] pub struct Extensions { /// The relay chain of the Parachain. + #[serde(alias = "relayChain", alias = "RelayChain")] pub relay_chain: String, /// The id of the Parachain. + #[serde(alias = "paraId", alias = "ParaId")] pub para_id: u32, } @@ -45,7 +30,7 @@ impl Extensions { /// Helper function to generate a crypto pair from seed pub fn get_from_seed(seed: &str) -> ::Public { - TPublic::Pair::from_string(&format!("//{seed}"), None) + TPublic::Pair::from_string(&format!("//{}", seed), None) .expect("static values are valid; qed") .public() } @@ -56,7 +41,7 @@ type AccountPublic = ::Signer; /// /// This function's return type must always match the session keys of the chain /// in tuple format. -pub fn get_collator_keys_from_seed(seed: &str) -> ::Public { +pub fn get_collator_keys_from_seed(seed: &str) -> AuraId { get_from_seed::(seed) } diff --git a/node/src/cli.rs b/node/src/cli.rs index 4c158201..6f116e47 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,24 +1,8 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Cumulus is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Cumulus. If not, see . - use std::path::PathBuf; /// Sub-commands supported by the collator. -#[derive(Debug, clap::Subcommand)] #[allow(clippy::large_enum_variant)] +#[derive(Debug, clap::Subcommand)] pub enum Subcommand { /// Key management CLI utilities #[command(subcommand)] @@ -45,8 +29,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), @@ -57,13 +44,25 @@ pub enum Subcommand { Benchmark(frame_benchmarking_cli::BenchmarkCmd), } +const AFTER_HELP_EXAMPLE: &str = color_print::cstr!( + r#"Examples: + virto-node build-spec --disable-default-bootnode > plain-parachain-chainspec.json + Export a chainspec for a local testnet in json format. + virto-node --chain kreivo-chainspec.json --tmp -- --chain rococo-local + Launch a full node with chain specification loaded from plain-parachain-chainspec.json. + virto-node + Launch a full node with default parachain local-testnet and relay chain rococo-local. + virto-node --collator + Launch a collator with default parachain local-testnet and relay chain rococo-local. + "# +); #[derive(Debug, clap::Parser)] #[command( propagate_version = true, args_conflicts_with_subcommands = true, subcommand_negates_reqs = true )] - +#[clap(after_help = AFTER_HELP_EXAMPLE)] pub struct Cli { #[command(subcommand)] pub subcommand: Option, @@ -83,7 +82,7 @@ pub struct Cli { /// Relay chain arguments #[arg(raw = true)] - pub relaychain_args: Vec, + pub relay_chain_args: Vec, } #[derive(Debug)] diff --git a/node/src/command.rs b/node/src/command.rs index 58919756..c57e7e6d 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -1,162 +1,35 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Cumulus is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Cumulus. If not, see . - -use crate::{ - benchmarking::{inherent_benchmark_data, RemarkBuilder}, - chain_spec, - cli::{Cli, RelayChainCli, Subcommand}, - service::{new_partial, Block}, -}; +use std::net::SocketAddr; +use cumulus_client_service::storage_proof_size::HostFunctions as ReclaimHostFunctions; use cumulus_primitives_core::ParaId; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; - +use kreivo_runtime::Block; use log::info; -use parachains_common::AuraId; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, SharedParams, SubstrateCli, }; use sc_service::config::{BasePath, PrometheusConfig}; -use sp_runtime::traits::AccountIdConversion; -use std::{net::SocketAddr, path::PathBuf}; - -/// Dispatches the code to the currently selected runtime. -macro_rules! dispatch_runtime { - ($runtime:expr, |$alias: ident| $code:expr) => { - match $runtime { - #[cfg(feature = "kreivo-runtime")] - Runtime::Kreivo => { - #[allow(unused_imports)] - use kreivo_runtime as $alias; - - $code - } - } - }; - ($runtime:expr, $code:expr) => { - dispatch_runtime!($runtime, |rt| $code) - }; -} - -/// Generates boilerplate code for constructing partial node for the runtimes -/// that are supported by the benchmarks. -macro_rules! construct_partial { - ($config:expr, |$partial:ident, $runtime:ident| $code:expr) => { - dispatch_runtime!($config.chain_spec.runtime(), |$runtime| { - let $partial = - new_partial::<$runtime::RuntimeApi, _>(&$config, crate::service::aura_build_import_queue::<_, AuraId>)?; - - $code - }) - }; - ($config:expr, |$partial:ident| $code:expr) => { - construct_partial!($config, |$partial, rt| $code) - }; -} - -/// Generates boilerplate code for async run on partial node. -macro_rules! construct_async_run { - (|$components:ident, $cli:ident, $cmd:ident, $config:ident, $runtime:ident| $( $code:tt )* ) => {{ - let runner = $cli.create_runner($cmd)?; - construct_partial!(runner.config(), |$components, $runtime| { - runner.async_run(|$config| { - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }) - }}; - (|$components:ident, $cli:ident, $cmd:ident, $config:ident| $( $code:tt )* ) => {{ - construct_async_run!(|$components, $cli, $cmd, $config, rt| { $( $code )* }) - }}; -} - -/// Helper enum that is used for better distinction of different -/// parachain/runtime configuration (it is based/calculated on ChainSpec's ID -/// attribute) -#[derive(Debug, PartialEq, Default)] -enum Runtime { - #[cfg(feature = "kreivo-runtime")] - #[default] - Kreivo, -} - -impl From<&str> for Runtime { - fn from(value: &str) -> Self { - #[cfg(feature = "kreivo-runtime")] - if value.starts_with("kreivo") { - return Runtime::Kreivo; - } - - let fallback = Runtime::default(); - log::warn!("No specific runtime was recognized for ChainSpec's id: '{value}', so `{fallback:?}` will be used as default."); - fallback - } -} - -trait RuntimeResolver { - fn runtime(&self) -> Runtime; -} - -impl RuntimeResolver for dyn ChainSpec { - fn runtime(&self) -> Runtime { - self.id().into() - } -} - -/// Implementation, that can resolve [`Runtime`] from any json configuration -/// file -impl RuntimeResolver for PathBuf { - fn runtime(&self) -> Runtime { - #[derive(Debug, serde::Deserialize)] - struct EmptyChainSpecWithId { - id: String, - } - - let file = std::fs::File::open(self).expect("Failed to open file"); - let reader = std::io::BufReader::new(file); - let chain_spec: EmptyChainSpecWithId = - serde_json::from_reader(reader).expect("Failed to read 'json' file with ChainSpec configuration"); - chain_spec.id.as_str().into() - } -} +use crate::{ + chain_spec, + cli::{Cli, RelayChainCli, Subcommand}, + service::new_partial, +}; fn load_spec(id: &str) -> std::result::Result, String> { Ok(match id { - #[cfg(feature = "kreivo-runtime")] "" | "kreivo" => Box::new(chain_spec::kreivo::kreivo_kusama_chain_spec()), - #[cfg(feature = "kreivo-runtime")] "kreivo-local" => Box::new(chain_spec::kreivo::kreivo_kusama_chain_spec_local()), - #[cfg(feature = "kreivo-runtime")] "kreivo-rococo-local" => Box::new(chain_spec::kreivo::kreivo_rococo_chain_spec_local()), // -- Loading a specific spec from disk - path => { - let path: PathBuf = path.into(); - match path.runtime() { - #[cfg(feature = "kreivo-runtime")] - Runtime::Kreivo => Box::new(chain_spec::kreivo::ChainSpec::from_json_file(path)?), - } - } + path => Box::new(chain_spec::ChainSpec::from_json_file(std::path::PathBuf::from(path))?), }) } impl SubstrateCli for Cli { fn impl_name() -> String { - "Virto parachain".into() + "Virto Parachain Collator".into() } fn impl_version() -> String { @@ -168,7 +41,7 @@ impl SubstrateCli for Cli { "Virto parachain\n\nThe command-line arguments provided first will be \ passed to the parachain node, while the arguments provided after -- will be passed \ to the relaychain node.\n\n\ - {} [parachain-args] -- [relaychain-args]", + {} -- ", Self::executable_name() ) } @@ -178,21 +51,21 @@ impl SubstrateCli for Cli { } fn support_url() -> String { - "https://github.com/paritytech/cumulus/issues/new".into() + "https://github.com/paritytech/polkadot-sdk/issues/new".into() } fn copyright_start_year() -> i32 { - 2017 + 2020 } - fn load_spec(&self, id: &str) -> std::result::Result, String> { + fn load_spec(&self, id: &str) -> std::result::Result, String> { load_spec(id) } } impl SubstrateCli for RelayChainCli { fn impl_name() -> String { - "Virto parachain".into() + "Virto Parachain Collator".into() } fn impl_version() -> String { @@ -204,7 +77,7 @@ impl SubstrateCli for RelayChainCli { "Virto parachain\n\nThe command-line arguments provided first will be \ passed to the parachain node, while the arguments provided after -- will be passed \ to the relay chain node.\n\n\ - {} [parachain-args] -- [relay_chain-args]", + {} -- ", Self::executable_name() ) } @@ -214,18 +87,29 @@ impl SubstrateCli for RelayChainCli { } fn support_url() -> String { - "https://github.com/paritytech/cumulus/issues/new".into() + "https://github.com/paritytech/polkadot-sdk/issues/new".into() } fn copyright_start_year() -> i32 { - 2017 + 2020 } - fn load_spec(&self, id: &str) -> std::result::Result, String> { + fn load_spec(&self, id: &str) -> std::result::Result, String> { polkadot_cli::Cli::from_iter([RelayChainCli::executable_name()].iter()).load_spec(id) } } +macro_rules! construct_async_run { + (|$components:ident, $cli:ident, $cmd:ident, $config:ident| $( $code:tt )* ) => {{ + let runner = $cli.create_runner($cmd)?; + runner.async_run(|$config| { + let $components = new_partial(&$config)?; + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }} +} + /// Parse command line arguments into service configuration. pub fn run() -> Result<()> { let cli = Cli::from_args(); @@ -236,7 +120,7 @@ pub fn run() -> Result<()> { runner.sync_run(|config| cmd.run(config.chain_spec, config.network)) } Some(Subcommand::CheckBlock(cmd)) => { - construct_async_run!(|components, cli, cmd, _config| { + construct_async_run!(|components, cli, cmd, config| { Ok(cmd.run(components.client, components.import_queue)) }) } @@ -247,15 +131,15 @@ pub fn run() -> Result<()> { 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| Ok(cmd.run(components.client, components.import_queue)) - ) + construct_async_run!(|components, cli, cmd, config| { + Ok(cmd.run(components.client, components.import_queue)) + }) + } + Some(Subcommand::Revert(cmd)) => { + construct_async_run!(|components, cli, cmd, config| { + Ok(cmd.run(components.client, components.backend, None)) + }) } - Some(Subcommand::Revert(cmd)) => construct_async_run!(|components, cli, cmd, _config| Ok(cmd.run( - components.client, - components.backend, - None - ))), Some(Subcommand::PurgeChain(cmd)) => { let runner = cli.create_runner(cmd)?; @@ -264,19 +148,22 @@ pub fn run() -> Result<()> { &config, [RelayChainCli::executable_name()] .iter() - .chain(cli.relaychain_args.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}"))?; + .map_err(|err| format!("Relay chain argument error: {}", err))?; cmd.run(config, polkadot_config) }) } - Some(Subcommand::ExportGenesisState(cmd)) => { - construct_async_run!(|components, cli, cmd, config| { - Ok(async move { cmd.run(&*config.chain_spec, &*components.client) }) + Some(Subcommand::ExportGenesisHead(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|config| { + let partials = new_partial(&config)?; + + cmd.run(partials.client) }) } Some(Subcommand::ExportGenesisWasm(cmd)) => { @@ -288,56 +175,46 @@ pub fn run() -> Result<()> { } Some(Subcommand::Benchmark(cmd)) => { let runner = cli.create_runner(cmd)?; - runner.sync_run(|config| { - // Switch on the concrete benchmark sub-command - match cmd { - BenchmarkCmd::Pallet(cmd) => { - if !cfg!(feature = "runtime-benchmarks") { - return Err("Benchmarking wasn't enabled when building the node. \ - You can enable it with `--features runtime-benchmarks`." - .into()); - } - - dispatch_runtime!(config.chain_spec.runtime(), |runtime| cmd.run::(config)) - } - BenchmarkCmd::Block(cmd) => { - construct_partial!(config, |partial| cmd.run(partial.client)) - } - #[cfg(not(feature = "runtime-benchmarks"))] - BenchmarkCmd::Storage(_) => Err(sc_cli::Error::Input( - "Compile with --features=runtime-benchmarks \ - to enable storage benchmarks." - .into(), - )), - #[cfg(feature = "runtime-benchmarks")] - BenchmarkCmd::Storage(cmd) => { - construct_partial!(config, |partial| { - let db = partial.backend.expose_db(); - let storage = partial.backend.expose_storage(); - - cmd.run(config, partial.client, db, storage) - }) - } - BenchmarkCmd::Machine(cmd) => cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone()), - BenchmarkCmd::Overhead(cmd) => { - construct_partial!(config, |partial| { - let ext_builder = RemarkBuilder::new(partial.client.clone()); - - cmd.run( - config, - partial.client, - inherent_benchmark_data()?, - Vec::new(), - &ext_builder, - ) + // Switch on the concrete benchmark sub-command- + match cmd { + BenchmarkCmd::Pallet(cmd) => { + if cfg!(feature = "runtime-benchmarks") { + runner.sync_run(|config| { + cmd.run_with_spec::, ReclaimHostFunctions>(Some( + config.chain_spec, + )) }) + } else { + Err("Benchmarking wasn't enabled when building the node. \ + You can enable it with `--features runtime-benchmarks`." + .into()) } - // NOTE: this allows the Client to leniently implement - // new benchmark commands without requiring a companion MR. - #[allow(unreachable_patterns)] - _ => Err("Benchmarking sub-command unsupported".into()), } - }) + BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { + let partials = new_partial(&config)?; + cmd.run(partials.client) + }), + #[cfg(not(feature = "runtime-benchmarks"))] + BenchmarkCmd::Storage(_) => Err(sc_cli::Error::Input( + "Compile with --features=runtime-benchmarks \ + to enable storage benchmarks." + .into(), + )), + #[cfg(feature = "runtime-benchmarks")] + BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { + let partials = new_partial(&config)?; + let db = partials.backend.expose_db(); + let storage = partials.backend.expose_storage(); + cmd.run(config, partials.client.clone(), db, storage) + }), + BenchmarkCmd::Machine(cmd) => { + runner.sync_run(|config| cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone())) + } + // NOTE: this allows the Client to leniently implement + // new benchmark commands without requiring a companion MR. + #[allow(unreachable_patterns)] + _ => Err("Benchmarking sub-command unsupported".into()), + } } Some(Subcommand::Key(cmd)) => Ok(cmd.run(&cli)?), None => { @@ -354,43 +231,30 @@ pub fn run() -> Result<()> { let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) .map(|e| e.para_id) - .ok_or("Could not find parachain extension in chain-spec.")?; + .ok_or("Could not find parachain ID in chain-spec.")?; let polkadot_cli = RelayChainCli::new( &config, [RelayChainCli::executable_name()] .iter() - .chain(cli.relaychain_args.iter()), + .chain(cli.relay_chain_args.iter()), ); let id = ParaId::from(para_id); - let parachain_account = - 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}"))?; + .map_err(|err| format!("Relay chain argument error: {}", err))?; - info!("Parachain id: {:?}", id); - info!("Parachain Account: {}", parachain_account); info!( "Is collating: {}", if config.role.is_authority() { "yes" } else { "no" } ); - dispatch_runtime!(config.chain_spec.runtime(), |runtime| { - crate::service::start_aura_node::( - config, - polkadot_config, - collator_options, - id, - hwbench, - ) + crate::service::start_parachain_node(config, polkadot_config, collator_options, id, hwbench) .await .map(|r| r.0) .map_err(Into::into) - }) }) } } @@ -521,5 +385,3 @@ impl CliConfiguration for RelayChainCli { self.base.base.node_name() } } - -// TODO - Bring tests back if useful diff --git a/node/src/main.rs b/node/src/main.rs index 3f1b3ef8..12738a67 100644 --- a/node/src/main.rs +++ b/node/src/main.rs @@ -1,25 +1,7 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Cumulus is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Cumulus. If not, see . - -//! Cumulus test parachain collator +//! Substrate Parachain Node Template CLI #![warn(missing_docs)] -#![warn(unused_extern_crates)] -mod benchmarking; mod chain_spec; mod cli; mod command; diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 7f06b69a..915057a5 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -1,26 +1,14 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Cumulus is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Cumulus. If not, see . - -//! Parachain-specific RPCs implementation. +//! A collection of node-specific RPC methods. +//! Substrate provides the `sc-rpc` crate, which defines the core RPC layer +//! used by Substrate nodes. This file extends those RPC definitions with +//! capabilities that are specific to this project's runtime configuration. #![warn(missing_docs)] + use std::sync::Arc; -use parachains_common::{AccountId, Balance, Block, Nonce}; -use sc_client_api::AuxStore; +use kreivo_runtime::{opaque::Block, AccountId, Balance, Nonce}; + pub use sc_rpc::DenyUnsafe; use sc_transaction_pool_api::TransactionPool; use sp_api::ProvideRuntimeApi; @@ -41,27 +29,21 @@ pub struct FullDeps { } /// Instantiate all RPC extensions. -pub fn create_full( - deps: FullDeps, - _backend: Arc, -) -> Result> +pub fn create_full(deps: FullDeps) -> Result> where C: ProvideRuntimeApi + HeaderBackend - + AuxStore + HeaderMetadata + Send + Sync + 'static, - C::Api: frame_rpc_system::AccountNonceApi, C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, + C::Api: substrate_frame_rpc_system::AccountNonceApi, C::Api: BlockBuilder, P: TransactionPool + Sync + Send + 'static, - B: sc_client_api::Backend + Send + Sync + 'static, - B::State: sc_client_api::backend::StateBackend>, { - use frame_rpc_system::{System, SystemApiServer}; use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; + use substrate_frame_rpc_system::{System, SystemApiServer}; let mut module = RpcExtension::new(()); let FullDeps { @@ -71,7 +53,6 @@ where } = deps; module.merge(System::new(client.clone(), pool, deny_unsafe).into_rpc())?; - module.merge(TransactionPayment::new(client.clone()).into_rpc())?; - + module.merge(TransactionPayment::new(client).into_rpc())?; Ok(module) } diff --git a/node/src/service.rs b/node/src/service.rs index 37c2d09b..d3285d71 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,115 +1,66 @@ -// This file is part of Trappist. +//! Service and ServiceFactory implementation. Specialized wrapper over +//! substrate service. -// Copyright (C) Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -use std::{marker::PhantomData, sync::Arc, time::Duration}; +// std +use std::{sync::Arc, time::Duration}; use cumulus_client_cli::CollatorOptions; +// Local Runtime Types +use kreivo_runtime::{opaque::Block, Hash, RuntimeApi}; + +// Cumulus Imports use cumulus_client_collator::service::CollatorService; -use cumulus_client_consensus_aura::collators::basic::{self as basic_aura, Params as BasicAuraParams}; -use cumulus_client_consensus_common::{ - ParachainBlockImport as TParachainBlockImport, ParachainCandidate, ParachainConsensus, -}; +use cumulus_client_consensus_aura::collators::lookahead::{self as aura, Params as AuraParams}; +use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; use cumulus_client_consensus_proposer::Proposer; -use cumulus_client_consensus_relay_chain::Verifier as RelayChainVerifier; use cumulus_client_service::{ build_network, build_relay_chain_interface, prepare_node_config, start_relay_chain_tasks, BuildNetworkParams, - CollatorSybilResistance, DARecoveryProfile, StartRelayChainTasksParams, + CollatorSybilResistance, DARecoveryProfile, ParachainHostFunctions, StartRelayChainTasksParams, }; use cumulus_primitives_core::{ - relay_chain::{Hash as PHash, PersistedValidationData}, + relay_chain::{CollatorPair, ValidationCode}, ParaId, }; use cumulus_relay_chain_interface::{OverseerHandle, RelayChainInterface}; -use futures::lock::Mutex; -use jsonrpsee::RpcModule; -// pub use parachains_common::{AccountId, AssetIdForTrustBackedAssets as -// AssetId, Balance, Block, Hash, Header, Nonce}; -pub use parachains_common::{AccountId, Balance, Block, Hash, Header, Nonce}; -use parity_scale_codec::Codec; -use sc_consensus::{ - import_queue::{BasicQueue, Verifier as VerifierT}, - BlockImportParams, ImportQueue, -}; + +// Substrate Imports +use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; +use sc_client_api::Backend; +use sc_consensus::ImportQueue; use sc_executor::{HeapAllocStrategy, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; -use sc_network::{config::FullNetworkConfiguration, NetworkBlock}; +use sc_network::NetworkBlock; use sc_network_sync::SyncingService; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; -use sp_api::{ApiExt, ConstructRuntimeApi}; -use sp_consensus_aura::AuraApi; -use sp_core::Pair; +use sc_transaction_pool_api::OffchainTransactionPoolFactory; use sp_keystore::KeystorePtr; -use sp_runtime::{app_crypto::AppCrypto, traits::Header as HeaderT}; use substrate_prometheus_endpoint::Registry; -use polkadot_primitives::CollatorPair; - -use crate::rpc; +#[docify::export(wasm_executor)] +type ParachainExecutor = WasmExecutor; -#[cfg(not(feature = "runtime-benchmarks"))] -type HostFunctions = sp_io::SubstrateHostFunctions; - -#[cfg(feature = "runtime-benchmarks")] -type HostFunctions = ( - sp_io::SubstrateHostFunctions, - frame_benchmarking::benchmarking::HostFunctions, -); - -pub type ParachainClient = TFullClient>; +type ParachainClient = TFullClient; type ParachainBackend = TFullBackend; -type ParachainBlockImport = - TParachainBlockImport>, ParachainBackend>; +type ParachainBlockImport = TParachainBlockImport, ParachainBackend>; -type Partial = PartialComponents< - ParachainClient, +/// 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, - ), + sc_transaction_pool::FullPool, + (ParachainBlockImport, Option, Option), >; -/// Creates a new partial node. -pub fn new_partial( - config: &Configuration, - build_import_queue: BIQ, -) -> Result, sc_service::Error> -where - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::Metadata - + sp_session::SessionKeys - + sp_api::ApiExt - + sp_offchain::OffchainWorkerApi - + sp_block_builder::BlockBuilder, - BIQ: FnOnce( - Arc>, - ParachainBlockImport, - &Configuration, - Option, - &TaskManager, - ) -> Result, sc_service::Error>, -{ +/// 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. +#[docify::export(component_instantiation)] +pub fn new_partial(config: &Configuration) -> Result { let telemetry = config .telemetry_endpoints .clone() @@ -124,22 +75,24 @@ where let heap_pages = config .default_heap_pages .map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |h| HeapAllocStrategy::Static { - extra_pages: h as u32, + extra_pages: h as _, }); - let executor = WasmExecutor::::builder() + let executor = ParachainExecutor::builder() .with_execution_method(config.wasm_method) - .with_max_runtime_instances(config.max_runtime_instances) - .with_runtime_cache_size(config.runtime_cache_size) .with_onchain_heap_alloc_strategy(heap_pages) .with_offchain_heap_alloc_strategy(heap_pages) + .with_max_runtime_instances(config.max_runtime_instances) + .with_runtime_cache_size(config.runtime_cache_size) .build(); - let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( - config, - telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), - executor, - )?; + let (client, backend, keystore_container, task_manager) = + sc_service::new_full_parts_record_import::( + config, + telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), + executor, + true, + )?; let client = Arc::new(client); let telemetry_worker_handle = telemetry.as_ref().map(|(worker, _)| worker.handle()); @@ -165,9 +118,9 @@ where config, telemetry.as_ref().map(|telemetry| telemetry.handle()), &task_manager, - )?; + ); - let params = PartialComponents { + Ok(PartialComponents { backend, client, import_queue, @@ -176,74 +129,119 @@ where transaction_pool, select_chain: (), other: (block_import, telemetry, telemetry_worker_handle), + }) +} + +/// Build the import queue for the parachain runtime. +fn build_import_queue( + client: Arc, + block_import: ParachainBlockImport, + config: &Configuration, + telemetry: Option, + task_manager: &TaskManager, +) -> sc_consensus::DefaultImportQueue { + 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) + }, + &task_manager.spawn_essential_handle(), + config.prometheus_registry(), + telemetry, + ) +} + +#[allow(clippy::too_many_arguments)] +fn start_consensus( + client: Arc, + backend: Arc, + block_import: ParachainBlockImport, + prometheus_registry: Option<&Registry>, + telemetry: Option, + task_manager: &TaskManager, + relay_chain_interface: Arc, + transaction_pool: Arc>, + sync_oracle: Arc>, + keystore: KeystorePtr, + relay_chain_slot_duration: Duration, + para_id: ParaId, + collator_key: CollatorPair, + overseer_handle: OverseerHandle, + announce_block: Arc>) + Send + Sync>, +) -> Result<(), sc_service::Error> { + let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( + task_manager.spawn_handle(), + client.clone(), + transaction_pool, + prometheus_registry, + telemetry.clone(), + ); + + 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 = AuraParams { + create_inherent_data_providers: move |_, ()| async move { Ok(()) }, + block_import, + para_client: client.clone(), + para_backend: backend, + relay_client: relay_chain_interface, + code_hash_provider: move |block_hash| client.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()), + sync_oracle, + keystore, + collator_key, + para_id, + overseer_handle, + relay_chain_slot_duration, + proposer, + collator_service, + // Very limited proposal time. + authoring_duration: Duration::from_millis(2000), + reinitialize: false, }; - Ok(params) + let fut = aura::run::(params); + task_manager.spawn_essential_handle().spawn("aura", None, fut); + + Ok(()) } /// Start a node with the given parachain `Configuration` and relay chain /// `Configuration`. -/// -/// This is the actual implementation that is abstract over the executor and the -/// runtime api. #[sc_tracing::logging::prefix_logs_with("Parachain")] -#[allow(clippy::too_many_arguments)] -async fn start_node_impl( +pub async fn start_parachain_node( parachain_config: Configuration, polkadot_config: Configuration, collator_options: CollatorOptions, - sybil_resistance_level: CollatorSybilResistance, para_id: ParaId, - _rpc_ext_builder: RB, - build_import_queue: BIQ, - start_consensus: SC, hwbench: Option, -) -> sc_service::error::Result<(TaskManager, Arc>)> -where - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::Metadata - + sp_session::SessionKeys - + sp_api::ApiExt - + sp_offchain::OffchainWorkerApi - + sp_block_builder::BlockBuilder - + cumulus_primitives_core::CollectCollationInfo - + frame_rpc_system::AccountNonceApi - + pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, - RB: Fn(Arc>) -> Result, sc_service::Error>, - BIQ: FnOnce( - Arc>, - ParachainBlockImport, - &Configuration, - Option, - &TaskManager, - ) -> Result, sc_service::Error>, - SC: FnOnce( - Arc>, - ParachainBlockImport, - Option<&Registry>, - Option, - &TaskManager, - Arc, - Arc>>, - Arc>, - KeystorePtr, - Duration, - ParaId, - CollatorPair, - OverseerHandle, - Arc>) + Send + Sync>, - ) -> Result<(), sc_service::Error>, -{ +) -> sc_service::error::Result<(TaskManager, Arc)> { let parachain_config = prepare_node_config(parachain_config); - let params = new_partial::(¶chain_config, build_import_queue)?; + let params = new_partial(¶chain_config)?; let (block_import, mut telemetry, telemetry_worker_handle) = params.other; + let net_config = sc_network::config::FullNetworkConfiguration::<_, _, sc_network::NetworkWorker>::new( + ¶chain_config.network, + ); let client = params.client.clone(); let backend = params.backend.clone(); - let mut task_manager = params.task_manager; + let (relay_chain_interface, collator_key) = build_relay_chain_interface( polkadot_config, ¶chain_config, @@ -253,14 +251,15 @@ where hwbench.clone(), ) .await - .map_err(|e| sc_service::Error::Application(Box::new(e)))?; + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; let validator = parachain_config.role.is_authority(); let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); - let net_config = FullNetworkConfiguration::new(¶chain_config.network); + // NOTE: because we use Aura here explicitly, we can use + // `CollatorSybilResistance::Resistant` when starting the network. let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = build_network(BuildNetworkParams { parachain_config: ¶chain_config, @@ -271,23 +270,43 @@ where spawn_handle: task_manager.spawn_handle(), relay_chain_interface: relay_chain_interface.clone(), import_queue: params.import_queue, - sybil_resistance_level, + sybil_resistance_level: CollatorSybilResistance::Resistant, // because of Aura }) .await?; + if parachain_config.offchain_worker.enabled { + use futures::FutureExt; + + task_manager.spawn_handle().spawn( + "offchain-workers-runner", + "offchain-work", + sc_offchain::OffchainWorkers::new(sc_offchain::OffchainWorkerOptions { + runtime_api_provider: client.clone(), + keystore: Some(params.keystore_container.keystore()), + offchain_db: backend.offchain_storage(), + transaction_pool: Some(OffchainTransactionPoolFactory::new(transaction_pool.clone())), + network_provider: Arc::new(network.clone()), + is_validator: parachain_config.role.is_authority(), + enable_http_requests: false, + custom_extensions: move |_| vec![], + }) + .run(client.clone(), task_manager.spawn_handle()) + .boxed(), + ); + } + let rpc_builder = { let client = client.clone(); let transaction_pool = transaction_pool.clone(); - let backend_for_rpc = backend.clone(); Box::new(move |deny_unsafe, _| { - let deps = rpc::FullDeps { + let deps = crate::rpc::FullDeps { client: client.clone(), pool: transaction_pool.clone(), deny_unsafe, }; - rpc::create_full(deps, backend_for_rpc.clone()).map_err(Into::into) + crate::rpc::create_full(deps).map_err(Into::into) }) }; @@ -308,6 +327,19 @@ where if let Some(hwbench) = hwbench { sc_sysinfo::print_hwbench(&hwbench); + // 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. + 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 { let telemetry_handle = telemetry.handle(); @@ -350,11 +382,12 @@ where if validator { start_consensus( client.clone(), + backend, block_import, prometheus_registry.as_ref(), telemetry.as_ref().map(|t| t.handle()), &task_manager, - relay_chain_interface.clone(), + relay_chain_interface, transaction_pool, sync_service, params.keystore_container.keystore(), @@ -370,266 +403,3 @@ where Ok((task_manager, client)) } - -enum BuildOnAccess { - Uninitialized(Option R + Send + Sync>>), - Initialized(R), -} - -impl BuildOnAccess { - fn get_mut(&mut self) -> &mut R { - loop { - match self { - Self::Uninitialized(f) => { - *self = Self::Initialized((f.take().unwrap())()); - } - Self::Initialized(ref mut r) => return r, - } - } - } -} - -/// Special [`ParachainConsensus`] implementation that waits for the upgrade -/// from shell to a parachain runtime that implements Aura. -struct WaitForAuraConsensus { - client: Arc, - aura_consensus: Arc>>>>, - relay_chain_consensus: Arc>>>, - _phantom: PhantomData, -} - -impl Clone for WaitForAuraConsensus { - fn clone(&self) -> Self { - Self { - client: self.client.clone(), - aura_consensus: self.aura_consensus.clone(), - relay_chain_consensus: self.relay_chain_consensus.clone(), - _phantom: PhantomData, - } - } -} - -#[async_trait::async_trait] -impl ParachainConsensus for WaitForAuraConsensus -where - Client: sp_api::ProvideRuntimeApi + Send + Sync, - Client::Api: AuraApi, - AuraId: Send + Codec + Sync, -{ - async fn produce_candidate( - &mut self, - parent: &Header, - relay_parent: PHash, - validation_data: &PersistedValidationData, - ) -> Option> { - if self - .client - .runtime_api() - .has_api::>(parent.hash()) - .unwrap_or(false) - { - self.aura_consensus - .lock() - .await - .get_mut() - .produce_candidate(parent, relay_parent, validation_data) - .await - } else { - self.relay_chain_consensus - .lock() - .await - .produce_candidate(parent, relay_parent, validation_data) - .await - } - } -} - -struct Verifier { - client: Arc, - aura_verifier: BuildOnAccess>>, - relay_chain_verifier: Box>, - _phantom: PhantomData, -} - -#[async_trait::async_trait] -impl VerifierT for Verifier -where - Client: sp_api::ProvideRuntimeApi + Send + Sync, - Client::Api: AuraApi, - AuraId: Send + Sync + Codec, -{ - async fn verify(&mut self, block_import: BlockImportParams) -> Result, String> { - if self - .client - .runtime_api() - .has_api::>(*block_import.header.parent_hash()) - .unwrap_or(false) - { - self.aura_verifier.get_mut().verify(block_import).await - } else { - self.relay_chain_verifier.verify(block_import).await - } - } -} - -/// Start an aura powered parachain node. -/// (collective-polkadot and statemine/t use this) -pub async fn start_aura_node( - parachain_config: Configuration, - polkadot_config: Configuration, - collator_options: CollatorOptions, - para_id: ParaId, - hwbench: Option, -) -> sc_service::error::Result<(TaskManager, Arc>)> -where - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::Metadata - + sp_session::SessionKeys - + sp_api::ApiExt - + sp_offchain::OffchainWorkerApi - + sp_block_builder::BlockBuilder - + cumulus_primitives_core::CollectCollationInfo - + sp_consensus_aura::AuraApi::Pair as Pair>::Public> - + pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi - + frame_rpc_system::AccountNonceApi, - <::Pair as Pair>::Signature: - TryFrom> + std::hash::Hash + sp_runtime::traits::Member + Codec, -{ - start_node_impl::( - parachain_config, - polkadot_config, - collator_options, - CollatorSybilResistance::Resistant, - para_id, - |_| Ok(RpcModule::new(())), - aura_build_import_queue::<_, AuraId>, - |client, - block_import, - prometheus_registry, - telemetry, - task_manager, - relay_chain_interface, - transaction_pool, - sync_oracle, - keystore, - relay_chain_slot_duration, - para_id, - collator_key, - overseer_handle, - announce_block| { - let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; - - let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( - task_manager.spawn_handle(), - client.clone(), - transaction_pool, - prometheus_registry, - telemetry, - ); - 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, - relay_client: relay_chain_interface, - sync_oracle, - keystore, - collator_key, - para_id, - overseer_handle, - slot_duration, - relay_chain_slot_duration, - proposer, - collator_service, - // Very limited proposal time. - authoring_duration: Duration::from_millis(500), - collation_request_receiver: None, - }; - - let fut = basic_aura::run::::Pair, _, _, _, _, _, _, _>(params); - task_manager.spawn_essential_handle().spawn("aura", None, fut); - - Ok(()) - }, - hwbench, - ) - .await -} - -/// Build the import queue for Aura-based parachains. -pub fn aura_build_import_queue( - client: Arc>, - block_import: ParachainBlockImport, - config: &Configuration, - telemetry_handle: Option, - task_manager: &TaskManager, -) -> Result, sc_service::Error> -where - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::Metadata - + sp_session::SessionKeys - + sp_api::ApiExt - + sp_offchain::OffchainWorkerApi - + sp_block_builder::BlockBuilder - + sp_consensus_aura::AuraApi::Pair as Pair>::Public>, - <::Pair as Pair>::Signature: - TryFrom> + std::hash::Hash + sp_runtime::traits::Member + Codec, -{ - let aura_verifier = { - let client = client.clone(); - - move || { - let slot_duration = cumulus_client_consensus_aura::slot_duration(client.as_ref()).unwrap(); - - Box::new(cumulus_client_consensus_aura::build_verifier::< - ::Pair, - _, - _, - _, - >(cumulus_client_consensus_aura::BuildVerifierParams { - 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)) - }, - telemetry: telemetry_handle, - })) as Box<_> - } - }; - - let relay_chain_verifier = Box::new(RelayChainVerifier::new(client.clone(), |_, _| async { Ok(()) })); - - let verifier = Verifier { - client, - relay_chain_verifier, - aura_verifier: BuildOnAccess::Uninitialized(Some(Box::new(aura_verifier))), - _phantom: PhantomData, - }; - - let registry = config.prometheus_registry(); - let spawner = task_manager.spawn_essential_handle(); - - Ok(BasicQueue::new( - verifier, - Box::new(block_import), - None, - &spawner, - registry, - )) -} diff --git a/node/tests/benchmark_storage_works.rs b/node/tests/benchmark_storage_works.rs deleted file mode 100644 index 6246c5ea..00000000 --- a/node/tests/benchmark_storage_works.rs +++ /dev/null @@ -1,45 +0,0 @@ -#![cfg(feature = "runtime-benchmarks")] - -use assert_cmd::cargo::cargo_bin; -use std::{ - path::Path, - process::{Command, ExitStatus}, -}; -use tempfile::tempdir; - -/// The runtimes that this command supports. -static RUNTIMES: [&str; 3] = ["westmint", "statemine", "statemint"]; - -/// The `benchmark storage` command works for the dev runtimes. -#[test] -#[ignore] -fn benchmark_storage_works() { - for runtime in RUNTIMES { - let tmp_dir = tempdir().expect("could not create a temp dir"); - let base_path = tmp_dir.path(); - let runtime = format!("{runtime}-dev"); - - // Benchmarking the storage works and creates the weight file. - assert!(benchmark_storage("rocksdb", &runtime, base_path).success()); - assert!(base_path.join("rocksdb_weights.rs").exists()); - - assert!(benchmark_storage("paritydb", &runtime, base_path).success()); - assert!(base_path.join("paritydb_weights.rs").exists()); - } -} - -/// Invoke the `benchmark storage` sub-command for the given database and -/// runtime. -fn benchmark_storage(db: &str, runtime: &str, base_path: &Path) -> ExitStatus { - Command::new(cargo_bin("polkadot-parachain")) - .args(["benchmark", "storage", "--chain", runtime]) - .arg("--db") - .arg(db) - .arg("--weight-path") - .arg(base_path) - .args(["--state-version", "0"]) - .args(["--warmups", "0"]) - .args(["--add", "100", "--mul", "1.2", "--metric", "p75"]) - .status() - .unwrap() -} diff --git a/node/tests/common.rs b/node/tests/common.rs deleted file mode 100644 index c0e4dc6e..00000000 --- a/node/tests/common.rs +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2020-2021 Parity Technologies (UK) Ltd. -// This file is part of Substrate. - -// Substrate is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Substrate is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Substrate. If not, see . - -#![cfg(unix)] - -use assert_cmd::cargo::cargo_bin; -use nix::{ - sys::signal::{kill, Signal}, - unistd::Pid, -}; -use std::{ - io::{BufRead, BufReader, Read}, - ops::{Deref, DerefMut}, - path::Path, - process::{self, Child, Command, ExitStatus}, -}; -use tokio::time::{sleep, Duration}; - -#[derive(Debug)] -pub struct TimeoutError; - -/// Wait for the given `child` the given number of `secs`. -/// -/// Returns the `Some(exit status)` or `None` if the process did not finish in -/// the given time. -pub fn wait_for(child: &mut Child, secs: u64) -> Result { - let result = - wait_timeout::ChildExt::wait_timeout(child, Duration::from_secs(5.min(secs))).map_err(|_| TimeoutError)?; - if let Some(exit_status) = result { - Ok(exit_status) - } else { - if secs > 5 { - eprintln!("Child process taking over 5 seconds to exit gracefully"); - let result = - wait_timeout::ChildExt::wait_timeout(child, Duration::from_secs(secs - 5)).map_err(|_| TimeoutError)?; - if let Some(exit_status) = result { - return Ok(exit_status); - } - } - eprintln!("Took too long to exit (> {secs} seconds). Killing..."); - let _ = child.kill(); - child.wait().unwrap(); - Err(TimeoutError) - } -} - -/// Run the node for a while (till the RPC is up + 30 secs) -/// TODO: needs to be revisited to hit the RPC -pub async fn run_node_for_a_while(base_path: &Path, args: &[&str], signal: Signal) { - let mut cmd = Command::new(cargo_bin("polkadot-parachain")) - .stdout(process::Stdio::piped()) - .stderr(process::Stdio::piped()) - .arg("-d") - .arg(base_path) - .args(args) - .spawn() - .unwrap(); - - let stderr = cmd.stderr.take().unwrap(); - - let mut child = KillChildOnDrop(cmd); - // TODO: use this instead of the timeout going forward? - let (_, _) = find_ws_url_from_output(stderr); - - // TODO: Revisit this to find a better approach for collators - sleep(Duration::from_secs(120)).await; - - assert!( - child.try_wait().unwrap().is_none(), - "the process should still be running" - ); - - // Stop the process - kill(Pid::from_raw(child.id().try_into().unwrap()), signal).unwrap(); - assert!(wait_for(&mut child, 40).map(|x| x.success()).unwrap()); -} - -pub struct KillChildOnDrop(pub Child); - -impl Drop for KillChildOnDrop { - fn drop(&mut self) { - let _ = self.0.kill(); - } -} - -impl Deref for KillChildOnDrop { - type Target = Child; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -impl DerefMut for KillChildOnDrop { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } -} - -/// Read the WS address from the output. -/// -/// This is hack to get the actual bound sockaddr because -/// substrate assigns a random port if the specified port was already bound. -pub fn find_ws_url_from_output(read: impl Read + Send) -> (String, String) { - let mut data = String::new(); - - let ws_url = BufReader::new(read) - .lines() - .find_map(|line| { - let line = line.expect("failed to obtain next line from stdout for WS address discovery"); - - data.push_str(&line); - data.push('\n'); - - // does the line contain our port (we expect this specific output from - // substrate). - let sock_addr = match line.split_once("Running JSON-RPC WS server: addr=") { - None => return None, - Some((_, after)) => after.split_once(',').unwrap().0, - }; - - Some(format!("ws://{sock_addr}")) - }) - .unwrap_or_else(|| { - eprintln!("Output:\n{data}"); - panic!("We should get a WebSocket address") - }); - - (ws_url, data) -} diff --git a/node/tests/polkadot_argument_parsing.rs b/node/tests/polkadot_argument_parsing.rs deleted file mode 100644 index ad91ce0e..00000000 --- a/node/tests/polkadot_argument_parsing.rs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2020-2021 Parity Technologies (UK) Ltd. -// This file is part of Substrate. - -// Substrate is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Substrate is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Substrate. If not, see . - -use tempfile::tempdir; - -mod common; - -#[tokio::test] -#[cfg(unix)] -#[ignore] -async fn polkadot_argument_parsing() { - use nix::sys::signal::Signal::{SIGINT, SIGTERM}; - let base_dir = tempdir().expect("could not create a temp dir"); - - let args = &[ - "--", - "--dev", - "--bootnodes", - "/ip4/127.0.0.1/tcp/30333/p2p/Qmbx43psh7LVkrYTRXisUpzCubbgYojkejzAgj5mteDnxy", - "--bootnodes", - "/ip4/127.0.0.1/tcp/50500/p2p/Qma6SpS7tzfCrhtgEVKR9Uhjmuv55ovC3kY6y6rPBxpWde", - ]; - - common::run_node_for_a_while(base_dir.path(), args, SIGINT).await; - common::run_node_for_a_while(base_dir.path(), args, SIGTERM).await; -} diff --git a/node/tests/polkadot_mdns_issue.rs b/node/tests/polkadot_mdns_issue.rs deleted file mode 100644 index bb492a31..00000000 --- a/node/tests/polkadot_mdns_issue.rs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2020-2021 Parity Technologies (UK) Ltd. -// This file is part of Substrate. - -// Substrate is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Substrate is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Substrate. If not, see . - -use tempfile::tempdir; - -mod common; - -#[tokio::test] -#[cfg(unix)] -#[ignore] -async fn interrupt_polkadot_mdns_issue_test() { - use nix::sys::signal::Signal::{SIGINT, SIGTERM}; - - let base_dir = tempdir().expect("could not create a temp dir"); - - let args = &["--", "--dev"]; - - common::run_node_for_a_while(base_dir.path(), args, SIGINT).await; - common::run_node_for_a_while(base_dir.path(), args, SIGTERM).await; -} diff --git a/node/tests/purge_chain_works.rs b/node/tests/purge_chain_works.rs deleted file mode 100644 index 983e5fd8..00000000 --- a/node/tests/purge_chain_works.rs +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2020-2021 Parity Technologies (UK) Ltd. -// This file is part of Substrate. - -// Substrate is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Substrate is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Substrate. If not, see . - -use assert_cmd::cargo::cargo_bin; -use nix::sys::signal::SIGINT; -use std::process::Command; -use tempfile::tempdir; - -mod common; - -#[tokio::test] -#[cfg(unix)] -#[ignore] -async fn purge_chain_works() { - // Check that both databases are deleted - - let base_dir = tempdir().expect("could not create a temp dir"); - let base_dir_path = format!("{}/polkadot", base_dir.path().display()); - - let args = &["--", "--dev", "-d", &base_dir_path]; - - common::run_node_for_a_while(base_dir.path(), args, SIGINT).await; - - assert!(base_dir.path().join("chains/local_testnet/db/full").exists()); - assert!(base_dir.path().join("polkadot/chains/dev/db/full").exists()); - - let status = Command::new(cargo_bin("polkadot-parachain")) - .args(["purge-chain", "-d"]) - .arg(base_dir.path()) - .arg("-y") - .status() - .unwrap(); - assert!(status.success()); - - // Make sure that the `parachain_local_testnet` chain folder exists, but the - // `db` is deleted. - assert!(base_dir.path().join("chains/local_testnet").exists()); - assert!(!base_dir.path().join("chains/local_testnet/db/full").exists()); - // assert!(base_path.path().join("polkadot/chains/dev").exists()); - // assert!(!base_path.path().join("polkadot/chains/dev/db").exists()); -} diff --git a/node/tests/running_the_node_and_interrupt.rs b/node/tests/running_the_node_and_interrupt.rs deleted file mode 100644 index 6ffa39bd..00000000 --- a/node/tests/running_the_node_and_interrupt.rs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2020-2021 Parity Technologies (UK) Ltd. -// This file is part of Substrate. - -// Substrate is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Substrate is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Substrate. If not, see . - -use tempfile::tempdir; - -mod common; - -#[tokio::test] -#[cfg(unix)] -#[ignore] -async fn running_the_node_works_and_can_be_interrupted() { - use nix::sys::signal::Signal::{SIGINT, SIGTERM}; - - let base_dir = tempdir().expect("could not create a temp dir"); - - let args = &["--", "--dev"]; - - common::run_node_for_a_while(base_dir.path(), args, SIGINT).await; - common::run_node_for_a_while(base_dir.path(), args, SIGTERM).await; -} diff --git a/pallets/asset-registry/Cargo.toml b/pallets/asset-registry/Cargo.toml deleted file mode 100644 index 7e74080c..00000000 --- a/pallets/asset-registry/Cargo.toml +++ /dev/null @@ -1,52 +0,0 @@ -[package] -name = "pallet-asset-registry" -version = "0.0.1" -authors = { workspace = true } -license = { workspace = true } -homepage = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] - -[dependencies] -parity-scale-codec = { workspace = true, features = ["derive"] } -scale-info = { workspace = true } -sp-runtime = { workspace = true } -sp-std = { workspace = true } -frame-benchmarking = { workspace = true } -frame-support = { workspace = true } -frame-system = { workspace = true } -pallet-assets = { workspace = true } -pallet-balances = { workspace = true } - -xcm = { workspace = true } -pallet-xcm = { workspace = true } - -runtime-common = { workspace = true } - -[dev-dependencies] -sp-core = { workspace = true } -sp-io = { workspace = true } -sp-keystore = { workspace = true } - -[features] -default = ["std"] -std = [ - "parity-scale-codec/std", - "sp-runtime/std", - "sp-std/std", - "sp-core/std", - "pallet-assets/std", - "pallet-balances/std", - "frame-benchmarking/std", - "frame-support/std", - "frame-system/std", - "scale-info/std", - "runtime-common/std", - "xcm/std", - "pallet-xcm/std", -] -runtime-benchmarks = ["frame-benchmarking/runtime-benchmarks"] -try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/asset-registry/README.md b/pallets/asset-registry/README.md deleted file mode 100644 index 2209bd1e..00000000 --- a/pallets/asset-registry/README.md +++ /dev/null @@ -1 +0,0 @@ -# Asset Registry Pallet \ No newline at end of file diff --git a/pallets/asset-registry/src/benchmarking.rs b/pallets/asset-registry/src/benchmarking.rs deleted file mode 100644 index 6c38c4a3..00000000 --- a/pallets/asset-registry/src/benchmarking.rs +++ /dev/null @@ -1,42 +0,0 @@ -//! Benchmarking setup for pallet-asset-registry - -use super::*; - -#[allow(unused)] -use crate::Pallet as AssetRegistry; -use frame_benchmarking::benchmarks; -use frame_support::assert_ok; -use frame_system::RawOrigin; -use xcm::opaque::latest::{ - Junction::{GeneralIndex, PalletInstance, Parachain}, - Junctions, MultiLocation, -}; - -benchmarks! { - register_reserve_asset { - let asset_id = T::BenchmarkHelper::get_registered_asset(); - let asset_multi_location = MultiLocation { - parents: 1, - interior: Junctions::X3(Parachain(Default::default()), PalletInstance(Default::default()), GeneralIndex(Default::default())) - }; - }: _(RawOrigin::Root, asset_id.clone(), asset_multi_location) - verify { - assert_eq!(AssetIdMultiLocation::::get(asset_id), Some(asset_multi_location)); - } - - unregister_reserve_asset { - let asset_id = T::BenchmarkHelper::get_registered_asset(); - let asset_multi_location = MultiLocation { - parents: 1, - interior: Junctions::X3(Parachain(Default::default()), PalletInstance(Default::default()), GeneralIndex(Default::default())) - }; - - assert_ok!(AssetRegistry::::register_reserve_asset(RawOrigin::Root.into(), asset_id.clone(), asset_multi_location)); - assert!(AssetIdMultiLocation::::contains_key(asset_id.clone())); - }: _(RawOrigin::Root, asset_id.clone()) - verify { - assert_eq!(AssetIdMultiLocation::::get(asset_id), None); - } - - impl_benchmark_test_suite!(AssetRegistry, crate::mock::new_test_ext(), crate::mock::Test); -} diff --git a/pallets/asset-registry/src/lib.rs b/pallets/asset-registry/src/lib.rs deleted file mode 100644 index df95af32..00000000 --- a/pallets/asset-registry/src/lib.rs +++ /dev/null @@ -1,170 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] -#![allow(clippy::large_enum_variant)] - -/// Edit this file to define custom logic or remove it if it is not needed. -/// Learn more about FRAME and the core library of Substrate FRAME pallets: -/// -pub use pallet::*; - -#[cfg(test)] -mod mock; -#[cfg(test)] -mod tests; - -#[cfg(feature = "runtime-benchmarks")] -mod benchmarking; -pub mod weights; -pub use runtime_common::impls::AssetMultiLocationGetter; -pub use weights::*; - -#[frame_support::pallet] -pub mod pallet { - use super::*; - use frame_support::{pallet_prelude::*, traits::tokens::fungibles::Inspect}; - use frame_system::pallet_prelude::*; - - use xcm::latest::{ - Junction::{AccountId32, AccountKey20, GeneralIndex, PalletInstance}, - MultiLocation, - }; - - #[pallet::pallet] - pub struct Pallet(_); - - type AssetIdOf = <::Assets as Inspect<::AccountId>>::AssetId; - - #[cfg(feature = "runtime-benchmarks")] - pub trait BenchmarkHelper { - fn get_registered_asset() -> AssetId; - } - - #[pallet::config] - pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - type ReserveAssetModifierOrigin: EnsureOrigin; - type Assets: Inspect; - type WeightInfo: WeightInfo; - /// Helper trait for benchmarks. - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper: BenchmarkHelper>; - } - - #[pallet::storage] - pub type AssetIdMultiLocation = StorageMap<_, Blake2_128Concat, AssetIdOf, MultiLocation>; - - #[pallet::storage] - pub type AssetMultiLocationId = StorageMap<_, Blake2_128Concat, MultiLocation, AssetIdOf>; - - #[pallet::event] - #[pallet::generate_deposit(pub(super) fn deposit_event)] - pub enum Event { - ReserveAssetRegistered { - asset_id: AssetIdOf, - asset_multi_location: MultiLocation, - }, - ReserveAssetUnregistered { - asset_id: AssetIdOf, - asset_multi_location: MultiLocation, - }, - } - - #[pallet::error] - pub enum Error { - /// The Asset ID is already registered - AssetAlreadyRegistered, - /// The Asset ID does not exist - AssetDoesNotExist, - /// The Asset ID is not registered - AssetIsNotRegistered, - /// Invalid MultiLocation - WrongMultiLocation, - } - - #[pallet::call] - impl Pallet { - #[pallet::call_index(0)] - #[pallet::weight(::WeightInfo::register_reserve_asset())] - pub fn register_reserve_asset( - origin: OriginFor, - asset_id: AssetIdOf, - asset_multi_location: MultiLocation, - ) -> DispatchResult { - T::ReserveAssetModifierOrigin::ensure_origin(origin)?; - - ensure!(T::Assets::asset_exists(asset_id.clone()), Error::::AssetDoesNotExist); - - // verify asset is not yet registered - ensure!( - !AssetIdMultiLocation::::contains_key(asset_id.clone()), - Error::::AssetAlreadyRegistered - ); - - // verify MultiLocation is valid - ensure!( - Self::valid_asset_location(&asset_multi_location), - Error::::WrongMultiLocation - ); - - // register asset_id => asset_multi_location - AssetIdMultiLocation::::insert(asset_id.clone(), asset_multi_location); - // register asset_multi_location => asset_id - AssetMultiLocationId::::insert(asset_multi_location, asset_id.clone()); - - Self::deposit_event(Event::ReserveAssetRegistered { - asset_id, - asset_multi_location, - }); - Ok(()) - } - - #[pallet::call_index(1)] - #[pallet::weight(::WeightInfo::unregister_reserve_asset())] - pub fn unregister_reserve_asset(origin: OriginFor, asset_id: AssetIdOf) -> DispatchResult { - T::ReserveAssetModifierOrigin::ensure_origin(origin)?; - - // remove asset_id => asset_multi_location, while getting the value - let asset_multi_location = AssetIdMultiLocation::::mutate_exists(asset_id.clone(), Option::take) - .ok_or(Error::::AssetIsNotRegistered)?; - // remove asset_multi_location => asset_id - AssetMultiLocationId::::remove(asset_multi_location); - - Self::deposit_event(Event::ReserveAssetUnregistered { - asset_id, - asset_multi_location, - }); - Ok(()) - } - } - - impl Pallet { - //Validates that the location points to an asset (Native, Frame based, Erc20) - // as described in the xcm-format: https://github.com/paritytech/xcm-format#concrete-identifiers - fn valid_asset_location(location: &MultiLocation) -> bool { - let (split_multilocation, last_junction) = (*location).split_last_interior(); - - let check = matches!( - last_junction, - Some(AccountId32 { .. }) | Some(AccountKey20 { .. }) | Some(PalletInstance(_)) | None - ); - - check - | match last_junction { - Some(GeneralIndex(_)) => { - let penultimate = split_multilocation.last(); - matches!(penultimate, Some(PalletInstance(_))) - } - _ => false, - } - } - } - - impl AssetMultiLocationGetter> for Pallet { - fn get_asset_multi_location(asset_id: AssetIdOf) -> Option { - AssetIdMultiLocation::::get(asset_id) - } - - fn get_asset_id(asset_type: &MultiLocation) -> Option> { - AssetMultiLocationId::::get(asset_type) - } - } -} diff --git a/pallets/asset-registry/src/mock.rs b/pallets/asset-registry/src/mock.rs deleted file mode 100644 index 5b56afa1..00000000 --- a/pallets/asset-registry/src/mock.rs +++ /dev/null @@ -1,144 +0,0 @@ -use crate as pallet_asset_registry; -use frame_support::traits::{AsEnsureOriginWithArg, ConstU64}; -use sp_core::H256; -use sp_keystore::{testing::MemoryKeystore, KeystoreExt}; -use sp_runtime::{ - traits::{BlakeTwo256, ConstU32, IdentityLookup}, - BuildStorage, -}; - -type Block = frame_system::mocking::MockBlock; - -type AccountId = u64; - -frame_support::parameter_types! { - pub const StatemineParaIdInfo: u32 = 1000u32; - pub const StatemineAssetsInstanceInfo: u8 = 50u8; - pub const StatemineAssetIdInfo: u128 = 1u128; -} - -// Configure a mock runtime to test the pallet. -frame_support::construct_runtime!( - pub enum Test - { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - AssetRegistry: pallet_asset_registry::{Pallet, Call, Storage, Event}, - Assets: pallet_assets::{Pallet, Call, Storage, Event}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - } -); - -impl frame_system::Config for Test { - type BaseCallFilter = frame_support::traits::Everything; - type BlockWeights = (); - type BlockLength = (); - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Nonce = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Block = Block; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = ConstU64<250>; - type DbWeight = (); - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = (); - type OnSetCode = (); - type MaxConsumers = ConstU32<16>; -} - -#[cfg(feature = "runtime-benchmarks")] -pub struct MockAssetRegistryBenchmarkHelper; -#[cfg(feature = "runtime-benchmarks")] -impl pallet_asset_registry::BenchmarkHelper for MockAssetRegistryBenchmarkHelper { - fn get_registered_asset() -> u32 { - LOCAL_ASSET_ID - } -} - -impl pallet_asset_registry::Config for Test { - type RuntimeEvent = RuntimeEvent; - type ReserveAssetModifierOrigin = frame_system::EnsureRoot; - type Assets = Assets; - type WeightInfo = pallet_asset_registry::weights::SubstrateWeight; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = MockAssetRegistryBenchmarkHelper; -} - -impl pallet_balances::Config for Test { - type Balance = u64; - type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ConstU64<1>; - type AccountStore = System; - type WeightInfo = (); - type MaxLocks = (); - type MaxReserves = ConstU32<50>; - type ReserveIdentifier = [u8; 8]; - type FreezeIdentifier = (); - type MaxFreezes = (); - type RuntimeHoldReason = (); - type MaxHolds = (); - type RuntimeFreezeReason = (); -} - -impl pallet_assets::Config for Test { - type RuntimeEvent = RuntimeEvent; - type Balance = u64; - type AssetId = u32; - type AssetIdParameter = u32; - type Currency = Balances; - type CreateOrigin = AsEnsureOriginWithArg>; - type ForceOrigin = frame_system::EnsureRoot; - type AssetDeposit = ConstU64<1>; - type AssetAccountDeposit = ConstU64<10>; - type MetadataDepositBase = ConstU64<1>; - type MetadataDepositPerByte = ConstU64<1>; - type ApprovalDeposit = ConstU64<1>; - type StringLimit = ConstU32<50>; - type Freezer = (); - type WeightInfo = (); - type Extra = (); - type RemoveItemsLimit = ConstU32<5>; - type RuntimeHoldReason = RuntimeHoldReason; - type MaxHolds = ConstU32<50>; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = (); - type CallbackHandle = (); -} - -pub const LOCAL_ASSET_ID: u32 = 10; - -// Build genesis storage according to the mock runtime. -pub fn new_test_ext() -> sp_io::TestExternalities { - let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); - - pallet_assets::GenesisConfig:: { - assets: vec![ - // id, owner, is_sufficient, min_balance - (LOCAL_ASSET_ID, 0, true, 1), - ], - metadata: vec![ - // id, name, symbol, decimals - (LOCAL_ASSET_ID, "Token Name".into(), "TOKEN".into(), 10), - ], - accounts: vec![ - // id, account_id, balance - (LOCAL_ASSET_ID, 1, 100), - ], - } - .assimilate_storage(&mut t) - .unwrap(); - - let mut ext = sp_io::TestExternalities::new(t); - ext.register_extension(KeystoreExt::new(MemoryKeystore::new())); - ext.execute_with(|| System::set_block_number(1)); - ext -} diff --git a/pallets/asset-registry/src/tests.rs b/pallets/asset-registry/src/tests.rs deleted file mode 100644 index 1c2692dd..00000000 --- a/pallets/asset-registry/src/tests.rs +++ /dev/null @@ -1,209 +0,0 @@ -use frame_support::{assert_noop, assert_ok}; -use xcm::latest::prelude::*; - -use crate::{mock::*, AssetIdMultiLocation, AssetMultiLocationId, Error}; - -const STATEMINE_ASSET_MULTI_LOCATION: MultiLocation = MultiLocation { - parents: 1, - interior: X3( - Parachain(StatemineParaIdInfo::get()), - PalletInstance(StatemineAssetsInstanceInfo::get()), - GeneralIndex(StatemineAssetIdInfo::get()), - ), -}; - -mod register_reserve_assest { - use super::*; - - #[test] - fn register_reserve_asset_works() { - new_test_ext().execute_with(|| { - assert_ok!(AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - STATEMINE_ASSET_MULTI_LOCATION, - )); - - assert_eq!( - AssetIdMultiLocation::::get(LOCAL_ASSET_ID), - Some(STATEMINE_ASSET_MULTI_LOCATION) - ); - assert_eq!( - AssetMultiLocationId::::get(STATEMINE_ASSET_MULTI_LOCATION), - Some(LOCAL_ASSET_ID) - ); - }); - } - - #[test] - fn cannot_register_unexisting_asset() { - new_test_ext().execute_with(|| { - let unexisting_asset_id = 9999; - - assert_noop!( - AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - unexisting_asset_id, - STATEMINE_ASSET_MULTI_LOCATION, - ), - Error::::AssetDoesNotExist - ); - }); - } - - #[test] - fn cannot_double_register() { - new_test_ext().execute_with(|| { - assert_ok!(AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - STATEMINE_ASSET_MULTI_LOCATION, - )); - - assert_noop!( - AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - STATEMINE_ASSET_MULTI_LOCATION, - ), - Error::::AssetAlreadyRegistered - ); - }); - } - - #[test] - fn valid_locations_succced() { - let native_frame_based_currency = MultiLocation { - parents: 1, - interior: X2(Parachain(1000), PalletInstance(1)), - }; - let multiasset_pallet_instance = MultiLocation { - parents: 1, - interior: X3(Parachain(1000), PalletInstance(1), GeneralIndex(2)), - }; - let relay_native_currency = MultiLocation { - parents: 1, - interior: Junctions::Here, - }; - let erc20_frame_sm_asset = MultiLocation { - parents: 1, - interior: X3( - Parachain(1000), - PalletInstance(2), - AccountId32 { - network: None, - id: [0; 32], - }, - ), - }; - let erc20_ethereum_sm_asset = MultiLocation { - parents: 1, - interior: X2( - Parachain(2000), - AccountKey20 { - network: None, - key: [0; 20], - }, - ), - }; - - new_test_ext().execute_with(|| { - assert_ok!(AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - native_frame_based_currency, - )); - }); - new_test_ext().execute_with(|| { - assert_ok!(AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - multiasset_pallet_instance, - )); - }); - new_test_ext().execute_with(|| { - assert_ok!(AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - relay_native_currency, - )); - }); - new_test_ext().execute_with(|| { - assert_ok!(AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - erc20_frame_sm_asset, - )); - }); - new_test_ext().execute_with(|| { - assert_ok!(AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - erc20_ethereum_sm_asset, - )); - }); - } - - #[test] - fn invalid_locations_fail() { - let governance_location = MultiLocation { - parents: 1, - interior: X2( - Parachain(1000), - Plurality { - id: BodyId::Executive, - part: BodyPart::Voice, - }, - ), - }; - let invalid_general_index = MultiLocation { - parents: 1, - interior: X2(Parachain(1000), GeneralIndex(1u128)), - }; - - new_test_ext().execute_with(|| { - assert_noop!( - AssetRegistry::register_reserve_asset(RuntimeOrigin::root(), LOCAL_ASSET_ID, governance_location,), - Error::::WrongMultiLocation - ); - - assert_noop!( - AssetRegistry::register_reserve_asset(RuntimeOrigin::root(), LOCAL_ASSET_ID, invalid_general_index,), - Error::::WrongMultiLocation - ); - }) - } -} - -mod unregister_reserve_asset { - use super::*; - - #[test] - fn unregister_reserve_asset_works() { - new_test_ext().execute_with(|| { - assert_ok!(AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - STATEMINE_ASSET_MULTI_LOCATION, - )); - - assert_ok!(AssetRegistry::unregister_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID - )); - - assert!(AssetIdMultiLocation::::get(LOCAL_ASSET_ID).is_none()); - assert!(AssetMultiLocationId::::get(STATEMINE_ASSET_MULTI_LOCATION).is_none()); - }); - } - - #[test] - fn cannot_register_unregistered_asset() { - new_test_ext().execute_with(|| { - assert_noop!( - AssetRegistry::unregister_reserve_asset(RuntimeOrigin::root(), LOCAL_ASSET_ID), - Error::::AssetIsNotRegistered - ); - }); - } -} diff --git a/pallets/asset-registry/src/weights.rs b/pallets/asset-registry/src/weights.rs deleted file mode 100644 index a16d75b8..00000000 --- a/pallets/asset-registry/src/weights.rs +++ /dev/null @@ -1,102 +0,0 @@ - -//! Autogenerated weights for pallet_asset_registry -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: ``, CPU: `` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kreivo-rococo-local"), DB CACHE: 1024 - -// Executed Command: -// ./target/release/virto-node -// benchmark -// pallet -// --chain=kreivo-rococo-local -// --steps=50 -// --repeat=20 -// --pallet=pallet_asset_registry -// --extrinsic=* -// --execution=wasm -// --wasm-execution=compiled -// --heap-pages=4096 -// --output=./pallets/asset-registry/src/weights.rs -// --template=templates/frame-weight-template.hbs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] -#![allow(missing_docs)] - -use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; -use core::marker::PhantomData; - -/// Weight functions needed for pallet_asset_registry. -pub trait WeightInfo { - fn register_reserve_asset() -> Weight; - fn unregister_reserve_asset() -> Weight; -} - -/// Weights for pallet_asset_registry using the Substrate node and recommended hardware. -pub struct SubstrateWeight(PhantomData); -impl WeightInfo for SubstrateWeight { - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: AssetRegistry AssetIdMultiLocation (r:1 w:1) - /// Proof: AssetRegistry AssetIdMultiLocation (max_values: None, max_size: Some(622), added: 3097, mode: MaxEncodedLen) - /// Storage: AssetRegistry AssetMultiLocationId (r:0 w:1) - /// Proof: AssetRegistry AssetMultiLocationId (max_values: None, max_size: Some(622), added: 3097, mode: MaxEncodedLen) - fn register_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `123` - // Estimated: `4087` - // Minimum execution time: 17_000_000 picoseconds. - Weight::from_parts(18_000_000, 4087) - .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) - } - /// Storage: AssetRegistry AssetIdMultiLocation (r:1 w:1) - /// Proof: AssetRegistry AssetIdMultiLocation (max_values: None, max_size: Some(622), added: 3097, mode: MaxEncodedLen) - /// Storage: AssetRegistry AssetMultiLocationId (r:0 w:1) - /// Proof: AssetRegistry AssetMultiLocationId (max_values: None, max_size: Some(622), added: 3097, mode: MaxEncodedLen) - fn unregister_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `107` - // Estimated: `4087` - // Minimum execution time: 12_000_000 picoseconds. - Weight::from_parts(13_000_000, 4087) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) - } -} - -// For backwards compatibility and tests -impl WeightInfo for () { - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) - /// Storage: AssetRegistry AssetIdMultiLocation (r:1 w:1) - /// Proof: AssetRegistry AssetIdMultiLocation (max_values: None, max_size: Some(622), added: 3097, mode: MaxEncodedLen) - /// Storage: AssetRegistry AssetMultiLocationId (r:0 w:1) - /// Proof: AssetRegistry AssetMultiLocationId (max_values: None, max_size: Some(622), added: 3097, mode: MaxEncodedLen) - fn register_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `123` - // Estimated: `4087` - // Minimum execution time: 17_000_000 picoseconds. - Weight::from_parts(18_000_000, 4087) - .saturating_add(RocksDbWeight::get().reads(2_u64)) - .saturating_add(RocksDbWeight::get().writes(2_u64)) - } - /// Storage: AssetRegistry AssetIdMultiLocation (r:1 w:1) - /// Proof: AssetRegistry AssetIdMultiLocation (max_values: None, max_size: Some(622), added: 3097, mode: MaxEncodedLen) - /// Storage: AssetRegistry AssetMultiLocationId (r:0 w:1) - /// Proof: AssetRegistry AssetMultiLocationId (max_values: None, max_size: Some(622), added: 3097, mode: MaxEncodedLen) - fn unregister_reserve_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `107` - // Estimated: `4087` - // Minimum execution time: 12_000_000 picoseconds. - Weight::from_parts(13_000_000, 4087) - .saturating_add(RocksDbWeight::get().reads(1_u64)) - .saturating_add(RocksDbWeight::get().writes(2_u64)) - } -} diff --git a/pallets/burner/Cargo.toml b/pallets/burner/Cargo.toml deleted file mode 100644 index e88bfe1d..00000000 --- a/pallets/burner/Cargo.toml +++ /dev/null @@ -1,67 +0,0 @@ -[package] -name = "pallet-burner" -version = "0.1.0" -authors = ['Virto Team '] -license = "GPL-3.0-only" -homepage = 'https://github.com/virto-network/virto-node' -repository = 'https://github.com/virto-network/virto-node' -edition = "2021" - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] - -[dependencies] -parity-scale-codec = { workspace = true, features = ["derive"] } -scale-info = { workspace = true, features = ["derive"] } -log = { workspace = true } - -# Substrate -frame-benchmarking = { workspace = true, optional = true} -frame-support = { workspace = true } -frame-system = { workspace = true } -sp-runtime = { workspace = true } -sp-std = { workspace = true } - - -[dev-dependencies] -serde = { version = "1.0.132" } -pallet-balances = { workspace = true } -pallet-sudo = { workspace = true } -sp-keystore = { workspace = true } - -# Substrate -sp-core = { workspace = true } -sp-io ={ workspace = true } - -[features] -default = ["std"] -runtime-benchmarks = [ - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-sudo/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", -] -std = [ - "frame-benchmarking/std", - "frame-support/std", - "frame-system/std", - "log/std", - "pallet-balances/std", - "pallet-sudo/std", - "parity-scale-codec/std", - "scale-info/std", - "sp-core/std", - "sp-io/std", - "sp-keystore/std", - "sp-runtime/std", - "sp-std/std", -] -try-runtime = [ - "frame-support/try-runtime", - "frame-system/try-runtime", - "pallet-balances/try-runtime", - "pallet-sudo/try-runtime", - "sp-runtime/try-runtime", -] diff --git a/pallets/burner/README.md b/pallets/burner/README.md deleted file mode 100644 index 5a646123..00000000 --- a/pallets/burner/README.md +++ /dev/null @@ -1 +0,0 @@ -License: Unlicense diff --git a/pallets/burner/src/benchmarking.rs b/pallets/burner/src/benchmarking.rs deleted file mode 100644 index e300e958..00000000 --- a/pallets/burner/src/benchmarking.rs +++ /dev/null @@ -1,29 +0,0 @@ -//! Benchmarking setup for pallet-burner - -use super::*; - -#[allow(unused)] -use crate::Pallet as Burner; -use frame_benchmarking::{benchmarks, impl_benchmark_test_suite, whitelisted_caller}; -use frame_system::RawOrigin; - -fn assert_last_event(generic_event: ::RuntimeEvent) { - let events = frame_system::Pallet::::events(); - let system_event: ::RuntimeEvent = generic_event.into(); - // compare to the last event record - let frame_system::EventRecord { event, .. } = &events[events.len() - 1]; - assert_eq!(event, &system_event); -} - -benchmarks! { - burn_asset { - let amount: BalanceOf = 1_000_000_000u32.into(); - let burn_from_account: T::AccountId = whitelisted_caller(); - let burn_from_account_lookup = T::Lookup::unlookup(burn_from_account.clone()); - }: _(RawOrigin::Root, burn_from_account_lookup, amount) - verify { - assert_last_event::(Event::Burnt { burnt_funds: amount, from: burn_from_account }.into()); - } -} - -impl_benchmark_test_suite!(Burner, crate::mock::new_test_ext(), crate::mock::Test,); diff --git a/pallets/burner/src/lib.rs b/pallets/burner/src/lib.rs deleted file mode 100644 index 844a200a..00000000 --- a/pallets/burner/src/lib.rs +++ /dev/null @@ -1,132 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -/// Edit this file to define custom logic or remove it if it is not needed. -/// Learn more about FRAME and the core library of Substrate FRAME pallets: -/// -pub use pallet::*; - -#[cfg(test)] -mod mock; - -#[cfg(test)] -mod tests; - -#[cfg(feature = "runtime-benchmarks")] -mod benchmarking; - -use frame_support::traits::Currency; - -pub mod weights; -pub use weights::*; - -use sp_runtime::traits::StaticLookup; - -pub type BalanceOf = <::Currency as Currency<::AccountId>>::Balance; -pub type PositiveImbalanceOf = - <::Currency as Currency<::AccountId>>::PositiveImbalance; -pub type NegativeImbalanceOf = - <::Currency as Currency<::AccountId>>::NegativeImbalance; -type AccountIdLookupOf = <::Lookup as StaticLookup>::Source; - -#[frame_support::pallet] -pub mod pallet { - use super::*; - use frame_support::{ - dispatch::DispatchResultWithPostInfo, - pallet_prelude::*, - traits::{ - Currency, EnsureOrigin, ExistenceRequirement::KeepAlive, Get, Imbalance, OnUnbalanced, ReservableCurrency, - WithdrawReasons, - }, - PalletId, - }; - use frame_system::pallet_prelude::*; - - /// Configure the pallet by specifying the parameters and types on which it - /// depends. - #[pallet::config] - pub trait Config: frame_system::Config { - /// Because this pallet emits events, it depends on the runtime's - /// definition of an event. - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - - type Currency: Currency + ReservableCurrency; - - /// Handler for burning funds. - type BurnDestination: OnUnbalanced>; - - /// Origin for burning funds. - type BurnOrigin: EnsureOrigin<::RuntimeOrigin>; - - #[pallet::constant] - type PalletId: Get; - - type WeightInfo: WeightInfo; - } - - #[pallet::pallet] - pub struct Pallet(_); - - // Pallets use events to inform users when important changes are made. - // https://docs.substrate.io/v3/runtime/events-and-errors - #[pallet::event] - #[pallet::generate_deposit(pub(super) fn deposit_event)] - pub enum Event { - /// Event documentation should end with an array that provides - /// descriptive names for event parameters. [something, who] - Burnt { - burnt_funds: BalanceOf, - from: T::AccountId, - }, - } - - // Errors inform users that something went wrong. - #[pallet::error] - pub enum Error { - /// Error names should be descriptive. - NoneValue, - /// Errors should have helpful documentation associated with them. - StorageOverflow, - } - - // Dispatchable functions allows users to interact with the pallet and invoke - // state changes. These functions materialize as "extrinsics", which are often - // compared to transactions. Dispatchable functions must be annotated with a - // weight and must return a DispatchResult. - #[pallet::call] - impl Pallet { - #[pallet::call_index(0)] - #[pallet::weight(T::WeightInfo::burn_asset())] - pub fn burn_asset( - origin: OriginFor, - burn_from: AccountIdLookupOf, - amount: BalanceOf, - ) -> DispatchResultWithPostInfo { - T::BurnOrigin::ensure_origin(origin.clone())?; - - let account_id = T::Lookup::lookup(burn_from)?; - - let mut imbalance = >::zero(); - let (debit, credit) = T::Currency::pair(amount); - imbalance.subsume(debit); - T::BurnDestination::on_unbalanced(credit); - - // Must never be an error, but better to be safe. - // proof: budget_remaining is account free balance minus ED; - // Thus we can't spend more than account free balance minus ED; - // Thus account is kept alive; qed; - if let Err(problem) = T::Currency::settle(&account_id, imbalance, WithdrawReasons::TRANSFER, KeepAlive) { - log::error!("Inconsistent state - couldn't settle imbalance for funds spent by treasury"); - // Nothing else to do here. - drop(problem); - } - - Self::deposit_event(Event::Burnt { - burnt_funds: amount, - from: account_id, - }); - - Ok(().into()) - } - } -} diff --git a/pallets/burner/src/mock.rs b/pallets/burner/src/mock.rs deleted file mode 100644 index 1ae63f00..00000000 --- a/pallets/burner/src/mock.rs +++ /dev/null @@ -1,116 +0,0 @@ -use crate as pallet_burner; -use frame_support::{ - parameter_types, - traits::{ConstU32, ConstU64}, - PalletId, -}; -use sp_core::H256; -use sp_keystore::{testing::MemoryKeystore, KeystoreExt}; -use sp_runtime::{ - traits::{BlakeTwo256, IdentityLookup}, - BuildStorage, -}; - -type Block = frame_system::mocking::MockBlock; -type AccountId = u64; - -// Configure a mock runtime to test the pallet. -frame_support::construct_runtime!( - pub enum Test - { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - Burner: pallet_burner::{Pallet, Call, Storage, Event}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event}, - } -); - -parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const SS58Prefix: u8 = 42; -} - -impl frame_system::Config for Test { - type BaseCallFilter = frame_support::traits::Everything; - type BlockWeights = (); - type BlockLength = (); - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Nonce = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Block = Block; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = ConstU64<250>; - type DbWeight = (); - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = (); - type OnSetCode = (); - type MaxConsumers = ConstU32<16>; -} - -impl pallet_balances::Config for Test { - type Balance = u64; - type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ConstU64<1>; - type AccountStore = System; - type WeightInfo = (); - type MaxLocks = (); - type MaxReserves = ConstU32<50>; - type ReserveIdentifier = [u8; 8]; - type FreezeIdentifier = (); - type MaxFreezes = (); - type RuntimeHoldReason = (); - type MaxHolds = (); - type RuntimeFreezeReason = (); -} - -impl pallet_sudo::Config for Test { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type WeightInfo = (); -} - -parameter_types! { - pub const BurnerPalletId: PalletId = PalletId(*b"burner00"); -} - -impl pallet_burner::Config for Test { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type BurnDestination = (); - type BurnOrigin = frame_system::EnsureRoot; - type PalletId = BurnerPalletId; - type WeightInfo = pallet_burner::weights::SubstrateWeight; -} - -// Build genesis storage according to the mock runtime. -pub(crate) fn new_test_ext() -> sp_io::TestExternalities { - let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); - - pallet_balances::GenesisConfig:: { - balances: vec![ - // id, owner, is_sufficient, min_balance - (1, 1000000000000), - ], - } - .assimilate_storage(&mut t) - .unwrap(); - - pallet_sudo::GenesisConfig:: { key: Some(1) } - .assimilate_storage(&mut t) - .unwrap(); - - let mut ext = sp_io::TestExternalities::new(t); - ext.register_extension(KeystoreExt::new(MemoryKeystore::new())); - ext.execute_with(|| System::set_block_number(1)); - ext -} diff --git a/pallets/burner/src/tests.rs b/pallets/burner/src/tests.rs deleted file mode 100644 index a12e7c1b..00000000 --- a/pallets/burner/src/tests.rs +++ /dev/null @@ -1,15 +0,0 @@ -use crate::mock::*; -use frame_support::assert_ok; -use frame_system::RawOrigin; - -#[test] -fn it_works_for_default_value() { - new_test_ext().execute_with(|| { - let current_balance = Balances::free_balance(1); - let burn_amount: u64 = 25000000; - assert_ok!(Burner::burn_asset(RawOrigin::Root.into(), 1, burn_amount)); - let after_balance = Balances::free_balance(1); - println!("current_balance: {current_balance:?}, after_balance: {after_balance:?}",); - assert_eq!(after_balance, current_balance - burn_amount); - }); -} diff --git a/pallets/burner/src/weights.rs b/pallets/burner/src/weights.rs deleted file mode 100644 index 47da9b4e..00000000 --- a/pallets/burner/src/weights.rs +++ /dev/null @@ -1,59 +0,0 @@ - -//! Autogenerated weights for pallet_burner -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-05-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: ``, CPU: `` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kreivo-rococo-local"), DB CACHE: 1024 - -// Executed Command: -// ./target/release/virto-node -// benchmark -// pallet -// --chain=kreivo-rococo-local -// --steps=50 -// --repeat=20 -// --pallet=pallet_burner -// --extrinsic=* -// --execution=wasm -// --wasm-execution=compiled -// --heap-pages=4096 -// --output=./pallets/burner/src/weights.rs -// --template=templates/frame-weight-template.hbs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] -#![allow(missing_docs)] - -use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; -use core::marker::PhantomData; - -/// Weight functions needed for pallet_burner. -pub trait WeightInfo { - fn burn_asset() -> Weight; -} - -/// Weights for pallet_burner using the Substrate node and recommended hardware. -pub struct SubstrateWeight(PhantomData); -impl WeightInfo for SubstrateWeight { - fn burn_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 19_000_000 picoseconds. - Weight::from_parts(20_000_000, 0) - } -} - -// For backwards compatibility and tests -impl WeightInfo for () { - fn burn_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 19_000_000 picoseconds. - Weight::from_parts(20_000_000, 0) - } -} diff --git a/pallets/communities-manager/Cargo.toml b/pallets/communities-manager/Cargo.toml index 40c64519..b93a7d5d 100644 --- a/pallets/communities-manager/Cargo.toml +++ b/pallets/communities-manager/Cargo.toml @@ -1,94 +1,95 @@ [package] -name = "pallet-communities-manager" -version = "0.1.0" -authors = ["Virto Team"] -description = "This pallet helps with all the necesary steps to correctly setup a community." -license = "MIT-0" -homepage = 'https://github.com/virto-network/virto-node' -repository = 'https://github.com/virto-network/virto-node' -edition = "2021" + name = "pallet-communities-manager" + version = "0.1.0" + authors = ["Virto Team"] + description = "This pallet helps with all the necesary steps to correctly setup a community." + license = "MIT-0" + homepage = 'https://github.com/virto-network/virto-node' + repository = 'https://github.com/virto-network/virto-node' + edition = "2021" -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] + [package.metadata.docs.rs] + targets = ["x86_64-unknown-linux-gnu"] [dependencies] -fc-traits-tracks = { workspace = true } + fc-traits-tracks = { workspace = true } -frame-benchmarking = { workspace = true, optional = true } -frame-support = { workspace = true } -frame-system = { workspace = true } + frame-benchmarking = { workspace = true, optional = true } + frame-support = { workspace = true } + frame-system = { workspace = true } -pallet-communities = { workspace = true } -pallet-nfts = { workspace = true } -pallet-referenda = { workspace = true } + pallet-communities = { workspace = true } + pallet-nfts = { workspace = true } + pallet-referenda = { workspace = true } -log = { workspace = true } + log = { workspace = true } -parity-scale-codec = { workspace = true, features = ["derive"] } -scale-info = { workspace = true, features = ["derive"] } + parity-scale-codec = { workspace = true, features = ["derive"] } + scale-info = { workspace = true, features = ["derive"] } -sp-runtime = { workspace = true } -sp-std = { workspace = true } + sp-runtime = { workspace = true } + sp-std = { workspace = true } [dev-dependencies] -sp-core = { workspace = true } -sp-io = { workspace = true } + sp-core = { workspace = true } + sp-io = { workspace = true } -pallet-assets = { workspace = true } -pallet-balances = { workspace = true } -pallet-ranked-collective = { workspace = true } -pallet-referenda-tracks = { workspace = true } -pallet-scheduler = { workspace = true } -virto-common = { workspace = true, default-features = false, features = ["runtime"] } + pallet-assets = { workspace = true } + pallet-balances = { workspace = true } + pallet-ranked-collective = { workspace = true } + pallet-referenda-tracks = { workspace = true } + pallet-scheduler = { workspace = true } + virto-common = { workspace = true, default-features = false, features = [ + "runtime", + ] } [features] -default = ["std", "testnet"] -testnet = [] -std = [ - "fc-traits-tracks/std", - "frame-benchmarking?/std", - "frame-support/std", - "frame-system/std", - "log/std", - "pallet-assets/std", - "pallet-balances/std", - "pallet-communities/std", - "pallet-nfts/std", - "pallet-ranked-collective/std", - "pallet-referenda-tracks/std", - "pallet-referenda/std", - "pallet-scheduler/std", - "parity-scale-codec/std", - "scale-info/std", - "sp-core/std", - "sp-io/std", - "sp-runtime/std", - "sp-std/std", - "virto-common/std", -] -runtime-benchmarks = [ - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "pallet-assets/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-communities/runtime-benchmarks", - "pallet-nfts/runtime-benchmarks", - "pallet-ranked-collective/runtime-benchmarks", - "pallet-referenda-tracks/runtime-benchmarks", - "pallet-referenda/runtime-benchmarks", - "pallet-scheduler/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", -] -try-runtime = [ - "frame-support/try-runtime", - "frame-system/try-runtime", - "pallet-assets/try-runtime", - "pallet-balances/try-runtime", - "pallet-nfts/try-runtime", - "pallet-ranked-collective/try-runtime", - "pallet-referenda-tracks/try-runtime", - "pallet-referenda/try-runtime", - "pallet-scheduler/try-runtime", - "sp-runtime/try-runtime", -] + default = ["std"] + std = [ + "fc-traits-tracks/std", + "frame-benchmarking?/std", + "frame-support/std", + "frame-system/std", + "log/std", + "pallet-assets/std", + "pallet-balances/std", + "pallet-communities/std", + "pallet-nfts/std", + "pallet-ranked-collective/std", + "pallet-referenda-tracks/std", + "pallet-referenda/std", + "pallet-scheduler/std", + "parity-scale-codec/std", + "scale-info/std", + "sp-core/std", + "sp-io/std", + "sp-runtime/std", + "sp-std/std", + "virto-common/std", + ] + runtime-benchmarks = [ + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-communities/runtime-benchmarks", + "pallet-nfts/runtime-benchmarks", + "pallet-ranked-collective/runtime-benchmarks", + "pallet-referenda-tracks/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-scheduler/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + ] + try-runtime = [ + "frame-support/try-runtime", + "frame-system/try-runtime", + "pallet-assets/try-runtime", + "pallet-balances/try-runtime", + "pallet-nfts/try-runtime", + "pallet-ranked-collective/try-runtime", + "pallet-referenda-tracks/try-runtime", + "pallet-referenda/try-runtime", + "pallet-scheduler/try-runtime", + "sp-runtime/try-runtime", + ] diff --git a/pallets/communities-manager/src/benchmarking.rs b/pallets/communities-manager/src/benchmarking.rs index 02f060ee..043a2823 100644 --- a/pallets/communities-manager/src/benchmarking.rs +++ b/pallets/communities-manager/src/benchmarking.rs @@ -15,9 +15,9 @@ fn assert_has_event(generic_event: RuntimeEventFor) { fn setup_account(who: &AccountIdOf) -> Result<(), BenchmarkError> where - NativeBalanceOf: From, + NativeBalanceOf: From, { - let initial_balance: NativeBalanceOf = 1_000_000_000_000_000u128.into(); + let initial_balance: NativeBalanceOf = 1_000_000_000_000_000u64.into(); T::Balances::mint_into(who, initial_balance)?; Ok(()) } @@ -25,7 +25,7 @@ where #[benchmarks( where RuntimeEventFor: From>, - NativeBalanceOf: From, + NativeBalanceOf: From, BlockNumberFor: From, CommunityIdOf: From, ::MembershipId: From, @@ -76,7 +76,7 @@ mod benchmarks { RawOrigin::Root, q.saturated_into(), 100u32.into(), - 300_000_000_000u128.into(), + 300_000_000_000u64.into(), ); // verification code diff --git a/pallets/communities-manager/src/lib.rs b/pallets/communities-manager/src/lib.rs index 2e48d0e0..7f6e3944 100644 --- a/pallets/communities-manager/src/lib.rs +++ b/pallets/communities-manager/src/lib.rs @@ -27,7 +27,7 @@ use pallet_communities::{ types::{AccountIdOf, CommunityIdOf, DecisionMethodFor, NativeBalanceOf, PalletsOriginOf, RuntimeOriginFor}, Origin as CommunityOrigin, }; -use pallet_nfts::{CollectionConfig, ItemConfig}; +use pallet_nfts::CollectionConfig; use pallet_referenda::{TrackInfo, TracksInfo}; use parity_scale_codec::Decode; use sp_runtime::{ @@ -87,7 +87,7 @@ pub mod pallet { type CreateMemberships: ItemMutate< AccountIdOf, - ItemConfig = ItemConfig, + Self::ItemConfig, CollectionId = CommunityIdOf, ItemId = ::MembershipId, > + Trading< diff --git a/pallets/communities-manager/src/mock/collective.rs b/pallets/communities-manager/src/mock/collective.rs index 69a70347..9befe37b 100644 --- a/pallets/communities-manager/src/mock/collective.rs +++ b/pallets/communities-manager/src/mock/collective.rs @@ -20,7 +20,7 @@ impl pallet_referenda::Config for Test { type Slash = (); type Votes = pallet_ranked_collective::Votes; type Tally = pallet_ranked_collective::TallyOf; - type SubmissionDeposit = ConstU128<2>; + type SubmissionDeposit = ConstU64<2>; type MaxQueued = ConstU32<3>; type UndecidingTimeout = ConstU64<20>; type AlarmInterval = AlarmInterval; @@ -32,21 +32,25 @@ pub type CollectiveInstance = pallet_ranked_collective::Instance1; impl pallet_ranked_collective::Config for Test { type WeightInfo = pallet_ranked_collective::weights::SubstrateWeight; type RuntimeEvent = RuntimeEvent; - + type AddOrigin = EnsureNever<()>; + type RemoveOrigin = Self::DemoteOrigin; + type ExchangeOrigin = EnsureNever<()>; + type MemberSwappedHandler = (); type PromoteOrigin = EnsureRootWithSuccess>; type DemoteOrigin = EnsureRootWithSuccess>; type Polls = CollectiveReferenda; type MinRankOfClass = (); type VoteWeight = pallet_ranked_collective::Linear; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkSetup = (); } pub struct TracksInfo; impl pallet_referenda::TracksInfo> for TracksInfo { type Id = TrackId; type RuntimeOrigin = ::PalletsOrigin; - type TracksIter = pallet_referenda::StaticTracksIter>; - fn tracks() -> Self::TracksIter { + fn tracks() -> impl Iterator>>> { const DATA: [pallet_referenda::Track>; 1] = [Track { id: 0, info: pallet_referenda::TrackInfo { diff --git a/pallets/communities-manager/src/mock/mod.rs b/pallets/communities-manager/src/mock/mod.rs index c9354418..9d86e523 100644 --- a/pallets/communities-manager/src/mock/mod.rs +++ b/pallets/communities-manager/src/mock/mod.rs @@ -1,19 +1,16 @@ use super::*; use frame_support::{ - parameter_types, - traits::{ - AsEnsureOriginWithArg, ConstU128, ConstU16, ConstU32, ConstU64, EitherOf, EqualPrivilegeOnly, Everything, - }, + derive_impl, parameter_types, + traits::{AsEnsureOriginWithArg, ConstU16, ConstU32, ConstU64, EitherOf, EqualPrivilegeOnly, Everything}, PalletId, }; use frame_system::{EnsureNever, EnsureRoot, EnsureRootWithSuccess, EnsureSigned}; use pallet_communities::{origin::EnsureCommunity, Tally, VoteWeight}; use parity_scale_codec::Compact; -use sp_core::H256; use sp_io::TestExternalities; use sp_runtime::{ - traits::{BlakeTwo256, IdentifyAccount, IdentityLookup, Verify}, + traits::{IdentifyAccount, IdentityLookup, Verify}, MultiSignature, }; pub use virto_common::{CommunityId, MembershipId}; @@ -34,7 +31,7 @@ type WeightInfo = (); pub type AccountPublic = ::Signer; pub type AccountId = ::AccountId; -pub type Balance = u128; +pub type Balance = u64; pub type AssetId = u32; // Configure a mock runtime to test the pallet. @@ -58,72 +55,34 @@ frame_support::construct_runtime!( parameter_types! { pub const RootAccount: AccountId = AccountId::new([0xff; 32]); } + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Test { type BaseCallFilter = Everything; - type BlockWeights = (); - type BlockLength = (); - type DbWeight = (); - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Nonce = u64; - type Hash = H256; - type Hashing = BlakeTwo256; + type Block = Block; type AccountId = AccountId; type Lookup = IdentityLookup; - type Block = Block; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = ConstU64<250>; - type Version = (); - type PalletInfo = PalletInfo; type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = ConstU16<42>; - type OnSetCode = (); - type MaxConsumers = ConstU32<16>; } +#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)] impl pallet_balances::Config for Test { - type Balance = Balance; - type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ConstU128<1>; + type ExistentialDeposit = ConstU64<1>; type AccountStore = System; - type WeightInfo = WeightInfo; - type MaxLocks = ConstU32<10>; - type MaxReserves = (); - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; + type FreezeIdentifier = RuntimeFreezeReason; type RuntimeFreezeReason = RuntimeFreezeReason; - type FreezeIdentifier = RuntimeHoldReason; - type MaxHolds = ConstU32<10>; - type MaxFreezes = ConstU32<10>; } +#[derive_impl(pallet_assets::config_preludes::TestDefaultConfig as pallet_assets::DefaultConfig)] impl pallet_assets::Config for Test { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; - type AssetId = AssetId; type AssetIdParameter = Compact; type Currency = Balances; type CreateOrigin = AsEnsureOriginWithArg>; type ForceOrigin = EnsureRoot; - type AssetDeposit = ConstU128<100>; - type AssetAccountDeposit = ConstU128<1>; - type MetadataDepositBase = ConstU128<10>; - type MetadataDepositPerByte = ConstU128<1>; - type ApprovalDeposit = ConstU128<1>; - type StringLimit = ConstU32<50>; type Freezer = (); - type Extra = (); - type CallbackHandle = (); - type WeightInfo = WeightInfo; type RemoveItemsLimit = ConstU32<1000>; type RuntimeHoldReason = RuntimeHoldReason; - type MaxHolds = ConstU32<10>; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = (); } impl pallet_scheduler::Config for Test { @@ -156,7 +115,7 @@ impl pallet_referenda::Config for Test { type Slash = (); type Votes = VoteWeight; type Tally = Tally; - type SubmissionDeposit = ConstU128<2>; + type SubmissionDeposit = ConstU64<2>; type MaxQueued = ConstU32<3>; type UndecidingTimeout = ConstU64<20>; type AlarmInterval = AlarmInterval; @@ -220,6 +179,7 @@ impl pallet_communities::Config for Test { type MembershipId = MembershipId; type Assets = Assets; type Balances = Balances; + type ItemConfig = pallet_nfts::ItemConfig; type MemberMgmt = Memberships; type Polls = Referenda; type CreateOrigin = EnsureNever; @@ -229,6 +189,7 @@ impl pallet_communities::Config for Test { type RuntimeOrigin = RuntimeOrigin; type RuntimeEvent = RuntimeEvent; type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; type WeightInfo = WeightInfo; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = CommunityBenchmarkHelper; diff --git a/pallets/communities/Cargo.toml b/pallets/communities/Cargo.toml index 7bb0ac8c..5faef767 100644 --- a/pallets/communities/Cargo.toml +++ b/pallets/communities/Cargo.toml @@ -1,91 +1,92 @@ [package] -name = "pallet-communities" -version = "0.1.0" -authors = ["Virto Team"] -description = "This pallet enables the creation of communities that are soverign entities with diverse forms of governance. In simpler terms, it can be considered a DAO Factory." -license = "MIT-0" -homepage = 'https://github.com/virto-network/virto-node' -repository = 'https://github.com/virto-network/virto-node' -edition = "2021" + name = "pallet-communities" + version = "0.1.0" + authors = ["Virto Team"] + description = "This pallet enables the creation of communities that are soverign entities with diverse forms of governance. In simpler terms, it can be considered a DAO Factory." + license = "MIT-0" + homepage = 'https://github.com/virto-network/virto-node' + repository = 'https://github.com/virto-network/virto-node' + edition = "2021" -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] + [package.metadata.docs.rs] + targets = ["x86_64-unknown-linux-gnu"] [dependencies] -frame-benchmarking = { workspace = true, optional = true } -frame-support = { workspace = true } -frame-system = { workspace = true } -fc-traits-memberships = { workspace = true } + frame-benchmarking = { workspace = true, optional = true } + frame-support = { workspace = true } + frame-system = { workspace = true } + fc-traits-memberships = { workspace = true } -log = { workspace = true } + log = { workspace = true } -parity-scale-codec = { workspace = true, features = ["derive"] } -scale-info = { workspace = true, features = ["derive"] } + parity-scale-codec = { workspace = true, features = ["derive"] } + scale-info = { workspace = true, features = ["derive"] } -sp-runtime = { workspace = true } -sp-std = { workspace = true } -xcm = { workspace = true, optional = true } + sp-runtime = { workspace = true } + sp-std = { workspace = true } + xcm = { workspace = true, optional = true } [dev-dependencies] -sp-core = { workspace = true } -sp-io = { workspace = true } + sp-core = { workspace = true } + sp-io = { workspace = true } -pallet-assets = { workspace = true } -pallet-balances = { workspace = true } -pallet-nfts = { workspace = true } -pallet-preimage = { workspace = true } -pallet-referenda = { workspace = true } -pallet-referenda-tracks = { workspace = true } -pallet-scheduler = { workspace = true } -virto-common = { workspace = true, default-features = false, features = ["runtime"] } + pallet-assets = { workspace = true } + pallet-balances = { workspace = true } + pallet-nfts = { workspace = true } + pallet-preimage = { workspace = true } + pallet-referenda = { workspace = true } + pallet-referenda-tracks = { workspace = true } + pallet-scheduler = { workspace = true } + virto-common = { workspace = true, default-features = false, features = [ + "runtime", + ] } [features] -default = ["std", "xcm", "testnet"] -testnet = [] -std = [ - "frame-benchmarking?/std", - "frame-support/std", - "frame-system/std", - "fc-traits-memberships/std", - "log/std", - "pallet-assets/std", - "pallet-balances/std", - "pallet-nfts/std", - "pallet-preimage/std", - "pallet-referenda/std", - "pallet-referenda-tracks/std", - "pallet-scheduler/std", - "parity-scale-codec/std", - "scale-info/std", - "sp-core/std", - "sp-io/std", - "sp-runtime/std", - "sp-std/std", - "virto-common/std", - "xcm?/std", -] -runtime-benchmarks = [ - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "pallet-assets/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-nfts/runtime-benchmarks", - "pallet-preimage/runtime-benchmarks", - "pallet-referenda/runtime-benchmarks", - "pallet-referenda-tracks/runtime-benchmarks", - "pallet-scheduler/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", -] -try-runtime = [ - "frame-support/try-runtime", - "frame-system/try-runtime", - "pallet-assets/try-runtime", - "pallet-balances/try-runtime", - "pallet-nfts/try-runtime", - "pallet-preimage/try-runtime", - "pallet-referenda/try-runtime", - "pallet-referenda-tracks/try-runtime", - "pallet-scheduler/try-runtime", - "sp-runtime/try-runtime", -] + default = ["std", "xcm"] + std = [ + "frame-benchmarking?/std", + "frame-support/std", + "frame-system/std", + "fc-traits-memberships/std", + "log/std", + "pallet-assets/std", + "pallet-balances/std", + "pallet-nfts/std", + "pallet-preimage/std", + "pallet-referenda/std", + "pallet-referenda-tracks/std", + "pallet-scheduler/std", + "parity-scale-codec/std", + "scale-info/std", + "sp-core/std", + "sp-io/std", + "sp-runtime/std", + "sp-std/std", + "virto-common/std", + "xcm?/std", + ] + runtime-benchmarks = [ + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-nfts/runtime-benchmarks", + "pallet-preimage/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-referenda-tracks/runtime-benchmarks", + "pallet-scheduler/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + ] + try-runtime = [ + "frame-support/try-runtime", + "frame-system/try-runtime", + "pallet-assets/try-runtime", + "pallet-balances/try-runtime", + "pallet-nfts/try-runtime", + "pallet-preimage/try-runtime", + "pallet-referenda/try-runtime", + "pallet-referenda-tracks/try-runtime", + "pallet-scheduler/try-runtime", + "sp-runtime/try-runtime", + ] diff --git a/pallets/communities/src/benchmarking.rs b/pallets/communities/src/benchmarking.rs index 4eddd486..d457bca3 100644 --- a/pallets/communities/src/benchmarking.rs +++ b/pallets/communities/src/benchmarking.rs @@ -7,7 +7,7 @@ use self::{ AccountIdOf, AssetIdOf, CommunityIdOf, DecisionMethodFor, MembershipIdOf, NativeBalanceOf, PalletsOriginOf, PollIndexOf, RuntimeCallFor, Vote, }, - CommunityDecisionMethod, DecisionMethod, Event, HoldReason, Pallet as Communities, + CommunityDecisionMethod, DecisionMethod, Event, FreezeReason, Pallet as Communities, }; use fc_traits_memberships::{Inspect, Rank}; use frame_benchmarking::v2::*; @@ -138,7 +138,7 @@ where T: frame_system::Config + crate::Config, OriginFor: From> + From>, RuntimeEventFor: From>, - AssetBalanceOf: From, + AssetBalanceOf: From, AssetIdOf: From, MembershipIdOf: From, BlockNumberFor: From @@ -196,7 +196,7 @@ mod benchmarks { _( admin_origin, id, - DecisionMethod::CommunityAsset(T::BenchmarkHelper::community_asset_id(), 10u128.into()), + DecisionMethod::CommunityAsset(T::BenchmarkHelper::community_asset_id(), 10u64.into()), ); // verification code @@ -315,7 +315,7 @@ mod benchmarks { // setup code let (id, origin) = create_community::( RawOrigin::Root.into(), - Some(DecisionMethodFor::::CommunityAsset(1u32.into(), 1u128.into())), + Some(DecisionMethodFor::::CommunityAsset(1u32.into(), 1u64.into())), )?; let members = setup_members::(origin.clone(), id)?; @@ -324,7 +324,7 @@ mod benchmarks { .expect("desired size of community to be equal or greather than 1") .clone(); - T::Assets::mint_into(1u32.into(), &who, 4u128.into())?; + T::Assets::mint_into(1u32.into(), &who, 4u64.into())?; prepare_track_and_prepare_poll::(origin.into_caller(), who.clone())?; @@ -332,7 +332,7 @@ mod benchmarks { RawOrigin::Signed(who.clone()).into(), membership_id, 0u32, - Vote::AssetBalance(true, 1u32.into(), 1u128.into()), + Vote::AssetBalance(true, 1u32.into(), 1u64.into()), )?; #[extrinsic_call] @@ -340,7 +340,7 @@ mod benchmarks { RawOrigin::Signed(who.clone()), membership_id, 0u32, - Vote::AssetBalance(true, 1u32.into(), 2u128.into()), + Vote::AssetBalance(true, 1u32.into(), 2u64.into()), ); // verification code @@ -412,7 +412,7 @@ mod benchmarks { )?; assert_eq!( - T::Balances::balance_frozen(&HoldReason::VoteCasted.into(), &who), + T::Balances::balance_frozen(&FreezeReason::VoteCasted.into(), &who), 1u32.into() ); @@ -423,7 +423,7 @@ mod benchmarks { // verification code assert_eq!( - T::Balances::balance_frozen(&HoldReason::VoteCasted.into(), &who), + T::Balances::balance_frozen(&FreezeReason::VoteCasted.into(), &who), 0u32.into() ); diff --git a/pallets/communities/src/functions.rs b/pallets/communities/src/functions.rs index 2da90ca7..1cfe10cc 100644 --- a/pallets/communities/src/functions.rs +++ b/pallets/communities/src/functions.rs @@ -145,7 +145,6 @@ impl Pallet { update_type: LockUpdateType, ) -> DispatchResult { use sp_runtime::traits::Zero; - let reason = HoldReason::VoteCasted.into(); match vote.clone() { Vote::AssetBalance(..) | Vote::NativeBalance(..) => match update_type { @@ -158,18 +157,29 @@ impl Pallet { match vote { // Add a new lock for Vote::AssetBalance Vote::AssetBalance(_, asset_id, amount) if update_type == LockUpdateType::Add => { - let held_amount = T::Assets::balance_on_hold(asset_id.clone(), &reason, who); + let held_amount = T::Assets::balance_on_hold(asset_id.clone(), &HoldReason::VoteCasted.into(), who); if amount > &held_amount { if held_amount.gt(&Zero::zero()) { - T::Assets::release(asset_id.clone(), &reason, who, held_amount, Precision::Exact)?; + T::Assets::release( + asset_id.clone(), + &HoldReason::VoteCasted.into(), + who, + held_amount, + Precision::Exact, + )?; } - T::Assets::hold(asset_id.clone(), &reason, who, *amount)?; + T::Assets::hold(asset_id.clone(), &HoldReason::VoteCasted.into(), who, *amount)?; } } // Add a new lock for Vote::NativeBalance Vote::NativeBalance(_, amount) if update_type == LockUpdateType::Add => { - let amount = T::Balances::balance_frozen(&reason, who).max(*amount); - T::Balances::set_frozen(&reason, who, amount, frame_support::traits::tokens::Fortitude::Polite)?; + let amount = T::Balances::balance_frozen(&FreezeReason::VoteCasted.into(), who).max(*amount); + T::Balances::set_frozen( + &FreezeReason::VoteCasted.into(), + who, + amount, + frame_support::traits::tokens::Fortitude::Polite, + )?; } // Add an existing lock for Vote::AssetBalance Vote::AssetBalance(_, asset_id, _) if update_type == LockUpdateType::Remove => { @@ -184,11 +194,17 @@ impl Pallet { } } - let held_amount = T::Assets::balance_on_hold(asset_id.clone(), &reason, who); + let held_amount = T::Assets::balance_on_hold(asset_id.clone(), &HoldReason::VoteCasted.into(), who); if held_amount.gt(&Zero::zero()) { - T::Assets::release(asset_id.clone(), &reason, who, held_amount, Precision::Exact)?; + T::Assets::release( + asset_id.clone(), + &HoldReason::VoteCasted.into(), + who, + held_amount, + Precision::Exact, + )?; } - T::Assets::hold(asset_id.clone(), &reason, who, amount_to_hold)?; + T::Assets::hold(asset_id.clone(), &HoldReason::VoteCasted.into(), who, amount_to_hold)?; } // Remove an existing lock for Vote::NativeBalance Vote::NativeBalance(_, _) if update_type == LockUpdateType::Remove => { @@ -201,7 +217,7 @@ impl Pallet { } T::Balances::set_frozen( - &reason, + &FreezeReason::VoteCasted.into(), who, amount_to_freeze, frame_support::traits::tokens::Fortitude::Polite, diff --git a/pallets/communities/src/lib.rs b/pallets/communities/src/lib.rs index 9e924b19..fdb73377 100644 --- a/pallets/communities/src/lib.rs +++ b/pallets/communities/src/lib.rs @@ -166,10 +166,21 @@ pub mod pallet { /// community type MembershipId: Parameter + MaxEncodedLen + Copy; + type ItemConfig: Default; + /// Means to manage memberships of a community type MemberMgmt: membership::Inspect, Membership = MembershipIdOf> - + membership::Manager, Membership = MembershipIdOf> - + membership::Rank, Membership = MembershipIdOf>; + + membership::Manager< + Self::AccountId, + Self::ItemConfig, + Group = CommunityIdOf, + Membership = MembershipIdOf, + > + membership::Rank< + Self::AccountId, + Self::ItemConfig, + Group = CommunityIdOf, + Membership = MembershipIdOf, + >; type CreateOrigin: EnsureOrigin< OriginFor, @@ -200,8 +211,8 @@ pub mod pallet { /// Type represents interactions between fungible tokens (native token) type Balances: fungible::Inspect + fungible::Mutate - + fungible::freeze::Inspect - + fungible::freeze::Mutate; + + fungible::freeze::Inspect + + fungible::freeze::Mutate; /// The overarching call type. type RuntimeCall: Parameter @@ -222,6 +233,9 @@ pub mod pallet { /// The overarching hold reason. type RuntimeHoldReason: From; + /// The overarching freeze reason. + type RuntimeFreezeReason: From; + /// Because this pallet emits events, it depends on the runtime's /// definition of an event. type RuntimeEvent: From> + IsType<::RuntimeEvent>; @@ -248,6 +262,13 @@ pub mod pallet { VoteCasted, } + /// A reason for the pallet communities placing a freeze on funds. + #[pallet::composite_enum] + pub enum FreezeReason { + // A vote has been casted on a poll + VoteCasted, + } + /// Stores the basic information of the community. If a value exists for a /// specified [`ComumunityId`][`Config::CommunityId`], this means a /// community exists. @@ -566,7 +587,6 @@ pub mod pallet { // .saturating_add(di.weight); // (weight, di.class) // })] - // // #[cfg(any(test, feature = "testnet"))] // pub fn dispatch_as_origin(origin: OriginFor, call: Box>) // -> DispatchResultWithPostInfo { let community_id = // T::MemberMgmtOrigin::ensure_origin(origin)?; let origin = diff --git a/pallets/communities/src/mock.rs b/pallets/communities/src/mock.rs index 7bd8b1ca..ea8018d5 100644 --- a/pallets/communities/src/mock.rs +++ b/pallets/communities/src/mock.rs @@ -1,9 +1,10 @@ use frame_support::{ + derive_impl, dispatch::DispatchResult, parameter_types, traits::{ - fungible::HoldConsideration, tokens::nonfungible_v2::ItemOf, AsEnsureOriginWithArg, ConstU128, ConstU16, - ConstU32, ConstU64, EitherOf, EnsureOriginWithArg, EqualPrivilegeOnly, Footprint, + fungible::HoldConsideration, tokens::nonfungible_v2::ItemOf, AsEnsureOriginWithArg, ConstU32, ConstU64, + EitherOf, EnsureOriginWithArg, EqualPrivilegeOnly, Footprint, }, weights::{ constants::{WEIGHT_REF_TIME_PER_NANOS, WEIGHT_REF_TIME_PER_SECOND}, @@ -14,10 +15,9 @@ use frame_support::{ use frame_system::{EnsureRoot, EnsureRootWithSuccess, EnsureSigned}; use pallet_referenda::{TrackIdOf, TrackInfoOf, TracksInfo}; use parity_scale_codec::Compact; -use sp_core::H256; use sp_io::TestExternalities; use sp_runtime::{ - traits::{BlakeTwo256, Convert, IdentifyAccount, IdentityLookup, Verify}, + traits::{Convert, IdentifyAccount, IdentityLookup, Verify}, BuildStorage, MultiSignature, Perbill, }; pub use virto_common::{CommunityId, MembershipId}; @@ -26,7 +26,7 @@ use crate::{ self as pallet_communities, origin::{EnsureCommunity, EnsureSignedPays}, types::{Tally, VoteWeight}, - DecisionMethod, + Config, DecisionMethod, }; // Weights constants @@ -35,10 +35,12 @@ use crate::{ pub const MAX_BLOCK_REF_TIME: u64 = WEIGHT_REF_TIME_PER_SECOND.saturating_div(2); // https://github.com/paritytech/cumulus/blob/98e68bd54257b4039a5d5b734816f4a1b7c83a9d/parachain-template/runtime/src/lib.rs#L221 pub const MAX_BLOCK_POV_SIZE: u64 = 5 * 1024 * 1024; // https://github.com/paritytech/polkadot/blob/ba1f65493d91d4ab1787af2fd6fe880f1da90586/primitives/src/v4/mod.rs#L384 pub const MAX_BLOCK_WEIGHT: Weight = Weight::from_parts(MAX_BLOCK_REF_TIME, MAX_BLOCK_POV_SIZE); + // max extrinsics: 75% of block pub const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); // https://github.com/paritytech/cumulus/blob/d20c4283fe85df0c1ef8cb7c9eb7c09abbcbfa31/parachain-template/runtime/src/lib.rs#L218 - // max extrinsic: max total extrinsics less average on_initialize ratio and less - // base extrinsic weight + +// max extrinsic: max total extrinsics less average on_initialize ratio and less +// base extrinsic weight pub const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); // https://github.com/paritytech/cumulus/blob/d20c4283fe85df0c1ef8cb7c9eb7c09abbcbfa31/parachain-template/runtime/src/lib.rs#L214 pub const BASE_EXTRINSIC: Weight = Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); // https://github.com/paritytech/cumulus/blob/d20c4283fe85df0c1ef8cb7c9eb7c09abbcbfa31/parachain-template/runtime/src/weights/extrinsic_weights.rs#L26 @@ -47,7 +49,7 @@ type WeightInfo = (); pub type AccountPublic = ::Signer; pub type AccountId = ::AccountId; -pub type Balance = u128; +pub type Balance = u64; pub type AssetId = u32; // Configure a mock runtime to test the pallet. @@ -66,74 +68,34 @@ frame_support::construct_runtime!( } ); +#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Test { type BaseCallFilter = frame_support::traits::Everything; - type BlockWeights = (); - type BlockLength = (); - type DbWeight = (); - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Nonce = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; type Block = Block; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = ConstU64<250>; - type Version = (); - type PalletInfo = PalletInfo; + type AccountId = AccountId; + type Lookup = IdentityLookup; type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = ConstU16<42>; - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; } // Monetary operations +#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)] +impl pallet_balances::Config for Test { + type ExistentialDeposit = ConstU64<1>; + type AccountStore = System; + type FreezeIdentifier = RuntimeFreezeReason; + type RuntimeFreezeReason = RuntimeFreezeReason; +} +#[derive_impl(pallet_assets::config_preludes::TestDefaultConfig as pallet_assets::DefaultConfig)] impl pallet_assets::Config for Test { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; - type AssetId = AssetId; type AssetIdParameter = Compact; type Currency = Balances; type CreateOrigin = AsEnsureOriginWithArg>; type ForceOrigin = EnsureRoot; - type AssetDeposit = ConstU128<100>; - type AssetAccountDeposit = ConstU128<1>; - type MetadataDepositBase = ConstU128<10>; - type MetadataDepositPerByte = ConstU128<1>; - type ApprovalDeposit = ConstU128<1>; - type StringLimit = ConstU32<50>; type Freezer = (); - type Extra = (); - type CallbackHandle = (); - type WeightInfo = WeightInfo; - type RemoveItemsLimit = ConstU32<1000>; - type RuntimeHoldReason = RuntimeHoldReason; - type MaxHolds = ConstU32<10>; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = (); -} - -impl pallet_balances::Config for Test { - type Balance = Balance; - type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ConstU128<1>; - type AccountStore = System; - type WeightInfo = WeightInfo; - type MaxLocks = ConstU32<10>; - type MaxReserves = (); - type ReserveIdentifier = [u8; 8]; + type RemoveItemsLimit = ConstU32<5>; type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = RuntimeFreezeReason; - type FreezeIdentifier = RuntimeHoldReason; - type MaxHolds = ConstU32<10>; - type MaxFreezes = ConstU32<10>; } // Memberships @@ -189,9 +151,9 @@ parameter_types! { pub const MaxScheduledPerBlock: u32 = 512; } pub struct ConvertDeposit; -impl Convert for ConvertDeposit { - fn convert(a: Footprint) -> u128 { - (a.count * 2 + a.size).into() +impl Convert for ConvertDeposit { + fn convert(a: Footprint) -> u64 { + a.count * 2 + a.size } } @@ -280,7 +242,7 @@ impl pallet_referenda::Config for Test { type Slash = (); type Votes = VoteWeight; type Tally = Tally; - type SubmissionDeposit = ConstU128<2>; + type SubmissionDeposit = ConstU64<2>; type MaxQueued = ConstU32<3>; type UndecidingTimeout = ConstU64<20>; type AlarmInterval = AlarmInterval; @@ -414,15 +376,16 @@ parameter_types! { pub const NoPay: Option<(Balance, AccountId, AccountId)> = None; } type RootCreatesCommunitiesForFree = EnsureRootWithSuccess; -type AnyoneElsePays = EnsureSignedPays, RootAccount>; +type AnyoneElsePays = EnsureSignedPays, RootAccount>; -impl pallet_communities::Config for Test { +impl Config for Test { type PalletId = CommunitiesPalletId; type CommunityId = CommunityId; type MembershipId = MembershipId; type Assets = Assets; type Balances = Balances; + type ItemConfig = pallet_nfts::ItemConfig; type MemberMgmt = Nfts; type Polls = Referenda; @@ -434,6 +397,7 @@ impl pallet_communities::Config for Test { type RuntimeOrigin = RuntimeOrigin; type RuntimeEvent = RuntimeEvent; type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; type WeightInfo = WeightInfo; #[cfg(feature = "runtime-benchmarks")] diff --git a/pallets/communities/src/origin.rs b/pallets/communities/src/origin.rs index 57ea01fa..ef69997b 100644 --- a/pallets/communities/src/origin.rs +++ b/pallets/communities/src/origin.rs @@ -3,10 +3,10 @@ use crate::{ AccountIdOf, CommunityIdFor, Config, Info, Pallet, }; use core::marker::PhantomData; -use fc_traits_memberships::Inspect; +use fc_traits_memberships::{GenericRank, Inspect}; use frame_support::{ pallet_prelude::*, - traits::{membership::GenericRank, EnsureOriginWithArg, MapSuccess, OriginTrait}, + traits::{EnsureOriginWithArg, MapSuccess, OriginTrait}, }; use frame_system::EnsureSigned; #[cfg(feature = "xcm")] @@ -127,23 +127,23 @@ pub enum Subset { } #[cfg(feature = "xcm")] -impl TryConvert, xcm::v3::MultiLocation> for RawOrigin +impl TryConvert, xcm::latest::Location> for RawOrigin where T: Config, RuntimeOriginFor: Into, RuntimeOriginFor>>, - xcm::v3::Junction: TryFrom>, + xcm::latest::Junction: TryFrom>, { - fn try_convert(o: RuntimeOriginFor) -> Result> { + fn try_convert(o: RuntimeOriginFor) -> Result> { let Ok(community @ RawOrigin { .. }) = o.clone().into() else { return Err(o); }; - let j = xcm::v3::Junction::try_from(community).map_err(|_| o)?; + let j = xcm::latest::Junction::try_from(community).map_err(|_| o)?; Ok(j.into()) } } #[cfg(feature = "xcm")] -impl TryFrom> for xcm::v3::Junction +impl TryFrom> for xcm::latest::Junction where T: Config, u32: From>, @@ -151,7 +151,7 @@ where type Error = (); fn try_from(o: RawOrigin) -> Result { - use xcm::v3::{BodyId, BodyPart, Junction::Plurality}; + use xcm::latest::{BodyId, BodyPart, Junction::Plurality}; let part = match o.subset { None => BodyPart::Voice, Some(Subset::Member(_)) => BodyPart::Members { count: 1 }, @@ -170,15 +170,15 @@ where } #[cfg(feature = "xcm")] -impl TryFrom for RawOrigin +impl TryFrom for RawOrigin where T: Config, T::CommunityId: From + From, { type Error = (); - fn try_from(value: xcm::v3::Junction) -> Result { - use xcm::v3::{BodyId::Index, BodyPart::*, Junction::Plurality}; + fn try_from(value: xcm::latest::Junction) -> Result { + use xcm::latest::{BodyId::Index, BodyPart::*, Junction::Plurality}; let Plurality { id: Index(id), part } = value else { return Err(()); }; diff --git a/pallets/communities/src/tests/governance.rs b/pallets/communities/src/tests/governance.rs index c9f09c19..c31b7654 100644 --- a/pallets/communities/src/tests/governance.rs +++ b/pallets/communities/src/tests/governance.rs @@ -760,7 +760,6 @@ mod vote { mod native_balance { use super::*; - use frame_support::traits::fungible::MutateFreeze; #[test] fn fails_if_not_enough_balance() { @@ -777,25 +776,6 @@ mod vote { }); } - #[test] - fn locks_can_overlap() { - new_test_ext().execute_with(|| { - // Suppose CHARLIE has already casted a vote on other poll (let's call it 4) - assert_ok!(Balances::set_freeze( - &pallet_preimage::HoldReason::Preimage.into(), - &CHARLIE, - 12 - )); - - assert_ok!(Communities::vote( - RuntimeOrigin::signed(CHARLIE), - membership(COMMUNITY_C, 3), - 2, - Vote::NativeBalance(true, 11) - )); - }); - } - #[test] fn rejects_on_most_nays() { new_test_ext().execute_with(|| { diff --git a/pallets/communities/src/types.rs b/pallets/communities/src/types.rs index da43ba66..c44df27b 100644 --- a/pallets/communities/src/types.rs +++ b/pallets/communities/src/types.rs @@ -66,7 +66,6 @@ pub enum DecisionMethod { // Governance pub type VoteWeight = u32; -/// #[derive(Clone, Debug, Decode, Encode, PartialEq, MaxEncodedLen, TypeInfo)] #[scale_info(skip_type_params(AssetId, AssetBalance, NativeBalance))] pub enum Vote { @@ -107,7 +106,6 @@ where } } -/// #[derive(Clone, Debug, Decode, Encode, Eq, MaxEncodedLen, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] #[codec(mel_bound(T: Config))] diff --git a/pallets/payments/Cargo.toml b/pallets/payments/Cargo.toml index bda999e4..adc3fd6b 100644 --- a/pallets/payments/Cargo.toml +++ b/pallets/payments/Cargo.toml @@ -1,76 +1,76 @@ [package] -name = "pallet-payments" -version = "0.1.0" -authors = ['Virto Team '] -license = "GPL-3.0-only" -homepage = 'https://github.com/virto-network/virto-node' -repository = 'https://github.com/virto-network/virto-node' -edition = "2021" + name = "pallet-payments" + version = "0.1.0" + authors = ['Virto Team '] + license = "GPL-3.0-only" + homepage = 'https://github.com/virto-network/virto-node' + repository = 'https://github.com/virto-network/virto-node' + edition = "2021" -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] + [package.metadata.docs.rs] + targets = ["x86_64-unknown-linux-gnu"] [dependencies] -parity-scale-codec = { workspace = true, features = [ "derive" ] } -scale-info = { workspace = true } -sp-runtime = { workspace = true } -sp-std = { workspace = true } -sp-core = { workspace = true } -sp-io = { workspace = true } -frame-support = { workspace = true } -frame-system = { workspace = true } -frame-benchmarking = { workspace = true, optional = true } -log = { workspace = true } + parity-scale-codec = { workspace = true, features = ["derive"] } + scale-info = { workspace = true } + sp-runtime = { workspace = true } + sp-std = { workspace = true } + sp-core = { workspace = true } + sp-io = { workspace = true } + frame-support = { workspace = true } + frame-system = { workspace = true } + frame-benchmarking = { workspace = true, optional = true } + log = { workspace = true } [dev-dependencies] -serde = { workspace = true } -pallet-balances = { workspace = true } -pallet-sudo = { workspace = true } -pallet-assets = { workspace = true } -sp-keystore = { workspace = true } -pallet-preimage = { workspace = true } -pallet-scheduler= { workspace = true } + serde = { workspace = true } + pallet-balances = { workspace = true } + pallet-sudo = { workspace = true } + pallet-assets = { workspace = true } + sp-keystore = { workspace = true } + pallet-preimage = { workspace = true } + pallet-scheduler = { workspace = true } [features] -default = ["std"] -runtime-benchmarks = [ - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "pallet-assets/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-sudo/runtime-benchmarks", - "pallet-preimage/runtime-benchmarks", - "pallet-scheduler/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", -] -std = [ - "frame-benchmarking/std", - "frame-support/std", - "frame-system/std", - "log/std", - "pallet-assets/std", - "pallet-balances/std", - "pallet-sudo/std", - "pallet-preimage/std", - "pallet-scheduler/std", - "parity-scale-codec/std", - "scale-info/std", - "serde/std", - "sp-core/std", - "sp-io/std", - "sp-keystore/std", - "sp-runtime/std", - "sp-std/std", -] -try-runtime = [ - "frame-support/try-runtime", - "frame-system/try-runtime", - "pallet-assets/try-runtime", - "pallet-balances/try-runtime", - "pallet-preimage/try-runtime", - "pallet-scheduler/try-runtime", - "pallet-sudo/try-runtime", - "sp-runtime/try-runtime", -] + default = ["std"] + runtime-benchmarks = [ + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-sudo/runtime-benchmarks", + "pallet-preimage/runtime-benchmarks", + "pallet-scheduler/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + ] + std = [ + "frame-benchmarking/std", + "frame-support/std", + "frame-system/std", + "log/std", + "pallet-assets/std", + "pallet-balances/std", + "pallet-sudo/std", + "pallet-preimage/std", + "pallet-scheduler/std", + "parity-scale-codec/std", + "scale-info/std", + "serde/std", + "sp-core/std", + "sp-io/std", + "sp-keystore/std", + "sp-runtime/std", + "sp-std/std", + ] + try-runtime = [ + "frame-support/try-runtime", + "frame-system/try-runtime", + "pallet-assets/try-runtime", + "pallet-balances/try-runtime", + "pallet-preimage/try-runtime", + "pallet-scheduler/try-runtime", + "pallet-sudo/try-runtime", + "sp-runtime/try-runtime", + ] diff --git a/pallets/payments/src/mock.rs b/pallets/payments/src/mock.rs index 073e30f8..ce38e6df 100644 --- a/pallets/payments/src/mock.rs +++ b/pallets/payments/src/mock.rs @@ -1,7 +1,6 @@ -pub use crate as pallet_payments; -pub use crate::types::*; +pub use crate::{self as pallet_payments, types::*, Config}; use frame_support::{ - parameter_types, + derive_impl, parameter_types, traits::{AsEnsureOriginWithArg, ConstU32, ConstU64, EqualPrivilegeOnly, OnFinalize, OnInitialize}, weights::Weight, PalletId, @@ -10,12 +9,8 @@ use frame_support::{ use frame_system::{EnsureRoot, EnsureSigned}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; -use sp_core::H256; use sp_keystore::{testing::MemoryKeystore, KeystoreExt}; -use sp_runtime::{ - traits::{BlakeTwo256, IdentityLookup}, - BoundedVec, BuildStorage, Percent, -}; +use sp_runtime::{BoundedVec, BuildStorage, Percent}; type Block = frame_system::mocking::MockBlock; type AccountId = u64; @@ -67,91 +62,42 @@ parameter_types! { pub const BlockHashCount: u64 = 250; pub const SS58Prefix: u8 = 42; pub MaxWeight: Weight = Weight::from_parts(2_000_000_000_000, u64::MAX); - } pub type Balance = u64; +#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Test { type BaseCallFilter = frame_support::traits::Everything; - type BlockWeights = (); - type BlockLength = (); - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Nonce = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; type Block = Block; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = ConstU64<250>; - type DbWeight = (); - type Version = (); - type PalletInfo = PalletInfo; type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = (); - type OnSetCode = (); - type MaxConsumers = ConstU32<16>; } +#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)] impl pallet_balances::Config for Test { - type Balance = Balance; - type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ConstU64<1>; type AccountStore = System; - type WeightInfo = (); - type MaxLocks = (); - type MaxReserves = ConstU32<50>; - type ReserveIdentifier = [u8; 8]; - type FreezeIdentifier = (); - type MaxFreezes = (); - type RuntimeHoldReason = (); - type MaxHolds = (); - type RuntimeFreezeReason = RuntimeFreezeReason; } +#[derive_impl(pallet_assets::config_preludes::TestDefaultConfig as pallet_assets::DefaultConfig)] impl pallet_assets::Config for Test { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type AssetId = u32; - type AssetIdParameter = u32; type Currency = Balances; type CreateOrigin = AsEnsureOriginWithArg>; type ForceOrigin = frame_system::EnsureRoot; - type AssetDeposit = ConstU64<1>; - type AssetAccountDeposit = ConstU64<10>; - type MetadataDepositBase = ConstU64<1>; - type MetadataDepositPerByte = ConstU64<1>; - type ApprovalDeposit = ConstU64<1>; - type StringLimit = ConstU32<50>; type Freezer = (); - type WeightInfo = (); - type Extra = (); type RemoveItemsLimit = ConstU32<5>; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = (); - type CallbackHandle = (); - type MaxHolds = ConstU32<50>; type RuntimeHoldReason = RuntimeHoldReason; } -impl pallet_sudo::Config for Test { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type WeightInfo = (); -} +#[derive_impl(pallet_sudo::config_preludes::TestDefaultConfig as pallet_sudo::DefaultConfig)] +impl pallet_sudo::Config for Test {} impl pallet_preimage::Config for Test { type RuntimeEvent = RuntimeEvent; - type WeightInfo = (); type Currency = Balances; type ManagerOrigin = EnsureRoot; type Consideration = (); + type WeightInfo = (); } impl pallet_scheduler::Config for Test { @@ -161,9 +107,9 @@ impl pallet_scheduler::Config for Test { type RuntimeCall = RuntimeCall; type MaximumWeight = MaxWeight; type ScheduleOrigin = EnsureRoot; + type OriginPrivilegeCmp = EqualPrivilegeOnly; type MaxScheduledPerBlock = ConstU32<100>; type WeightInfo = (); - type OriginPrivilegeCmp = EqualPrivilegeOnly; type Preimages = Preimage; } @@ -242,7 +188,7 @@ parameter_types! { pub const PaymentPalletId: PalletId = PalletId(*b"payments"); } -impl pallet_payments::Config for Test { +impl Config for Test { type RuntimeEvent = RuntimeEvent; type Assets = Assets; type AssetsBalance = u64; diff --git a/runtime/common/src/impls.rs b/runtime/common/src/impls.rs index f8ab6dd5..30469279 100644 --- a/runtime/common/src/impls.rs +++ b/runtime/common/src/impls.rs @@ -17,44 +17,26 @@ //! Taken from polkadot/runtime/common (at a21cd64) and adapted for parachains. use frame_support::traits::{ + fungible::{DecreaseIssuance, IncreaseIssuance}, fungibles::{Balanced, Credit}, - Currency, Imbalance, OnUnbalanced, + Currency, }; use pallet_asset_tx_payment::HandleCredit; -use sp_runtime::traits::MaybeEquivalence; use sp_std::marker::PhantomData; -use xcm::latest::MultiLocation; - -// TODO - Create and import XCM common types -//use xcm::latest::{AssetId, Fungibility::Fungible, MultiAsset, MultiLocation}; - -/// Type alias to conveniently refer to the `Currency::NegativeImbalance` -/// associated type. -pub type NegativeImbalance = - as Currency<::AccountId>>::NegativeImbalance; /// Type alias to conveniently refer to `frame_system`'s `Config::AccountId`. -pub type AccountIdOf = ::AccountId; +pub type AccountIdOf = ::AccountId; -pub struct DealWithFees(PhantomData); -impl OnUnbalanced> for DealWithFees -where - R: pallet_balances::Config + pallet_collator_selection::Config + pallet_treasury::Config, - pallet_treasury::Pallet: OnUnbalanced>, - AccountIdOf: From + Into, - ::RuntimeEvent: From>, -{ - fn on_unbalanceds(mut fees_then_tips: impl Iterator>) { - use pallet_treasury::Pallet as Treasury; - if let Some(mut fees) = fees_then_tips.next() { - if let Some(tips) = fees_then_tips.next() { - tips.merge_into(&mut fees); - } - // 100% of the fees + tips (if any) go to the treasury - as OnUnbalanced<_>>::on_unbalanced(fees); - } - } -} +// /// Type alias to conveniently refer to the `Currency::NegativeImbalance` +// /// associated type. +pub type NegativeImbalance = as Currency>>::NegativeImbalance; + +/// Type Alias to represent fungible imbalances +pub type FungibleImbalance = frame_support::traits::fungible::Imbalance< + >::Balance, + DecreaseIssuance, pallet_balances::Pallet>, + IncreaseIssuance, pallet_balances::Pallet>, +>; /// A `HandleCredit` implementation that naively transfers the fees to the block /// author. Will drop and burn the assets in case the transfer fails. @@ -73,24 +55,3 @@ where } } } - -pub struct AsAssetMultiLocation(PhantomData<(AssetId, AssetIdInfoGetter)>); -impl MaybeEquivalence - for AsAssetMultiLocation -where - AssetId: Clone, - AssetIdInfoGetter: AssetMultiLocationGetter, -{ - fn convert(asset_multi_location: &MultiLocation) -> Option { - AssetIdInfoGetter::get_asset_id(asset_multi_location) - } - - fn convert_back(asset_id: &AssetId) -> Option { - AssetIdInfoGetter::get_asset_multi_location(asset_id.clone()) - } -} - -pub trait AssetMultiLocationGetter { - fn get_asset_multi_location(asset_id: AssetId) -> Option; - fn get_asset_id(asset_multi_location: &MultiLocation) -> Option; -} diff --git a/runtime/kreivo/Cargo.toml b/runtime/kreivo/Cargo.toml index 8ba45f31..b7847c5d 100644 --- a/runtime/kreivo/Cargo.toml +++ b/runtime/kreivo/Cargo.toml @@ -1,263 +1,262 @@ [package] -name = "kreivo-runtime" +authors.workspace = true description = "Kreivo Runtime" -version = "0.12.1" -authors = ['Virto Team '] +edition.workspace = true +homepage.workspace = true license = "GPL-3.0-only" -homepage = 'https://github.com/virto-network/virto-node' -repository = 'https://github.com/virto-network/virto-node' -edition = "2021" +name = "kreivo-runtime" +repository.workspace = true +version = "0.13.0" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { workspace = true } +substrate-wasm-builder = {workspace = true} [dependencies] -parity-scale-codec = { workspace = true, features = ["derive"] } -hex-literal = { workspace = true, optional = true } -log = { workspace = true } -scale-info = { workspace = true, features = ["derive"] } -smallvec = { workspace = true } +hex-literal = {workspace = true, optional = true} +log = {workspace = true} +parity-scale-codec = {workspace = true, features = ["derive"]} +scale-info = {workspace = true, features = ["derive"]} +smallvec = {workspace = true} # Local -pallet-payments = { workspace = true } -pallet-communities = { workspace = true, features = ["xcm"] } -pallet-communities-manager = { workspace = true } +pallet-communities = {workspace = true, features = ["xcm"]} +pallet-communities-manager = {workspace = true} +pallet-payments = {workspace = true} # Local: Common -virto-common = { workspace = true, default-features = false, features = ["runtime"] } -runtime-common = { workspace = true } +runtime-common = {workspace = true} +virto-common = {workspace = true, default-features = false, features = [ + "runtime", +]} # Substrate -frame-benchmarking = { workspace = true, optional = true } -frame-executive = { workspace = true } -frame-support = { workspace = true } -frame-system = { workspace = true } -frame-system-benchmarking = { workspace = true, optional = true } -frame-system-rpc-runtime-api = { workspace = true } -frame-try-runtime = { workspace = true, optional = true } -assets-common = { workspace = true } -pallet-aura = { workspace = true } -pallet-assets = { workspace = true } -pallet-asset-tx-payment = { workspace = true } -pallet-authorship = { workspace = true } -pallet-balances = { workspace = true } -pallet-nfts = { workspace = true } -pallet-multisig = { workspace = true } -pallet-utility = { workspace = true } -pallet-preimage = { workspace = true } -pallet-proxy = { workspace = true } -pallet-ranked-collective = { workspace = true } -pallet-referenda = { workspace = true } -pallet-scheduler = { workspace = true } -pallet-session = { workspace = true } -pallet-timestamp = { workspace = true } -pallet-transaction-payment = { workspace = true } -pallet-transaction-payment-rpc-runtime-api = { workspace = true } -pallet-treasury = { workspace = true } -pallet-vesting = { workspace = true } -sp-api = { workspace = true } -sp-block-builder = { workspace = true } -sp-consensus-aura = { workspace = true } -sp-core = { workspace = true } -sp-genesis-builder = { workspace = true } -sp-inherents = { workspace = true } -sp-offchain = { workspace = true } -sp-runtime = { workspace = true } -sp-session = { workspace = true } -sp-std = { workspace = true } -sp-transaction-pool = { workspace = true } -sp-version = { workspace = true } -sp-weights = { workspace = true } - +assets-common = {workspace = true} +frame-benchmarking = {workspace = true, optional = true} +frame-executive = {workspace = true} +frame-support = {workspace = true} +frame-system = {workspace = true} +frame-system-benchmarking = {workspace = true, optional = true} +frame-system-rpc-runtime-api = {workspace = true} +frame-try-runtime = {workspace = true, optional = true} +pallet-asset-tx-payment = {workspace = true} +pallet-assets = {workspace = true} +pallet-aura = {workspace = true} +pallet-authorship = {workspace = true} +pallet-balances = {workspace = true} +pallet-multisig = {workspace = true} +pallet-nfts = {workspace = true} +pallet-preimage = {workspace = true} +pallet-proxy = {workspace = true} +pallet-ranked-collective = {workspace = true} +pallet-referenda = {workspace = true} +pallet-scheduler = {workspace = true} +pallet-session = {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-vesting = {workspace = true} +sp-api = {workspace = true} +sp-block-builder = {workspace = true} +sp-consensus-aura = {workspace = true} +sp-core = {workspace = true} +sp-genesis-builder = {workspace = true} +sp-inherents = {workspace = true} +sp-offchain = {workspace = true} +sp-runtime = {workspace = true} +sp-session = {workspace = true} +sp-std = {workspace = true} +sp-transaction-pool = {workspace = true} +sp-version = {workspace = true} +sp-weights = {workspace = true} # Polkadot -kusama-runtime-constants = { workspace = true } -polkadot-core-primitives = { workspace = true } -pallet-xcm = { workspace = true } -polkadot-runtime-common = { workspace = true } -xcm = { workspace = true } -xcm-builder = { workspace = true } -xcm-executor = { workspace = true } -pallet-xcm-benchmarks = { workspace = true, optional = true } -polkadot-parachain-primitives = { workspace = true } +kusama-runtime-constants = {workspace = true} +pallet-xcm = {workspace = true} +pallet-xcm-benchmarks = {workspace = true, optional = true} +polkadot-core-primitives = {workspace = true} +polkadot-parachain-primitives = {workspace = true} +polkadot-runtime-common = {workspace = true} +xcm = {workspace = true} +xcm-builder = {workspace = true} +xcm-executor = {workspace = true} # Cumulus -cumulus-pallet-aura-ext = { workspace = true } -cumulus-pallet-parachain-system = { workspace = true } -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 } -pallet-collator-selection = { workspace = true } -parachain-info = { workspace = true } -parachains-common = { workspace = true } -pallet-message-queue = { workspace = true } +cumulus-pallet-aura-ext = {workspace = true} +cumulus-pallet-parachain-system = {workspace = true} +cumulus-pallet-session-benchmarking = {workspace = true} +cumulus-pallet-xcm = {workspace = true} +cumulus-pallet-xcmp-queue = {workspace = true} +cumulus-primitives-aura = {workspace = true} +cumulus-primitives-core = {workspace = true} +cumulus-primitives-timestamp = {workspace = true} +cumulus-primitives-utility = {workspace = true} +pallet-collator-selection = {workspace = true} +pallet-message-queue = {workspace = true} +parachain-info = {workspace = true} +parachains-common = {workspace = true} # Frame Contrib -fc-traits-memberships = { workspace = true } -pallet-referenda-tracks = { workspace = true } +fc-traits-memberships = {workspace = true} +pallet-referenda-tracks = {workspace = true} [features] default = ["std"] std = [ - "assets-common/std", - "cumulus-pallet-aura-ext/std", - "cumulus-pallet-parachain-system/std", - "cumulus-pallet-session-benchmarking/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", - "frame-support/std", - "frame-system-benchmarking/std", - "frame-system-rpc-runtime-api/std", - "frame-try-runtime/std", - "frame-system/std", - "fc-traits-memberships/std", - "log/std", - "kusama-runtime-constants/std", - "pallet-asset-tx-payment/std", - "pallet-assets/std", - "pallet-aura/std", - "pallet-authorship/std", - "pallet-balances/std", - "pallet-communities-manager/std", - "pallet-communities/std", - "pallet-collator-selection/std", - "pallet-message-queue/std", - "pallet-multisig/std", - "pallet-nfts/std", - "pallet-payments/std", - "pallet-preimage/std", - "pallet-proxy/std", - "pallet-ranked-collective/std", - "pallet-referenda/std", - "pallet-referenda-tracks/std", - "pallet-scheduler/std", - "pallet-session/std", - "pallet-timestamp/std", - "pallet-transaction-payment-rpc-runtime-api/std", - "pallet-transaction-payment/std", - "pallet-treasury/std", - "pallet-utility/std", - "pallet-xcm/std", - "pallet-xcm-benchmarks/std", - "parachain-info/std", - "parachains-common/std", - "parity-scale-codec/std", - "polkadot-core-primitives/std", - "polkadot-parachain-primitives/std", - "polkadot-runtime-common/std", - "runtime-common/std", - "scale-info/std", - "sp-api/std", - "sp-block-builder/std", - "sp-consensus-aura/std", - "sp-core/std", - "sp-genesis-builder/std", - "sp-inherents/std", - "sp-offchain/std", - "sp-runtime/std", - "sp-session/std", - "sp-std/std", - "sp-transaction-pool/std", - "sp-version/std", - "sp-weights/std", - "virto-common/std", - "xcm-builder/std", - "xcm-executor/std", - "xcm/std", + "assets-common/std", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-session-benchmarking/std", + "cumulus-pallet-xcm/std", + "cumulus-pallet-xcmp-queue/std", + "cumulus-primitives-aura/std", + "cumulus-primitives-core/std", + "cumulus-primitives-timestamp/std", + "cumulus-primitives-utility/std", + "frame-benchmarking/std", + "frame-executive/std", + "frame-support/std", + "frame-system-benchmarking/std", + "frame-system-rpc-runtime-api/std", + "frame-try-runtime/std", + "frame-system/std", + "fc-traits-memberships/std", + "log/std", + "kusama-runtime-constants/std", + "pallet-asset-tx-payment/std", + "pallet-assets/std", + "pallet-aura/std", + "pallet-authorship/std", + "pallet-balances/std", + "pallet-communities-manager/std", + "pallet-communities/std", + "pallet-collator-selection/std", + "pallet-message-queue/std", + "pallet-multisig/std", + "pallet-nfts/std", + "pallet-payments/std", + "pallet-preimage/std", + "pallet-proxy/std", + "pallet-ranked-collective/std", + "pallet-referenda/std", + "pallet-referenda-tracks/std", + "pallet-scheduler/std", + "pallet-session/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-treasury/std", + "pallet-utility/std", + "pallet-xcm/std", + "pallet-xcm-benchmarks/std", + "parachain-info/std", + "parachains-common/std", + "parity-scale-codec/std", + "polkadot-core-primitives/std", + "polkadot-parachain-primitives/std", + "polkadot-runtime-common/std", + "runtime-common/std", + "scale-info/std", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-aura/std", + "sp-core/std", + "sp-genesis-builder/std", + "sp-inherents/std", + "sp-offchain/std", + "sp-runtime/std", + "sp-session/std", + "sp-std/std", + "sp-transaction-pool/std", + "sp-version/std", + "sp-weights/std", + "virto-common/std", + "xcm-builder/std", + "xcm-executor/std", + "xcm/std", ] runtime-benchmarks = [ - "assets-common/runtime-benchmarks", - "cumulus-pallet-session-benchmarking/runtime-benchmarks", - "cumulus-pallet-parachain-system/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", - "frame-system/runtime-benchmarks", - "hex-literal", - "pallet-asset-tx-payment/runtime-benchmarks", - "pallet-assets/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-communities-manager/runtime-benchmarks", - "pallet-communities/runtime-benchmarks", - "pallet-collator-selection/runtime-benchmarks", - "pallet-message-queue/runtime-benchmarks", - "pallet-multisig/runtime-benchmarks", - "pallet-nfts/runtime-benchmarks", - "pallet-payments/runtime-benchmarks", - "pallet-preimage/runtime-benchmarks", - "pallet-proxy/runtime-benchmarks", - "pallet-ranked-collective/runtime-benchmarks", - "pallet-referenda/runtime-benchmarks", - "pallet-referenda-tracks/runtime-benchmarks", - "pallet-scheduler/runtime-benchmarks", - "pallet-timestamp/runtime-benchmarks", - "pallet-treasury/runtime-benchmarks", - "pallet-utility/runtime-benchmarks", - "pallet-xcm-benchmarks/runtime-benchmarks", - "pallet-xcm/runtime-benchmarks", - "parachains-common/runtime-benchmarks", - "polkadot-parachain-primitives/runtime-benchmarks", - "polkadot-runtime-common/runtime-benchmarks", - "runtime-common/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", - "xcm-builder/runtime-benchmarks", - "xcm-executor/runtime-benchmarks", + "assets-common/runtime-benchmarks", + "cumulus-pallet-session-benchmarking/runtime-benchmarks", + "cumulus-pallet-parachain-system/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", + "frame-system/runtime-benchmarks", + "hex-literal", + "pallet-asset-tx-payment/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-communities-manager/runtime-benchmarks", + "pallet-communities/runtime-benchmarks", + "pallet-collator-selection/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-nfts/runtime-benchmarks", + "pallet-payments/runtime-benchmarks", + "pallet-preimage/runtime-benchmarks", + "pallet-proxy/runtime-benchmarks", + "pallet-ranked-collective/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-referenda-tracks/runtime-benchmarks", + "pallet-scheduler/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-treasury/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-xcm-benchmarks/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "runtime-common/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", ] try-runtime = [ - "cumulus-pallet-aura-ext/try-runtime", - "cumulus-pallet-parachain-system/try-runtime", - "cumulus-pallet-xcm/try-runtime", - "cumulus-pallet-xcmp-queue/try-runtime", - "frame-executive/try-runtime", - "frame-system/try-runtime", - "frame-support/try-runtime", - "frame-try-runtime/try-runtime", - "pallet-asset-tx-payment/try-runtime", - "pallet-assets/try-runtime", - "pallet-aura/try-runtime", - "pallet-authorship/try-runtime", - "pallet-balances/try-runtime", - "pallet-communities-manager/try-runtime", - "pallet-communities/try-runtime", - "pallet-collator-selection/try-runtime", - "pallet-message-queue/try-runtime", - "pallet-nfts/try-runtime", - "pallet-multisig/try-runtime", - "pallet-payments/try-runtime", - "pallet-preimage/try-runtime", - "pallet-proxy/try-runtime", - "pallet-ranked-collective/try-runtime", - "pallet-referenda/try-runtime", - "pallet-referenda-tracks/try-runtime", - "pallet-scheduler/try-runtime", - "pallet-session/try-runtime", - "pallet-timestamp/try-runtime", - "pallet-transaction-payment/try-runtime", - "pallet-treasury/try-runtime", - "pallet-utility/try-runtime", - "pallet-xcm/try-runtime", - "parachain-info/try-runtime", - "polkadot-runtime-common/try-runtime", - "runtime-common/try-runtime", - "sp-runtime/try-runtime", + "cumulus-pallet-aura-ext/try-runtime", + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", + "frame-executive/try-runtime", + "frame-system/try-runtime", + "frame-support/try-runtime", + "frame-try-runtime/try-runtime", + "pallet-asset-tx-payment/try-runtime", + "pallet-assets/try-runtime", + "pallet-aura/try-runtime", + "pallet-authorship/try-runtime", + "pallet-balances/try-runtime", + "pallet-communities-manager/try-runtime", + "pallet-communities/try-runtime", + "pallet-collator-selection/try-runtime", + "pallet-message-queue/try-runtime", + "pallet-nfts/try-runtime", + "pallet-multisig/try-runtime", + "pallet-payments/try-runtime", + "pallet-preimage/try-runtime", + "pallet-proxy/try-runtime", + "pallet-ranked-collective/try-runtime", + "pallet-referenda/try-runtime", + "pallet-referenda-tracks/try-runtime", + "pallet-scheduler/try-runtime", + "pallet-session/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-transaction-payment/try-runtime", + "pallet-treasury/try-runtime", + "pallet-utility/try-runtime", + "pallet-xcm/try-runtime", + "parachain-info/try-runtime", + "polkadot-runtime-common/try-runtime", + "runtime-common/try-runtime", + "sp-runtime/try-runtime", ] - -testnet = [ - "pallet-communities/testnet" -] \ No newline at end of file diff --git a/runtime/kreivo/src/apis.rs b/runtime/kreivo/src/apis.rs new file mode 100644 index 00000000..71fc1092 --- /dev/null +++ b/runtime/kreivo/src/apis.rs @@ -0,0 +1,401 @@ +use super::*; +use sp_api::impl_runtime_apis; +use sp_runtime::ExtrinsicInclusionMode; +use sp_version::RuntimeVersion; + +impl_runtime_apis! { + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + pallet_aura::Authorities::::get().into_inner() + } + } + + impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { + fn can_build_upon( + included_hash: ::Hash, + slot: cumulus_primitives_aura::Slot, + ) -> bool { + ConsensusHook::can_build_upon(included_hash, slot) + } + } + + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) -> ExtrinsicInclusionMode { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + OpaqueMetadata::new(Runtime::metadata().into()) + } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + if !::BaseCallFilter::contains(&tx.function) { + return InvalidTransaction::Call.into(); + }; + Executive::validate_transaction(source, tx, block_hash) + } + } + + impl assets_common::runtime_api::FungiblesApi< + Block, + AccountId, + > for Runtime + { + fn query_account_balances(account: AccountId) -> Result { + use assets_common::fungible_conversion::{convert, convert_balance}; + Ok([ + // collect pallet_balance + { + let balance = Balances::free_balance(account.clone()); + if balance > 0 { + vec![convert_balance::(balance)?] + } else { + vec![] + } + }, + // collect pallet_assets (TrustBackedAssets) + convert::<_, _, _, _, LocationConvertedConcreteId>( + Assets::account_balances(account) + .iter() + .filter(|(_, balance)| balance > &0) + )?, + // collect ... e.g. other tokens + ].concat().into()) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Nonce { + System::account_nonce(account) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi + for Runtime + { + fn query_call_info( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::RuntimeDispatchInfo { + TransactionPayment::query_call_info(call, len) + } + fn query_call_fee_details( + call: RuntimeCall, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_call_fee_details(call, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) + } + } + + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { + let weight = Executive::try_runtime_upgrade(checks).unwrap(); + (weight, RuntimeBlockWeights::get().max_block) + } + + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect, + ) -> Weight { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. + Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + use frame_system_benchmarking::Pallet as SystemBench; + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + + // This is defined once again in dispatch_benchmark, because list_benchmarks! + // and add_benchmarks! are macros exported by define_benchmarks! macros and those types + // are referenced in that call. + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + let mut list = Vec::::new(); + list_benchmarks!(list, extra); + + let storage_info = AllPalletsWithSystem::storage_info(); + (list, storage_info) + } + + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime {} + + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + impl cumulus_pallet_session_benchmarking::Config for Runtime {} + + use xcm::latest::prelude::{ + Asset, Assets as XcmAssets, AssetId, Fungible, GeneralIndex, + Here, InteriorLocation, Junction, Location, NetworkId, + NonFungible, Response + }; + use xcm_config::RelayLocation; + use pallet_xcm_benchmarks::asset_instance_from; + + parameter_types! { + pub ExistentialDepositAsset: Option = Some(( + RelayLocation::get(), + ExistentialDeposit::get() + ).into()); + } + + impl pallet_xcm_benchmarks::Config for Runtime { + type XcmConfig = xcm_config::XcmConfig; + type AccountIdConverter = xcm_config::LocationToAccountId; + type DeliveryHelper = cumulus_primitives_utility::ToParentDeliveryHelper< + xcm_config::XcmConfig, + ExistentialDepositAsset, + PriceForParentDelivery, + >; + + fn valid_destination() -> Result { + Ok(RelayLocation::get()) + } + fn worst_case_holding(depositable_count: u32) -> XcmAssets { + // A mix of fungible, non-fungible, and concrete assets. + let holding_non_fungibles = xcm_config::MaxAssetsIntoHolding::get() / 2 - depositable_count; + let holding_fungibles = holding_non_fungibles.saturating_sub(1); + let fungibles_amount: u128 = 100; + let mut assets = (0..holding_fungibles) + .map(|i| { + Asset { + id: AssetId(GeneralIndex(i as u128).into()), + fun: Fungible(fungibles_amount * i as u128), + } + }) + .chain(core::iter::once(Asset { id: AssetId(Here.into()), fun: Fungible(u128::MAX) })) + .chain((0..holding_non_fungibles).map(|i| Asset { + id: AssetId(GeneralIndex(i as u128).into()), + fun: NonFungible(asset_instance_from(i)), + })) + .collect::>(); + + assets.push(Asset{ + id: AssetId(RelayLocation::get()), + fun: Fungible(1_000_000 * UNITS), + }); + assets.into() + } + } + + parameter_types! { + pub const TrustedTeleporter: Option<(Location, Asset)> = Some(( + RelayLocation::get(), + Asset { fun: Fungible(1 * UNITS), id: AssetId(RelayLocation::get()) }, + )); + pub const TrustedReserve: Option<(Location, Asset)> = None; + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; + + } + + impl pallet_xcm_benchmarks::fungible::Config for Runtime { + type TransactAsset = Balances; + + type CheckedAccount = CheckedAccount; + type TrustedTeleporter = TrustedTeleporter; + type TrustedReserve = TrustedReserve; + + fn get_asset() -> Asset { + Asset { + id: AssetId(RelayLocation::get()), + fun: Fungible(1 * UNITS), + }.into() + } + } + + impl pallet_xcm_benchmarks::generic::Config for Runtime { + type RuntimeCall = RuntimeCall; + type TransactAsset = Balances; + + fn worst_case_response() -> (u64, Response) { + (0u64, Response::Version(Default::default())) + } + + fn worst_case_asset_exchange() -> Result<(XcmAssets, XcmAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result<(Location, Junction), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(Location, RuntimeCall), BenchmarkError> { + Ok((RelayLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) + } + + fn subscribe_origin() -> Result { + Ok(RelayLocation::get()) + } + + fn claimable_asset() -> Result<(Location, Location, XcmAssets), BenchmarkError> { + let origin = RelayLocation::get(); + let assets: XcmAssets = (AssetId(RelayLocation::get()), 1_000 * UNITS).into(); + let ticket = Location { parents: 0, interior: Here }; + Ok((origin, ticket, assets)) + } + + fn fee_asset() -> Result { + Ok(Asset { + id: AssetId(RelayLocation::get()), + fun: Fungible(1_000_000 * UNITS), + }) + } + + fn unlockable_asset() -> Result<(Location, Location, Asset), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn export_message_origin_and_destination( + ) -> Result<(Location, NetworkId, InteriorLocation), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn alias_origin() -> Result<(Location, Location), BenchmarkError> { + Err(BenchmarkError::Skip) + } + } + + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + use frame_support::traits::WhitelistedStorageKeys; + let whitelist = AllPalletsWithSystem::whitelisted_storage_keys(); + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + add_benchmarks!(params, batches); + Ok(batches) + } + } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn build_state(json: Vec) -> Result<(), sp_runtime::RuntimeString> { + build_state::(json) + } + + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] + } + } +} diff --git a/runtime/kreivo/src/collective/mod.rs b/runtime/kreivo/src/collective/mod.rs index 80a07ff5..c868448b 100644 --- a/runtime/kreivo/src/collective/mod.rs +++ b/runtime/kreivo/src/collective/mod.rs @@ -1,6 +1,6 @@ use super::*; -use frame_system::EnsureRootWithSuccess; +use frame_system::{EnsureNever, EnsureRootWithSuccess}; use pallet_ranked_collective::Rank; use sp_core::ConstU16; use sp_runtime::traits::Convert; @@ -21,17 +21,40 @@ impl pallet_ranked_collective::Config for Runtime { type WeightInfo = pallet_ranked_collective::weights::SubstrateWeight; type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureNever<()>; + // Initially, members of kreivo collective are promoted via governance action // In the future, it's expected to have an auxilliary pallet to observe the // criteria for ranking type PromoteOrigin = EnsureRootWithSuccess>; + type RemoveOrigin = Self::DemoteOrigin; + // Initially, members of kreivo collective are demoted via governance action // In the future, it's expected to have an auxilliary pallet to observe the // criteria for ranking type DemoteOrigin = EnsureRootWithSuccess>; + type ExchangeOrigin = EnsureRoot; + type MemberSwappedHandler = (); + type Polls = KreivoReferenda; type MinRankOfClass = AtLeastRank<1>; type VoteWeight = pallet_ranked_collective::Linear; + + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkSetup = CollectiveBenchmarkSetup; +} + +#[cfg(feature = "runtime-benchmarks")] +use frame_support::traits::RankedMembers; +#[cfg(feature = "runtime-benchmarks")] +pub struct CollectiveBenchmarkSetup; +#[cfg(feature = "runtime-benchmarks")] +impl pallet_ranked_collective::BenchmarkSetup for CollectiveBenchmarkSetup { + /// Ensure that this member is registered correctly. + fn ensure_member(acc: &AccountId) { + as RankedMembers>::induct(acc) + .expect("Account exists"); + } } diff --git a/runtime/kreivo/src/collective/tracks.rs b/runtime/kreivo/src/collective/tracks.rs index 512d4917..01c858a8 100644 --- a/runtime/kreivo/src/collective/tracks.rs +++ b/runtime/kreivo/src/collective/tracks.rs @@ -14,10 +14,9 @@ pub struct TracksInfo; impl pallet_referenda::TracksInfo for TracksInfo { type Id = TrackId; type RuntimeOrigin = ::PalletsOrigin; - type TracksIter = pallet_referenda::StaticTracksIter; - fn tracks() -> Self::TracksIter { - const DATA: [pallet_referenda::Track; 4] = [ + fn tracks() -> impl Iterator>> { + const DATA: [Track; 4] = [ Track { id: 0, info: pallet_referenda::TrackInfo { diff --git a/runtime/kreivo/src/communities/mod.rs b/runtime/kreivo/src/communities/mod.rs index 5501229f..b869ca1a 100644 --- a/runtime/kreivo/src/communities/mod.rs +++ b/runtime/kreivo/src/communities/mod.rs @@ -1,7 +1,9 @@ use super::*; use frame_support::traits::TryMapSuccess; -use frame_system::{EnsureNever, EnsureRootWithSuccess, EnsureSigned}; +#[cfg(not(feature = "runtime-benchmarks"))] +use frame_system::EnsureNever; +use frame_system::{EnsureRootWithSuccess, EnsureSigned}; use pallet_communities::origin::{EnsureCommunity, EnsureSignedPays}; use sp_runtime::{morph_types, traits::AccountIdConversion}; use virto_common::{CommunityId, MembershipId}; @@ -54,7 +56,10 @@ type AnyoneElsePays = EnsureSignedPays; + #[cfg(feature = "runtime-benchmarks")] + type CreateOrigin = RootCreatesCommunitiesForFree; type AdminOrigin = EitherOf, EnsureCommunityAccount>; type MemberMgmtOrigin = EitherOf, EnsureCommunityAccount>; type MemberMgmt = CommunityMemberships; @@ -73,6 +78,9 @@ impl pallet_communities::Config for Runtime { type PalletId = CommunityPalletId; + type ItemConfig = pallet_nfts::ItemConfig; + type RuntimeFreezeReason = RuntimeFreezeReason; + #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = CommunityBenchmarkHelper; } diff --git a/runtime/kreivo/src/constants.rs b/runtime/kreivo/src/constants.rs index 29a3cff4..a6af6950 100644 --- a/runtime/kreivo/src/constants.rs +++ b/runtime/kreivo/src/constants.rs @@ -120,7 +120,7 @@ pub mod fee { } pub mod locations { - pub const STATEMINE_PARA_ID: u32 = 1000; + pub const ASSET_HUB_ID: u32 = 1000; // Even if they are not used yet, let's keep these for the future. pub const STATEMINE_ASSET_PALLET_ID: u8 = 50; pub const USDT_ASSET_ID: u128 = 1984; diff --git a/runtime/kreivo/src/lib.rs b/runtime/kreivo/src/lib.rs index 67f0ec6f..22c34611 100644 --- a/runtime/kreivo/src/lib.rs +++ b/runtime/kreivo/src/lib.rs @@ -1,27 +1,28 @@ #![cfg_attr(not(feature = "std"), no_std)] -// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. +// `construct_runtime!` does a lot of recursion and requires us to increase the limit. #![recursion_limit = "256"] #![allow(clippy::items_after_test_module)] -// Make the WASM binary available. +// // Make the WASM binary available. #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); #[cfg(test)] mod tests; +pub mod apis; pub mod constants; pub mod governance; pub mod impls; mod weights; pub mod xcm_config; +use apis::*; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; -use cumulus_primitives_core::{AggregateMessageOrigin, Concrete, ParaId}; +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use governance::pallet_custom_origins; use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; -use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::traits::{LookupError, StaticLookup, Verify}; pub use sp_runtime::{ @@ -35,18 +36,20 @@ use sp_std::prelude::*; use sp_version::NativeVersion; use sp_version::RuntimeVersion; use virto_common::CommunityId; + +pub use apis::RuntimeApi; pub use virto_common::FungibleAssetLocation; use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, ensure, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ fungible::HoldConsideration, fungibles, - tokens::{PayFromAccount, UnityAssetBalanceConversion}, + tokens::{imbalance::ResolveTo, PayFromAccount, UnityAssetBalanceConversion}, AsEnsureOriginWithArg, ConstBool, ConstU32, ConstU64, ConstU8, Contains, EitherOf, EitherOfDiverse, EnsureOriginWithArg, LinearStoragePrice, NeverEnsureOrigin, TransformOrigin, WithdrawReasons, }, @@ -64,7 +67,7 @@ use frame_system::{ use pallet_nfts::PalletFeatures; use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; -use xcm_config::{MultiLocationConvertedConcreteId, RelayLocation, XcmOriginToTransactDispatchOrigin}; +use xcm_config::{LocationConvertedConcreteId, RelayLocation, XcmOriginToTransactDispatchOrigin}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; @@ -95,7 +98,7 @@ pub use parachains_common::{ opaque, AccountId, AssetIdForTrustBackedAssets, AuraId, Balance, BlockNumber, Hash, Header, Nonce, Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, MINUTES, NORMAL_DISPATCH_RATIO, SLOT_DURATION, }; -pub use runtime_common::impls::{AssetsToBlockAuthor, DealWithFees}; +pub use runtime_common::impls::AssetsToBlockAuthor; /// The address format for describing accounts. pub type Address = MultiAddress; @@ -144,10 +147,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("kreivo-parachain"), impl_name: create_runtime_str!("kreivo-parachain"), authoring_version: 1, - spec_version: 110, + spec_version: 111, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 7, + transaction_version: 8, state_version: 1, }; @@ -326,8 +329,7 @@ impl pallet_balances::Config for Runtime { type MaxReserves = ConstU32<50>; type ReserveIdentifier = [u8; 8]; type RuntimeHoldReason = RuntimeHoldReason; - type FreezeIdentifier = RuntimeHoldReason; - type MaxHolds = ConstU32<3>; + type FreezeIdentifier = RuntimeFreezeReason; type MaxFreezes = ConstU32<256>; type RuntimeFreezeReason = RuntimeFreezeReason; } @@ -339,7 +341,8 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter>; + type OnChargeTransaction = + pallet_transaction_payment::FungibleAdapter>; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; @@ -389,12 +392,30 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = (); } impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} +/// Relay chain slot duration, in milliseconds. +const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; +/// How many parachain blocks are processed by the relay chain per parent. +/// Limits the number of blocks authored per slot. +const BLOCK_PROCESSING_VELOCITY: u32 = 1; +/// Maximum number of blocks simultaneously accepted by the Runtime, not yet +/// included into the relay chain. +const UNINCLUDED_SEGMENT_CAPACITY: u32 = 3; + +/// Aura consensus hook +type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< + Runtime, + RELAY_CHAIN_SLOT_DURATION_MILLIS, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, +>; + impl cumulus_pallet_xcmp_queue::Config for Runtime { type RuntimeEvent = RuntimeEvent; type ChannelInfo = ParachainSystem; @@ -432,6 +453,7 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = ConstU32<100_000>; type AllowMultipleBlocksPerSlot = ConstBool; + type SlotDuration = ConstU64; } parameter_types! { @@ -669,7 +691,7 @@ parameter_types! { parameter_types! { /// The asset ID for the asset that we use to pay for message delivery fees. - pub FeeAssetId: cumulus_primitives_core::AssetId = Concrete(xcm_config::RelayLocation::get()); + pub FeeAssetId: cumulus_primitives_core::AssetId = xcm_config::RelayLocation::get().into(); /// The base fee for the message delivery fees. pub const ToSiblingBaseDeliveryFee: u128 = CENTS.saturating_mul(3); pub const ToParentBaseDeliveryFee: u128 = CENTS.saturating_mul(3); @@ -710,6 +732,7 @@ impl pallet_vesting::Config for Runtime { type MinVestedTransfer = MinVestedTransfer; type WeightInfo = pallet_vesting::weights::SubstrateWeight; type UnvestedFundsAllowedWithdrawReasons = UnvestedFundsAllowedWithdrawReasons; + type BlockNumberProvider = System; const MAX_VESTING_SCHEDULES: u32 = 28; } @@ -743,384 +766,8 @@ mod benches { ); } -impl_runtime_apis! { - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) - } - - fn authorities() -> Vec { - Aura::authorities().into_inner() - } - } - - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - OpaqueMetadata::new(Runtime::metadata().into()) - } - - fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } - - fn metadata_versions() -> sp_std::vec::Vec { - Runtime::metadata_versions() - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - block_hash: ::Hash, - ) -> TransactionValidity { - if !::BaseCallFilter::contains(&tx.function) { - return InvalidTransaction::Call.into(); - }; - Executive::validate_transaction(source, tx, block_hash) - } - } - - impl assets_common::runtime_api::FungiblesApi< - Block, - AccountId, - > for Runtime - { - fn query_account_balances(account: AccountId) -> Result { - use assets_common::fungible_conversion::{convert, convert_balance}; - Ok([ - // collect pallet_balance - { - let balance = Balances::free_balance(account.clone()); - if balance > 0 { - vec![convert_balance::(balance)?] - } else { - vec![] - } - }, - // collect pallet_assets (TrustBackedAssets) - convert::<_, _, _, _, MultiLocationConvertedConcreteId>( - Assets::account_balances(account) - .iter() - .filter(|(_, balance)| balance > &0) - )?, - // collect ... e.g. other tokens - ].concat().into()) - } - } - - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) - } - - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Nonce { - System::account_nonce(account) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { - fn query_info( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi - for Runtime - { - fn query_call_info( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::RuntimeDispatchInfo { - TransactionPayment::query_call_info(call, len) - } - fn query_call_fee_details( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_call_fee_details(call, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl cumulus_primitives_core::CollectCollationInfo for Runtime { - fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { - ParachainSystem::collect_collation_info(header) - } - } - - #[cfg(feature = "try-runtime")] - impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { - let weight = Executive::try_runtime_upgrade(checks).unwrap(); - (weight, RuntimeBlockWeights::get().max_block) - } - - fn execute_block( - block: Block, - state_root_check: bool, - signature_check: bool, - select: frame_try_runtime::TryStateSelect, - ) -> Weight { - // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to - // have a backtrace here. - Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn benchmark_metadata(extra: bool) -> ( - Vec, - Vec, - ) { - use frame_benchmarking::{Benchmarking, BenchmarkList}; - use frame_support::traits::StorageInfoTrait; - use frame_system_benchmarking::Pallet as SystemBench; - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - - // This is defined once again in dispatch_benchmark, because list_benchmarks! - // and add_benchmarks! are macros exported by define_benchmarks! macros and those types - // are referenced in that call. - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - let mut list = Vec::::new(); - list_benchmarks!(list, extra); - - let storage_info = AllPalletsWithSystem::storage_info(); - (list, storage_info) - } - - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError}; - - use frame_system_benchmarking::Pallet as SystemBench; - impl frame_system_benchmarking::Config for Runtime {} - - use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - impl cumulus_pallet_session_benchmarking::Config for Runtime {} - - use xcm::latest::prelude::*; - use xcm_config::RelayLocation; - use pallet_xcm_benchmarks::asset_instance_from; - - - parameter_types! { - pub ExistentialDepositMultiAsset: Option = Some(( - RelayLocation::get(), - ExistentialDeposit::get() - ).into()); - } - - impl pallet_xcm_benchmarks::Config for Runtime { - type XcmConfig = xcm_config::XcmConfig; - type AccountIdConverter = xcm_config::LocationToAccountId; - type DeliveryHelper = cumulus_primitives_utility::ToParentDeliveryHelper< - xcm_config::XcmConfig, - ExistentialDepositMultiAsset, - PriceForParentDelivery, - >; - - fn valid_destination() -> Result { - Ok(RelayLocation::get()) - } - fn worst_case_holding(depositable_count: u32) -> MultiAssets { - // A mix of fungible, non-fungible, and concrete assets. - let holding_non_fungibles = xcm_config::MaxAssetsIntoHolding::get() / 2 - depositable_count; - let holding_fungibles = holding_non_fungibles.saturating_sub(1); - let fungibles_amount: u128 = 100; - let mut assets = (0..holding_fungibles) - .map(|i| { - MultiAsset { - id: Concrete(GeneralIndex(i as u128).into()), - fun: Fungible(fungibles_amount * i as u128), - } - .into() - }) - .chain(core::iter::once(MultiAsset { id: Concrete(Here.into()), fun: Fungible(u128::MAX) })) - .chain((0..holding_non_fungibles).map(|i| MultiAsset { - id: Concrete(GeneralIndex(i as u128).into()), - fun: NonFungible(asset_instance_from(i)), - })) - .collect::>(); - - assets.push(MultiAsset{ - id: Concrete(RelayLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }); - assets.into() - } - } - - parameter_types! { - pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( - RelayLocation::get(), - MultiAsset { fun: Fungible(1 * UNITS), id: Concrete(RelayLocation::get()) }, - )); - pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; - pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; - - } - - impl pallet_xcm_benchmarks::fungible::Config for Runtime { - type TransactAsset = Balances; - - type CheckedAccount = CheckedAccount; - type TrustedTeleporter = TrustedTeleporter; - type TrustedReserve = TrustedReserve; - - fn get_multi_asset() -> MultiAsset { - MultiAsset { - id: Concrete(RelayLocation::get()), - fun: Fungible(1 * UNITS), - } - } - } - - impl pallet_xcm_benchmarks::generic::Config for Runtime { - type RuntimeCall = RuntimeCall; - type TransactAsset = Balances; - - fn worst_case_response() -> (u64, Response) { - (0u64, Response::Version(Default::default())) - } - - fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { - Ok((RelayLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) - } - - fn subscribe_origin() -> Result { - Ok(RelayLocation::get()) - } - - fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { - let origin = RelayLocation::get(); - let assets: MultiAssets = (Concrete(RelayLocation::get()), 1_000 * UNITS).into(); - let ticket = MultiLocation { parents: 0, interior: Here }; - Ok((origin, ticket, assets)) - } - - fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn export_message_origin_and_destination( - ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - - fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { - Err(BenchmarkError::Skip) - } - } - - type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; - type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; - - use frame_support::traits::WhitelistedStorageKeys; - let whitelist = AllPalletsWithSystem::whitelisted_storage_keys(); - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - add_benchmarks!(params, batches); - Ok(batches) - } - } - - impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() - } - - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) - } - } -} - +#[allow(dead_code)] struct CheckInherents; - impl cumulus_pallet_parachain_system::CheckInherents for CheckInherents { fn check_inherents( block: &Block, diff --git a/runtime/kreivo/src/weights/pallet_communities.rs b/runtime/kreivo/src/weights/pallet_communities.rs index b738d9cd..91cf75ed 100644 --- a/runtime/kreivo/src/weights/pallet_communities.rs +++ b/runtime/kreivo/src/weights/pallet_communities.rs @@ -1,8 +1,8 @@ //! Autogenerated weights for `pallet_communities` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2024-05-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-06-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `virto-builder`, CPU: `Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("kreivo-local")`, DB CACHE: 1024 @@ -37,18 +37,18 @@ pub struct WeightInfo(PhantomData); impl pallet_communities::WeightInfo for WeightInfo { /// Storage: `Communities::Info` (r:1 w:1) /// Proof: `Communities::Info` (`max_values`: None, `max_size`: Some(19), added: 2494, mode: `MaxEncodedLen`) + /// Storage: `Communities::CommunityIdFor` (r:1 w:1) + /// Proof: `Communities::CommunityIdFor` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `Communities::CommunityIdFor` (r:0 w:1) - /// Proof: `Communities::CommunityIdFor` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) fn create() -> Weight { // Proof Size summary in bytes: // Measured: `56` - // Estimated: `3593` - // Minimum execution time: 39_254_000 picoseconds. - Weight::from_parts(44_989_000, 0) - .saturating_add(Weight::from_parts(0, 3593)) - .saturating_add(T::DbWeight::get().reads(2)) + // Estimated: `4087` + // Minimum execution time: 38_084_000 picoseconds. + Weight::from_parts(60_467_000, 0) + .saturating_add(Weight::from_parts(0, 4087)) + .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: `Communities::CommunityIdFor` (r:1 w:2) @@ -59,87 +59,87 @@ impl pallet_communities::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `122` // Estimated: `4087` - // Minimum execution time: 39_264_000 picoseconds. - Weight::from_parts(59_388_000, 0) + // Minimum execution time: 37_753_000 picoseconds. + Weight::from_parts(57_312_000, 0) .saturating_add(Weight::from_parts(0, 4087)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `Communities::Info` (r:1 w:0) /// Proof: `Communities::Info` (`max_values`: None, `max_size`: Some(19), added: 2494, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(224), added: 2699, mode: `MaxEncodedLen`) /// Storage: `Communities::CommunityDecisionMethod` (r:0 w:1) - /// Proof: `Communities::CommunityDecisionMethod` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Proof: `Communities::CommunityDecisionMethod` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn set_decision_method() -> Weight { // Proof Size summary in bytes: - // Measured: `115` - // Estimated: `3484` - // Minimum execution time: 24_894_000 picoseconds. - Weight::from_parts(36_775_000, 0) - .saturating_add(Weight::from_parts(0, 3484)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `157` + // Estimated: `3689` + // Minimum execution time: 39_201_000 picoseconds. + Weight::from_parts(57_754_000, 0) + .saturating_add(Weight::from_parts(0, 3689)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `Communities::Info` (r:1 w:0) /// Proof: `Communities::Info` (`max_values`: None, `max_size`: Some(19), added: 2494, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::Account` (r:1 w:2) + /// Storage: `CommunityMemberships::Account` (r:1 w:3) /// Proof: `CommunityMemberships::Account` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + /// Storage: `CommunityMemberships::Collection` (r:2 w:1) + /// Proof: `CommunityMemberships::Collection` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`) /// Storage: `CommunityMemberships::Attribute` (r:3 w:2) /// Proof: `CommunityMemberships::Attribute` (`max_values`: None, `max_size`: Some(477), added: 2952, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::ItemConfigOf` (r:2 w:2) + /// Storage: `CommunityMemberships::CollectionConfigOf` (r:2 w:0) + /// Proof: `CommunityMemberships::CollectionConfigOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `CommunityMemberships::ItemConfigOf` (r:2 w:1) /// Proof: `CommunityMemberships::ItemConfigOf` (`max_values`: None, `max_size`: Some(46), added: 2521, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::Collection` (r:2 w:2) - /// Proof: `CommunityMemberships::Collection` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`) /// Storage: `CommunityMemberships::Item` (r:2 w:2) /// Proof: `CommunityMemberships::Item` (`max_values`: None, `max_size`: Some(859), added: 3334, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::ItemMetadataOf` (r:1 w:0) - /// Proof: `CommunityMemberships::ItemMetadataOf` (`max_values`: None, `max_size`: Some(345), added: 2820, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::CollectionConfigOf` (r:1 w:0) - /// Proof: `CommunityMemberships::CollectionConfigOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) /// Storage: `CommunityMemberships::ItemPriceOf` (r:0 w:1) /// Proof: `CommunityMemberships::ItemPriceOf` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::ItemAttributesApprovalsOf` (r:0 w:1) - /// Proof: `CommunityMemberships::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(999), added: 3474, mode: `MaxEncodedLen`) /// Storage: `CommunityMemberships::PendingSwapOf` (r:0 w:1) /// Proof: `CommunityMemberships::PendingSwapOf` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) fn add_member() -> Weight { // Proof Size summary in bytes: - // Measured: `880` + // Measured: `890` // Estimated: `9846` - // Minimum execution time: 245_334_000 picoseconds. - Weight::from_parts(360_487_000, 0) + // Minimum execution time: 236_284_000 picoseconds. + Weight::from_parts(372_808_000, 0) .saturating_add(Weight::from_parts(0, 9846)) .saturating_add(T::DbWeight::get().reads(13)) - .saturating_add(T::DbWeight::get().writes(13)) + .saturating_add(T::DbWeight::get().writes(11)) } /// Storage: `Communities::Info` (r:1 w:0) /// Proof: `Communities::Info` (`max_values`: None, `max_size`: Some(19), added: 2494, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::Account` (r:1 w:1) + /// Storage: `CommunityMemberships::Account` (r:1 w:3) /// Proof: `CommunityMemberships::Account` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::Attribute` (r:4 w:3) + /// Storage: `CommunityMemberships::Attribute` (r:5 w:3) /// Proof: `CommunityMemberships::Attribute` (`max_values`: None, `max_size`: Some(477), added: 2952, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::Collection` (r:1 w:1) + /// Storage: `CommunityMemberships::Collection` (r:2 w:1) /// Proof: `CommunityMemberships::Collection` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::ItemConfigOf` (r:1 w:1) + /// Storage: `CommunityMemberships::ItemConfigOf` (r:2 w:1) /// Proof: `CommunityMemberships::ItemConfigOf` (`max_values`: None, `max_size`: Some(46), added: 2521, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::Item` (r:1 w:1) + /// Storage: `CommunityMemberships::Item` (r:2 w:2) /// Proof: `CommunityMemberships::Item` (`max_values`: None, `max_size`: Some(859), added: 3334, mode: `MaxEncodedLen`) /// Storage: `CommunityMemberships::ItemMetadataOf` (r:1 w:0) /// Proof: `CommunityMemberships::ItemMetadataOf` (`max_values`: None, `max_size`: Some(345), added: 2820, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::ItemPriceOf` (r:0 w:1) + /// Storage: `CommunityMemberships::CollectionConfigOf` (r:1 w:0) + /// Proof: `CommunityMemberships::CollectionConfigOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `CommunityMemberships::ItemPriceOf` (r:0 w:2) /// Proof: `CommunityMemberships::ItemPriceOf` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) /// Storage: `CommunityMemberships::ItemAttributesApprovalsOf` (r:0 w:1) /// Proof: `CommunityMemberships::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(999), added: 3474, mode: `MaxEncodedLen`) - /// Storage: `CommunityMemberships::PendingSwapOf` (r:0 w:1) + /// Storage: `CommunityMemberships::PendingSwapOf` (r:0 w:2) /// Proof: `CommunityMemberships::PendingSwapOf` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) fn remove_member() -> Weight { // Proof Size summary in bytes: - // Measured: `1006` - // Estimated: `12798` - // Minimum execution time: 317_361_000 picoseconds. - Weight::from_parts(465_610_000, 0) - .saturating_add(Weight::from_parts(0, 12798)) - .saturating_add(T::DbWeight::get().reads(10)) - .saturating_add(T::DbWeight::get().writes(10)) + // Measured: `1351` + // Estimated: `15750` + // Minimum execution time: 345_005_000 picoseconds. + Weight::from_parts(528_792_000, 0) + .saturating_add(Weight::from_parts(0, 15750)) + .saturating_add(T::DbWeight::get().reads(15)) + .saturating_add(T::DbWeight::get().writes(15)) } /// Storage: `Communities::Info` (r:1 w:0) /// Proof: `Communities::Info` (`max_values`: None, `max_size`: Some(19), added: 2494, mode: `MaxEncodedLen`) @@ -151,8 +151,8 @@ impl pallet_communities::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `717` // Estimated: `6894` - // Minimum execution time: 134_868_000 picoseconds. - Weight::from_parts(158_292_000, 0) + // Minimum execution time: 138_187_000 picoseconds. + Weight::from_parts(223_142_000, 0) .saturating_add(Weight::from_parts(0, 6894)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -167,8 +167,8 @@ impl pallet_communities::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `755` // Estimated: `6894` - // Minimum execution time: 198_275_000 picoseconds. - Weight::from_parts(202_790_000, 0) + // Minimum execution time: 136_925_000 picoseconds. + Weight::from_parts(180_040_000, 0) .saturating_add(Weight::from_parts(0, 6894)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -176,7 +176,7 @@ impl pallet_communities::WeightInfo for WeightInfo { /// Storage: `CommunityMemberships::Account` (r:1 w:0) /// Proof: `CommunityMemberships::Account` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) /// Storage: `Communities::CommunityDecisionMethod` (r:1 w:0) - /// Proof: `Communities::CommunityDecisionMethod` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Proof: `Communities::CommunityDecisionMethod` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) /// Storage: `Communities::CommunityVotes` (r:1 w:1) /// Proof: `Communities::CommunityVotes` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) /// Storage: `CommunityReferenda::ReferendumInfoFor` (r:1 w:1) @@ -193,10 +193,10 @@ impl pallet_communities::WeightInfo for WeightInfo { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn vote() -> Weight { // Proof Size summary in bytes: - // Measured: `3035` + // Measured: `3051` // Estimated: `6148` - // Minimum execution time: 393_947_000 picoseconds. - Weight::from_parts(476_186_000, 0) + // Minimum execution time: 364_175_000 picoseconds. + Weight::from_parts(502_488_000, 0) .saturating_add(Weight::from_parts(0, 6148)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(6)) @@ -204,7 +204,7 @@ impl pallet_communities::WeightInfo for WeightInfo { /// Storage: `CommunityMemberships::Account` (r:1 w:0) /// Proof: `CommunityMemberships::Account` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) /// Storage: `Communities::CommunityDecisionMethod` (r:1 w:0) - /// Proof: `Communities::CommunityDecisionMethod` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Proof: `Communities::CommunityDecisionMethod` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) /// Storage: `CommunityReferenda::ReferendumInfoFor` (r:1 w:1) /// Proof: `CommunityReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`) /// Storage: `Communities::CommunityVotes` (r:1 w:1) @@ -215,8 +215,8 @@ impl pallet_communities::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `2898` // Estimated: `4365` - // Minimum execution time: 178_506_000 picoseconds. - Weight::from_parts(241_482_000, 0) + // Minimum execution time: 219_187_000 picoseconds. + Weight::from_parts(238_003_000, 0) .saturating_add(Weight::from_parts(0, 4365)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -235,8 +235,8 @@ impl pallet_communities::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1082` // Estimated: `8123` - // Minimum execution time: 164_095_000 picoseconds. - Weight::from_parts(219_358_000, 0) + // Minimum execution time: 162_356_000 picoseconds. + Weight::from_parts(224_360_000, 0) .saturating_add(Weight::from_parts(0, 8123)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(3)) @@ -247,8 +247,8 @@ impl pallet_communities::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `115` // Estimated: `3484` - // Minimum execution time: 33_857_000 picoseconds. - Weight::from_parts(47_890_000, 0) + // Minimum execution time: 28_566_000 picoseconds. + Weight::from_parts(37_927_000, 0) .saturating_add(Weight::from_parts(0, 3484)) .saturating_add(T::DbWeight::get().reads(1)) } diff --git a/runtime/kreivo/src/weights/pallet_communities_manager.rs b/runtime/kreivo/src/weights/pallet_communities_manager.rs index c684d75d..ff44634f 100644 --- a/runtime/kreivo/src/weights/pallet_communities_manager.rs +++ b/runtime/kreivo/src/weights/pallet_communities_manager.rs @@ -1,8 +1,8 @@ //! Autogenerated weights for `pallet_communities_manager` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2024-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-06-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `virto-builder`, CPU: `Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("kreivo-local")`, DB CACHE: 1024 @@ -67,8 +67,8 @@ impl pallet_communities_manager::WeightInfo for WeightI // Proof Size summary in bytes: // Measured: `278` // Estimated: `132561` - // Minimum execution time: 172_021_000 picoseconds. - Weight::from_parts(181_851_000, 0) + // Minimum execution time: 158_154_000 picoseconds. + Weight::from_parts(164_491_000, 0) .saturating_add(Weight::from_parts(0, 132561)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(14)) @@ -90,11 +90,11 @@ impl pallet_communities_manager::WeightInfo for WeightI // Proof Size summary in bytes: // Measured: `368` // Estimated: `3547 + q * (3334 ±0)` - // Minimum execution time: 125_757_000 picoseconds. - Weight::from_parts(127_470_000, 0) + // Minimum execution time: 113_569_000 picoseconds. + Weight::from_parts(117_430_000, 0) .saturating_add(Weight::from_parts(0, 3547)) - // Standard Error: 322_917 - .saturating_add(Weight::from_parts(87_141_783, 0).saturating_mul(q.into())) + // Standard Error: 273_329 + .saturating_add(Weight::from_parts(84_131_631, 0).saturating_mul(q.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(q.into()))) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtime/kreivo/src/weights/pallet_payments.rs b/runtime/kreivo/src/weights/pallet_payments.rs index b5a2abc3..8339f09d 100644 --- a/runtime/kreivo/src/weights/pallet_payments.rs +++ b/runtime/kreivo/src/weights/pallet_payments.rs @@ -1,8 +1,8 @@ //! Autogenerated weights for `pallet_payments` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2024-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-06-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `virto-builder`, CPU: `Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("kreivo-local")`, DB CACHE: 1024 @@ -50,11 +50,11 @@ impl pallet_payments::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `544` // Estimated: `8518` - // Minimum execution time: 165_087_000 picoseconds. - Weight::from_parts(251_421_235, 0) + // Minimum execution time: 153_551_000 picoseconds. + Weight::from_parts(221_623_545, 0) .saturating_add(Weight::from_parts(0, 8518)) - // Standard Error: 57_252 - .saturating_add(Weight::from_parts(251_220, 0).saturating_mul(q.into())) + // Standard Error: 73_987 + .saturating_add(Weight::from_parts(539_868, 0).saturating_mul(q.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -72,8 +72,8 @@ impl pallet_payments::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1153` // Estimated: `8859` - // Minimum execution time: 305_791_000 picoseconds. - Weight::from_parts(434_793_000, 0) + // Minimum execution time: 360_293_000 picoseconds. + Weight::from_parts(392_162_000, 0) .saturating_add(Weight::from_parts(0, 8859)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(8)) @@ -92,8 +92,8 @@ impl pallet_payments::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1120` // Estimated: `8518` - // Minimum execution time: 218_025_000 picoseconds. - Weight::from_parts(290_552_000, 0) + // Minimum execution time: 286_540_000 picoseconds. + Weight::from_parts(309_037_000, 0) .saturating_add(Weight::from_parts(0, 8518)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(7)) @@ -108,8 +108,8 @@ impl pallet_payments::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `377` // Estimated: `159279` - // Minimum execution time: 90_236_000 picoseconds. - Weight::from_parts(112_756_000, 0) + // Minimum execution time: 71_687_000 picoseconds. + Weight::from_parts(80_807_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -132,8 +132,8 @@ impl pallet_payments::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1221` // Estimated: `159279` - // Minimum execution time: 189_734_000 picoseconds. - Weight::from_parts(243_481_000, 0) + // Minimum execution time: 136_764_000 picoseconds. + Weight::from_parts(202_768_000, 0) .saturating_add(Weight::from_parts(0, 159279)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) @@ -154,8 +154,8 @@ impl pallet_payments::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1223` // Estimated: `8859` - // Minimum execution time: 369_655_000 picoseconds. - Weight::from_parts(514_167_000, 0) + // Minimum execution time: 374_112_000 picoseconds. + Weight::from_parts(675_111_000, 0) .saturating_add(Weight::from_parts(0, 8859)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(8)) @@ -170,8 +170,8 @@ impl pallet_payments::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `391` // Estimated: `8518` - // Minimum execution time: 42_486_000 picoseconds. - Weight::from_parts(53_927_000, 0) + // Minimum execution time: 44_338_000 picoseconds. + Weight::from_parts(62_431_000, 0) .saturating_add(Weight::from_parts(0, 8518)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -190,8 +190,8 @@ impl pallet_payments::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1014` // Estimated: `8859` - // Minimum execution time: 237_509_000 picoseconds. - Weight::from_parts(373_059_000, 0) + // Minimum execution time: 221_343_000 picoseconds. + Weight::from_parts(262_563_000, 0) .saturating_add(Weight::from_parts(0, 8859)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) diff --git a/runtime/kreivo/src/weights/xcm/mod.rs b/runtime/kreivo/src/weights/xcm/mod.rs index 1a3ae484..35112709 100644 --- a/runtime/kreivo/src/weights/xcm/mod.rs +++ b/runtime/kreivo/src/weights/xcm/mod.rs @@ -24,13 +24,13 @@ use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; use sp_std::prelude::*; use xcm::{latest::prelude::*, DoubleEncoded}; -trait WeighMultiAssets { +trait WeighAssets { fn weigh_multi_assets(&self, weight: Weight) -> Weight; } const MAX_ASSETS: u64 = 100; -impl WeighMultiAssets for MultiAssetFilter { +impl WeighAssets for AssetFilter { fn weigh_multi_assets(&self, weight: Weight) -> Weight { match self { Self::Definite(assets) => weight.saturating_mul(assets.inner().iter().count() as u64), @@ -49,7 +49,7 @@ impl WeighMultiAssets for MultiAssetFilter { } } -impl WeighMultiAssets for MultiAssets { +impl WeighAssets for Assets { fn weigh_multi_assets(&self, weight: Weight) -> Weight { weight.saturating_mul(self.inner().iter().count() as u64) } @@ -57,27 +57,27 @@ impl WeighMultiAssets for MultiAssets { pub struct KreivoXcmWeight(core::marker::PhantomData); impl XcmWeightInfo for KreivoXcmWeight { - fn withdraw_asset(assets: &MultiAssets) -> Weight { + fn withdraw_asset(assets: &Assets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) } - fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { + fn reserve_asset_deposited(_assets: &Assets) -> Weight { Weight::from_parts(10_000_u64, 0) } - fn receive_teleported_asset(assets: &MultiAssets) -> Weight { + fn receive_teleported_asset(assets: &Assets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) } fn query_response( _query_id: &u64, _response: &Response, _max_weight: &Weight, - _querier: &Option, + _querier: &Option, ) -> Weight { XcmGeneric::::query_response() } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { + fn transfer_asset(assets: &Assets, _dest: &Location) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) } - fn transfer_reserve_asset(assets: &MultiAssets, _dest: &MultiLocation, _xcm: &Xcm<()>) -> Weight { + fn transfer_reserve_asset(assets: &Assets, _dest: &Location, _xcm: &Xcm<()>) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) } fn transact(_origin_type: &OriginKind, _require_weight_at_most: &Weight, _call: &DoubleEncoded) -> Weight { @@ -98,35 +98,35 @@ impl XcmWeightInfo for KreivoXcmWeight { fn clear_origin() -> Weight { XcmGeneric::::clear_origin() } - fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + fn descend_origin(_who: &Junctions) -> Weight { XcmGeneric::::descend_origin() } fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { XcmGeneric::::report_error() } - fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { + fn deposit_asset(assets: &AssetFilter, _dest: &Location) -> Weight { // Hardcoded till the XCM pallet is fixed let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); hardcoded_weight.min(weight) } - fn deposit_reserve_asset(assets: &MultiAssetFilter, _dest: &MultiLocation, _xcm: &Xcm<()>) -> Weight { + fn deposit_reserve_asset(assets: &AssetFilter, _dest: &Location, _xcm: &Xcm<()>) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) } - fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + fn exchange_asset(_give: &AssetFilter, _receive: &Assets, _maximal: &bool) -> Weight { Weight::MAX } - fn initiate_reserve_withdraw(assets: &MultiAssetFilter, _reserve: &MultiLocation, _xcm: &Xcm<()>) -> Weight { + fn initiate_reserve_withdraw(assets: &AssetFilter, _reserve: &Location, _xcm: &Xcm<()>) -> Weight { assets.weigh_multi_assets(XcmGeneric::::initiate_reserve_withdraw()) } - fn initiate_teleport(assets: &MultiAssetFilter, _dest: &MultiLocation, _xcm: &Xcm<()>) -> Weight { + fn initiate_teleport(assets: &AssetFilter, _dest: &Location, _xcm: &Xcm<()>) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()) } - fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + fn report_holding(_response_info: &QueryResponseInfo, _assets: &AssetFilter) -> Weight { XcmGeneric::::report_holding() } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + fn buy_execution(_fees: &Asset, _weight_limit: &WeightLimit) -> Weight { XcmGeneric::::buy_execution() } fn refund_surplus() -> Weight { @@ -141,7 +141,7 @@ impl XcmWeightInfo for KreivoXcmWeight { fn clear_error() -> Weight { XcmGeneric::::clear_error() } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + fn claim_asset(_assets: &Assets, _ticket: &Location) -> Weight { XcmGeneric::::claim_asset() } fn trap(_code: &u64) -> Weight { @@ -153,13 +153,13 @@ impl XcmWeightInfo for KreivoXcmWeight { fn unsubscribe_version() -> Weight { XcmGeneric::::unsubscribe_version() } - fn burn_asset(assets: &MultiAssets) -> Weight { + fn burn_asset(assets: &Assets) -> Weight { assets.weigh_multi_assets(XcmGeneric::::burn_asset()) } - fn expect_asset(assets: &MultiAssets) -> Weight { + fn expect_asset(assets: &Assets) -> Weight { assets.weigh_multi_assets(XcmGeneric::::expect_asset()) } - fn expect_origin(_origin: &Option) -> Weight { + fn expect_origin(_origin: &Option) -> Weight { XcmGeneric::::expect_origin() } fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { @@ -192,16 +192,16 @@ impl XcmWeightInfo for KreivoXcmWeight { fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { Weight::MAX } - fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn lock_asset(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn unlock_asset(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn note_unlockable(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn request_unlock(_: &Asset, _: &Location) -> Weight { Weight::MAX } fn set_fees_mode(_: &bool) -> Weight { @@ -213,11 +213,11 @@ impl XcmWeightInfo for KreivoXcmWeight { fn clear_topic() -> Weight { XcmGeneric::::clear_topic() } - fn alias_origin(_: &MultiLocation) -> Weight { + fn alias_origin(_: &Location) -> Weight { // XCM Executor does not currently support alias origin operations Weight::MAX } - fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } } diff --git a/runtime/kreivo/src/xcm_config.rs b/runtime/kreivo/src/xcm_config.rs index f40785b0..a429828d 100644 --- a/runtime/kreivo/src/xcm_config.rs +++ b/runtime/kreivo/src/xcm_config.rs @@ -1,30 +1,31 @@ use super::{ AccountId, AllPalletsWithSystem, Assets, Balance, Balances, FungibleAssetLocation, KreivoAssetsInstance, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, Treasury, - WeightToFee, XcmpQueue, + TreasuryAccount, WeightToFee, XcmpQueue, }; use virto_common::AsFungibleAssetLocation; -use crate::constants::locations::STATEMINE_PARA_ID; +use crate::constants::locations::ASSET_HUB_ID; use frame_support::{ - match_types, parameter_types, - traits::{ConstU32, ContainsPair, Everything, Get, Nothing, PalletInfoAccess}, + parameter_types, + traits::{ + tokens::imbalance::ResolveTo, ConstU32, Contains, ContainsPair, Everything, Get, Nothing, PalletInfoAccess, + }, weights::Weight, }; use frame_system::EnsureRoot; use pallet_xcm::XcmPassthrough; use parachains_common::xcm_config::AssetFeeAsExistentialDepositMultiplier; use polkadot_parachain_primitives::primitives::Sibling; -use runtime_common::impls::DealWithFees; use sp_runtime::traits::ConvertInto; use sp_std::marker::PhantomData; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, - CurrencyAdapter, EnsureXcmOrigin, FungiblesAdapter, IsConcrete, LocalMint, MintLocation, NativeAsset, - ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, StartsWith, TakeWeightCredit, - UsingComponents, WeightInfoBounds, WithComputedOrigin, + EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, IsConcrete, LocalMint, + MintLocation, NativeAsset, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, + StartsWith, TakeWeightCredit, UsingComponents, WeightInfoBounds, WithComputedOrigin, }; use xcm_executor::traits::JustTry; use xcm_executor::XcmExecutor; @@ -33,21 +34,21 @@ mod communities; use communities::*; parameter_types! { - pub const RelayLocation: MultiLocation = MultiLocation::parent(); + pub const RelayLocation: Location = Location::parent(); pub const RelayNetwork: Option = Some(NetworkId::Kusama); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub CheckAccount: (AccountId, MintLocation) = (PolkadotXcm::check_account(), MintLocation::Local); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); - pub AssetsPalletLocation: MultiLocation = + pub AssetsPalletLocation: Location = PalletInstance(::index() as u8).into(); - pub UniversalLocation: InteriorMultiLocation = ( + pub UniversalLocation: InteriorLocation = [ GlobalConsensus(NetworkId::Kusama), Parachain(ParachainInfo::parachain_id().into()), - ).into(); + ].into(); } -/// Type for specifying how a `MultiLocation` can be converted into an +/// Type for specifying how a `Location` can be converted into an /// `AccountId`. This is used when determining ownership of accounts for asset /// transacting and when attempting to use XCM `Transact` in order to determine /// the dispatch Origin. @@ -64,7 +65,7 @@ pub type LocationToAccountId = ( AccountId32Aliases, ); -pub type MultiLocationConvertedConcreteId = xcm_builder::MatchedConvertedConcreteId< +pub type LocationConvertedConcreteId = xcm_builder::MatchedConvertedConcreteId< FungibleAssetLocation, Balance, StartsWith, @@ -79,7 +80,7 @@ pub type FungiblesTransactor = FungiblesAdapter< // Use this currency when it is a registered fungible asset matching the given location or name // Assets not found in AssetRegistry will not be used ConvertedConcreteId, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -91,12 +92,12 @@ pub type FungiblesTransactor = FungiblesAdapter< >; /// Means for transacting the native currency 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: IsConcrete, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -134,11 +135,21 @@ parameter_types! { pub XcmAssetFeesReceiver: AccountId = Treasury::account_id(); } -match_types! { - pub type ParentOrParentsExecutivePlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } - }; +pub struct ParentOrParentsExecutivePlurality; +impl Contains for ParentOrParentsExecutivePlurality { + fn contains(t: &Location) -> bool { + matches!( + t.unpack(), + (1, []) + | ( + 1, + [Plurality { + id: BodyId::Executive, + .. + }], + ), + ) + } } pub type Barrier = ( @@ -154,14 +165,14 @@ pub type Barrier = ( >, ); -pub type AssetTransactors = (CurrencyTransactor, FungiblesTransactor); +pub type AssetTransactors = (FungibleTransactor, FungiblesTransactor); parameter_types! { - pub AssetHubLocation: MultiLocation = MultiLocation::new(1, X1(Parachain(STATEMINE_PARA_ID))); + pub AssetHubLocation: Location = Location::new(1, [Junction::Parachain(ASSET_HUB_ID)]); } //- From PR https://github.com/paritytech/cumulus/pull/936 -fn matches_prefix(prefix: &MultiLocation, loc: &MultiLocation) -> bool { +fn matches_prefix(prefix: &Location, loc: &Location) -> bool { prefix.parent_count() == loc.parent_count() && loc.len() >= prefix.len() && prefix @@ -171,18 +182,10 @@ fn matches_prefix(prefix: &MultiLocation, loc: &MultiLocation) -> bool { .all(|(prefix_junction, junction)| prefix_junction == junction) } pub struct ReserveAssetsFrom(PhantomData); -impl> ContainsPair for ReserveAssetsFrom { - fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool { - let prefix = T::get(); - log::trace!(target: "xcm::AssetsFrom", "prefix: {:?}, origin: {:?}", prefix, origin); - &prefix == origin - && match asset { - MultiAsset { - id: xcm::latest::AssetId::Concrete(asset_loc), - fun: Fungible(_a), - } => matches_prefix(&prefix, asset_loc), - _ => false, - } +impl> ContainsPair for ReserveAssetsFrom { + fn contains(asset: &Asset, origin: &Location) -> bool { + log::trace!(target: "xcm::AssetsFrom", "prefix: {:?}, origin: {:?}", Prefix::get(), origin); + &Prefix::get() == origin && matches_prefix(&Prefix::get(), &asset.id.0) } } @@ -197,12 +200,12 @@ pub type Traders = ( cumulus_primitives_utility::TakeFirstAssetTrader< AccountId, AssetFeeAsExistentialDepositMultiplierFeeCharger, - MultiLocationConvertedConcreteId, + LocationConvertedConcreteId, Assets, cumulus_primitives_utility::XcmFeesTo32ByteAccount, >, // Everything else - UsingComponents>, + UsingComponents>, ); pub type Reserves = (NativeAsset, ReserveAssetsFrom); @@ -215,7 +218,8 @@ impl xcm_executor::Config for XcmConfig { type AssetTransactor = AssetTransactors; type OriginConverter = XcmOriginToTransactDispatchOrigin; type IsReserve = Reserves; - type IsTeleporter = (); // Teleporting is disabled. + // Teleporting is disabled. + type IsTeleporter = (); type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = WeightInfoBounds, RuntimeCall, MaxInstructions>; @@ -234,6 +238,11 @@ impl xcm_executor::Config for XcmConfig { type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; type Aliasers = Nothing; + type TransactionalProcessor = FrameTransactionalProcessor; + type HrmpNewChannelOpenRequestHandler = (); + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); + type XcmRecorder = (); } /// Only communities are allowed to dispatch xcm messages diff --git a/runtime/kreivo/src/xcm_config/communities.rs b/runtime/kreivo/src/xcm_config/communities.rs index a5f7c48b..7410bc84 100644 --- a/runtime/kreivo/src/xcm_config/communities.rs +++ b/runtime/kreivo/src/xcm_config/communities.rs @@ -8,19 +8,19 @@ use sp_runtime::{ traits::{AccountIdConversion, TryConvert}, SaturatedConversion, }; -use xcm::v3::{BodyId, Junction::Plurality}; +use xcm::latest::{BodyId, Junction, Junction::Plurality, Location}; use xcm_executor::traits::ConvertLocation; pub struct PluralityConvertsToCommunityAccountId; impl ConvertLocation for PluralityConvertsToCommunityAccountId { - fn convert_location(location: &MultiLocation) -> Option { - match location { - MultiLocation { - parents: 0, - interior: X1(Plurality { + fn convert_location(location: &Location) -> Option { + match location.unpack() { + ( + 0, + [Plurality { id: BodyId::Index(id), .. - }), - } => Some(Communities::community_account(&(*id).saturated_into())), + }], + ) => Some(Communities::community_account(&(*id).saturated_into())), _ => None, } } @@ -30,16 +30,10 @@ pub struct AccountId32FromRelay(PhantomData<(Network, Accoun impl>, AccountId: From<[u8; 32]> + Into<[u8; 32]> + Clone> ConvertLocation for AccountId32FromRelay { - fn convert_location(location: &MultiLocation) -> Option { - let id = match location { - MultiLocation { - parents: 1, - interior: X1(AccountId32 { id, network: None }), - } => id, - MultiLocation { - parents: 1, - interior: X1(AccountId32 { id, network }), - } if *network == Network::get() => id, + fn convert_location(location: &Location) -> Option { + let id = match location.unpack() { + (1, [AccountId32 { id, network: None }]) => id, + (1, [AccountId32 { id, network }]) if *network == Network::get() => id, _ => return None, }; @@ -48,13 +42,13 @@ impl>, AccountId: From<[u8; 32]> + Into<[u8; 32]> } pub struct SignedByCommunityToPlurality(PhantomData); -impl TryConvert for SignedByCommunityToPlurality +impl TryConvert for SignedByCommunityToPlurality where OuterOrigin: OriginTrait> + Clone, T: pallet_communities::Config, - xcm::v3::Junction: TryFrom>, + Junction: TryFrom>, { - fn try_convert(o: OuterOrigin) -> Result { + fn try_convert(o: OuterOrigin) -> Result { let Some(account_id) = o.clone().into_signer() else { return Err(o.clone()); }; @@ -62,7 +56,7 @@ where return Err(o.clone()); }; let origin = pallet_communities::Origin::::new(community_id); - let j = xcm::v3::Junction::try_from(origin).map_err(|_| o)?; + let j = Junction::try_from(origin).map_err(|_| o)?; Ok(j.into()) } } diff --git a/runtime/kusama-runtime-constants/Cargo.toml b/runtime/kusama-runtime-constants/Cargo.toml index 741456d0..8b7e1690 100644 --- a/runtime/kusama-runtime-constants/Cargo.toml +++ b/runtime/kusama-runtime-constants/Cargo.toml @@ -16,7 +16,7 @@ sp-runtime = { workspace = true } sp-weights = { workspace = true } sp-core = { workspace = true } -xcm = { workspace = true } +xcm-builder = { workspace = true } [features] default = [ "std" ] @@ -27,5 +27,5 @@ std = [ "sp-core/std", "sp-runtime/std", "sp-weights/std", - "xcm/std" + "xcm-builder/std" ] diff --git a/runtime/kusama-runtime-constants/src/lib.rs b/runtime/kusama-runtime-constants/src/lib.rs index ac51c5c7..243e34fa 100644 --- a/runtime/kusama-runtime-constants/src/lib.rs +++ b/runtime/kusama-runtime-constants/src/lib.rs @@ -98,7 +98,8 @@ pub mod fee { /// System Parachains. pub mod system_parachain { - use xcm::latest::prelude::*; + use polkadot_primitives::Id; + use xcm_builder::IsChildSystemParachain; /// Asset Hub parachain ID. pub const ASSET_HUB_ID: u32 = 1000; @@ -106,20 +107,12 @@ pub mod system_parachain { pub const ENCOINTER_ID: u32 = 1001; /// Bridge Hub parachain ID. pub const BRIDGE_HUB_ID: u32 = 1002; + /// People parachain ID. + pub const PEOPLE_ID: u32 = 1004; + /// Brokerage parachain ID. + pub const CORETIME_ID: u32 = 1005; - frame_support::match_types! { - // System parachains from Kusama point of view. - pub type SystemParachains: impl Contains = { - MultiLocation { - parents: 0, - interior: X1(Parachain( - ASSET_HUB_ID | - ENCOINTER_ID | - BRIDGE_HUB_ID - )), - } - }; - } + pub type SystemParachains = IsChildSystemParachain; } /// Kusama Treasury pallet instance. diff --git a/virto-xcm-emulator/src/tests/reserve_transfer.rs b/virto-xcm-emulator/src/tests/reserve_transfer.rs index 959a3abb..914ff0a0 100644 --- a/virto-xcm-emulator/src/tests/reserve_transfer.rs +++ b/virto-xcm-emulator/src/tests/reserve_transfer.rs @@ -26,7 +26,7 @@ fn reserve_transfer_native_token_from_relay_chain_to_kreivo_parachain() { id: KreivoReceiver::get().into(), } .into(); - let native_assets: VersionedMultiAssets = (Here, amount).into(); + let native_assets: VersionedAssets = (Here, amount).into(); let fee_asset_item = 0; let weight_limit = WeightLimit::Unlimited; @@ -120,7 +120,7 @@ fn reserve_transfer_asset_from_statemine_parachain_to_kreivo_parachain() { id: KreivoReceiver::get().into(), } .into(); - let asset_to_transfer: VersionedMultiAssets = + let asset_to_transfer: VersionedAssets = (X2(PalletInstance(50), GeneralIndex(ASSET_ID as u128)), AMOUNT).into(); let fee_asset_item = 0; let weight_limit = WeightLimit::Unlimited; diff --git a/zombienet/kreivo-kusama-local.toml b/zombienet/kreivo-kusama-local.toml index 30d4f014..ad310113 100644 --- a/zombienet/kreivo-kusama-local.toml +++ b/zombienet/kreivo-kusama-local.toml @@ -9,9 +9,7 @@ default_command = "./bin/polkadot" name = "alice" validator = true ws_port = 10000 - extra_args = [ - "--force-authoring -lparachain=debug --unsafe-rpc-external --rpc-cors=all", - ] + extra_args = ["--force-authoring -lparachain=debug --unsafe-rpc-external --rpc-cors=all",] [[relaychain.nodes]] name = "bob" @@ -38,12 +36,10 @@ chain = "kreivo-local" name = "kreivo1" command = "./target/release/virto-node" ws_port = 20000 - validator = true args = ["--force-authoring --log=xcm=trace,parachain=trace"] [[parachains.collators]] name = "kreivo2" command = "./target/release/virto-node" ws_port = 21000 - validator = true args = ["--force-authoring --log=xcm=trace,parachain=trace"] \ No newline at end of file diff --git a/zombienet/kreivo-rococo-local.toml b/zombienet/kreivo-rococo-local.toml index 3bc906f6..43c4cd59 100644 --- a/zombienet/kreivo-rococo-local.toml +++ b/zombienet/kreivo-rococo-local.toml @@ -36,10 +36,10 @@ chain = "kreivo-rococo-local" name = "kreivo1" command = "./target/release/virto-node" ws_port = 20000 - args = ["--force-authoring --log=xcm=trace"] + args = ["--force-authoring --log=xcm=trace,parachain=trace"] [[parachains.collators]] name = "kreivo2" command = "./target/release/virto-node" ws_port = 21000 - args = ["--force-authoring --log=xcm=trace"] \ No newline at end of file + args = ["--force-authoring --log=xcm=trace,parachain=trace"] \ No newline at end of file