From 27ac12f3db57b3306337b17a7e7cb2ad255a3f57 Mon Sep 17 00:00:00 2001 From: Louis Merlin Date: Tue, 10 Feb 2026 10:28:36 +0100 Subject: [PATCH 1/6] Upgrade runtimes to v2.0.6, fix bugs and improve invariants --- runtimes/Cargo.lock | 631 +++++++++++++------- runtimes/Cargo.toml | 38 +- runtimes/asset-hub-kusama/src/main.rs | 21 +- runtimes/asset-hub-polkadot/src/main.rs | 12 +- runtimes/coretime-kusama/Cargo.toml | 5 +- runtimes/coretime-kusama/src/bin/seedgen.rs | 127 ++++ runtimes/coretime-kusama/src/main.rs | 19 +- runtimes/kusama/Cargo.toml | 5 +- runtimes/kusama/src/bin/seedgen.rs | 127 ++++ runtimes/kusama/src/main.rs | 15 +- runtimes/polkadot/Cargo.toml | 5 +- runtimes/polkadot/src/bin/seedgen.rs | 127 ++++ runtimes/polkadot/src/main.rs | 15 +- 13 files changed, 867 insertions(+), 280 deletions(-) create mode 100644 runtimes/coretime-kusama/src/bin/seedgen.rs create mode 100644 runtimes/kusama/src/bin/seedgen.rs create mode 100644 runtimes/polkadot/src/bin/seedgen.rs diff --git a/runtimes/Cargo.lock b/runtimes/Cargo.lock index ce63c4a..e20a1a1 100644 --- a/runtimes/Cargo.lock +++ b/runtimes/Cargo.lock @@ -67,9 +67,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-consensus" -version = "1.4.1" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ea09cffa9ad82f6404e6ab415ea0c41a7674c0f2e2e689cb8683f772b5940d" +checksum = "4e4ff99651d46cef43767b5e8262ea228cd05287409ccb0c947cc25e70a952f9" dependencies = [ "alloy-eips", "alloy-primitives", @@ -89,14 +89,14 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "alloy-core" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d4087016b0896051dd3d03e0bedda2f4d4d1689af8addc8450288c63a9e5f68" +checksum = "dcfbc46fa201350bf859add798d818bbe68b84882a8af832e4433791d28a975d" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -107,9 +107,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "369f5707b958927176265e8a58627fc6195e5dfa5c55689396e68b241b3a72e6" +checksum = "14ff5ee5f27aa305bda825c735f686ad71bb65508158f059f513895abe69b8c3" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -131,7 +131,7 @@ dependencies = [ "alloy-rlp", "crc", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -157,18 +157,31 @@ dependencies = [ "borsh", "k256", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-eip7928" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3231de68d5d6e75332b7489cfcc7f4dfabeba94d990a10e4b923af0e6623540" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "borsh", + "serde", ] [[package]] name = "alloy-eips" -version = "1.4.1" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "691fed81bbafefae0f5a6cedd837ebb3fade46e7d91c5b67a463af12ecf5b11a" +checksum = "def1626eea28d48c6cc0a6f16f34d4af0001906e4f889df6c660b39c86fd044d" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", + "alloy-eip7928", "alloy-primitives", "alloy-rlp", "alloy-serde", @@ -180,14 +193,14 @@ dependencies = [ "serde", "serde_with", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "alloy-json-abi" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84e3cf01219c966f95a460c95f1d4c30e12f6c18150c21a30b768af2a2a29142" +checksum = "8708475665cc00e081c085886e68eada2f64cfa08fc668213a9231655093d4de" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -197,9 +210,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6a0fb18dd5fb43ec5f0f6a20be1ce0287c79825827de5744afaa6c957737c33" +checksum = "3b88cf92ed20685979ed1d8472422f0c6c2d010cec77caf63aaa7669cc1a7bc2" dependencies = [ "alloy-rlp", "bytes", @@ -220,14 +233,13 @@ dependencies = [ "rustc-hash 2.1.1", "serde", "sha3", - "tiny-keccak", ] [[package]] name = "alloy-rlp" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f70d83b765fdc080dbcd4f4db70d8d23fe4761f2f02ebfa9146b833900634b4" +checksum = "e93e50f64a77ad9c5470bf2ad0ca02f228da70c792a8f06634801e202579f35e" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -236,9 +248,9 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" +checksum = "ce8849c74c9ca0f5a03da1c865e3eb6f768df816e67dd3721a398a8a7e398011" dependencies = [ "proc-macro2", "quote", @@ -247,9 +259,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.4.1" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a755a3cc0297683c2879bbfe2ff22778f35068f07444f0b52b5b87570142b6" +checksum = "9e6d631f8b975229361d8af7b2c749af31c73b3cf1352f90e144ddb06227105e" dependencies = [ "alloy-primitives", "serde", @@ -258,9 +270,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09eb18ce0df92b4277291bbaa0ed70545d78b02948df756bbd3d6214bf39a218" +checksum = "f5fa1ca7e617c634d2bd9fa71f9ec8e47c07106e248b9fcbd3eaddc13cabd625" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -272,9 +284,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95d9fa2daf21f59aa546d549943f10b5cce1ae59986774019fbedae834ffe01b" +checksum = "27c00c0c3a75150a9dc7c8c679ca21853a137888b4e1c5569f92d7e2b15b5102" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -283,16 +295,16 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", + "sha3", "syn 2.0.114", "syn-solidity", - "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9396007fe69c26ee118a19f4dee1f5d1d6be186ea75b3881adf16d87f8444686" +checksum = "297db260eb4d67c105f68d6ba11b8874eec681caec5505eab8fbebee97f790bc" dependencies = [ "const-hex", "dunce", @@ -306,9 +318,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af67a0b0dcebe14244fc92002cd8d96ecbf65db4639d479f5fcd5805755a4c27" +checksum = "94b91b13181d3bcd23680fd29d7bc861d1f33fbe90fdd0af67162434aeba902d" dependencies = [ "serde", "winnow", @@ -316,9 +328,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09aeea64f09a7483bdcd4193634c7e5cf9fd7775ee767585270cd8ce2d69dc95" +checksum = "fc442cc2a75207b708d481314098a0f8b6f7b58e3148dd8d8cc7407b0d6f9385" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -328,9 +340,9 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428aa0f0e0658ff091f8f667c406e034b431cb10abd39de4f507520968acc499" +checksum = "4d7fd448ab0a017de542de1dcca7a58e7019fe0e7a34ed3f9543ebddf6aceffa" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -339,14 +351,15 @@ dependencies = [ "nybbles", "serde", "smallvec", + "thiserror 2.0.18", "tracing", ] [[package]] name = "alloy-tx-macros" -version = "1.4.1" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17272de4df6b8b59889b264f0306eba47a69f23f57f1c08f1366a4617b48c30" +checksum = "397406cf04b11ca2a48e6f81804c70af3f40a36abf648e11dc7416043eb0834d" dependencies = [ "darling 0.21.3", "proc-macro2", @@ -371,9 +384,9 @@ checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" [[package]] name = "approx" @@ -811,7 +824,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27d55334c98d756b32dcceb60248647ab34f027690f87f9a362fd292676ee927" dependencies = [ "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -874,7 +887,7 @@ dependencies = [ [[package]] name = "asset-hub-kusama-runtime" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "assets-common", "bp-asset-hub-kusama", @@ -1032,7 +1045,7 @@ dependencies = [ [[package]] name = "asset-hub-polkadot-runtime" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "assets-common", "bp-asset-hub-kusama", @@ -1225,9 +1238,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "az" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" +checksum = "be5eb007b7cacc6c660343e96f650fedf4b5a77512399eb952ca6642cf8d13f7" [[package]] name = "backtrace" @@ -1482,7 +1495,7 @@ dependencies = [ [[package]] name = "bp-asset-hub-kusama" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "bp-xcm-bridge-hub-router", "frame-support", @@ -1496,7 +1509,7 @@ dependencies = [ [[package]] name = "bp-asset-hub-polkadot" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "bp-xcm-bridge-hub-router", "frame-support", @@ -1527,7 +1540,7 @@ dependencies = [ [[package]] name = "bp-bridge-hub-kusama" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "bp-bridge-hub-cumulus", "bp-header-chain", @@ -1546,7 +1559,7 @@ dependencies = [ [[package]] name = "bp-bridge-hub-polkadot" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "bp-bridge-hub-cumulus", "bp-header-chain", @@ -1724,9 +1737,9 @@ checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "bytemuck" -version = "1.24.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" [[package]] name = "byteorder" @@ -1736,9 +1749,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" dependencies = [ "serde", ] @@ -1792,9 +1805,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.52" +version = "1.2.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3" +checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" dependencies = [ "find-msvc-tools", "jobserver", @@ -1825,9 +1838,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" dependencies = [ "iana-time-zone", "num-traits", @@ -1848,18 +1861,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.54" +version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" +checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.54" +version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" +checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238" dependencies = [ "anstyle", "clap_lex", @@ -1886,7 +1899,7 @@ dependencies = [ [[package]] name = "collectives-polkadot-runtime" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", @@ -1964,7 +1977,7 @@ dependencies = [ [[package]] name = "collectives-polkadot-runtime-constants" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" [[package]] name = "common-path" @@ -2089,6 +2102,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-test-relay-sproof-builder", + "frame-metadata", "frame-support", "frame-system", "pallet-balances", @@ -2100,6 +2114,7 @@ dependencies = [ "pallet-xcm", "parachains-common", "parity-scale-codec", + "scale-info", "sp-application-crypto", "sp-consensus-aura", "sp-runtime", @@ -2111,7 +2126,7 @@ dependencies = [ [[package]] name = "coretime-kusama-runtime" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", @@ -2180,7 +2195,7 @@ dependencies = [ [[package]] name = "coretime-polkadot-runtime" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", @@ -2385,9 +2400,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" -version = "25.0.0" +version = "25.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa428af04de512c8f57d63efad312cc93981678cb7fc0400b7bf4baaaa1bf172" +checksum = "860deadaa81ce442f3920795d84ae8e55101121388f840e831ab21ef68c8cbfe" dependencies = [ "frame-benchmarking", "frame-support", @@ -2595,9 +2610,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.192" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbda285ba6e5866529faf76352bdf73801d9b44a6308d7cd58ca2379f378e994" +checksum = "747d8437319e3a2f43d93b341c137927ca70c0f5dabeea7a005a73665e247c7e" dependencies = [ "cc", "cxx-build", @@ -2610,9 +2625,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.192" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af9efde466c5d532d57efd92f861da3bdb7f61e369128ce8b4c3fe0c9de4fa4d" +checksum = "b0f4697d190a142477b16aef7da8a99bfdc41e7e8b1687583c0d23a79c7afc1e" dependencies = [ "cc", "codespan-reporting", @@ -2625,9 +2640,9 @@ dependencies = [ [[package]] name = "cxxbridge-cmd" -version = "1.0.192" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3efb93799095bccd4f763ca07997dc39a69e5e61ab52d2c407d4988d21ce144d" +checksum = "d0956799fa8678d4c50eed028f2de1c0552ae183c76e976cf7ca8c4e36a7c328" dependencies = [ "clap", "codespan-reporting", @@ -2639,15 +2654,15 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.192" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3092010228026e143b32a4463ed9fa8f86dca266af4bf5f3b2a26e113dbe4e45" +checksum = "23384a836ab4f0ad98ace7e3955ad2de39de42378ab487dc28d3990392cb283a" [[package]] name = "cxxbridge-macro" -version = "1.0.192" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31d72ebfcd351ae404fb00ff378dfc9571827a00722c9e735c9181aec320ba0a" +checksum = "e6acc6b5822b9526adfb4fc377b67128fdd60aac757cc4a741a6278603f763cf" dependencies = [ "indexmap 2.13.0", "proc-macro2", @@ -3219,14 +3234,13 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.26" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.60.2", ] [[package]] @@ -3247,9 +3261,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.7" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "fixed-hash" @@ -3283,9 +3297,9 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "frame-benchmarking" -version = "44.0.0" +version = "44.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "789d118afc57bc6112dca0212ff5f184862cf87ae67b511fdc7a4a8b7e41ce50" +checksum = "83680108c981eb72fe2098feda8fc9f832fd68190c99634adb79107115c2a5e9" dependencies = [ "frame-support", "frame-support-procedural", @@ -3688,6 +3702,19 @@ dependencies = [ "wasip2", ] +[[package]] +name = "getrandom" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + [[package]] name = "getrandom_or_panic" version = "0.0.3" @@ -3723,7 +3750,7 @@ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "glutton-kusama-runtime" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-pallet-xcm", @@ -4002,12 +4029,11 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ "bytes", - "futures-core", "http", "http-body", "hyper", @@ -4017,9 +4043,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4039,6 +4065,12 @@ dependencies = [ "cc", ] +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + [[package]] name = "ident_case" version = "1.0.1" @@ -4236,9 +4268,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" dependencies = [ "once_cell", "wasm-bindgen", @@ -4269,9 +4301,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +checksum = "b646a74e746cd25045aa0fd42f4f7f78aa6d119380182c7e63a5593c4ab8df6f" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -4297,6 +4329,7 @@ dependencies = [ name = "kusama-fuzzer" version = "0.1.0" dependencies = [ + "frame-metadata", "frame-support", "frame-system", "kusama-runtime-constants", @@ -4320,6 +4353,7 @@ dependencies = [ "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", + "scale-info", "sp-application-crypto", "sp-authority-discovery", "sp-consensus-babe", @@ -4335,7 +4369,7 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "frame-support", "pallet-remote-proxy", @@ -4360,17 +4394,23 @@ dependencies = [ "spin", ] +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libc" -version = "0.2.180" +version = "0.2.181" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" +checksum = "459427e2af2b9c839b132acb702a1c654d95e10f8c326bfc2ad11310e458b1c5" [[package]] name = "libm" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" @@ -4548,9 +4588,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "memory-db" @@ -4660,9 +4700,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" [[package]] name = "num-format" @@ -4749,9 +4789,9 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5676b5c379cf5b03da1df2b3061c4a4e2aa691086a56ac923e08c143f53f59" +checksum = "0d49ff0c0d00d4a502b39df9af3a525e1efeb14b9dabb5bb83335284c1309210" dependencies = [ "alloy-rlp", "cfg-if", @@ -4812,7 +4852,7 @@ dependencies = [ [[package]] name = "pallet-ah-migrator" version = "0.1.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "assets-common", "cumulus-primitives-core", @@ -4871,7 +4911,7 @@ dependencies = [ [[package]] name = "pallet-ah-ops" version = "0.1.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -4932,9 +4972,9 @@ dependencies = [ [[package]] name = "pallet-asset-conversion-tx-payment" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "724879f9ec9c2c0c2beb6093f7414a6651ce8f87e96ecc4b720f3033f34c2bc7" +checksum = "9c96a1171ac5f6d6783b9c47f0ccea72b3e9e298b6ee1b0f34e1dd06cce0f658" dependencies = [ "frame-benchmarking", "frame-support", @@ -5057,9 +5097,9 @@ dependencies = [ [[package]] name = "pallet-babe" -version = "44.0.0" +version = "44.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c6875165a5133b23561aefaadcd147876454815a351412cfea8244dca8459a" +checksum = "b5997bf3f1c5d7b21c0cad19717119703439c1cfc41ceed53f5387fbed548c12" dependencies = [ "frame-benchmarking", "frame-support", @@ -5140,9 +5180,9 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" -version = "45.0.0" +version = "45.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a56242f921a8cce42a90f31479832d30b3f1d2795fe3971fed954a54d624c63" +checksum = "f0fbf7667c64d38d94ed1da04353dd284fa059fb79ea2a84e1a68151f733687f" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -5166,9 +5206,9 @@ dependencies = [ [[package]] name = "pallet-bounties" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6a28d207ee3a2fbea9ca068a93db4fc330f3ca72b7f602cf24301bf2c398ca" +checksum = "653c0eefa141c2663ecb5d2ed44ee43a469fc3815705ff000dfbbfda21eaffc7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5222,9 +5262,9 @@ dependencies = [ [[package]] name = "pallet-collator-selection" -version = "25.0.0" +version = "25.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a937f44d5c3ef0ba746f8783514d68754a248d4784e35552676545de9e1b816" +checksum = "e104145f03708c4514bc30e9820f68878f020ff8b4fa5237213235f0e9390010" dependencies = [ "frame-benchmarking", "frame-support", @@ -5312,9 +5352,9 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-block" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefcd73362132f4869737fc88698e3a6e1a1a76ac7ff8c5744027e35d35f927e" +checksum = "7cddfad37f8a8230693ca950b9a55f4b66ccc8ced177bd9fb028b61dc1d1e16b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5408,9 +5448,9 @@ dependencies = [ [[package]] name = "pallet-grandpa" -version = "44.0.0" +version = "44.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20e48d31e2b785d395786b42420411190d5b46ed32d72bd429f6956b1b0a48f" +checksum = "027ba5976522be56c72f1bb10df889dc8332543e4d32789d7d6c90317fc6dd14" dependencies = [ "frame-benchmarking", "frame-support", @@ -5448,9 +5488,9 @@ dependencies = [ [[package]] name = "pallet-im-online" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516e284965ed81d93bc9bb2524b9109c9408c9c0d49b4b7ada0fc4518ae11e65" +checksum = "263663dcf2067406135746121b3fd96eb576201937ccddd8885a8f4768fc63e8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5602,9 +5642,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" -version = "42.0.0" +version = "42.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9df564c59bce245a7fba24691fe878f0749124e5179e76a96d2c43994ee1c55" +checksum = "c3fc64128c98cfc1fe0e48d629f8f812961bae57a90b3a52e1e5203278beb52a" dependencies = [ "frame-support", "frame-system", @@ -5621,9 +5661,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" -version = "42.0.0" +version = "42.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d7cbcf01862217338ec2e8f3fcc3d0f39b5dddfee92ddbd2c0ccbcedb594032" +checksum = "9637f65a3902d0c7802986e11764ae6a70c06c551320e4037b1b8335a82bb16e" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5669,9 +5709,9 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" -version = "44.0.0" +version = "44.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e53989219fa7df739c5fbde333b14bc85083c148f3467eedc833dd4dee8f1dd" +checksum = "768291003558603d2ec2a594393d61184bbe44ea1f4eea8d05f2cee319feb085" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5759,7 +5799,7 @@ dependencies = [ [[package]] name = "pallet-rc-migrator" version = "0.1.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5842,7 +5882,7 @@ dependencies = [ [[package]] name = "pallet-remote-proxy" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -5987,9 +6027,9 @@ dependencies = [ [[package]] name = "pallet-session" -version = "44.0.0" +version = "44.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16a7d35580a71afa59812c14f0a39032904c79fb2578ab6e581ee066624ed9ca" +checksum = "222a96a8d4b59decdf7fb76390c7d038da38e4884beba264ead462029ba5c214" dependencies = [ "frame-support", "frame-system", @@ -6010,9 +6050,9 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" -version = "44.0.0" +version = "44.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b75bcbc0ab4016c82fc970a65cedb541a85aeca66cda779da2cd8877b589b9" +checksum = "302c9e5e671bf89baeec49e3f67518666de2cb92f3eae62ac5f2a4dc5a7c57af" dependencies = [ "frame-benchmarking", "frame-support", @@ -6045,9 +6085,9 @@ dependencies = [ [[package]] name = "pallet-staking" -version = "44.0.0" +version = "44.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c333d2df9869ffb7fce33a5d48fe6dab6bdcba71625f75bc6088b0c6ed89f109" +checksum = "83afa5cca14de5421a41dcc0344069c1ed77fde0a2c40aa69eefb1b4332abf14" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6067,9 +6107,9 @@ dependencies = [ [[package]] name = "pallet-staking-async" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e075a86fb995955dd5a2426ae283147bd87c805dcc55fe35f97f8a24f6c5a621" +checksum = "fe03a830e736cd00c5e64629ce07afb244704ccea9c8e96ba87cd8c25ab604ad" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6091,9 +6131,9 @@ dependencies = [ [[package]] name = "pallet-staking-async-ah-client" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6349eab21a97b6fce4506a6a279bb94bc8b0698dd970595918ff6644c1d3de9a" +checksum = "736d16213d2c4ccf0817b28f3e6aa223a584ccaa33425841d88eecb91f149cb9" dependencies = [ "frame-benchmarking", "frame-support", @@ -6549,7 +6589,7 @@ dependencies = [ [[package]] name = "people-kusama-runtime" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", @@ -6620,7 +6660,7 @@ dependencies = [ [[package]] name = "people-polkadot-runtime" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", @@ -6689,9 +6729,9 @@ dependencies = [ [[package]] name = "pest" -version = "2.8.5" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9eb05c21a464ea704b53158d358a31e6425db2f63a1a7312268b05fe2b75f7" +checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" dependencies = [ "memchr", "ucd-trie", @@ -6741,9 +6781,9 @@ dependencies = [ [[package]] name = "picosimd" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af35c838647fef3d6d052e27006ef88ea162336eee33063c50a63f163c18cdeb" +checksum = "3f8cf1ae70818c6476eb2da0ac8f3f55ecdea41a7aa16824ea6efc4a31cccf41" [[package]] name = "pin-project-lite" @@ -6799,6 +6839,7 @@ dependencies = [ name = "polkadot-fuzzer" version = "0.1.0" dependencies = [ + "frame-metadata", "frame-support", "frame-system", "pallet-bags-list", @@ -6823,6 +6864,7 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-constants", "polkadot-runtime-parachains", + "scale-info", "sp-application-crypto", "sp-authority-discovery", "sp-consensus-babe", @@ -6884,7 +6926,7 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -6985,9 +7027,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "23.0.0" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac62c83e5c9e4c4331022337157e457f21ee67a25715118dd9091229a44b9aea" +checksum = "8b6b20c85e95d08358ac2c1dc67e798f6ad2ad85c6152fafcac6c6c5e3021406" dependencies = [ "bitvec", "frame-benchmarking", @@ -7037,7 +7079,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "frame-support", "pallet-remote-proxy", @@ -7068,9 +7110,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "23.0.0" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfb0dc13a6d6724ac37b7e30469467a3922eef550c351f53b05bedf356acfc7" +checksum = "9c811df6c99a0aad2d3410c7f50a96c214e7495ec9290d396574c476e3cb482a" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -7414,9 +7456,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.105" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -7437,9 +7479,9 @@ dependencies = [ [[package]] name = "proptest" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" +checksum = "37566cb3fdacef14c0737f9546df7cfeadbfbc9fef10991038bf5015d0c80532" dependencies = [ "bit-set", "bit-vec", @@ -7462,9 +7504,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.43" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" dependencies = [ "proc-macro2", ] @@ -7554,9 +7596,9 @@ dependencies = [ [[package]] name = "rapidhash" -version = "4.2.1" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d8b5b858a440a0bc02625b62dd95131b9201aa9f69f411195dd4a7cfb1de3d7" +checksum = "84816e4c99c467e92cf984ee6328caa976dfecd33a673544489d79ca2caaefe5" dependencies = [ "rustversion", ] @@ -7631,9 +7673,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.12.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -7643,9 +7685,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -7654,14 +7696,14 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" [[package]] name = "relay-common" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "pallet-staking-reward-fn", "polkadot-primitives", @@ -7898,9 +7940,9 @@ dependencies = [ [[package]] name = "rug" -version = "1.28.0" +version = "1.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad2e973fe3c3214251a840a621812a4f40468da814b1a3d6947d433c2af11f" +checksum = "de190ec858987c79cad4da30e19e546139b3339331282832af004d0ea7829639" dependencies = [ "az", "gmp-mpfr-sys", @@ -7964,9 +8006,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" [[package]] name = "rustc-hash" @@ -8086,7 +8128,7 @@ dependencies = [ "scale-decode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -8113,7 +8155,7 @@ dependencies = [ "scale-encode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -8177,7 +8219,7 @@ dependencies = [ "scale-decode", "scale-encode", "scale-type-resolver", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -8194,9 +8236,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e910108742c57a770f492731f99be216a52fadd361b06c8fb59d74ccc267d2" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" dependencies = [ "dyn-clone", "ref-cast", @@ -8495,7 +8537,7 @@ dependencies = [ "indexmap 1.9.3", "indexmap 2.13.0", "schemars 0.9.0", - "schemars 1.2.0", + "schemars 1.2.1", "serde_core", "serde_json", "serde_with_macros", @@ -8566,9 +8608,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +checksum = "b31139435f327c93c6038ed350ae4588e2c70a13d50599509fee6349967ba35a" dependencies = [ "cc", "cfg-if", @@ -8620,15 +8662,15 @@ checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" [[package]] name = "siphasher" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "slice-group-by" @@ -8862,9 +8904,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" dependencies = [ "libc", "windows-sys 0.60.2", @@ -9231,9 +9273,9 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a31e1a578d5506851ee02fc1cf57b200ffefce48d5231129984048e45f5a12" +checksum = "acb04cf79ea9c576c8cf3f493a9e6e432a81b181e64e9bdcc485b0004505fb5a" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -9630,7 +9672,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "staging-kusama-runtime" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -9963,7 +10005,7 @@ dependencies = [ "serde_json", "sp-crypto-hashing", "subxt-metadata", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] @@ -9979,7 +10021,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-crypto-hashing", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -10008,7 +10050,7 @@ dependencies = [ "sha2 0.10.9", "sp-crypto-hashing", "subxt-core", - "thiserror 2.0.17", + "thiserror 2.0.18", "zeroize", ] @@ -10036,9 +10078,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f92d01b5de07eaf324f7fca61cc6bd3d82bbc1de5b6c963e6fe79e86f36580d" +checksum = "2379beea9476b89d0237078be761cf8e012d92d5ae4ae0c9a329f974838870fc" dependencies = [ "paste", "proc-macro2", @@ -10049,7 +10091,7 @@ dependencies = [ [[package]] name = "system-parachains-common" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -10072,7 +10114,7 @@ dependencies = [ [[package]] name = "system-parachains-constants" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.5#ff458d43013d4004419f8f72fd5e59fb9a0533e3" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" dependencies = [ "array-bytes 9.3.0", "frame-support", @@ -10096,12 +10138,12 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.24.0" +version = "3.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" +checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.1", "once_cell", "rustix", "windows-sys 0.61.2", @@ -10127,11 +10169,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -10147,9 +10189,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -10176,9 +10218,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.45" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", @@ -10191,15 +10233,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.25" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", @@ -10489,9 +10531,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" [[package]] name = "unicode-normalization" @@ -10637,18 +10679,27 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" dependencies = [ "cfg-if", "once_cell", @@ -10659,9 +10710,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10669,9 +10720,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" dependencies = [ "bumpalo", "proc-macro2", @@ -10682,13 +10733,35 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder", + "wasmparser", +] + [[package]] name = "wasm-opt" version = "0.116.1" @@ -10729,6 +10802,18 @@ dependencies = [ "cxx-build", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.10.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver 1.0.27", +] + [[package]] name = "wide" version = "0.7.33" @@ -11062,9 +11147,91 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.13.0", + "prettyplease", + "syn 2.0.114", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.114", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.10.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver 1.0.27", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] [[package]] name = "wyz" @@ -11104,18 +11271,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.33" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.33" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" dependencies = [ "proc-macro2", "quote", @@ -11144,15 +11311,15 @@ dependencies = [ [[package]] name = "ziggy" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b52ecfe5c91ac659c7e165bcbadcfbd1320e7fec6546ede8bb9e70850e9bd503" +checksum = "291de32434617774c3e4471392c426fb1f4c6e4b10885f40f45a0b4b51e10996" [[package]] name = "zmij" -version = "1.0.14" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd8f3f50b848df28f887acb68e41201b5aea6bc8a8dacc00fb40635ff9a72fea" +checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" [[package]] name = "zstd" diff --git a/runtimes/Cargo.toml b/runtimes/Cargo.toml index 04ff6f2..68104d7 100644 --- a/runtimes/Cargo.toml +++ b/runtimes/Cargo.toml @@ -17,26 +17,26 @@ members = [ [workspace.dependencies] -ziggy = { version = "1.3.5", default-features = false } +ziggy = { version = "1.5.0", default-features = false } -polkadot-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } -asset-hub-polkadot-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } +polkadot-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } +asset-hub-polkadot-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } # bridge-hub-polkadot-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.2", default-features = false } -collectives-polkadot-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } -coretime-polkadot-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } -people-polkadot-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } +collectives-polkadot-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } +coretime-polkadot-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } +people-polkadot-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } -staging-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } -asset-hub-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } +staging-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } +asset-hub-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } # bridge-hub-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.2", default-features = false } -coretime-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } +coretime-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } # encointer-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.2", default-features = false } -glutton-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } -people-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } +glutton-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } +people-kusama-runtime = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } -system-parachains-constants = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } -polkadot-runtime-constants = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } -kusama-runtime-constants = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } +system-parachains-constants = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } +polkadot-runtime-constants = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } +kusama-runtime-constants = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } codec = { version = "3.7.5", features = ["derive", "max-encoded-len"], default-features = false, package = "parity-scale-codec" } hex = "0.4.3" @@ -68,18 +68,18 @@ pallet-utility = { default-features = false, version = "44.0.0" } pallet-proxy = { default-features = false, version = "44.0.0" } pallet-multisig = { default-features = false, version = "44.0.0" } pallet-vesting = { default-features = false, version = "44.0.0" } -pallet-remote-proxy = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.5", default-features = false } +pallet-remote-proxy = { git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v2.0.6", default-features = false } pallet-recovery = { default-features = false, version = "44.0.0" } pallet-whitelist = { default-features = false, version = "43.0.0" } pallet-broker = { default-features = false, version = "0.23.0" } pallet-staking-async-ah-client = { default-features = false, version = "0.6.0" } pallet-bags-list = { default-features = false, version = "43.0.0" } pallet-bounties = { default-features = false, version = "43.0.0" } -pallet-grandpa = { default-features = false, version = "44.0.0" } +pallet-grandpa = { default-features = false, version = "44.0.1" } pallet-identity = { default-features = false, version = "44.0.0" } pallet-referenda = { default-features = false, version = "44.0.0" } pallet-society = { default-features = false, version = "44.0.0" } -pallet-staking = { default-features = false, version = "44.0.0" } +pallet-staking = { default-features = false, version = "44.0.1" } pallet-treasury = { default-features = false, version = "43.0.0" } pallet-revive = { default-features = false, version = "0.11.3" } @@ -90,5 +90,5 @@ cumulus-test-relay-sproof-builder = { default-features = false , version = "0.23 polkadot-parachain-primitives = { default-features = false, version = "18.0.0" } polkadot-primitives = { default-features = false, version = "20.0.0" } -polkadot-runtime-parachains = { version = "23.0.0", default-features = false } -polkadot-runtime-common = { version = "23.0.0", default-features = false } +polkadot-runtime-parachains = { version = "23.0.1", default-features = false } +polkadot-runtime-common = { version = "23.0.1", default-features = false } \ No newline at end of file diff --git a/runtimes/asset-hub-kusama/src/main.rs b/runtimes/asset-hub-kusama/src/main.rs index 4bd7a5c..c27a4b5 100644 --- a/runtimes/asset-hub-kusama/src/main.rs +++ b/runtimes/asset-hub-kusama/src/main.rs @@ -12,7 +12,7 @@ use frame_support::{ weights::constants::WEIGHT_REF_TIME_PER_SECOND, }; use frame_system::Account; -use pallet_balances::{Holds, TotalIssuance}; +use pallet_balances::{Freezes, Holds, TotalIssuance}; use parachains_common::{AccountId, Balance, SLOT_DURATION}; use sp_consensus_aura::{Slot, AURA_ENGINE_ID}; use sp_runtime::{ @@ -260,8 +260,9 @@ fn initialize_block(block: u32, prev_header: Option<&Header>) { ..Default::default() }; - let (relay_parent_storage_root, relay_chain_state) = - sproof_builder.into_state_root_and_proof(); + let relay_parent_offset = 1; + let (relay_parent_storage_root, relay_chain_state, relay_parent_descendants) = + sproof_builder.into_state_root_proof_and_descendants(relay_parent_offset); BasicParachainInherentData { validation_data: polkadot_primitives::PersistedValidationData { parent_head, @@ -271,7 +272,7 @@ fn initialize_block(block: u32, prev_header: Option<&Header>) { }, relay_chain_state, collator_peer_id: None, - relay_parent_descendants: vec![], + relay_parent_descendants, } }; let inbound_message_data = { @@ -314,10 +315,16 @@ fn check_invariants(block: u32, initial_total_issuance: Balance) { .iter() .map(|l| l.amount) .max() - .unwrap_or_default(); + .unwrap_or(0); + let max_freeze = Freezes::::get(&account) + .iter() + .map(|freeze| freeze.amount) + .max() + .unwrap_or(0); assert_eq!( - max_lock, info.data.frozen, - "Max lock should be equal to frozen balance" + info.data.frozen, + max_lock.max(max_freeze), + "Frozen balance should be the max of the max lock and max freeze" ); let sum_holds: Balance = Holds::::get(&account) .iter() diff --git a/runtimes/asset-hub-polkadot/src/main.rs b/runtimes/asset-hub-polkadot/src/main.rs index bbcdc0c..1460e4b 100644 --- a/runtimes/asset-hub-polkadot/src/main.rs +++ b/runtimes/asset-hub-polkadot/src/main.rs @@ -12,7 +12,7 @@ use frame_support::{ weights::constants::WEIGHT_REF_TIME_PER_SECOND, }; use frame_system::Account; -use pallet_balances::{Holds, TotalIssuance}; +use pallet_balances::{Freezes, Holds, TotalIssuance}; use parachains_common::{AccountId, Balance, SLOT_DURATION}; use sp_consensus_aura::{Slot, AURA_ENGINE_ID}; use sp_runtime::{ @@ -344,9 +344,15 @@ fn check_invariants(block: u32, initial_total_issuance: Balance) { .map(|l| l.amount) .max() .unwrap_or_default(); + let max_freeze = Freezes::::get(&account) + .iter() + .map(|freeze| freeze.amount) + .max() + .unwrap_or(0); assert_eq!( - max_lock, info.data.frozen, - "Max lock should be equal to frozen balance" + info.data.frozen, + max_lock.max(max_freeze), + "Frozen balance should be the max of the max lock and max freeze" ); let sum_holds: Balance = Holds::::get(&account) .iter() diff --git a/runtimes/coretime-kusama/Cargo.toml b/runtimes/coretime-kusama/Cargo.toml index cad1f53..049bec7 100644 --- a/runtimes/coretime-kusama/Cargo.toml +++ b/runtimes/coretime-kusama/Cargo.toml @@ -13,9 +13,11 @@ system-parachains-constants = { workspace = true } parachains-common = { workspace = true } codec = { workspace = true } +scale-info = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } +frame-metadata = { workspace = true } sp-runtime = { workspace = true } sp-state-machine = { workspace = true } @@ -47,6 +49,7 @@ std = [ "pallet-timestamp/std", "pallet-xcm/std", "sp-consensus-aura/std", + "sp-state-machine/std", "cumulus-primitives-core/std", "cumulus-primitives-parachain-inherent/std", "cumulus-pallet-parachain-system/std", @@ -58,4 +61,4 @@ try-runtime = [ "frame-system/try-runtime", "sp-runtime/try-runtime", "pallet-timestamp/try-runtime", -] \ No newline at end of file +] diff --git a/runtimes/coretime-kusama/src/bin/seedgen.rs b/runtimes/coretime-kusama/src/bin/seedgen.rs new file mode 100644 index 0000000..fa87b1f --- /dev/null +++ b/runtimes/coretime-kusama/src/bin/seedgen.rs @@ -0,0 +1,127 @@ +#![warn(clippy::pedantic)] +use coretime_kusama_runtime::{Runtime, RuntimeCall}; +use codec::{Decode, Encode}; +use frame_metadata::{RuntimeMetadata, RuntimeMetadataPrefixed}; +use frame_support::traits::GetCallMetadata; +use scale_info::TypeDef; +use sp_state_machine::BasicExternalities; +use std::{collections::BTreeMap, fs, path::Path}; + +fn main() { + let seeds = build_seeds(); + + let out_dir = Path::new("seedgen"); + fs::create_dir_all(out_dir).expect("create seedgen dir"); + for (name, seed) in &seeds { + let path = out_dir.join(format!("{name}.seed")); + fs::write(&path, seed).expect("write seed file"); + } + + println!("wrote {} seeds to {}", seeds.len(), out_dir.display()); +} + +fn build_seeds() -> Vec<(String, Vec)> { + let mut seeds: Vec<(String, Vec)> = Vec::new(); + + let metadata = load_metadata_v14(); + let call_map = build_call_map(&metadata); + for (pallet, calls) in call_map { + let expected = + pallet_call_variant_count(&metadata, pallet.as_str()).expect("pallet call count"); + let actual = calls.len(); + println!("created {actual}/{expected} seeds for {pallet}"); + if actual != expected { + println!( + " skipped {} calls in {pallet} (unencodable with only zeroes)", + expected - actual + ); + } + + for call in calls { + let meta = call.get_call_metadata(); + let name = format!( + "{}_{}", + meta.pallet_name.to_ascii_lowercase(), + meta.function_name + ); + seeds.push((name, (0u8, 0u8, call).encode())); + } + } + + seeds +} + +fn build_call_map( + metadata: &frame_metadata::v14::RuntimeMetadataV14, +) -> BTreeMap> { + let mut map: BTreeMap> = BTreeMap::new(); + for pallet in &metadata.pallets { + let calls = pallet.calls.as_ref(); + if calls.is_none() { + continue; + } + let calls = calls.expect("checked"); + let mut runtime_calls = Vec::new(); + let call_def = metadata + .types + .resolve(calls.ty.id) + .expect("resolve pallet call type"); + let TypeDef::Variant(variants) = &call_def.type_def else { + continue; + }; + for variant in &variants.variants { + if variant.name == "__Ignore" { + continue; + } + if let Some(call) = runtime_call_from_metadata(metadata, pallet, variant) { + runtime_calls.push(call); + } + } + map.insert(pallet.name.clone(), runtime_calls); + } + map +} + +fn load_metadata_v14() -> frame_metadata::v14::RuntimeMetadataV14 { + let bytes: Vec = BasicExternalities::default().execute_with(|| Runtime::metadata().into()); + let metadata = RuntimeMetadataPrefixed::decode(&mut &bytes[..]).expect("decode metadata"); + match metadata.1 { + RuntimeMetadata::V14(m) => m, + _ => panic!("unsupported metadata version"), + } +} + +fn runtime_call_from_metadata( + metadata: &frame_metadata::v14::RuntimeMetadataV14, + pallet: &frame_metadata::v14::PalletMetadata, + variant: &scale_info::Variant, +) -> Option { + let calls = pallet.calls.as_ref()?; + let call_def = metadata.types.resolve(calls.ty.id)?; + let TypeDef::Variant(_) = &call_def.type_def else { + return None; + }; + let mut bytes = pallet.index.encode(); + bytes.extend_from_slice(&variant.index.encode()); + bytes.extend_from_slice(&[0u8; 1024]); + RuntimeCall::decode(&mut &bytes[..]).ok() +} + +fn pallet_call_variant_count( + metadata: &frame_metadata::v14::RuntimeMetadataV14, + pallet_name: &str, +) -> Option { + let pallet = metadata.pallets.iter().find(|p| p.name == pallet_name)?; + let calls = pallet.calls.as_ref()?; + let ty = metadata.types.resolve(calls.ty.id)?; + let TypeDef::Variant(variants) = &ty.type_def else { + return None; + }; + Some( + variants + .variants + .iter() + .filter(|variant| variant.name != "__Ignore") + .count(), + ) +} diff --git a/runtimes/coretime-kusama/src/main.rs b/runtimes/coretime-kusama/src/main.rs index f901477..e89fe2f 100644 --- a/runtimes/coretime-kusama/src/main.rs +++ b/runtimes/coretime-kusama/src/main.rs @@ -12,7 +12,7 @@ use frame_support::{ weights::constants::WEIGHT_REF_TIME_PER_SECOND, }; use frame_system::Account; -use pallet_balances::{Holds, TotalIssuance}; +use pallet_balances::{Freezes, Holds, TotalIssuance}; use pallet_broker::{ConfigRecord, ConfigRecordOf, CoreIndex, CoreMask, Timeslice}; use parachains_common::{AccountId, Balance, SLOT_DURATION}; use sp_consensus_aura::{Slot, AURA_ENGINE_ID}; @@ -240,8 +240,9 @@ fn initialize_block(block: u32, prev_header: Option<&Header>) { ..Default::default() }; - let (relay_parent_storage_root, relay_chain_state) = - sproof_builder.into_state_root_and_proof(); + let relay_parent_offset = 1; + let (relay_parent_storage_root, relay_chain_state, relay_parent_descendants) = + sproof_builder.into_state_root_proof_and_descendants(relay_parent_offset); BasicParachainInherentData { validation_data: PersistedValidationData { parent_head, @@ -251,7 +252,7 @@ fn initialize_block(block: u32, prev_header: Option<&Header>) { }, relay_chain_state, collator_peer_id: None, - relay_parent_descendants: vec![], + relay_parent_descendants, } }; let inbound_message_data = { @@ -308,9 +309,15 @@ fn check_invariants(block: u32, initial_total_issuance: Balance) { .map(|l| l.amount) .max() .unwrap_or_default(); + let max_freeze = Freezes::::get(&account) + .iter() + .map(|freeze| freeze.amount) + .max() + .unwrap_or(0); assert_eq!( - max_lock, info.data.frozen, - "Max lock should be equal to frozen balance" + info.data.frozen, + max_lock.max(max_freeze), + "Frozen balance should be the max of the max lock and max freeze" ); let sum_holds: Balance = Holds::::get(&account) .iter() diff --git a/runtimes/kusama/Cargo.toml b/runtimes/kusama/Cargo.toml index ed90cfb..5323a2f 100644 --- a/runtimes/kusama/Cargo.toml +++ b/runtimes/kusama/Cargo.toml @@ -17,9 +17,11 @@ polkadot-runtime-parachains = { workspace = true } polkadot-runtime-common = { workspace = true } codec = { workspace = true } +scale-info = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } +frame-metadata = { workspace = true } sp-application-crypto = { workspace = true } sp-runtime = { workspace = true } @@ -60,6 +62,7 @@ std = [ "pallet-balances/std", "pallet-staking/std", "sp-consensus-babe/std", + "sp-state-machine/std", "polkadot-primitives/std", "polkadot-runtime-parachains/std", "sp-authority-discovery/std", @@ -70,4 +73,4 @@ try-runtime = [ "frame-system/try-runtime", "sp-runtime/try-runtime", "pallet-timestamp/try-runtime", -] \ No newline at end of file +] diff --git a/runtimes/kusama/src/bin/seedgen.rs b/runtimes/kusama/src/bin/seedgen.rs new file mode 100644 index 0000000..99a43cb --- /dev/null +++ b/runtimes/kusama/src/bin/seedgen.rs @@ -0,0 +1,127 @@ +#![warn(clippy::pedantic)] +use staging_kusama_runtime::{Runtime, RuntimeCall}; +use codec::{Decode, Encode}; +use frame_metadata::{RuntimeMetadata, RuntimeMetadataPrefixed}; +use frame_support::traits::GetCallMetadata; +use scale_info::TypeDef; +use sp_state_machine::BasicExternalities; +use std::{collections::BTreeMap, fs, path::Path}; + +fn main() { + let seeds = build_seeds(); + + let out_dir = Path::new("seedgen"); + fs::create_dir_all(out_dir).expect("create seedgen dir"); + for (name, seed) in &seeds { + let path = out_dir.join(format!("{name}.seed")); + fs::write(&path, seed).expect("write seed file"); + } + + println!("wrote {} seeds to {}", seeds.len(), out_dir.display()); +} + +fn build_seeds() -> Vec<(String, Vec)> { + let mut seeds: Vec<(String, Vec)> = Vec::new(); + + let metadata = load_metadata_v14(); + let call_map = build_call_map(&metadata); + for (pallet, calls) in call_map { + let expected = + pallet_call_variant_count(&metadata, pallet.as_str()).expect("pallet call count"); + let actual = calls.len(); + println!("created {actual}/{expected} seeds for {pallet}"); + if actual != expected { + println!( + " skipped {} calls in {pallet} (unencodable with only zeroes)", + expected - actual + ); + } + + for call in calls { + let meta = call.get_call_metadata(); + let name = format!( + "{}_{}", + meta.pallet_name.to_ascii_lowercase(), + meta.function_name + ); + seeds.push((name, (0u8, 0u8, call).encode())); + } + } + + seeds +} + +fn build_call_map( + metadata: &frame_metadata::v14::RuntimeMetadataV14, +) -> BTreeMap> { + let mut map: BTreeMap> = BTreeMap::new(); + for pallet in &metadata.pallets { + let calls = pallet.calls.as_ref(); + if calls.is_none() { + continue; + } + let calls = calls.expect("checked"); + let mut runtime_calls = Vec::new(); + let call_def = metadata + .types + .resolve(calls.ty.id) + .expect("resolve pallet call type"); + let TypeDef::Variant(variants) = &call_def.type_def else { + continue; + }; + for variant in &variants.variants { + if variant.name == "__Ignore" { + continue; + } + if let Some(call) = runtime_call_from_metadata(metadata, pallet, variant) { + runtime_calls.push(call); + } + } + map.insert(pallet.name.clone(), runtime_calls); + } + map +} + +fn load_metadata_v14() -> frame_metadata::v14::RuntimeMetadataV14 { + let bytes: Vec = BasicExternalities::default().execute_with(|| Runtime::metadata().into()); + let metadata = RuntimeMetadataPrefixed::decode(&mut &bytes[..]).expect("decode metadata"); + match metadata.1 { + RuntimeMetadata::V14(m) => m, + _ => panic!("unsupported metadata version"), + } +} + +fn runtime_call_from_metadata( + metadata: &frame_metadata::v14::RuntimeMetadataV14, + pallet: &frame_metadata::v14::PalletMetadata, + variant: &scale_info::Variant, +) -> Option { + let calls = pallet.calls.as_ref()?; + let call_def = metadata.types.resolve(calls.ty.id)?; + let TypeDef::Variant(_) = &call_def.type_def else { + return None; + }; + let mut bytes = pallet.index.encode(); + bytes.extend_from_slice(&variant.index.encode()); + bytes.extend_from_slice(&[0u8; 1024]); + RuntimeCall::decode(&mut &bytes[..]).ok() +} + +fn pallet_call_variant_count( + metadata: &frame_metadata::v14::RuntimeMetadataV14, + pallet_name: &str, +) -> Option { + let pallet = metadata.pallets.iter().find(|p| p.name == pallet_name)?; + let calls = pallet.calls.as_ref()?; + let ty = metadata.types.resolve(calls.ty.id)?; + let TypeDef::Variant(variants) = &ty.type_def else { + return None; + }; + Some( + variants + .variants + .iter() + .filter(|variant| variant.name != "__Ignore") + .count(), + ) +} diff --git a/runtimes/kusama/src/main.rs b/runtimes/kusama/src/main.rs index c214a12..6b66090 100644 --- a/runtimes/kusama/src/main.rs +++ b/runtimes/kusama/src/main.rs @@ -8,7 +8,7 @@ use frame_support::{ }; use frame_system::Account; use kusama_runtime_constants::{currency::UNITS, time::SLOT_DURATION}; -use pallet_balances::{Holds, TotalIssuance}; +use pallet_balances::{Freezes, Holds, TotalIssuance}; use pallet_grandpa::AuthorityId as GrandpaId; use pallet_staking::StakerStatus; use polkadot_primitives::{AccountId, AssignmentId, Balance, Header, ValidatorId}; @@ -339,10 +339,15 @@ fn check_invariants(block: u32, initial_total_issuance: Balance) { .map(|l| l.amount) .max() .unwrap_or_default(); - assert!( - max_lock <= info.data.frozen, - "Max lock ({max_lock}) should be less than or equal to frozen balance ({})", - info.data.frozen + let max_freeze = Freezes::::get(&account) + .iter() + .map(|freeze| freeze.amount) + .max() + .unwrap_or(0); + assert_eq!( + info.data.frozen, + max_lock.max(max_freeze), + "Frozen balance should be the max of the max lock and max freeze" ); let sum_holds: Balance = Holds::::get(&account) .iter() diff --git a/runtimes/polkadot/Cargo.toml b/runtimes/polkadot/Cargo.toml index 251b0d2..83ce22b 100644 --- a/runtimes/polkadot/Cargo.toml +++ b/runtimes/polkadot/Cargo.toml @@ -17,9 +17,11 @@ polkadot-runtime-parachains = { workspace = true } polkadot-runtime-common = { workspace = true } codec = { workspace = true } +scale-info = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } +frame-metadata = { workspace = true } sp-application-crypto = { workspace = true } sp-runtime = { workspace = true } @@ -61,6 +63,7 @@ std = [ "pallet-staking/std", "pallet-society/std", "sp-consensus-babe/std", + "sp-state-machine/std", "polkadot-primitives/std", "polkadot-runtime-parachains/std", "sp-authority-discovery/std", @@ -71,4 +74,4 @@ try-runtime = [ "frame-system/try-runtime", "sp-runtime/try-runtime", "pallet-timestamp/try-runtime", -] \ No newline at end of file +] diff --git a/runtimes/polkadot/src/bin/seedgen.rs b/runtimes/polkadot/src/bin/seedgen.rs new file mode 100644 index 0000000..10b0b01 --- /dev/null +++ b/runtimes/polkadot/src/bin/seedgen.rs @@ -0,0 +1,127 @@ +#![warn(clippy::pedantic)] +use polkadot_runtime::{Runtime, RuntimeCall}; +use codec::{Decode, Encode}; +use frame_metadata::{RuntimeMetadata, RuntimeMetadataPrefixed}; +use frame_support::traits::GetCallMetadata; +use scale_info::TypeDef; +use sp_state_machine::BasicExternalities; +use std::{collections::BTreeMap, fs, path::Path}; + +fn main() { + let seeds = build_seeds(); + + let out_dir = Path::new("seedgen"); + fs::create_dir_all(out_dir).expect("create seedgen dir"); + for (name, seed) in &seeds { + let path = out_dir.join(format!("{name}.seed")); + fs::write(&path, seed).expect("write seed file"); + } + + println!("wrote {} seeds to {}", seeds.len(), out_dir.display()); +} + +fn build_seeds() -> Vec<(String, Vec)> { + let mut seeds: Vec<(String, Vec)> = Vec::new(); + + let metadata = load_metadata_v14(); + let call_map = build_call_map(&metadata); + for (pallet, calls) in call_map { + let expected = + pallet_call_variant_count(&metadata, pallet.as_str()).expect("pallet call count"); + let actual = calls.len(); + println!("created {actual}/{expected} seeds for {pallet}"); + if actual != expected { + println!( + " skipped {} calls in {pallet} (unencodable with only zeroes)", + expected - actual + ); + } + + for call in calls { + let meta = call.get_call_metadata(); + let name = format!( + "{}_{}", + meta.pallet_name.to_ascii_lowercase(), + meta.function_name + ); + seeds.push((name, (0u8, 0u8, call).encode())); + } + } + + seeds +} + +fn build_call_map( + metadata: &frame_metadata::v14::RuntimeMetadataV14, +) -> BTreeMap> { + let mut map: BTreeMap> = BTreeMap::new(); + for pallet in &metadata.pallets { + let calls = pallet.calls.as_ref(); + if calls.is_none() { + continue; + } + let calls = calls.expect("checked"); + let mut runtime_calls = Vec::new(); + let call_def = metadata + .types + .resolve(calls.ty.id) + .expect("resolve pallet call type"); + let TypeDef::Variant(variants) = &call_def.type_def else { + continue; + }; + for variant in &variants.variants { + if variant.name == "__Ignore" { + continue; + } + if let Some(call) = runtime_call_from_metadata(metadata, pallet, variant) { + runtime_calls.push(call); + } + } + map.insert(pallet.name.clone(), runtime_calls); + } + map +} + +fn load_metadata_v14() -> frame_metadata::v14::RuntimeMetadataV14 { + let bytes: Vec = BasicExternalities::default().execute_with(|| Runtime::metadata().into()); + let metadata = RuntimeMetadataPrefixed::decode(&mut &bytes[..]).expect("decode metadata"); + match metadata.1 { + RuntimeMetadata::V14(m) => m, + _ => panic!("unsupported metadata version"), + } +} + +fn runtime_call_from_metadata( + metadata: &frame_metadata::v14::RuntimeMetadataV14, + pallet: &frame_metadata::v14::PalletMetadata, + variant: &scale_info::Variant, +) -> Option { + let calls = pallet.calls.as_ref()?; + let call_def = metadata.types.resolve(calls.ty.id)?; + let TypeDef::Variant(_) = &call_def.type_def else { + return None; + }; + let mut bytes = pallet.index.encode(); + bytes.extend_from_slice(&variant.index.encode()); + bytes.extend_from_slice(&[0u8; 1024]); + RuntimeCall::decode(&mut &bytes[..]).ok() +} + +fn pallet_call_variant_count( + metadata: &frame_metadata::v14::RuntimeMetadataV14, + pallet_name: &str, +) -> Option { + let pallet = metadata.pallets.iter().find(|p| p.name == pallet_name)?; + let calls = pallet.calls.as_ref()?; + let ty = metadata.types.resolve(calls.ty.id)?; + let TypeDef::Variant(variants) = &ty.type_def else { + return None; + }; + Some( + variants + .variants + .iter() + .filter(|variant| variant.name != "__Ignore") + .count(), + ) +} diff --git a/runtimes/polkadot/src/main.rs b/runtimes/polkadot/src/main.rs index 88e3a72..f252b09 100644 --- a/runtimes/polkadot/src/main.rs +++ b/runtimes/polkadot/src/main.rs @@ -7,7 +7,7 @@ use frame_support::{ weights::constants::WEIGHT_REF_TIME_PER_SECOND, }; use frame_system::Account; -use pallet_balances::{Holds, TotalIssuance}; +use pallet_balances::{Freezes, Holds, TotalIssuance}; use pallet_grandpa::AuthorityId as GrandpaId; use pallet_staking::StakerStatus; use polkadot_primitives::{AccountId, AssignmentId, Balance, Header, ValidatorId}; @@ -338,10 +338,15 @@ fn check_invariants(block: u32, initial_total_issuance: Balance) { .map(|l| l.amount) .max() .unwrap_or_default(); - assert!( - max_lock <= info.data.frozen, - "Max lock ({max_lock}) should be less than or equal to frozen balance ({})", - info.data.frozen + let max_freeze = Freezes::::get(&account) + .iter() + .map(|freeze| freeze.amount) + .max() + .unwrap_or(0); + assert_eq!( + info.data.frozen, + max_lock.max(max_freeze), + "Frozen balance should be the max of the max lock and max freeze" ); let sum_holds: Balance = Holds::::get(&account) .iter() From ad871a9a37c1c5c5b389d7890f72c9ce11b3763f Mon Sep 17 00:00:00 2001 From: Louis Merlin Date: Tue, 10 Feb 2026 11:12:50 +0100 Subject: [PATCH 2/6] Remove clones to improve performance --- runtimes/asset-hub-kusama/src/main.rs | 14 +++++++------- runtimes/asset-hub-polkadot/src/main.rs | 8 ++++---- runtimes/coretime-kusama/src/main.rs | 10 +++++----- runtimes/kusama/src/main.rs | 21 ++++++++++++++------- runtimes/polkadot/src/main.rs | 25 ++++++++++++++++--------- 5 files changed, 46 insertions(+), 32 deletions(-) diff --git a/runtimes/asset-hub-kusama/src/main.rs b/runtimes/asset-hub-kusama/src/main.rs index c27a4b5..cd67d09 100644 --- a/runtimes/asset-hub-kusama/src/main.rs +++ b/runtimes/asset-hub-kusama/src/main.rs @@ -105,13 +105,13 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) ) = call { for call in calls { - if recursively_find_call(call.clone(), matches_on) { + if recursively_find_call(call, matches_on) { return true; } } } else if let RuntimeCall::Utility(pallet_utility::Call::if_else { main, fallback }) = call { - return recursively_find_call(*main.clone(), matches_on) - || recursively_find_call(*fallback.clone(), matches_on); + return recursively_find_call(*main, matches_on) + || recursively_find_call(*fallback, matches_on); } else if let RuntimeCall::Multisig(pallet_multisig::Call::as_multi_threshold_1 { call, .. }) @@ -132,11 +132,11 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) pallet_proxy::Call::proxy { call, .. } | pallet_proxy::Call::proxy_announced { call, .. }, ) = call { - return recursively_find_call(*call.clone(), matches_on); + return recursively_find_call(*call, matches_on); } else if matches_on(call.clone()) { return true; } else { - println!("innermost call: {:?}", call.clone()); + println!("innermost call: {:?}", call); } false } @@ -155,10 +155,10 @@ fn process_input(accounts: &[AccountId], genesis: &Storage, data: &[u8]) { iter::from_fn(|| DecodeLimit::decode_with_depth_limit(64, &mut extrinsic_data).ok()) .filter(|(_, _, x): &(_, _, RuntimeCall)| { !recursively_find_call(x.clone(), |call| { - matches!(call.clone(), RuntimeCall::AhMigrator(_)) + matches!(&call, RuntimeCall::AhMigrator(_)) // || matches!(call.clone(), RuntimeCall::NominationPools(_)) || matches!( - call.clone(), + &call, RuntimeCall::Vesting(pallet_vesting::Call::vested_transfer { .. }) ) }) diff --git a/runtimes/asset-hub-polkadot/src/main.rs b/runtimes/asset-hub-polkadot/src/main.rs index 1460e4b..0c7a39c 100644 --- a/runtimes/asset-hub-polkadot/src/main.rs +++ b/runtimes/asset-hub-polkadot/src/main.rs @@ -131,7 +131,7 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) ) = call { for call in calls { - if recursively_find_call(call.clone(), matches_on) { + if recursively_find_call(call, matches_on) { return true; } } @@ -162,7 +162,7 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) pallet_proxy::Call::proxy { call, .. } | pallet_proxy::Call::proxy_announced { call, .. }, ) = call { - return recursively_find_call(*call.clone(), matches_on); + return recursively_find_call(*call, matches_on); } else if matches_on(call) { return true; } @@ -180,9 +180,9 @@ fn process_input(accounts: &[AccountId], genesis: &Storage, data: &[u8]) { iter::from_fn(|| DecodeLimit::decode_with_depth_limit(64, &mut extrinsic_data).ok()) .filter(|(_, _, x): &(_, _, RuntimeCall)| { !recursively_find_call(x.clone(), |call| { - matches!(call.clone(), RuntimeCall::AhMigrator(_)) + matches!(&call, RuntimeCall::AhMigrator(_)) || matches!( - call.clone(), + &call, RuntimeCall::Vesting(pallet_vesting::Call::vested_transfer { .. }) ) }) diff --git a/runtimes/coretime-kusama/src/main.rs b/runtimes/coretime-kusama/src/main.rs index e89fe2f..40d4dce 100644 --- a/runtimes/coretime-kusama/src/main.rs +++ b/runtimes/coretime-kusama/src/main.rs @@ -113,7 +113,7 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) ) = call { for call in calls { - if recursively_find_call(call.clone(), matches_on) { + if recursively_find_call(call, matches_on) { return true; } } @@ -123,7 +123,7 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) | RuntimeCall::Utility(pallet_utility::Call::as_derivative { call, .. }) | RuntimeCall::Proxy(pallet_proxy::Call::proxy { call, .. }) = call { - return recursively_find_call(*call.clone(), matches_on); + return recursively_find_call(*call, matches_on); } else if matches_on(call) { return true; } @@ -137,9 +137,9 @@ fn process_input(accounts: &[AccountId], genesis: &Storage, data: &[u8]) { iter::from_fn(|| DecodeLimit::decode_with_depth_limit(64, &mut extrinsic_data).ok()) .filter(|(_, _, x): &(_, _, RuntimeCall)| { !recursively_find_call(x.clone(), |call| { - matches!(call.clone(), RuntimeCall::System(_)) + matches!(&call, RuntimeCall::System(_)) || matches!( - call.clone(), + &call, RuntimeCall::PolkadotXcm(pallet_xcm::Call::execute { .. }) ) }) @@ -221,7 +221,7 @@ fn initialize_block(block: u32, prev_header: Option<&Header>) { pre_digest, ); - Executive::initialize_block(&parent_header.clone()); + Executive::initialize_block(&parent_header); Timestamp::set(RuntimeOrigin::none(), u64::from(block) * SLOT_DURATION).unwrap(); #[cfg(not(feature = "fuzzing"))] diff --git a/runtimes/kusama/src/main.rs b/runtimes/kusama/src/main.rs index 6b66090..032ac5c 100644 --- a/runtimes/kusama/src/main.rs +++ b/runtimes/kusama/src/main.rs @@ -148,7 +148,7 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) ) = call { for call in calls { - if recursively_find_call(call.clone(), matches_on) { + if recursively_find_call(call, matches_on) { return true; } } @@ -161,7 +161,7 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) | RuntimeCall::Utility(pallet_utility::Call::as_derivative { call, .. }) | RuntimeCall::Proxy(pallet_proxy::Call::proxy { call, .. }) = call { - return recursively_find_call(*call.clone(), matches_on); + return recursively_find_call(*call, matches_on); } else if matches_on(call) { return true; } @@ -177,10 +177,17 @@ fn process_input(accounts: &[AccountId], genesis: &Storage, data: &[u8]) { }) .filter(|(_, _, x): &(_, _, RuntimeCall)| { !recursively_find_call(x.clone(), |call| { - matches!(call.clone(), RuntimeCall::System(_)) - || matches!(call.clone(), RuntimeCall::Vesting(pallet_vesting::Call::vested_transfer { .. })) - || matches!(call.clone(), RuntimeCall::VoterList(pallet_bags_list::Call::rebag { .. })) - || matches!(call.clone(), RuntimeCall::Treasury(pallet_treasury::Call::spend { valid_from, .. }) if valid_from.unwrap_or(0) >= 4_200_000_000) + matches!(&call, RuntimeCall::System(_)) + || matches!( + &call, + RuntimeCall::Vesting(pallet_vesting::Call::vested_transfer { .. }) + ) + || matches!(&call, RuntimeCall::VoterList(pallet_bags_list::Call::rebag { .. })) + || matches!( + &call, + RuntimeCall::Treasury(pallet_treasury::Call::spend { valid_from, .. }) + if valid_from.as_ref().copied().unwrap_or(0) >= 4_200_000_000 + ) || matches!( &call, RuntimeCall::Referenda(pallet_referenda::Call::submit { @@ -245,7 +252,7 @@ fn process_input(accounts: &[AccountId], genesis: &Storage, data: &[u8]) { println!(" call: {extrinsic:?}"); let now = Instant::now(); // We get the current time for timing purposes. - let res = extrinsic.clone().dispatch(origin); + let res = extrinsic.dispatch(origin); elapsed += now.elapsed(); #[cfg(not(feature = "fuzzing"))] diff --git a/runtimes/polkadot/src/main.rs b/runtimes/polkadot/src/main.rs index f252b09..c734d9c 100644 --- a/runtimes/polkadot/src/main.rs +++ b/runtimes/polkadot/src/main.rs @@ -147,20 +147,20 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) ) = call { for call in calls { - if recursively_find_call(call.clone(), matches_on) { + if recursively_find_call(call, matches_on) { return true; } } } else if let RuntimeCall::Utility(pallet_utility::Call::if_else { main, fallback }) = call { - return recursively_find_call(*main.clone(), matches_on) - || recursively_find_call(*fallback.clone(), matches_on); + return recursively_find_call(*main, matches_on) + || recursively_find_call(*fallback, matches_on); } else if let RuntimeCall::Multisig(pallet_multisig::Call::as_multi_threshold_1 { call, .. }) | RuntimeCall::Utility(pallet_utility::Call::as_derivative { call, .. }) | RuntimeCall::Proxy(pallet_proxy::Call::proxy { call, .. }) = call { - return recursively_find_call(*call.clone(), matches_on); + return recursively_find_call(*call, matches_on); } else if matches_on(call) { return true; } @@ -176,10 +176,17 @@ fn process_input(accounts: &[AccountId], genesis: &Storage, data: &[u8]) { }) .filter(|(_, _, x): &(_, _, RuntimeCall)| { !recursively_find_call(x.clone(), |call| { - matches!(call.clone(), RuntimeCall::System(_)) - || matches!(call.clone(), RuntimeCall::VoterList(pallet_bags_list::Call::rebag { .. })) - || matches!(call.clone(), RuntimeCall::Vesting(pallet_vesting::Call::vested_transfer { .. })) - || matches!(call.clone(), RuntimeCall::Treasury(pallet_treasury::Call::spend { valid_from, .. }) if valid_from.unwrap_or(0) >= 4_200_000_000) + matches!(&call, RuntimeCall::System(_)) + || matches!(&call, RuntimeCall::VoterList(pallet_bags_list::Call::rebag { .. })) + || matches!( + &call, + RuntimeCall::Vesting(pallet_vesting::Call::vested_transfer { .. }) + ) + || matches!( + &call, + RuntimeCall::Treasury(pallet_treasury::Call::spend { valid_from, .. }) + if valid_from.as_ref().copied().unwrap_or(0) >= 4_200_000_000 + ) || matches!( &call, RuntimeCall::Referenda(pallet_referenda::Call::submit { @@ -244,7 +251,7 @@ fn process_input(accounts: &[AccountId], genesis: &Storage, data: &[u8]) { println!(" call: {extrinsic:?}"); let now = Instant::now(); // We get the current time for timing purposes. - let res = extrinsic.clone().dispatch(origin); + let res = extrinsic.dispatch(origin); elapsed += now.elapsed(); #[cfg(not(feature = "fuzzing"))] From 297a3e54827dcb0783f79ee4a12f31d587c261b6 Mon Sep 17 00:00:00 2001 From: Louis Merlin Date: Tue, 10 Feb 2026 11:16:35 +0100 Subject: [PATCH 3/6] Run fmt --- runtimes/coretime-kusama/src/bin/seedgen.rs | 2 +- runtimes/kusama/src/bin/seedgen.rs | 2 +- runtimes/polkadot/src/bin/seedgen.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/runtimes/coretime-kusama/src/bin/seedgen.rs b/runtimes/coretime-kusama/src/bin/seedgen.rs index fa87b1f..63ebdce 100644 --- a/runtimes/coretime-kusama/src/bin/seedgen.rs +++ b/runtimes/coretime-kusama/src/bin/seedgen.rs @@ -1,6 +1,6 @@ #![warn(clippy::pedantic)] -use coretime_kusama_runtime::{Runtime, RuntimeCall}; use codec::{Decode, Encode}; +use coretime_kusama_runtime::{Runtime, RuntimeCall}; use frame_metadata::{RuntimeMetadata, RuntimeMetadataPrefixed}; use frame_support::traits::GetCallMetadata; use scale_info::TypeDef; diff --git a/runtimes/kusama/src/bin/seedgen.rs b/runtimes/kusama/src/bin/seedgen.rs index 99a43cb..cb2f4a9 100644 --- a/runtimes/kusama/src/bin/seedgen.rs +++ b/runtimes/kusama/src/bin/seedgen.rs @@ -1,10 +1,10 @@ #![warn(clippy::pedantic)] -use staging_kusama_runtime::{Runtime, RuntimeCall}; use codec::{Decode, Encode}; use frame_metadata::{RuntimeMetadata, RuntimeMetadataPrefixed}; use frame_support::traits::GetCallMetadata; use scale_info::TypeDef; use sp_state_machine::BasicExternalities; +use staging_kusama_runtime::{Runtime, RuntimeCall}; use std::{collections::BTreeMap, fs, path::Path}; fn main() { diff --git a/runtimes/polkadot/src/bin/seedgen.rs b/runtimes/polkadot/src/bin/seedgen.rs index 10b0b01..60765b7 100644 --- a/runtimes/polkadot/src/bin/seedgen.rs +++ b/runtimes/polkadot/src/bin/seedgen.rs @@ -1,8 +1,8 @@ #![warn(clippy::pedantic)] -use polkadot_runtime::{Runtime, RuntimeCall}; use codec::{Decode, Encode}; use frame_metadata::{RuntimeMetadata, RuntimeMetadataPrefixed}; use frame_support::traits::GetCallMetadata; +use polkadot_runtime::{Runtime, RuntimeCall}; use scale_info::TypeDef; use sp_state_machine::BasicExternalities; use std::{collections::BTreeMap, fs, path::Path}; From f4a02c9fe40832284df5ae2d924b303434e04f0b Mon Sep 17 00:00:00 2001 From: Louis Merlin Date: Tue, 10 Feb 2026 11:44:24 +0100 Subject: [PATCH 4/6] Remove debug print --- runtimes/asset-hub-kusama/src/main.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/runtimes/asset-hub-kusama/src/main.rs b/runtimes/asset-hub-kusama/src/main.rs index cd67d09..c602473 100644 --- a/runtimes/asset-hub-kusama/src/main.rs +++ b/runtimes/asset-hub-kusama/src/main.rs @@ -135,8 +135,6 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) return recursively_find_call(*call, matches_on); } else if matches_on(call.clone()) { return true; - } else { - println!("innermost call: {:?}", call); } false } From 90f377354c18f7ab1b09c2500243576eebf363c4 Mon Sep 17 00:00:00 2001 From: Louis Merlin Date: Thu, 12 Feb 2026 09:58:13 +0100 Subject: [PATCH 5/6] Add revive dispatch to recursive calls --- runtimes/asset-hub-kusama/Cargo.toml | 1 + runtimes/asset-hub-kusama/src/main.rs | 3 +++ 2 files changed, 4 insertions(+) diff --git a/runtimes/asset-hub-kusama/Cargo.toml b/runtimes/asset-hub-kusama/Cargo.toml index 48f96bb..87a0750 100644 --- a/runtimes/asset-hub-kusama/Cargo.toml +++ b/runtimes/asset-hub-kusama/Cargo.toml @@ -36,6 +36,7 @@ pallet-vesting = { workspace = true } pallet-remote-proxy = { workspace = true } pallet-recovery = { workspace = true } pallet-whitelist = { workspace = true } +pallet-revive = { workspace = true } cumulus-primitives-core = { workspace = true } cumulus-primitives-parachain-inherent = { workspace = true } diff --git a/runtimes/asset-hub-kusama/src/main.rs b/runtimes/asset-hub-kusama/src/main.rs index cd67d09..eca3434 100644 --- a/runtimes/asset-hub-kusama/src/main.rs +++ b/runtimes/asset-hub-kusama/src/main.rs @@ -124,6 +124,9 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) pallet_remote_proxy::Call::remote_proxy { call, .. } | pallet_remote_proxy::Call::remote_proxy_with_registered_proof { call, .. }, ) + | RuntimeCall::Revive( + pallet_revive::Call::dispatch_as_fallback_account { call, .. }, + ) | RuntimeCall::Recovery(pallet_recovery::Call::as_recovered { call, .. }) | RuntimeCall::Whitelist( pallet_whitelist::Call::dispatch_whitelisted_call_with_preimage { call, .. }, From afff52cd10dcc51817048056d419c64c0865b6fa Mon Sep 17 00:00:00 2001 From: Louis Merlin Date: Thu, 12 Feb 2026 09:58:58 +0100 Subject: [PATCH 6/6] Run fmt --- runtimes/asset-hub-kusama/src/main.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/runtimes/asset-hub-kusama/src/main.rs b/runtimes/asset-hub-kusama/src/main.rs index 5332dfe..6599159 100644 --- a/runtimes/asset-hub-kusama/src/main.rs +++ b/runtimes/asset-hub-kusama/src/main.rs @@ -124,9 +124,10 @@ fn recursively_find_call(call: RuntimeCall, matches_on: fn(RuntimeCall) -> bool) pallet_remote_proxy::Call::remote_proxy { call, .. } | pallet_remote_proxy::Call::remote_proxy_with_registered_proof { call, .. }, ) - | RuntimeCall::Revive( - pallet_revive::Call::dispatch_as_fallback_account { call, .. }, - ) + | RuntimeCall::Revive(pallet_revive::Call::dispatch_as_fallback_account { + call, + .. + }) | RuntimeCall::Recovery(pallet_recovery::Call::as_recovered { call, .. }) | RuntimeCall::Whitelist( pallet_whitelist::Call::dispatch_whitelisted_call_with_preimage { call, .. },