diff --git a/Cargo.lock b/Cargo.lock index 464286ffc..f6cc69dcd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,11 +14,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.19.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.27.3", + "gimli 0.31.1", ] [[package]] @@ -101,9 +101,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-consensus" -version = "1.3.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41e46a465e50a339a817070ec23f06eb3fc9fbb8af71612868367b875a9d49e3" +checksum = "b0c0dc44157867da82c469c13186015b86abef209bf0e41625e4b68bac61d728" dependencies = [ "alloy-eips", "alloy-primitives", @@ -123,14 +123,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.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d4087016b0896051dd3d03e0bedda2f4d4d1689af8addc8450288c63a9e5f68" +checksum = "23e8604b0c092fabc80d075ede181c9b9e596249c70b99253082d7e689836529" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -141,9 +141,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "1.5.2" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "369f5707b958927176265e8a58627fc6195e5dfa5c55689396e68b241b3a72e6" +checksum = "cc2db5c583aaef0255aa63a4fe827f826090142528bba48d1bf4119b62780cad" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -165,7 +165,7 @@ dependencies = [ "alloy-rlp", "crc", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -191,18 +191,31 @@ dependencies = [ "borsh", "k256", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-eip7928" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8222b1d88f9a6d03be84b0f5e76bb60cd83991b43ad8ab6477f0e4a7809b98d" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "borsh", + "serde", ] [[package]] name = "alloy-eips" -version = "1.3.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707337efeb051ddbaece17a73eaec5150945a5a5541112f4146508248edc2e40" +checksum = "b9f7ef09f21bd1e9cb8a686f168cb4a206646804567f0889eadb8dcc4c9288c8" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", + "alloy-eip7928", "alloy-primitives", "alloy-rlp", "alloy-serde", @@ -214,14 +227,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.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84e3cf01219c966f95a460c95f1d4c30e12f6c18150c21a30b768af2a2a29142" +checksum = "e9dbe713da0c737d9e5e387b0ba790eb98b14dd207fe53eef50e19a5a8ec3dac" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -231,9 +244,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.5.2" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6a0fb18dd5fb43ec5f0f6a20be1ce0287c79825827de5744afaa6c957737c33" +checksum = "de3b431b4e72cd8bd0ec7a50b4be18e73dab74de0dba180eef171055e5d5926e" dependencies = [ "alloy-rlp", "bytes", @@ -242,7 +255,7 @@ dependencies = [ "derive_more 2.1.1", "foldhash 0.2.0", "hashbrown 0.16.1", - "indexmap 2.12.1", + "indexmap 2.13.0", "itoa", "k256", "keccak-asm", @@ -254,14 +267,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", @@ -270,20 +282,20 @@ 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", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "alloy-serde" -version = "1.3.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a438ce4cd49ec4bc213868c1fe94f2fe103d4c3f22f6a42073db974f9c0962da" +checksum = "e2ce1e0dbf7720eee747700e300c99aac01b1a95bb93f493a01e78ee28bb1a37" dependencies = [ "alloy-primitives", "serde", @@ -292,41 +304,41 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.5.2" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09eb18ce0df92b4277291bbaa0ed70545d78b02948df756bbd3d6214bf39a218" +checksum = "ab81bab693da9bb79f7a95b64b394718259fdd7e41dceeced4cad57cb71c4f6a" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.5.2" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95d9fa2daf21f59aa546d549943f10b5cce1ae59986774019fbedae834ffe01b" +checksum = "489f1620bb7e2483fb5819ed01ab6edc1d2f93939dce35a5695085a1afd1d699" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.12.1", + "indexmap 2.13.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.114", + "sha3", + "syn 2.0.117", "syn-solidity", - "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.5.2" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9396007fe69c26ee118a19f4dee1f5d1d6be186ea75b3881adf16d87f8444686" +checksum = "56cef806ad22d4392c5fc83cf8f2089f988eb99c7067b4e0c6f1971fc1cca318" dependencies = [ "const-hex", "dunce", @@ -334,15 +346,15 @@ dependencies = [ "macro-string", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.5.2" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af67a0b0dcebe14244fc92002cd8d96ecbf65db4639d479f5fcd5805755a4c27" +checksum = "a6df77fea9d6a2a75c0ef8d2acbdfd92286cc599983d3175ccdc170d3433d249" dependencies = [ "serde", "winnow", @@ -350,9 +362,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.5.2" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09aeea64f09a7483bdcd4193634c7e5cf9fd7775ee767585270cd8ce2d69dc95" +checksum = "64612d29379782a5dde6f4b6570d9c756d734d760c0c94c254d361e678a6591f" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -362,9 +374,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", @@ -373,19 +385,20 @@ dependencies = [ "nybbles", "serde", "smallvec", + "thiserror 2.0.18", "tracing", ] [[package]] name = "alloy-tx-macros" -version = "1.3.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99dac443033e83b14f68fac56e8c27e76421f1253729574197ceccd06598f3ef" +checksum = "6fa0c53e8c1e1ef4d01066b01c737fb62fc9397ab52c6e7bb5669f97d281b9bc" dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -405,9 +418,9 @@ checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "approx" @@ -429,17 +442,14 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] -name = "ar_archive_writer" -version = "0.2.0" +name = "arbitrary" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c269894b6fe5e9d7ada0cf69b5bf847ff35bc25fc271f08e1d080fce80339a" -dependencies = [ - "object 0.32.2", -] +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" [[package]] name = "ark-bls12-377" @@ -623,7 +633,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -661,7 +671,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -775,7 +785,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -854,7 +864,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27d55334c98d756b32dcceb60248647ab34f027690f87f9a362fd292676ee927" dependencies = [ "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -900,7 +910,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror 2.0.17", + "thiserror 2.0.18", "time", ] @@ -912,7 +922,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "synstructure 0.13.2", ] @@ -924,7 +934,7 @@ checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "synstructure 0.13.2", ] @@ -936,7 +946,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -947,9 +957,10 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" [[package]] name = "asset-hub-paseo-emulated-chain" -version = "2.0.6" +version = "2.1.0" dependencies = [ "asset-hub-paseo-runtime", + "assets-common", "cumulus-primitives-core", "emulated-integration-tests-common", "frame-support", @@ -962,15 +973,17 @@ dependencies = [ "sp-core", "sp-keyring", "staging-xcm", + "staging-xcm-builder", ] [[package]] name = "asset-hub-paseo-runtime" -version = "2.0.6" +version = "2.1.0" dependencies = [ "approx", "asset-test-utils", "assets-common", + "bp-asset-hub-kusama", "bp-asset-hub-paseo", "bp-bridge-hub-kusama", "bp-bridge-hub-paseo", @@ -989,12 +1002,15 @@ dependencies = [ "frame-election-provider-support", "frame-executive", "frame-metadata-hash-extension", + "frame-remote-externalities", "frame-support", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", + "hex", "hex-literal", + "kusama-runtime-constants", "log", "pallet-ah-migrator", "pallet-ah-ops", @@ -1011,11 +1027,13 @@ dependencies = [ "pallet-child-bounties", "pallet-collator-selection", "pallet-conviction-voting", + "pallet-dap", "pallet-delegated-staking", "pallet-election-provider-multi-block", "pallet-indices", "pallet-message-queue", "pallet-migrations", + "pallet-multi-asset-bounties", "pallet-multisig", "pallet-nfts", "pallet-nfts-runtime-api", @@ -1051,9 +1069,11 @@ dependencies = [ "parachains-common", "parachains-runtimes-test-utils", "parity-scale-codec", + "paseo-runtime", "paseo-runtime-constants", "polkadot-core-primitives", "polkadot-parachain-primitives", + "polkadot-primitives", "polkadot-runtime-common", "primitive-types 0.13.1", "scale-info", @@ -1064,10 +1084,13 @@ dependencies = [ "snowbridge-runtime-common", "sp-api", "sp-arithmetic", + "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", + "sp-consensus-babe", + "sp-consensus-beefy", + "sp-consensus-grandpa", "sp-core", - "sp-debug-derive", "sp-genesis-builder", "sp-inherents", "sp-io", @@ -1087,16 +1110,18 @@ dependencies = [ "staging-xcm-executor", "substrate-wasm-builder", "system-parachains-common", - "system-parachains-constants 2.0.6", + "system-parachains-constants 2.1.0", + "tokio", "xcm-runtime-apis", ] [[package]] name = "asset-test-utils" -version = "28.0.0" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2480dea7bee5775df12a629fc787fe8b29b38a692c589ad0e2e96f59a068eb3d" +checksum = "ee2b7d9b9eb37a038ce25592086d3843468227a503da05d32184bda678d2591b" dependencies = [ + "assets-common", "cumulus-pallet-parachain-system", "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", @@ -1124,9 +1149,9 @@ dependencies = [ [[package]] name = "assets-common" -version = "0.26.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfa7ebc64fd2f84ec13bce921d1fca33f58de2cc58da8ded879358444fc7ea97" +checksum = "7669aa4fc76e66f59e5dde1187b90dad60a8fd9de072f48e0d2949b139f366c2" dependencies = [ "cumulus-primitives-core", "ethereum-standards", @@ -1141,6 +1166,7 @@ dependencies = [ "parachains-common", "parity-scale-codec", "scale-info", + "serde", "sp-api", "sp-core", "sp-runtime", @@ -1174,7 +1200,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 1.1.3", + "rustix", "slab", "windows-sys 0.61.2", ] @@ -1187,7 +1213,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1251,7 +1277,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1262,9 +1288,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" @@ -1309,12 +1335,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -1323,9 +1343,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.2" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d809780667f4410e7c41b07f52439b94d2bdf8528eeedc287fa38d3b7f95d82" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] name = "binary-merkle-tree" @@ -1338,15 +1358,6 @@ dependencies = [ "parity-scale-codec", ] -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - [[package]] name = "bip32" version = "0.5.3" @@ -1370,7 +1381,9 @@ version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90dbd31c98227229239363921e60fcf5e558e43ec69094d46fc4996f08d1d5bc" dependencies = [ - "bitcoin_hashes 0.14.1", + "bitcoin_hashes", + "rand 0.8.5", + "rand_core 0.6.4", "serde", "unicode-normalization", ] @@ -1390,28 +1403,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" -[[package]] -name = "bitcoin-internals" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" - [[package]] name = "bitcoin-io" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" -[[package]] -name = "bitcoin_hashes" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" -dependencies = [ - "bitcoin-internals", - "hex-conservative 0.1.2", -] - [[package]] name = "bitcoin_hashes" version = "0.14.1" @@ -1419,7 +1416,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26ec84b80c482df901772e931a9a681e26a1b9ee2302edeff23cb30328745c8b" dependencies = [ "bitcoin-io", - "hex-conservative 0.2.2", + "hex-conservative", ] [[package]] @@ -1430,9 +1427,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "bitvec" @@ -1470,20 +1467,9 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "blake2s_simd" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e90f7deecfac93095eb874a40febd69427776e24e1bd7f87f33ac62d6f0174df" +checksum = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" dependencies = [ "arrayref", "arrayvec", @@ -1492,15 +1478,16 @@ dependencies = [ [[package]] name = "blake3" -version = "1.8.2" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" +checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", "constant_time_eq", + "cpufeatures", ] [[package]] @@ -1550,10 +1537,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" dependencies = [ "once_cell", - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1572,7 +1559,7 @@ dependencies = [ [[package]] name = "bp-asset-hub-kusama" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" dependencies = [ "bp-xcm-bridge-hub-router", "frame-support", @@ -1585,7 +1572,7 @@ dependencies = [ [[package]] name = "bp-asset-hub-paseo" -version = "2.0.6" +version = "2.1.0" dependencies = [ "bp-xcm-bridge-hub-router", "frame-support", @@ -1593,14 +1580,14 @@ dependencies = [ "scale-info", "sp-core", "staging-xcm", - "system-parachains-constants 2.0.6", + "system-parachains-constants 2.1.0", ] [[package]] name = "bp-bridge-hub-cumulus" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc49466cbc16a83dd55b4fb8d79def472b2e0f1753eb2a84e138c8242503a5c5" +checksum = "d563f70bc907c981e5f16222bf75783af18d8994fbcfacf5a3bd311efa3043e8" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -1616,7 +1603,7 @@ dependencies = [ [[package]] name = "bp-bridge-hub-kusama" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" dependencies = [ "bp-bridge-hub-cumulus", "bp-header-chain", @@ -1634,7 +1621,7 @@ dependencies = [ [[package]] name = "bp-bridge-hub-paseo" -version = "2.0.6" +version = "2.1.0" dependencies = [ "bp-bridge-hub-cumulus", "bp-header-chain", @@ -1649,13 +1636,13 @@ dependencies = [ "sp-runtime", "sp-std", "staging-xcm", - "system-parachains-constants 2.0.6", + "system-parachains-constants 2.1.0", ] [[package]] name = "bp-bridge-hub-polkadot" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" dependencies = [ "bp-bridge-hub-cumulus", "bp-header-chain", @@ -1675,9 +1662,9 @@ dependencies = [ [[package]] name = "bp-header-chain" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0e157ea5af5341b637b58aac5308abe58ea00dfc05a9a6da139f77184f31c94" +checksum = "c49aa0892b9a3286e22ff52c9025d8e62576fa4c91f91364738db791f05088f0" dependencies = [ "bp-runtime", "finality-grandpa", @@ -1693,9 +1680,9 @@ dependencies = [ [[package]] name = "bp-messages" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b026ba4bf232f74a5eec02270d871d9042848b9f20622527b3b33ed3f768c6" +checksum = "ad35c105fa3ef50f451bff0bdddda39d2fcb4c02d75f0e71b06e6538c98f89d3" dependencies = [ "bp-header-chain", "bp-runtime", @@ -1710,9 +1697,9 @@ dependencies = [ [[package]] name = "bp-parachains" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e6f637a374ac49415442931a1dfe2afbc6a60f07edca577ddff5d3a6ebf6c76" +checksum = "c60b4c35b8ebf4175666c47ff6e9fe4586903091c47d73677529c59578937aeb" dependencies = [ "bp-header-chain", "bp-polkadot-core", @@ -1728,9 +1715,9 @@ dependencies = [ [[package]] name = "bp-polkadot-core" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c95b805de5b7641d209b6f353917ea7658312ff2c2391e2b3e5e5c4b6ca51308" +checksum = "2c52d6962152e0aa5a20e020c4502bb47b8fd850a84a2955f523d10af68b26c8" dependencies = [ "bp-messages", "bp-runtime", @@ -1746,9 +1733,9 @@ dependencies = [ [[package]] name = "bp-relayers" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c7db8aa96a526ec739b0d84c4ee9108d12da1ba166ac831269d1d1984cc0198" +checksum = "7137c42b06e131fbf995b3b462c454b3c3b7a51b0779f70869915445d9f3e60a" dependencies = [ "bp-header-chain", "bp-messages", @@ -1765,15 +1752,14 @@ dependencies = [ [[package]] name = "bp-runtime" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97db5360e68ecd6b0fdaba1a0d44abbf1670e2fa82058a8a06d8a581af0bcf5c" +checksum = "6bae52c333df27220b4b0a7603ec77f7daed48d28f8ce5146f9d2072440d739c" dependencies = [ "frame-support", "frame-system", "hash-db", "impl-trait-for-tuples", - "log", "num-traits", "parity-scale-codec", "scale-info", @@ -1784,14 +1770,15 @@ dependencies = [ "sp-state-machine", "sp-std", "sp-trie", + "tracing", "trie-db", ] [[package]] name = "bp-test-utils" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c32f66f61ed382c6519720d3578e596a7811819c280650dd54643f7e05ec0184" +checksum = "44445f2ec2fd945fc0552c386f30872d7de967920c4cc05704e8a4f26d239f9e" dependencies = [ "bp-header-chain", "bp-parachains", @@ -1810,9 +1797,9 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1658655c430393db48f95f8e673b0083f97dec39460d5444e778b801524aa8" +checksum = "dd169ad82bff4c0eba6ae050d78bea8d04e50bff5698981ddb865dff1cc7d0a3" dependencies = [ "bp-messages", "bp-runtime", @@ -1828,9 +1815,9 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89f63e3f87187b83e7fe84b16109a6072743447bc74612cd6204076072215515" +checksum = "5115500f8cc5c5bee2ba3ffe87072e812f31c7fda26ead9cb7e691a20068668b" dependencies = [ "parity-scale-codec", "scale-info", @@ -1841,9 +1828,9 @@ dependencies = [ [[package]] name = "bridge-hub-common" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e249648e0b7244f7928c2003f55aaa6c79c9f59494f47554efe19d69d0607be" +checksum = "30232767c00587e32715032a72002b60cf55d1ef7dc3461c17e3190571a70fc7" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1861,7 +1848,7 @@ dependencies = [ [[package]] name = "bridge-hub-paseo-emulated-chain" -version = "2.0.6" +version = "2.1.0" dependencies = [ "bp-messages", "bridge-hub-common", @@ -1876,7 +1863,7 @@ dependencies = [ [[package]] name = "bridge-hub-paseo-integration-tests" -version = "2.0.6" +version = "2.1.0" dependencies = [ "asset-hub-paseo-runtime", "bp-asset-hub-paseo", @@ -1919,14 +1906,15 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "system-parachains-constants 2.0.6", + "system-parachains-constants 2.1.0", "xcm-runtime-apis", ] [[package]] name = "bridge-hub-paseo-runtime" -version = "2.0.6" +version = "2.1.0" dependencies = [ + "assets-common", "bp-asset-hub-kusama", "bp-asset-hub-paseo", "bp-bridge-hub-kusama", @@ -2003,7 +1991,9 @@ dependencies = [ "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", + "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-inbound-queue-v2", + "snowbridge-pallet-inbound-queue-v2-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-outbound-queue-v2", "snowbridge-pallet-system", @@ -2032,16 +2022,16 @@ dependencies = [ "staging-xcm-builder", "staging-xcm-executor", "substrate-wasm-builder", - "system-parachains-constants 2.0.6", + "system-parachains-constants 2.1.0", "tuplex", "xcm-runtime-apis", ] [[package]] name = "bridge-hub-test-utils" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49300605f99d5c280411fa290a4c1bb8f29c7858ee9dfbcfee768f7824204d80" +checksum = "5df05fe49bb38e0c96980e00514eeeb551159b0da692e2b15c069da5bf63005e" dependencies = [ "asset-test-utils", "bp-header-chain", @@ -2056,7 +2046,6 @@ dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", - "log", "pallet-balances", "pallet-bridge-grandpa", "pallet-bridge-messages", @@ -2078,13 +2067,14 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "tracing", ] [[package]] name = "bridge-runtime-common" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bed9e7c0783e54641f69ff9115b43950e49e7dbcaf44892baa88bea26d5d057e" +checksum = "b4c2dab44704a1ec6045ceb3376b827a06c4a946f8d5ffc50b907258774fad36" dependencies = [ "bp-header-chain", "bp-messages", @@ -2094,7 +2084,6 @@ dependencies = [ "bp-runtime", "frame-support", "frame-system", - "log", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", @@ -2110,6 +2099,7 @@ dependencies = [ "sp-weights", "staging-xcm", "static_assertions", + "tracing", "tuplex", ] @@ -2134,9 +2124,12 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +dependencies = [ + "allocator-api2", +] [[package]] name = "byte-slice-cast" @@ -2152,9 +2145,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[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" @@ -2164,18 +2157,18 @@ 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", ] [[package]] name = "c-kzg" -version = "2.1.5" +version = "2.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" +checksum = "1a0f582957c24870b7bfd12bf562c40b4734b533cafbaf8ded31d6d85f462c01" dependencies = [ "blst", "cc", @@ -2230,9 +2223,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.51" +version = "1.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" dependencies = [ "find-msvc-tools", "jobserver", @@ -2303,9 +2296,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -2315,19 +2308,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "cid" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" -dependencies = [ - "core2", - "multibase", - "multihash 0.17.0", - "serde", - "unsigned-varint 0.7.2", -] - [[package]] name = "cid" version = "0.11.1" @@ -2362,18 +2342,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.54" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.54" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" dependencies = [ "anstyle", "clap_lex", @@ -2382,9 +2362,18 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.6" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" + +[[package]] +name = "cobs" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" +checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" +dependencies = [ + "thiserror 2.0.18", +] [[package]] name = "codespan-reporting" @@ -2411,7 +2400,7 @@ dependencies = [ [[package]] name = "collectives-paseo-runtime" -version = "2.0.6" +version = "2.1.0" dependencies = [ "collectives-paseo-runtime-constants", "collectives-polkadot-runtime-constants", @@ -2487,18 +2476,18 @@ dependencies = [ "staging-xcm-builder", "staging-xcm-executor", "substrate-wasm-builder", - "system-parachains-constants 2.0.6", + "system-parachains-constants 2.1.0", "xcm-runtime-apis", ] [[package]] name = "collectives-paseo-runtime-constants" -version = "2.0.6" +version = "2.1.0" [[package]] name = "collectives-polkadot-runtime-constants" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" [[package]] name = "combine" @@ -2550,9 +2539,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.17.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" +checksum = "531185e432bb31db1ecda541e9e7ab21468d4d844ad7505e0546a49b4945d49b" dependencies = [ "cfg-if", "cpufeatures", @@ -2581,7 +2570,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "once_cell", "tiny-keccak", ] @@ -2614,9 +2603,9 @@ dependencies = [ [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] name = "convert_case" @@ -2624,6 +2613,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "convert_case" version = "0.10.0" @@ -2670,7 +2668,7 @@ dependencies = [ [[package]] name = "coretime-paseo-emulated-chain" -version = "2.0.6" +version = "2.1.0" dependencies = [ "coretime-paseo-runtime", "cumulus-primitives-core", @@ -2682,7 +2680,7 @@ dependencies = [ [[package]] name = "coretime-paseo-integration-tests" -version = "2.0.6" +version = "2.1.0" dependencies = [ "asset-test-utils", "coretime-paseo-runtime", @@ -2709,7 +2707,7 @@ dependencies = [ [[package]] name = "coretime-paseo-runtime" -version = "2.0.6" +version = "2.1.0" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", @@ -2774,15 +2772,15 @@ dependencies = [ "staging-xcm-builder", "staging-xcm-executor", "substrate-wasm-builder", - "system-parachains-constants 2.0.6", + "system-parachains-constants 2.1.0", "xcm-runtime-apis", ] [[package]] name = "cpp_demangle" -version = "0.3.5" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +checksum = "f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253" dependencies = [ "cfg-if", ] @@ -2796,64 +2794,113 @@ dependencies = [ "libc", ] +[[package]] +name = "cranelift-assembler-x64" +version = "0.122.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae7b60ec3fd7162427d3b3801520a1908bef7c035b52983cd3ca11b8e7deb51" +dependencies = [ + "cranelift-assembler-x64-meta", +] + +[[package]] +name = "cranelift-assembler-x64-meta" +version = "0.122.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6511c200fed36452697b4b6b161eae57d917a2044e6333b1c1389ed63ccadeee" +dependencies = [ + "cranelift-srcgen", +] + [[package]] name = "cranelift-bforest" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" +checksum = "5f7086a645aa58bae979312f64e3029ac760ac1b577f5cd2417844842a2ca07f" dependencies = [ "cranelift-entity", ] +[[package]] +name = "cranelift-bitset" +version = "0.122.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5225b4dec45f3f3dbf383f12560fac5ce8d780f399893607e21406e12e77f491" +dependencies = [ + "serde", + "serde_derive", +] + [[package]] name = "cranelift-codegen" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" +checksum = "858fb3331e53492a95979378d6df5208dd1d0d315f19c052be8115f4efc888e0" dependencies = [ "bumpalo", + "cranelift-assembler-x64", "cranelift-bforest", + "cranelift-bitset", "cranelift-codegen-meta", "cranelift-codegen-shared", + "cranelift-control", "cranelift-entity", "cranelift-isle", - "gimli 0.27.3", - "hashbrown 0.13.2", + "gimli 0.31.1", + "hashbrown 0.15.5", "log", - "regalloc2 0.6.1", + "pulley-interpreter", + "regalloc2 0.12.2", + "rustc-hash 2.1.1", + "serde", "smallvec", "target-lexicon", + "wasmtime-internal-math", ] [[package]] name = "cranelift-codegen-meta" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" +checksum = "456715b9d5f12398f156d5081096e7b5d039f01b9ecc49790a011c8e43e65b5f" dependencies = [ + "cranelift-assembler-x64-meta", "cranelift-codegen-shared", + "cranelift-srcgen", + "pulley-interpreter", ] [[package]] name = "cranelift-codegen-shared" -version = "0.95.1" +version = "0.122.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0306041099499833f167a0ddb707e1e54100f1a84eab5631bc3dad249708f482" + +[[package]] +name = "cranelift-control" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" +checksum = "1672945e1f9afc2297f49c92623f5eabc64398e2cb0d824f8f72a2db2df5af23" +dependencies = [ + "arbitrary", +] [[package]] name = "cranelift-entity" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" +checksum = "aa3cd55eb5f3825b9ae5de1530887907360a6334caccdc124c52f6d75246c98a" dependencies = [ + "cranelift-bitset", "serde", + "serde_derive", ] [[package]] name = "cranelift-frontend" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" +checksum = "781f9905f8139b8de22987b66b522b416fe63eb76d823f0b3a8c02c8fd9500c7" dependencies = [ "cranelift-codegen", "log", @@ -2863,15 +2910,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" +checksum = "a05337a2b02c3df00b4dd9a263a027a07b3dff49f61f7da3b5d195c21eaa633d" [[package]] name = "cranelift-native" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" +checksum = "2eee7a496dd66380082c9c5b6f2d5fa149cec0ec383feec5caf079ca2b3671c2" dependencies = [ "cranelift-codegen", "libc", @@ -2879,20 +2926,10 @@ dependencies = [ ] [[package]] -name = "cranelift-wasm" -version = "0.95.1" +name = "cranelift-srcgen" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" -dependencies = [ - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "itertools 0.10.5", - "log", - "smallvec", - "wasmparser", - "wasmtime-types", -] +checksum = "b530783809a55cb68d070e0de60cfbb3db0dc94c8850dd5725411422bedcf6bb" [[package]] name = "crc" @@ -3033,9 +3070,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dfa0519017a4ffb05838c3e7b7e47f26c86928c965ed730a91d4d1272be4996" +checksum = "82cb90cd9debf9f763c65f9e5cd5bd3592103592ed962da03635dcaa70346e25" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -3051,10 +3088,11 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb02cf667494e2987f88dc904b80bf27e132222cf924b7e0c50e5bfbb893d04" +checksum = "25d8efadc9b4ad035b7fb55c768ce3d68941c1d7ef38840fa61624d34878e5e3" dependencies = [ + "array-bytes 6.2.3", "bytes", "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -3089,21 +3127,21 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "befbaf3a1ce23ac8476481484fef5f4d500cbd15b4dad6380ce1d28134b0c1f7" +checksum = "8734f642ff194055ba9905135a16fbfc16d143c4bebf3a9593d90caf75d10083" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "cumulus-pallet-session-benchmarking" -version = "25.0.1" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "860deadaa81ce442f3920795d84ae8e55101121388f840e831ab21ef68c8cbfe" +checksum = "ca4ab47b9d17cc968f5ee89469a851bb2a2ba06a0b65398bf50c34ca0afb4eb0" dependencies = [ "frame-benchmarking", "frame-support", @@ -3115,9 +3153,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-weight-reclaim" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c3bc97a8192354d85bf847904eaa9eb5577bf6fee955476d839806a75d5d2f0" +checksum = "0259d53fe511c79be65f50cdb31b22837ebf804331c643ae2a155d91d8efd466" dependencies = [ "cumulus-primitives-storage-weight-reclaim", "derive-where", @@ -3135,9 +3173,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d70f2a1a7b14662388314514734e20fb46664568c97dc51a4b463abd59e78625" +checksum = "ade68dc08dc31f1708b9d46ed1993c3b439cef8a30c56c05b6adf19e585020cc" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -3151,9 +3189,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ea144e9d393fa90419dbd64aa6315f3cb462faf53c3d3c29652993ae33c3475" +checksum = "e94b2def9b1b6628c7af78291e80d189b7d77adc0a72bf0e47096333e79f7789" dependencies = [ "approx", "bounded-collections", @@ -3162,7 +3200,6 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", "pallet-message-queue", "parity-scale-codec", "polkadot-runtime-common", @@ -3174,13 +3211,14 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "tracing", ] [[package]] name = "cumulus-primitives-aura" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4094f51bfc2154d36f2ccb982d394899c21de40f0b6876b04aea3a24bbacff" +checksum = "eadc09e2bd83a313202cc493bf6ed9f8328275fb688a7d9bbca0fd79514e8343" dependencies = [ "sp-api", "sp-consensus-aura", @@ -3188,9 +3226,9 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af6e7e5788ddc27c5d5d28f8c1363f77432e22a534ea11bce8d7e1d714cef81" +checksum = "ef73b695cc30fc5dd146fd32636f08fbfc725458f00cc776cb326c8846f5157a" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -3206,9 +3244,9 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aaf79465940a8c0ff0410f286849f2b5000768906111f32da4251274548165c" +checksum = "1dfc00f908f13d8a44d48086515f89c7f883454b18192d33bdae5808c25c85d1" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3221,9 +3259,9 @@ dependencies = [ [[package]] name = "cumulus-primitives-proof-size-hostfunction" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2c902e7e33f9510b5354b54a68261694da6f37e70c20b3f115f7319da4644a2" +checksum = "173cea3648f289194e2ed3a9501e7224f8bea4c4d38cce247ef681c3016ac3c1" dependencies = [ "sp-externalities", "sp-runtime-interface", @@ -3232,9 +3270,9 @@ dependencies = [ [[package]] name = "cumulus-primitives-storage-weight-reclaim" -version = "15.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40a87084fe60ee80f84128f257db1b5afc546302a32210f5cddde318000d02c" +checksum = "7c6c35f19b372c4c00d7a22a23ebabfadeb8504126fe289d9c48659c51de5032" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -3250,9 +3288,9 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "025a108acb1115dee0cfd35e8aca938c6b63f8afea70f40becc1fb66621ee543" +checksum = "d789447d17b81063f3c2277c70d009a5c2d54dd505c090485500dfa23d5e1895" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -3268,9 +3306,9 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" -version = "0.23.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4dfff163c88093b298b83ff63453be5eb56854fc9ea9dff65f4c309de609b4" +checksum = "0ffc9d6ab662abed407a0f2737333daa653b647d3aa13c6693ccab7adcd0fc0f" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -3306,14 +3344,14 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[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", @@ -3326,49 +3364,49 @@ 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", - "indexmap 2.12.1", + "indexmap 2.13.0", "proc-macro2", "quote", "scratch", - "syn 2.0.114", + "syn 2.0.117", ] [[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", - "indexmap 2.12.1", + "indexmap 2.13.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[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.12.1", + "indexmap 2.13.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3402,7 +3440,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3417,7 +3455,7 @@ dependencies = [ "quote", "serde", "strsim", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3428,7 +3466,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3439,20 +3477,20 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "data-encoding" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" [[package]] name = "data-encoding-macro" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" +checksum = "8142a83c17aa9461d637e649271eae18bf2edd00e91f2e105df36c3c16355bdb" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -3460,12 +3498,21 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" +checksum = "7ab67060fc6b8ef687992d439ca0fa36e7ed17e9a0b16b25b601e8757df720de" dependencies = [ "data-encoding", - "syn 2.0.114", + "syn 2.0.117", +] + +[[package]] +name = "debugid" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +dependencies = [ + "uuid", ] [[package]] @@ -3509,9 +3556,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.5" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", "serde_core", @@ -3536,7 +3583,7 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3547,7 +3594,7 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3560,7 +3607,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3589,7 +3636,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3602,7 +3649,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.114", + "syn 2.0.117", "unicode-xid", ] @@ -3686,7 +3733,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3710,7 +3757,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.114", + "syn 2.0.117", "termcolor", "toml 0.8.23", "walkdir", @@ -3805,7 +3852,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3837,11 +3884,23 @@ dependencies = [ "zeroize", ] +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "emulated-integration-tests-common" -version = "26.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304687265a0ac33272bd3309e99c4ba28f950cff136274991e83ac9b00f8af5" +checksum = "aea312b5aad3da2049a43afe0952262cc19b45e0d34bdd9ef9b9bd2d409103b5" dependencies = [ "asset-test-utils", "bp-messages", @@ -3857,7 +3916,6 @@ dependencies = [ "pallet-balances", "pallet-bridge-messages", "pallet-message-queue", - "pallet-preimage", "pallet-whitelist", "pallet-xcm", "pallet-xcm-bridge-hub", @@ -3897,16 +3955,36 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] -name = "enum-ordinalize" -version = "4.3.2" +name = "enum-display" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" +checksum = "02058bb25d8d0605829af88230427dd5cd50661590bd2b09d1baf7c64c417f24" dependencies = [ - "enum-ordinalize-derive", + "enum-display-macro", +] + +[[package]] +name = "enum-display-macro" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4be2cf2fe7b971b1865febbacd4d8df544aa6bd377cca011a6d69dcf4c60d94" +dependencies = [ + "convert_case 0.6.0", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "enum-ordinalize" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" +dependencies = [ + "enum-ordinalize-derive", ] [[package]] @@ -3917,7 +3995,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3937,7 +4015,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3948,20 +4026,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", -] - -[[package]] -name = "env_logger" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", + "syn 2.0.117", ] [[package]] @@ -4054,15 +4119,9 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - [[package]] name = "fallible-iterator" version = "0.3.0" @@ -4123,26 +4182,15 @@ dependencies = [ "winapi", ] -[[package]] -name = "file-per-thread-logger" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" -dependencies = [ - "env_logger", - "log", -] - [[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]] @@ -4163,9 +4211,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "fixed-hash" @@ -4229,9 +4277,9 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" -version = "44.0.1" +version = "45.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83680108c981eb72fe2098feda8fc9f832fd68190c99634adb79107115c2a5e9" +checksum = "2f3226faf3dbf5311c1ab352850d680f487f4f675c4590b1c905572b0de611df" dependencies = [ "frame-support", "frame-support-procedural", @@ -4272,17 +4320,17 @@ version = "16.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0b525f462fa8121c3d143ad0d876660584f160ad5baa68c57bfeeb293c6b8fb" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "frame-election-provider-support" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e832f1a2e535d3291d3b7fa2bdec5498969db5a8f79ddbb752aff62b1d1da3da" +checksum = "f6c5549782e1b6e601405795d9207119ff22f9117e1aef20b93fd4a43c6516fb" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -4298,9 +4346,9 @@ dependencies = [ [[package]] name = "frame-executive" -version = "44.0.0" +version = "45.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a60b16eb7a59f51d26af3466da694d94411cf2b4a032b76f989bcff3c6958ebc" +checksum = "7110e75b540e49ebf54e368e8117c8bf25109a1eb619890c55715093f1a1e04f" dependencies = [ "aquamarine", "frame-support", @@ -4329,9 +4377,9 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "148789f0d863352a918762bbf06565b9acb9d73cc86585f85f9929d59b18720e" +checksum = "70b849ff6fbe4e7e238293bf42bacbdcd9aaed4b2d98aec204de6fc221f74638" dependencies = [ "array-bytes 6.2.3", "const-hex", @@ -4346,9 +4394,9 @@ dependencies = [ [[package]] name = "frame-remote-externalities" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0f149605112f7f77cb936ff6394d4e4332d9bcf176f2b55173f70e25ed21709" +checksum = "cf4f255661e5c192322b4425dcbae944f17fa007180109804b63e944472dc41a" dependencies = [ "futures", "indicatif", @@ -4369,9 +4417,9 @@ dependencies = [ [[package]] name = "frame-support" -version = "44.0.0" +version = "45.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b853a8724d2ac1096e480a1fa6d1279697b774d098251817a964f3dfd8ba0036" +checksum = "f3ac9c3d0a7e3669bfcd1d549bcbeae941fd0181aea9edc71447f8d785b567de" dependencies = [ "aquamarine", "array-bytes 6.2.3", @@ -4411,9 +4459,9 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "35.0.0" +version = "36.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c481996abeb9027d9a4d62d0c2cb4115c0ee6ef3120ad234fa2776b6313a4ed4" +checksum = "916d7474058f97fe1d6fc66c43c9891eeaed47e694cdd1aba8ec0f551cabca27" dependencies = [ "Inflector", "cfg-expr", @@ -4427,7 +4475,7 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -4437,10 +4485,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81a088fd6fda5f53ff0c17fc7551ce8bd0ead14ba742228443c8196296a7369b" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -4451,14 +4499,14 @@ checksum = "ed971c6435503a099bdac99fe4c5bea08981709e5b5a0a8535a1856f48561191" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "frame-system" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198d131ab22ecad578902c725d364cd3c02437da589451bf5a9744a4ac17af6e" +checksum = "6c883a6b18af7be0fc756f8221927e9a58bbe3d3f950de1f5d377af9fbdcdcac" dependencies = [ "cfg-if", "docify", @@ -4476,9 +4524,9 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ccf490c31cfd4f8438caaa118764ba5792f21b3805f38b2709fa5f0aae37f1" +checksum = "64ef073183476960babf0c7e5a169375c9698709b407c7beedb6c2dc8690d73f" dependencies = [ "frame-benchmarking", "frame-support", @@ -4491,9 +4539,9 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" -version = "38.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b776e081559afa5cba5ff6843d743a28a19af561bca26cafaedc98e2f11b6646" +checksum = "8405cc4c9564cd87521065b7607a85a2a56bfab2c6f12afdf3df32c4da66f804" dependencies = [ "docify", "parity-scale-codec", @@ -4502,9 +4550,9 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.50.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54acc7a4369bfeef0e8b3df129ff0a7b392d67d7e9f45ce3361e9edac289c591" +checksum = "af1745c6b30778a7c5aa682b87e59d6c0f6f1b00087cb4861f7ecd22fcda17f0" dependencies = [ "frame-support", "parity-scale-codec", @@ -4529,9 +4577,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" dependencies = [ "futures-channel", "futures-core", @@ -4554,9 +4602,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", "futures-sink", @@ -4564,27 +4612,26 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" dependencies = [ "futures-core", "futures-task", "futures-util", - "num_cpus", ] [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-lite" @@ -4598,13 +4645,13 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -4620,15 +4667,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-timer" @@ -4638,9 +4685,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-channel", "futures-core", @@ -4650,7 +4697,6 @@ dependencies = [ "futures-task", "memchr", "pin-project-lite", - "pin-utils", "slab", ] @@ -4663,6 +4709,19 @@ dependencies = [ "byteorder", ] +[[package]] +name = "fxprof-processed-profile" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd" +dependencies = [ + "bitflags 2.11.0", + "debugid", + "fxhash", + "serde", + "serde_json", +] + [[package]] name = "generic-array" version = "0.12.4" @@ -4685,9 +4744,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "js-sys", @@ -4705,11 +4764,24 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "r-efi", + "r-efi 5.3.0", "wasip2", "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "wasip2", + "wasip3", +] + [[package]] name = "getrandom_or_panic" version = "0.0.3" @@ -4730,24 +4802,14 @@ dependencies = [ "polyval", ] -[[package]] -name = "gimli" -version = "0.27.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" -dependencies = [ - "fallible-iterator 0.2.0", - "indexmap 1.9.3", - "stable_deref_trait", -] - [[package]] name = "gimli" version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" dependencies = [ - "fallible-iterator 0.3.0", + "fallible-iterator", + "indexmap 2.13.0", "stable_deref_trait", ] @@ -4796,7 +4858,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.12.1", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -4815,7 +4877,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.4.0", - "indexmap 2.12.1", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -4871,6 +4933,7 @@ dependencies = [ "allocator-api2", "equivalent", "foldhash 0.1.5", + "serde", ] [[package]] @@ -4905,12 +4968,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hermit-abi" version = "0.5.2" @@ -4923,12 +4980,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hex-conservative" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" - [[package]] name = "hex-conservative" version = "0.2.2" @@ -4987,7 +5038,7 @@ dependencies = [ "once_cell", "rand 0.9.2", "ring 0.17.14", - "thiserror 2.0.17", + "thiserror 2.0.18", "tinyvec", "tokio", "tracing", @@ -5031,7 +5082,7 @@ dependencies = [ "rand 0.9.2", "resolv-conf", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -5224,20 +5275,19 @@ 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-channel", - "futures-core", "futures-util", "http 1.4.0", "http-body 1.0.1", "hyper 1.8.1", "libc", "pin-project-lite", - "socket2 0.6.1", + "socket2 0.6.2", "tokio", "tower-service", "tracing", @@ -5245,9 +5295,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", @@ -5255,7 +5305,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core", ] [[package]] @@ -5348,6 +5398,12 @@ dependencies = [ "zerovec", ] +[[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" @@ -5377,19 +5433,19 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.10.2" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a" +checksum = "c0a05c691e1fae256cf7013d99dad472dc52d5543322761f83ec8d47eab40d2b" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] name = "if-watch" -version = "3.2.1" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38" +checksum = "71c02a5161c313f0cbdbadc511611893584a10a7b6153cb554bdf83ddce99ec2" dependencies = [ "async-io", "core-foundation 0.9.4", @@ -5482,7 +5538,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5517,9 +5573,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", "hashbrown 0.16.1", @@ -5569,7 +5625,7 @@ dependencies = [ [[package]] name = "integration-tests-helpers" -version = "2.0.6" +version = "2.1.0" dependencies = [ "cumulus-pallet-xcmp-queue", "emulated-integration-tests-common", @@ -5580,17 +5636,7 @@ dependencies = [ "paste", "staging-xcm", "xcm-emulator", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", + "xcm-runtime-apis", ] [[package]] @@ -5613,20 +5659,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" - -[[package]] -name = "is-terminal" -version = "0.4.17" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" -dependencies = [ - "hermit-abi 0.5.2", - "libc", - "windows-sys 0.61.2", -] +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "itertools" @@ -5679,6 +5714,26 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +[[package]] +name = "ittapi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b996fe614c41395cdaedf3cf408a9534851090959d90d54a535f675550b64b1" +dependencies = [ + "anyhow", + "ittapi-sys", + "log", +] + +[[package]] +name = "ittapi-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f5385394064fa2c886205dba02598013ce83d3e92d33dbdc0c52fe0e7bf4fc" +dependencies = [ + "cc", +] + [[package]] name = "jam-codec" version = "0.1.1" @@ -5701,10 +5756,10 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "319af585c4c8a6b5552a52b7787a1ab3e4d59df7614190b1f85b9b842488789d" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5741,9 +5796,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", @@ -5769,7 +5824,7 @@ version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc4280b709ac3bb5e16cf3bad5056a0ec8df55fa89edfe996361219aadc2c7ea" dependencies = [ - "base64 0.22.1", + "base64", "futures-util", "http 1.4.0", "jsonrpsee-core", @@ -5819,7 +5874,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f50c389d6e6a52eb7c3548a6600c90cf74d9b71cb5912209833f00a5479e9a01" dependencies = [ "async-trait", - "base64 0.22.1", + "base64", "http-body 1.0.1", "hyper 1.8.1", "hyper-rustls", @@ -5844,10 +5899,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7398cddf5013cca4702862a2692b66c48a3bd6cf6ec681a47453c93d63cf8de5" dependencies = [ "heck 0.5.0", - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5891,18 +5946,18 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures", ] [[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", @@ -5933,7 +5988,7 @@ checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" [[package]] name = "kusama-runtime-constants" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" dependencies = [ "frame-support", "pallet-remote-proxy", @@ -5967,17 +6022,23 @@ dependencies = [ "spin 0.9.8", ] +[[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.179" +version = "0.2.182" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" [[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 = "libp2p" @@ -5989,7 +6050,7 @@ dependencies = [ "either", "futures", "futures-timer", - "getrandom 0.2.16", + "getrandom 0.2.17", "libp2p-allow-block-list", "libp2p-connection-limits", "libp2p-core", @@ -6118,7 +6179,7 @@ dependencies = [ "quick-protobuf", "rand 0.8.5", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "zeroize", ] @@ -6312,7 +6373,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6400,18 +6461,19 @@ dependencies = [ "thiserror 1.0.69", "tracing", "yamux 0.12.1", - "yamux 0.13.8", + "yamux 0.13.9", ] [[package]] name = "libredox" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "libc", - "redox_syscall 0.7.0", + "plain", + "redox_syscall 0.7.3", ] [[package]] @@ -6421,7 +6483,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" dependencies = [ "arrayref", - "base64 0.22.1", + "base64", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -6497,15 +6559,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" - -[[package]] -name = "linux-raw-sys" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "lioness" @@ -6527,19 +6583,21 @@ checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "litep2p" -version = "0.9.5" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14fb10e63363204b89d91e1292df83322fd9de5d7fa76c3d5c78ddc2f8f3efa9" +checksum = "3fb34d4675b8eadc4a473c46b788439d34d30c247cd5f3f286162ee25e3c4f97" dependencies = [ "async-trait", "bs58", "bytes", - "cid 0.11.1", + "cid", "ed25519-dalek", + "enum-display", "futures", "futures-timer", "hickory-resolver 0.25.2", - "indexmap 2.12.1", + "indexmap 2.13.0", + "ip_network", "libc", "mockall", "multiaddr 0.17.1", @@ -6548,15 +6606,16 @@ dependencies = [ "parking_lot 0.12.5", "pin-project", "prost 0.13.5", - "prost-build", + "prost-build 0.14.3", "rand 0.8.5", + "ring 0.17.14", "serde", "sha2 0.10.9", "simple-dns", "smallvec", "snow", "socket2 0.5.10", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-tungstenite", @@ -6567,7 +6626,7 @@ dependencies = [ "url", "x25519-dalek", "x509-parser 0.17.0", - "yamux 0.13.8", + "yamux 0.13.9", "yasna", "zeroize", ] @@ -6612,10 +6671,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] -name = "mach" -version = "0.3.2" +name = "mach2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" dependencies = [ "libc", ] @@ -6628,7 +6687,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6640,7 +6699,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6654,7 +6713,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6665,7 +6724,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6676,7 +6735,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6687,13 +6746,13 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] name = "match-lookup" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1265724d8cb29dbbc2b0f06fffb8bf1a8c0cf73a78eede9ba73a4a66c52a981e" +checksum = "757aee279b8bdbb9f9e676796fd459e4207a1f986e87886700abf589f5abf771" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] @@ -6717,9 +6776,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 = "memfd" @@ -6727,27 +6786,18 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227" dependencies = [ - "rustix 1.1.3", + "rustix", ] [[package]] name = "memmap2" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" +checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3" dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" -dependencies = [ - "autocfg", -] - [[package]] name = "memory-db" version = "0.34.0" @@ -6859,14 +6909,14 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "moka" -version = "0.12.12" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3dec6bd31b08944e08b58fd99373893a6c17054d6f3ea5006cc894f4f4eee2a" +checksum = "85f8024e1c8e71c778968af91d43700ce1d11b219d127d79fb2934153b82b42b" dependencies = [ "crossbeam-channel", "crossbeam-epoch", @@ -6936,8 +6986,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" dependencies = [ "blake2b_simd", - "blake2s_simd", - "blake3", "core2", "digest 0.10.7", "multihash-derive", @@ -7007,63 +7055,47 @@ dependencies = [ [[package]] name = "netlink-packet-core" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" +checksum = "3463cbb78394cb0141e2c926b93fc2197e473394b761986eca3b9da2c63ae0f4" dependencies = [ - "anyhow", - "byteorder", - "netlink-packet-utils", + "paste", ] [[package]] name = "netlink-packet-route" -version = "0.17.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66" +checksum = "4ce3636fa715e988114552619582b530481fd5ef176a1e5c1bf024077c2c9445" dependencies = [ - "anyhow", - "bitflags 1.3.2", - "byteorder", + "bitflags 2.11.0", "libc", + "log", "netlink-packet-core", - "netlink-packet-utils", -] - -[[package]] -name = "netlink-packet-utils" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" -dependencies = [ - "anyhow", - "byteorder", - "paste", - "thiserror 1.0.69", ] [[package]] name = "netlink-proto" -version = "0.11.5" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" +checksum = "b65d130ee111430e47eed7896ea43ca693c387f097dd97376bffafbf25812128" dependencies = [ "bytes", "futures", "log", "netlink-packet-core", "netlink-sys", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "netlink-sys" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" +checksum = "cd6c30ed10fa69cc491d491b85cc971f6bdeb8e7367b7cde2ee6cc878d583fae" dependencies = [ "bytes", - "futures", + "futures-util", "libc", "log", "tokio", @@ -7077,18 +7109,19 @@ checksum = "4ddcb8865ad3d9950f22f42ffa0ef0aecbfbf191867b3122413602b0a360b2a6" dependencies = [ "cc", "libc", - "thiserror 2.0.17", + "thiserror 2.0.18", "winapi", ] [[package]] name = "nix" -version = "0.26.4" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.11.0", "cfg-if", + "cfg_aliases", "libc", ] @@ -7152,9 +7185,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" @@ -7213,7 +7246,7 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.5.2", + "hermit-abi", "libc", ] @@ -7233,10 +7266,10 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -7247,9 +7280,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[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", @@ -7259,33 +7292,15 @@ dependencies = [ "smallvec", ] -[[package]] -name = "object" -version = "0.30.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" -dependencies = [ - "crc32fast", - "hashbrown 0.13.2", - "indexmap 1.9.3", - "memchr", -] - -[[package]] -name = "object" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "memchr", -] - [[package]] name = "object" version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ + "crc32fast", + "hashbrown 0.15.5", + "indexmap 2.13.0", "memchr", ] @@ -7340,9 +7355,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl-probe" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f50d9b3dabb09ecd771ad0aa242ca6894994c130308ca3d7684634df8037391" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "option-ext" @@ -7365,7 +7380,7 @@ dependencies = [ [[package]] name = "pallet-ah-migrator" version = "0.1.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" dependencies = [ "assets-common", "cumulus-primitives-core", @@ -7424,7 +7439,7 @@ dependencies = [ [[package]] name = "pallet-ah-ops" version = "0.1.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -7446,9 +7461,9 @@ dependencies = [ [[package]] name = "pallet-alliance" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d7732651453c5b92ce32683759956a252ed13d168dd14732b4ebe96a0abefa" +checksum = "a2324da9a9e139327b11d6468c5b4d20ea2dbaea2b01e6d0c488d96f4323d713" dependencies = [ "array-bytes 6.2.3", "frame-benchmarking", @@ -7467,9 +7482,9 @@ dependencies = [ [[package]] name = "pallet-asset-conversion" -version = "26.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043a8b0a931c5ed13335b3cdd24de968115116f92c467f192e3648ad18bdb2f1" +checksum = "39e513b0bc7ca5df600338c2f2972560bce1cce5996837ff33f4e86832681dd4" dependencies = [ "frame-benchmarking", "frame-support", @@ -7486,9 +7501,9 @@ dependencies = [ [[package]] name = "pallet-asset-conversion-tx-payment" -version = "26.0.0" +version = "27.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "724879f9ec9c2c0c2beb6093f7414a6651ce8f87e96ecc4b720f3033f34c2bc7" +checksum = "a718a6b19c51a5461897ee048b7d9ae4740c8c68ca0e8fbacf22f4e80fa86d6f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7502,9 +7517,9 @@ dependencies = [ [[package]] name = "pallet-asset-rate" -version = "23.0.0" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45146afd5306d2451b862632b0cf7f7d328f74a4f079696ad318e484cace2a36" +checksum = "1c4c9324c5c5ca4b6409790e7b37e6f169050992ff89f33bd78284ed33cf8f4f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7517,9 +7532,9 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a98c06fe54fc580da65a3a739db836715f3302b126079a532cdf51a2726f3caa" +checksum = "19cebd6f5415921af519d95b1fa18026d5b6b4935d6c70f1989958510e0c36df" dependencies = [ "frame-benchmarking", "frame-support", @@ -7534,11 +7549,10 @@ dependencies = [ [[package]] name = "pallet-assets" -version = "47.0.0" +version = "48.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a72ff3722aa5e62068e986c011d1413b4cc69d5e155193378bc70dbb0b1489" +checksum = "fe32957ed431e041d4a5f6a964d2a385a4b7d27d22881c77d18fbd3971bf605c" dependencies = [ - "ethereum-standards", "frame-benchmarking", "frame-support", "frame-system", @@ -7552,9 +7566,9 @@ dependencies = [ [[package]] name = "pallet-assets-holder" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f65d207ea811cfd6dd63db52c258ab1575914863d8002c1fb1fddfb4527ceb19" +checksum = "0bc2b2b6b79d04434b827dc7ad9ee1bc984dff48a28644cdafa901579876782b" dependencies = [ "frame-benchmarking", "frame-support", @@ -7568,9 +7582,9 @@ dependencies = [ [[package]] name = "pallet-assets-precompiles" -version = "0.3.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396699d3b1b3463c2efb56f48f0f2e9c71733714545c7664e2c33b6f669e78ce" +checksum = "66e0d360a50b3b946c9fdd738ac2206954cfccfa763ed907968bde68ba295d31" dependencies = [ "ethereum-standards", "frame-support", @@ -7580,9 +7594,9 @@ dependencies = [ [[package]] name = "pallet-aura" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ff414bc373c8e22299d57917bba2eee418f7f5d532cd9f5287802c2d4b4ecd6" +checksum = "cb444f29c9df8a1ea89b4c8b6a026a119b13e5f55fff8c6901103ec8de2a6ad8" dependencies = [ "frame-support", "frame-system", @@ -7597,9 +7611,9 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0948648949ce9129874b037af6f885f4145e3a403778dab633f54bcffdcf0335" +checksum = "0d565050d67bc7755e99e744d9b767fa648464f5610717834641eab2f5ee6d81" dependencies = [ "frame-support", "frame-system", @@ -7613,9 +7627,9 @@ dependencies = [ [[package]] name = "pallet-authorship" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c04e0f97a1a8e422f5c0274d35c3edb2a71c44441d74730858d0e7c4c17edcf" +checksum = "b29d985ace541bb49bc34c955fa83103cfff6c661d4865fd7698521b0f596cb9" dependencies = [ "frame-support", "frame-system", @@ -7627,9 +7641,9 @@ dependencies = [ [[package]] name = "pallet-babe" -version = "44.0.1" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5997bf3f1c5d7b21c0cad19717119703439c1cfc41ceed53f5387fbed548c12" +checksum = "1f02265869cfa317bca14fb2511d3de4e910a55e7748454009273b79206e3e16" dependencies = [ "frame-benchmarking", "frame-support", @@ -7651,9 +7665,9 @@ dependencies = [ [[package]] name = "pallet-bags-list" -version = "43.0.0" +version = "44.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36b0dcfd41394a78d89984649e72fd44f5bdd43a4b003a0bf5b8ce7a19f2b20e" +checksum = "fc37f29bec2f5542ee709b9eca37aaf85641c1473288ceb4e0b4a66eb80defe5" dependencies = [ "aquamarine", "docify", @@ -7673,9 +7687,9 @@ dependencies = [ [[package]] name = "pallet-balances" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab517d0cb589717c59f33e9326d47238c049296328e444d9d71f82e46e9bcce1" +checksum = "e1a8216eaf2a90707d761856ea3d7e31d9be8781ca44a5ec668e00be5e404698" dependencies = [ "docify", "frame-benchmarking", @@ -7690,9 +7704,9 @@ dependencies = [ [[package]] name = "pallet-beefy" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3373602111e80ae155df04183790fa5abb5a758aba236d2d301dfce5ad9cff8" +checksum = "e55697c95e26cc005080334f65efcd46f9a03bfce3e44512df7f0416b6c67bab" dependencies = [ "frame-support", "frame-system", @@ -7710,9 +7724,9 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a56242f921a8cce42a90f31479832d30b3f1d2795fe3971fed954a54d624c63" +checksum = "91f8b06357b7b5c2697afb8906f02a086932c69087c23702dbcb57699250da5f" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -7736,9 +7750,9 @@ dependencies = [ [[package]] name = "pallet-bounties" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6a28d207ee3a2fbea9ca068a93db4fc330f3ca72b7f602cf24301bf2c398ca" +checksum = "1856b3515f12225165567a3635c69321a3b049faf7cbf71114fe39055152e3f9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7754,9 +7768,9 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49457bd92ebcfb896aad0b676477679d18d374f33afa90e26470e404901c803e" +checksum = "71d4ab67e13e0d425701d0128effaa032de9259276b8d7a82a723291cd633a52" dependencies = [ "bp-header-chain", "bp-runtime", @@ -7764,19 +7778,19 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", "parity-scale-codec", "scale-info", "sp-consensus-grandpa", "sp-runtime", "sp-std", + "tracing", ] [[package]] name = "pallet-bridge-messages" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf302ccc5e77dc1cfd56f2015424cee8393aebb7b30d232964827ce9d19ff78a" +checksum = "94ead2c9807e86c22ce8786a0ddaa078aa33bfba91011aaac60e070b84d11904" dependencies = [ "bp-header-chain", "bp-messages", @@ -7784,19 +7798,19 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", "sp-trie", + "tracing", ] [[package]] name = "pallet-bridge-parachains" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad4a2b0b143b0ff681dc8d7caf7cfb64d5b2850fe52826269bf00af680f0899d" +checksum = "1b7083c88782402587b8666ddf987c477cea1cf03bbd134b4b0054c7b471a9d2" dependencies = [ "bp-header-chain", "bp-parachains", @@ -7805,19 +7819,19 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", "pallet-bridge-grandpa", "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", + "tracing", ] [[package]] name = "pallet-bridge-relayers" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fd71c82fa0fe5c6d0333aa0fd05e84448bfb09bbbc945534739900e6e3608ba" +checksum = "420b5f4d6e479d6454c1ac860aa2338b738844332f34ecc234afae4859ea8294" dependencies = [ "bp-header-chain", "bp-messages", @@ -7826,7 +7840,6 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", @@ -7835,13 +7848,14 @@ dependencies = [ "scale-info", "sp-arithmetic", "sp-runtime", + "tracing", ] [[package]] name = "pallet-broker" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b232164b0469cd4f7d9bff57731943f1f0b3a9ad14d18fffc80c908f19a4d0" +checksum = "2b8fbceb96d0e45d055c5fab2f9e1746c63f2f7272e6428a7357ea2b57c1d475" dependencies = [ "bitvec", "frame-benchmarking", @@ -7858,9 +7872,9 @@ dependencies = [ [[package]] name = "pallet-child-bounties" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e308fa34e27b4a9810adb632092127ce9ec441355ae076089644baa5b5204a17" +checksum = "d679941857b5b9d56c4c3a3343f284bec16cc9bab9713046dfc5390390822f5e" dependencies = [ "frame-benchmarking", "frame-support", @@ -7877,9 +7891,9 @@ dependencies = [ [[package]] name = "pallet-collator-selection" -version = "25.0.1" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e104145f03708c4514bc30e9820f68878f020ff8b4fa5237213235f0e9390010" +checksum = "4befae2c37f2acc10181504ffcf7d1c6ec8c285cc593789f14c1c0d4b6ac326b" dependencies = [ "frame-benchmarking", "frame-support", @@ -7897,9 +7911,9 @@ dependencies = [ [[package]] name = "pallet-collective" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdd3897e0ca5887b9c40ae51b1f47b385d4751718a1ffadc666f6ec154e18b86" +checksum = "7a6ab7b91882b9cceeda0efd67259ff18cac710272b21df801e014d15bbe0fe3" dependencies = [ "docify", "frame-benchmarking", @@ -7915,9 +7929,9 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc9e771d1a9b27f3dac2bff48f893fdad6a95c0d0decb7e5a19ecad276244d87" +checksum = "36c21787730ec39818943b4572ea9cbff684e0e4de0ba1b4539798909bba6409" dependencies = [ "assert_matches", "frame-benchmarking", @@ -7932,9 +7946,9 @@ dependencies = [ [[package]] name = "pallet-core-fellowship" -version = "28.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88773d76613e8c95191dd6abfa33d053b9a4fb87cb57a710387bf11edbf253dc" +checksum = "d7ab014dcb58bf2b45f8fc9026705a5e29ba1ce7e3661ff3b8d150f454dff715" dependencies = [ "frame-benchmarking", "frame-support", @@ -7949,11 +7963,26 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-dap" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66c49c6333a1b6a9dd43c8071a53ae699679b25a470806be2fbed8ce8752e686" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", +] + [[package]] name = "pallet-delegated-staking" -version = "11.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3934ef8c9b893e45dc4bc3209c84dabe1454eb6a5d8262697ed3b3d05df1333" +checksum = "65f725f8a8bbfae5889ef2ba555bda8db328c0c09b2a4f74e97b2db7e7e2ef8e" dependencies = [ "frame-support", "frame-system", @@ -7967,9 +7996,9 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-block" -version = "0.7.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cddfad37f8a8230693ca950b9a55f4b66ccc8ced177bd9fb028b61dc1d1e16b" +checksum = "41cc0e88ad48e53aa24847619741c3f70a975f3ae697f46c8a2a2bea0df0830d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7989,9 +8018,9 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20841b54b54f995caf0984805da673190deb77dd6100c8dec7bac9da717c67dc" +checksum = "2b841380ef768f88682f57c3c1aa999b9eb81003f85f6d543e5885d0b187d48d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8011,9 +8040,9 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9cd1fc126c98ea03656bbeb1ac9ea74a0620ec1c78d18e2eda81449b1ff0f15" +checksum = "faa0e6c661d48cc7fa8a6e3b6c85d4ac8a44aaf352d16b5305152ae3d872297b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8025,9 +8054,9 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f65ed9df0a1f5247779f01ddc23b4701623a20d21bf575b646e54d4453eb9b1" +checksum = "7d45d60eb50bc0c178b83882b7195ac471edd3b1824f2c0dede385d943711248" dependencies = [ "docify", "frame-benchmarking", @@ -8044,9 +8073,9 @@ dependencies = [ [[package]] name = "pallet-grandpa" -version = "44.0.1" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "027ba5976522be56c72f1bb10df889dc8332543e4d32789d7d6c90317fc6dd14" +checksum = "fecc3218554b16baef5f794bd84e457f98bac1328f767571142228ab6e6ed4a4" dependencies = [ "frame-benchmarking", "frame-support", @@ -8067,9 +8096,9 @@ dependencies = [ [[package]] name = "pallet-identity" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d47545405d1ee7491c39bf2d954e3d965445b04d3e78db7af1334906c5f69980" +checksum = "27cd00175e352b8db01de8d9264b95012cc0a649897e77858ba7a559faa09704" dependencies = [ "enumflags2", "frame-benchmarking", @@ -8084,9 +8113,9 @@ dependencies = [ [[package]] name = "pallet-im-online" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516e284965ed81d93bc9bb2524b9109c9408c9c0d49b4b7ada0fc4518ae11e65" +checksum = "7d9703332095a821815caae7085736a63fc217f0763c71ec4ee868c1b12264ad" dependencies = [ "frame-benchmarking", "frame-support", @@ -8104,9 +8133,9 @@ dependencies = [ [[package]] name = "pallet-indices" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6fab5dc4f4b5da6c397ab51658dc5158e0b069589dffc0fae40b085ae60da" +checksum = "bd543689836e94eade78c20ac877b55899b13e1f5c8af6a3c99e39d42b9cb009" dependencies = [ "frame-benchmarking", "frame-support", @@ -8120,9 +8149,9 @@ dependencies = [ [[package]] name = "pallet-message-queue" -version = "47.0.0" +version = "48.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6da7d426e5abb52b55a898e6e092986f8706ebaefd78ef37d643e262e7a2168" +checksum = "8550d6fdb56dc584c65ea32a3e27bc9840f67b29cca80ce7e74ee60df9e069bc" dependencies = [ "environmental", "frame-benchmarking", @@ -8140,9 +8169,9 @@ dependencies = [ [[package]] name = "pallet-migrations" -version = "14.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76dd740890664e9f41453a2a8b08ac71e8eefd78cc22e4a99db9cbb34b92261a" +checksum = "fd16cd1a9369cca0dc787abdf396328dd9128b51a9c58c970052cfc4da5adb89" dependencies = [ "docify", "frame-benchmarking", @@ -8160,9 +8189,9 @@ dependencies = [ [[package]] name = "pallet-mmr" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76c170b97e86f660c5711db55b5288330165f3f380d3641e9eaec8569c7406d3" +checksum = "7523cb0a62f8b6515df84c215e0d161a8426fcda904a04349e757fe15f394805" dependencies = [ "log", "parity-scale-codec", @@ -8171,11 +8200,29 @@ dependencies = [ "sp-mmr-primitives", ] +[[package]] +name = "pallet-multi-asset-bounties" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec85c30618a85266b0f4e59e0d94c633421920e54e595d0bd25be39ea3d2a6bc" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", +] + [[package]] name = "pallet-multisig" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c0476f045bcdf3b61c6f44ff3b040244f542aa7606dfe2bf174ef42f450d43" +checksum = "bb5c61c65c78314405af4dd939e780f8ed107a2a3a6b660dc44efa5e1076f2cb" dependencies = [ "log", "parity-scale-codec", @@ -8185,9 +8232,9 @@ dependencies = [ [[package]] name = "pallet-nfts" -version = "38.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7862f5b589fca5fd91a3db222b504cc3e2d6508105a492afebb8c162102674fd" +checksum = "193b5079a454f3f3e4c878ae8ad2e90136c67364fe92ed1cda9a6ad156f7e304" dependencies = [ "enumflags2", "frame-benchmarking", @@ -8203,9 +8250,9 @@ dependencies = [ [[package]] name = "pallet-nfts-runtime-api" -version = "28.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ab34fa16e4d8132f0bdbfbf30cc4db79637ab05e26c874dc654ad05779c44f" +checksum = "fb0eeb454e3fcd1f5eb8db470834d309d2dc66550082a0803b17459c830da4f1" dependencies = [ "parity-scale-codec", "sp-api", @@ -8213,9 +8260,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" -version = "42.0.1" +version = "43.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fc64128c98cfc1fe0e48d629f8f812961bae57a90b3a52e1e5203278beb52a" +checksum = "58cdf70b0ac3073ab3d439ebe051bbabb22c91113314bde8069b215afae0473e" dependencies = [ "frame-support", "frame-system", @@ -8232,9 +8279,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" -version = "42.0.1" +version = "43.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9637f65a3902d0c7802986e11764ae6a70c06c551320e4037b1b8335a82bb16e" +checksum = "dda24fadfc72bac3fe0942d5a3d7e1bd345c5787549598b58b6ca1bcb959a250" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8253,9 +8300,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" -version = "40.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad199d48ed437f8c6468dc56502713eca861d72adb370e92a45ade8487bc754a" +checksum = "dc5e99265cecc6dec385dc7e0292ee994c12483708ebcffb05164037bb937c8c" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -8264,9 +8311,9 @@ dependencies = [ [[package]] name = "pallet-offences" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdaea86ae403208cdd5e3a2f0eb2fe82a3dc65dc67a511b195fd1e68dd70ecb9" +checksum = "fb7029dda1eb76c25cad8323b217b24021fdd103bdb10d66bd2376008ac95a1f" dependencies = [ "frame-support", "frame-system", @@ -8280,9 +8327,9 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e53989219fa7df739c5fbde333b14bc85083c148f3467eedc833dd4dee8f1dd" +checksum = "7ef85a73086dd5a4f5f845fcdf3c6170d247528e18ec5b7022b0b8cdda2a8f0b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8304,9 +8351,9 @@ dependencies = [ [[package]] name = "pallet-parameters" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1ceff20e070faa3df1e40fc7ab3ccaf7d741b0e403189b58fa564bfcea9479e" +checksum = "02d65e700108d3a80361fef0ce3feb6f916f2e7f5514bb9695ea96bac444f0a0" dependencies = [ "docify", "frame-benchmarking", @@ -8322,9 +8369,9 @@ dependencies = [ [[package]] name = "pallet-preimage" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f37b4c64908ed4f2a4fdd1dfca10102d605f32ad0d89e183904160cd1eb5acb" +checksum = "c2d614776ca7e0411dd2d1a6cba525d389b4d81c4595a82db3f9d697bedfd367" dependencies = [ "frame-benchmarking", "frame-support", @@ -8339,9 +8386,9 @@ dependencies = [ [[package]] name = "pallet-proxy" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fd8cd521da681cd95e506ad7d5eee131ac8b9da21449a886f8e41590ab94dff" +checksum = "c105e47d4eedf14e4df1748c9e565494f5ad13b325ca288207838c4f2fb4defc" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -8350,9 +8397,9 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6347515b9d6772061ffb2ab4e3534653ea84b1fd2927440c34e9ad64cf2b96e" +checksum = "2ea0209ecadc9a8b93d5d9a93ad1fd9abd760542892d833e199b40144725406d" dependencies = [ "frame-benchmarking", "frame-support", @@ -8370,7 +8417,7 @@ dependencies = [ [[package]] name = "pallet-rc-migrator" version = "0.1.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8423,9 +8470,9 @@ dependencies = [ [[package]] name = "pallet-recovery" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "741a372543c2843fd18c94b45c30d3493073c24c08450877902b0b15befe2a8c" +checksum = "ff0e74f1f04c59885cb421ec85225135c63ee793d60411fdb36adfe2518ee1e9" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -8434,9 +8481,9 @@ dependencies = [ [[package]] name = "pallet-referenda" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee0a64dd09181d4f580e3a1103f716a5c6dd204fdfa40dad9b324b5650dd6699" +checksum = "71ae4df35eb4e9f9183ad1a81842f0f74281d02cdd7fa512cbdb51bbbd9acca5" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8454,7 +8501,7 @@ dependencies = [ [[package]] name = "pallet-remote-proxy" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -8471,9 +8518,9 @@ dependencies = [ [[package]] name = "pallet-revive" -version = "0.11.3" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "995f1338e2254b7fe1b8b90ca2e14d40d069619e72a72cee3e8cd6faf67d821a" +checksum = "d209de33787726aec35a90e9d793c85a170303f9b76aa94d758b869d8262d4fb" dependencies = [ "alloy-consensus", "alloy-core", @@ -8499,7 +8546,7 @@ dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "paste", - "polkavm", + "polkavm 0.30.0", "polkavm-common 0.30.0", "rand 0.8.5", "rand_pcg", @@ -8524,9 +8571,9 @@ dependencies = [ [[package]] name = "pallet-revive-fixtures" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "426606804d83efc7f3e1e7a7e9c33561d2b2832b9de61d643f7c057a28ba3d08" +checksum = "1cbc006536339cbfc059bb35714f460c2d480276db2e37e7729d598d9739639a" dependencies = [ "alloy-core", "anyhow", @@ -8542,20 +8589,20 @@ dependencies = [ [[package]] name = "pallet-revive-proc-macro" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed97af646322cfc2d394c4737874bf6df507d25dd421a2939304eee02d89c742" +checksum = "5168bf2cfdd1307b832fedda9a48cab3ce56056e532e9407aba48657a7617c13" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "pallet-revive-uapi" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0bf9c852c4426130520d546fe9ea0d932914c42ed7ae2970b5e428a3efe7e1" +checksum = "2000264018fdde239d46e9dbdcf881f633eeca2341c713b181380db59319aa3a" dependencies = [ "alloy-core", "bitflags 1.3.2", @@ -8569,9 +8616,9 @@ dependencies = [ [[package]] name = "pallet-salary" -version = "29.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f595afa216712b3b161425e273e93375333afba4bbadfaeaabd5ae5893cf067d" +checksum = "b656e0a06f7c64042a3ba261567e7df92885b860886f3a1b283e7246201c5a22" dependencies = [ "log", "pallet-ranked-collective", @@ -8582,9 +8629,9 @@ dependencies = [ [[package]] name = "pallet-scheduler" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3f00cc1b62513dd34c6b3d769ac825cda1df39801e1e9cb4b0b2e09edcc7f5" +checksum = "be8ca0d512d335163b7d6d8d21534a849e9efe82ec1b0a6b7884cba56756135c" dependencies = [ "docify", "frame-benchmarking", @@ -8600,9 +8647,9 @@ dependencies = [ [[package]] name = "pallet-session" -version = "44.0.1" +version = "45.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a96a8d4b59decdf7fb76390c7d038da38e4884beba264ead462029ba5c214" +checksum = "03d39362f12857e78d799689c68a9ac286013e121dbf51bbc8342800285efed0" dependencies = [ "frame-support", "frame-system", @@ -8623,9 +8670,9 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b75bcbc0ab4016c82fc970a65cedb541a85aeca66cda779da2cd8877b589b9" +checksum = "2e07f8b3161092a067a633a03f0cc2a6cb2387ac7c4306be7ff8c66b6edebbe1" dependencies = [ "frame-benchmarking", "frame-support", @@ -8640,9 +8687,9 @@ dependencies = [ [[package]] name = "pallet-society" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600ff6bd72f8f522993d98862861dd41f6bef76bba35bda177b76a5f6ff2aa04" +checksum = "f93ed4285c839ffc078cf355d50079d5eea771b8815f0a417dd65095499313fb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8658,9 +8705,9 @@ dependencies = [ [[package]] name = "pallet-staking" -version = "44.0.1" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83afa5cca14de5421a41dcc0344069c1ed77fde0a2c40aa69eefb1b4332abf14" +checksum = "c41b382a779e753eb29cf39e89d97c9cd920d181a9448f60e82754195ddbab48" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8681,15 +8728,16 @@ dependencies = [ [[package]] name = "pallet-staking-async" -version = "0.7.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e075a86fb995955dd5a2426ae283147bd87c805dcc55fe35f97f8a24f6c5a621" +checksum = "910d5804a210f615bf04957dfe2d7222837da35bc108c4591030834e01e22295" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", "log", + "pallet-dap", "pallet-staking-async-rc-client", "parity-scale-codec", "rand 0.8.5", @@ -8699,15 +8747,16 @@ dependencies = [ "sp-application-crypto", "sp-core", "sp-io", + "sp-npos-elections", "sp-runtime", "sp-staking", ] [[package]] name = "pallet-staking-async-ah-client" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6349eab21a97b6fce4506a6a279bb94bc8b0698dd970595918ff6644c1d3de9a" +checksum = "a1b5e2596875837e03ce0d911a8bd6011c29164523daafaa2bab81002bfc69d2" dependencies = [ "frame-benchmarking", "frame-support", @@ -8720,17 +8769,17 @@ dependencies = [ "scale-info", "serde", "sp-core", - "sp-io", "sp-runtime", "sp-staking", ] [[package]] name = "pallet-staking-async-rc-client" -version = "0.6.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c864cf98b8ffcb7aa6dbebf1501ee082fa7ab11845ab69dd91d6acb08343720b" +checksum = "92dfaba74c6934040d0996f8d2da514db7083d43612437aff5ef6d6975d3f790" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "impl-trait-for-tuples", @@ -8741,6 +8790,8 @@ dependencies = [ "sp-runtime", "sp-staking", "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", ] [[package]] @@ -8749,10 +8800,10 @@ version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db5e6b1d8ee9d3f6894c5abd8c3e17737ed738c9854f87bfd16239741b7f4d5d" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8767,9 +8818,9 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" -version = "28.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "432d14fd9aefbafd379728cf73b2837cb44001afb101b5521183dcb2d4730f8f" +checksum = "e483f688476415cc1e716755cb88ddd628705ec66fed8087674d0b9306e452b4" dependencies = [ "parity-scale-codec", "sp-api", @@ -8778,9 +8829,9 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" -version = "49.0.0" +version = "50.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65be86efc5d3490e4deda21b240fc637b9bd0545e4005793a85ed1edd8b7da9c" +checksum = "f3052d81fa0a8d4d562927a277446caae3c94d079ad57d9499a9db7f72ad903c" dependencies = [ "frame-benchmarking", "frame-support", @@ -8795,9 +8846,9 @@ dependencies = [ [[package]] name = "pallet-sudo" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b46a2bbdbbd608ceaae82136a7c400fcdc79d4cc66690e51afc1e40fe98b8c" +checksum = "ad134ab6aa0cd61a3af61ca9b8e82ce40a2020608f0a4b5b816043663fe576d9" dependencies = [ "docify", "frame-benchmarking", @@ -8811,9 +8862,9 @@ dependencies = [ [[package]] name = "pallet-timestamp" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7823f7a2c7589b2e76291b5270aa0be41684519f358fbd1c4107154b6e10795" +checksum = "7a27830482ee21f4edea07afe13ed14ea04b58a8b2bef0ed7535544b660198bb" dependencies = [ "docify", "frame-benchmarking", @@ -8830,9 +8881,9 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f607dd5778666d8440e75373db3c63a36bbfad63d2931a0eae8c051e515488" +checksum = "6be8a43637711ad0bd344e6c6fced72cfcd0e8644b777bda0e2b48a72bf5c66c" dependencies = [ "frame-benchmarking", "frame-support", @@ -8847,9 +8898,9 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24fd50191d1188a44f781b8b9b5977600e5fb2ecad6d2f93d6ab78e5fbaa1536" +checksum = "ba1748d7be740e04b69422053f45439b09d7842deb4522cbdb96431fd21aac52" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -8860,9 +8911,9 @@ dependencies = [ [[package]] name = "pallet-treasury" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcd1d8137759e1aae11220c72f72e09f9c222e392f1ec96f08e0634b00749c52" +checksum = "429eb24bd64fd9e15c726f767c78635c5f57ec0caae306bdb07144f86fe31698" dependencies = [ "docify", "frame-benchmarking", @@ -8880,9 +8931,9 @@ dependencies = [ [[package]] name = "pallet-uniques" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63531d0a3ba05b0ba19b279ddca64d918a6c2322cad5a07267768c6a9e0b2800" +checksum = "4b0abfb02f788add7a8fdd68d25e777d87ebe08a79c21768a7900c03aa994c91" dependencies = [ "frame-benchmarking", "frame-support", @@ -8895,9 +8946,9 @@ dependencies = [ [[package]] name = "pallet-utility" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ced7986e9a853bbd657a048897efeda8aa81f937d2a80f2c9ba77f8c55e0186" +checksum = "002e4eb4830616c2e8bfbedbd8dbd65876700ad7dac00289ec66447e4c0d41ce" dependencies = [ "frame-benchmarking", "frame-support", @@ -8911,9 +8962,9 @@ dependencies = [ [[package]] name = "pallet-vesting" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86a677a939f6aab13203bda2deb725382219ef66581e4a12f63817ca8d13efec" +checksum = "8423e521125b0e54275766a092d56cc1be15fc0a1e8990d1d32a72c5424fb4c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8926,9 +8977,9 @@ dependencies = [ [[package]] name = "pallet-whitelist" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712cb42c3024a04d2c8d4ce249d20edd93191e2f42684ca2ec156cf60a3c8a3d" +checksum = "174ef44f52d18e2edd69635dcd7ebd03fcbb0d9e75a7418cc44e53011ef9d791" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -8937,9 +8988,9 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049ef5b5c7175126910ffeff5d07399556784fe70e061f9430c5c3df24b12ab7" +checksum = "bcf774b5f3815ec75cb20e7e032c58d3a33bb33db2ca969a687c5533b51e8fc1" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -8962,9 +9013,9 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cd200891cbd5736a215a8452090e99a6c7a8cab46b1f074e2d45d06c2e261d" +checksum = "7242f9a9e91af5732bb3809e3111d783c1dd9bc5bddf36643e61376350661afd" dependencies = [ "frame-benchmarking", "frame-support", @@ -8980,16 +9031,15 @@ dependencies = [ [[package]] name = "pallet-xcm-bridge-hub" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "215b213c8ab9bf9d2452f187ee1867ecd67ca06aaa2ff9b02ea06c146d680ac1" +checksum = "d4f34ae0327299223525f56d963b637ab8e0d14a5b3f607fe25db12b218a74f8" dependencies = [ "bp-messages", "bp-runtime", "bp-xcm-bridge-hub", "frame-support", "frame-system", - "log", "pallet-bridge-messages", "parity-scale-codec", "scale-info", @@ -8999,19 +9049,19 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "tracing", ] [[package]] name = "pallet-xcm-bridge-hub-router" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38838da14750bc59eb0847ed2f177c1d3041dcc71b16574bcc5ae15d1a5f7c80" +checksum = "b2f1b23da1de5f39524091b325ffc15b26b0bcd5a7043555634ae008261772ae" dependencies = [ "bp-xcm-bridge-hub-router", "frame-benchmarking", "frame-support", "frame-system", - "log", "parity-scale-codec", "polkadot-runtime-parachains", "scale-info", @@ -9020,13 +9070,14 @@ dependencies = [ "sp-std", "staging-xcm", "staging-xcm-builder", + "tracing", ] [[package]] name = "pallet-xcm-precompiles" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdbfb59d5eecaf5f68292d82a38cd1bb4c288cd5fa42d66cdcb8ba06ab674b4" +checksum = "3049f7fe616c5e3400e74ba62e887c03efbf7637730cf1bff1767984a2dab865" dependencies = [ "frame-support", "pallet-revive", @@ -9039,21 +9090,21 @@ dependencies = [ [[package]] name = "parachains-common" -version = "26.0.0" +version = "27.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7be16c1079e5caa7b9342be05562377e28596adcde95166a69f3c6a673555b6" +checksum = "7f8a0e76b4209e2244d5c9817e16d9faa3ac28c3fc570a38fee42671025d9184" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", "frame-support", "frame-system", - "log", "pallet-asset-tx-payment", "pallet-assets", "pallet-authorship", "pallet-balances", "pallet-collator-selection", "pallet-message-queue", + "pallet-multi-asset-bounties", "pallet-treasury", "pallet-xcm", "parity-scale-codec", @@ -9067,13 +9118,14 @@ dependencies = [ "staging-parachain-info", "staging-xcm", "staging-xcm-executor", + "tracing", ] [[package]] name = "parachains-runtimes-test-utils" -version = "27.0.1" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b479747a59d62704b32c0ae6d30d3da575b18c329ec8b33899027b7086c664" +checksum = "aedadff09acc539a0b0a9261ddfe64b2a582825590db277d7d3f67babd520268" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-pallet-xcmp-queue", @@ -9101,19 +9153,6 @@ dependencies = [ "xcm-runtime-apis", ] -[[package]] -name = "parity-bip39" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" -dependencies = [ - "bitcoin_hashes 0.13.0", - "rand 0.8.5", - "rand_core 0.6.4", - "serde", - "unicode-normalization", -] - [[package]] name = "parity-bytes" version = "0.1.2" @@ -9143,10 +9182,10 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -9217,7 +9256,7 @@ checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" [[package]] name = "paseo-emulated-chain" -version = "2.0.6" +version = "2.1.0" dependencies = [ "emulated-integration-tests-common", "pallet-staking", @@ -9235,7 +9274,7 @@ dependencies = [ [[package]] name = "paseo-runtime" -version = "2.0.6" +version = "2.1.0" dependencies = [ "approx", "binary-merkle-tree", @@ -9345,7 +9384,7 @@ dependencies = [ [[package]] name = "paseo-runtime-constants" -version = "2.0.6" +version = "2.1.0" dependencies = [ "frame-support", "pallet-remote-proxy", @@ -9363,7 +9402,7 @@ dependencies = [ [[package]] name = "paseo-system-emulated-network" -version = "2.0.6" +version = "2.1.0" dependencies = [ "asset-hub-paseo-emulated-chain", "bridge-hub-paseo-emulated-chain", @@ -9409,7 +9448,7 @@ version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ - "base64 0.22.1", + "base64", "serde_core", ] @@ -9424,7 +9463,7 @@ dependencies = [ [[package]] name = "penpal-emulated-chain" -version = "2.0.6" +version = "2.1.0" dependencies = [ "cumulus-primitives-core", "emulated-integration-tests-common", @@ -9439,9 +9478,9 @@ dependencies = [ [[package]] name = "penpal-runtime" -version = "0.34.2" +version = "0.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f20e449d8ba2e1ce137ccf5e4ed6f08483e29b979fe9dd79fd2a05df14b86b57" +checksum = "cc989d7ddc420550fc7ce1733535661ad7f0ad8dce17c156bc5549efe7d910df" dependencies = [ "assets-common", "cumulus-pallet-aura-ext", @@ -9449,6 +9488,7 @@ dependencies = [ "cumulus-pallet-session-benchmarking", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", + "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-utility", "frame-benchmarking", @@ -9460,7 +9500,6 @@ dependencies = [ "frame-system-rpc-runtime-api", "frame-try-runtime", "hex-literal", - "log", "pallet-asset-conversion", "pallet-asset-tx-payment", "pallet-assets", @@ -9505,12 +9544,13 @@ dependencies = [ "staging-xcm-executor", "substrate-wasm-builder", "testnet-parachains-constants", + "tracing", "xcm-runtime-apis", ] [[package]] name = "people-paseo-emulated-chain" -version = "2.0.6" +version = "2.1.0" dependencies = [ "cumulus-primitives-core", "emulated-integration-tests-common", @@ -9524,7 +9564,7 @@ dependencies = [ [[package]] name = "people-paseo-integration-tests" -version = "2.0.6" +version = "2.1.0" dependencies = [ "asset-hub-paseo-runtime", "asset-test-utils", @@ -9553,7 +9593,7 @@ dependencies = [ [[package]] name = "people-paseo-runtime" -version = "2.0.6" +version = "2.1.0" dependencies = [ "assets-common", "cumulus-pallet-aura-ext", @@ -9623,7 +9663,7 @@ dependencies = [ "staging-xcm-builder", "staging-xcm-executor", "substrate-wasm-builder", - "system-parachains-constants 2.0.6", + "system-parachains-constants 2.1.0", "xcm-runtime-apis", ] @@ -9635,9 +9675,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[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", @@ -9650,7 +9690,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "indexmap 2.12.1", + "indexmap 2.13.0", +] + +[[package]] +name = "petgraph" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +dependencies = [ + "fixedbitset", + "hashbrown 0.15.5", + "indexmap 2.13.0", ] [[package]] @@ -9683,7 +9734,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -9697,35 +9748,35 @@ 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" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" @@ -9749,6 +9800,12 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + [[package]] name = "polkadot-ckb-merkle-mountain-range" version = "0.8.1" @@ -9761,9 +9818,9 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "19.0.0" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4877ad0d359828f1e2aa6462a34b6424987d0c4bfde79ce9411144d80c8520c" +checksum = "dc3e1e843b3bab4df488ae15f14822527e8f5003a49efd50b8cdfb55c503a7ee" dependencies = [ "parity-scale-codec", "scale-info", @@ -9773,10 +9830,11 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" -version = "18.0.0" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020fe431f0b594f4d6b22ecc62e86dfc03dc4cab727abcded1253dd44c27d952" +checksum = "e4944ed05ba89885a746af800b34fcf96455601d9d38350666418675d607baf9" dependencies = [ + "array-bytes 6.2.3", "bounded-collections", "derive_more 0.99.20", "parity-scale-codec", @@ -9790,9 +9848,9 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "20.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e784fcdae5b2a8e889f4fb4ec9d2c993ec07a6a599247892d0efa3ce4a9e79f" +checksum = "6a27f1d503aa4da18fdd9c97988624f14be87c38bfa036638babf748edc326fe" dependencies = [ "bitvec", "bounded-collections", @@ -9820,9 +9878,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "23.0.1" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6b20c85e95d08358ac2c1dc67e798f6ad2ad85c6152fafcac6c6c5e3021406" +checksum = "7e305084a36de957d83f3fb83601639e5f68b13501b3e334adf14fd37e90ef92" dependencies = [ "bitvec", "frame-benchmarking", @@ -9872,7 +9930,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" dependencies = [ "frame-support", "pallet-remote-proxy", @@ -9890,9 +9948,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25f48cf16cfc1f4a6beefb408b0ae0940b8de96267ab707769b96386ccf1c105" +checksum = "96e9b2ff8f63290c2695dd956fb4b482ce8831ac99b7dffc98e74214ed0336f5" dependencies = [ "bs58", "frame-benchmarking", @@ -9903,9 +9961,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "23.0.1" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c811df6c99a0aad2d3410c7f50a96c214e7495ec9290d396574c476e3cb482a" +checksum = "66f7b455b9aef20589c96a8a325c6ff0b6645e6b0abc169c21477d7eadf01f3f" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -9953,9 +10011,9 @@ dependencies = [ [[package]] name = "polkadot-sdk-frame" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d734010afa5b59066943b67e752654098d5546fb68577814661ee740c265a30" +checksum = "b43835ff8d1fd5cbe21b436b3a12771502a3916187927542726d388eac722967" dependencies = [ "docify", "frame-benchmarking", @@ -9987,6 +10045,19 @@ dependencies = [ "sp-version", ] +[[package]] +name = "polkavm" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa028f713d0613f0f08b8b3367402cb859218854f6b96fcbe39a501862894d6f" +dependencies = [ + "libc", + "log", + "polkavm-assembler 0.26.0", + "polkavm-common 0.26.0", + "polkavm-linux-raw 0.26.0", +] + [[package]] name = "polkavm" version = "0.30.0" @@ -9996,9 +10067,18 @@ dependencies = [ "libc", "log", "picosimd", - "polkavm-assembler", + "polkavm-assembler 0.30.0", "polkavm-common 0.30.0", - "polkavm-linux-raw", + "polkavm-linux-raw 0.30.0", +] + +[[package]] +name = "polkavm-assembler" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4859a29e1f4ad64610c4bc2bfc40bb9a535068a034933a5b56b5e7a0febf105a" +dependencies = [ + "log", ] [[package]] @@ -10015,6 +10095,10 @@ name = "polkavm-common" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49a5794b695626ba70d29e66e3f4f4835767452a6723f3a0bc20884b07088fe8" +dependencies = [ + "log", + "polkavm-assembler 0.26.0", +] [[package]] name = "polkavm-common" @@ -10025,7 +10109,7 @@ dependencies = [ "blake3", "log", "picosimd", - "polkavm-assembler", + "polkavm-assembler 0.30.0", ] [[package]] @@ -10055,7 +10139,7 @@ dependencies = [ "polkavm-common 0.26.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10067,7 +10151,7 @@ dependencies = [ "polkavm-common 0.30.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10077,7 +10161,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581d34cafec741dc5ffafbb341933c205b6457f3d76257a9d99fb56687219c91" dependencies = [ "polkavm-derive-impl 0.26.0", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10087,7 +10171,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a4f5352e13c1ca5f0e4d7b4a804fbb85b0e02c45cae435d101fe71081bc8ed8" dependencies = [ "polkavm-derive-impl 0.30.0", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10108,7 +10192,13 @@ dependencies = [ [[package]] name = "polkavm-linux-raw" -version = "0.30.0" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28919f542476f4158cc71e6c072b1051f38f4b514253594ac3ad80e3c0211fc8" + +[[package]] +name = "polkavm-linux-raw" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "604b23cdb201979304449f53d21bfd5fb1724c03e3ea889067c9a3bf7ae33862" @@ -10120,9 +10210,9 @@ checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi 0.5.2", + "hermit-abi", "pin-project-lite", - "rustix 1.1.3", + "rustix", "windows-sys 0.61.2", ] @@ -10151,9 +10241,21 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.13.0" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" + +[[package]] +name = "postcard" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" +checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" +dependencies = [ + "cobs", + "embedded-io 0.4.0", + "embedded-io 0.6.1", + "serde", +] [[package]] name = "potential_utf" @@ -10181,9 +10283,9 @@ dependencies = [ [[package]] name = "predicates" -version = "3.1.3" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" +checksum = "ada8f2932f28a27ee7b70dd6c1c39ea0675c55a36879ab92f3a715eaa1e63cfe" dependencies = [ "anstyle", "predicates-core", @@ -10191,15 +10293,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" +checksum = "cad38746f3166b4031b1a0d39ad9f954dd291e7854fcc0eed52ee41a0b50d144" [[package]] name = "predicates-tree" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" +checksum = "d0de1b847b39c8131db0467e9df1ff60e6d0562ab8e9a16e568ad0fdb372e2f2" dependencies = [ "predicates-core", "termtree", @@ -10212,7 +10314,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10262,11 +10364,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.23.10+spec-1.0.0", + "toml_edit 0.25.3+spec-1.1.0", ] [[package]] @@ -10312,7 +10414,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10323,14 +10425,14 @@ checksum = "75eea531cfcd120e0851a3f8aed42c4841f78c889eefafd96339c72677ae42c3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[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", ] @@ -10369,18 +10471,18 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[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", - "bitflags 2.10.0", + "bitflags 2.11.0", "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", @@ -10411,6 +10513,16 @@ dependencies = [ "prost-derive 0.13.5", ] +[[package]] +name = "prost" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" +dependencies = [ + "bytes", + "prost-derive 0.14.3", +] + [[package]] name = "prost-build" version = "0.13.5" @@ -10422,12 +10534,31 @@ dependencies = [ "log", "multimap", "once_cell", - "petgraph", + "petgraph 0.7.1", "prettyplease", "prost 0.13.5", - "prost-types", + "prost-types 0.13.5", + "regex", + "syn 2.0.117", + "tempfile", +] + +[[package]] +name = "prost-build" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" +dependencies = [ + "heck 0.5.0", + "itertools 0.14.0", + "log", + "multimap", + "petgraph 0.8.3", + "prettyplease", + "prost 0.14.3", + "prost-types 0.14.3", "regex", - "syn 2.0.114", + "syn 2.0.117", "tempfile", ] @@ -10441,7 +10572,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10454,7 +10585,20 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", +] + +[[package]] +name = "prost-derive" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] @@ -10467,13 +10611,35 @@ dependencies = [ ] [[package]] -name = "psm" -version = "0.1.28" +name = "prost-types" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d11f2fedc3b7dafdc2851bc52f277377c5473d378859be234bc7ebb593144d01" +checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" dependencies = [ - "ar_archive_writer", - "cc", + "prost 0.14.3", +] + +[[package]] +name = "pulley-interpreter" +version = "35.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b89c4319786b16c1a6a38ee04788d32c669b61ba4b69da2162c868c18be99c1b" +dependencies = [ + "cranelift-bitset", + "log", + "pulley-macros", + "wasmtime-internal-math", +] + +[[package]] +name = "pulley-macros" +version = "35.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "938543690519c20c3a480d20a8efcc8e69abeb44093ab1df4e7c1f81f26c677a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] @@ -10518,8 +10684,8 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls", - "socket2 0.6.1", - "thiserror 2.0.17", + "socket2 0.6.2", + "thiserror 2.0.18", "tokio", "tracing", "web-time", @@ -10540,7 +10706,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.17", + "thiserror 2.0.18", "tinyvec", "tracing", "web-time", @@ -10555,16 +10721,16 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.1", + "socket2 0.6.2", "tracing", "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.43" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -10575,6 +10741,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "radium" version = "0.7.0" @@ -10600,7 +10772,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand_core 0.9.5", "serde", ] @@ -10621,7 +10793,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -10630,14 +10802,14 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", ] [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ "getrandom 0.3.4", "serde", @@ -10668,14 +10840,14 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] name = "rapidhash" -version = "4.2.0" +version = "4.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2988730ee014541157f48ce4dcc603940e00915edc3c7f9a8d78092256bb2493" +checksum = "b5e48930979c155e2f33aa36ab3119b5ee81332beb6482199a8ecd6029b80b59" dependencies = [ "rustversion", ] @@ -10733,16 +10905,16 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", ] [[package]] name = "redox_syscall" -version = "0.7.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27" +checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", ] [[package]] @@ -10751,7 +10923,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "libredox", "thiserror 1.0.69", ] @@ -10773,39 +10945,41 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "regalloc2" -version = "0.6.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" dependencies = [ - "fxhash", + "hashbrown 0.13.2", "log", + "rustc-hash 1.1.0", "slice-group-by", "smallvec", ] [[package]] name = "regalloc2" -version = "0.9.3" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +checksum = "5216b1837de2149f8bc8e6d5f88a9326b63b8c836ed58ce4a0a29ec736a59734" dependencies = [ - "hashbrown 0.13.2", + "allocator-api2", + "bumpalo", + "hashbrown 0.15.5", "log", - "rustc-hash 1.1.0", - "slice-group-by", + "rustc-hash 2.1.1", "smallvec", ] [[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", @@ -10815,9 +10989,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", @@ -10826,19 +11000,16 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "relay-common" -version = "2.0.6" +version = "2.1.0" dependencies = [ "pallet-staking-reward-fn", - "parity-scale-codec", "polkadot-primitives", - "scale-info", - "sp-api", "sp-runtime", ] @@ -11031,7 +11202,7 @@ version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "revm-bytecode", "revm-primitives", "serde", @@ -11070,7 +11241,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.17", "libc", "untrusted 0.9.0", "windows-sys 0.52.0", @@ -11107,9 +11278,9 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a9123096c1638b2dda374042a1b5228df542049b8717d2d3c5f320837887ed" +checksum = "a60176dd81d0f25aa4a5710a0a1ad27dd08dc85d8b12b07f7cd3294bc0abacb8" dependencies = [ "frame-support", "polkadot-primitives", @@ -11124,15 +11295,15 @@ dependencies = [ [[package]] name = "rtnetlink" -version = "0.13.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" +checksum = "4b960d5d873a75b5be9761b1e73b146f52dddcd27bac75263f40fba686d4d7b5" dependencies = [ - "futures", + "futures-channel", + "futures-util", "log", "netlink-packet-core", "netlink-packet-route", - "netlink-packet-utils", "netlink-proto", "netlink-sys", "nix", @@ -11142,9 +11313,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", @@ -11188,9 +11359,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[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" @@ -11239,42 +11410,28 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.1.4", - "windows-sys 0.45.0", -] - -[[package]] -name = "rustix" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "errno", "libc", - "linux-raw-sys 0.11.0", + "linux-raw-sys", "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.36" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ "log", "once_cell", "ring 0.17.14", "rustls-pki-types", - "rustls-webpki 0.103.8", + "rustls-webpki 0.103.9", "subtle 2.6.1", "zeroize", ] @@ -11293,9 +11450,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ "web-time", "zeroize", @@ -11315,7 +11472,7 @@ dependencies = [ "rustls", "rustls-native-certs", "rustls-platform-verifier-android", - "rustls-webpki 0.103.8", + "rustls-webpki 0.103.9", "security-framework", "security-framework-sys", "webpki-root-certs 0.26.11", @@ -11340,9 +11497,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.8" +version = "0.103.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" dependencies = [ "ring 0.17.14", "rustls-pki-types", @@ -11407,9 +11564,9 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "33.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7329ce3b230fd59149df2743291a2e1f58ea769eb87e2678ea11e00d118b7cc0" +checksum = "6ada4a0e199d2554aacb11dc11e97e5a8fdd999b8ca7eb90afb0337febe9adc5" dependencies = [ "log", "sp-core", @@ -11419,9 +11576,9 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.46.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c73910b6c3d0520d26b13c91987b437a9e81692f70f6a4f48221db27828405" +checksum = "70b0d45264a476977dad2124703e01a284d9d4b9cd722973c100c836f6f17e80" dependencies = [ "parity-scale-codec", "sp-api", @@ -11435,9 +11592,9 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "47.0.0" +version = "48.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dada457375324f0bde8fe286b5a27402eae6ddf6c0c3e05af79bbd7a16505af" +checksum = "6b52a39c5ae942a5db75eca82a7c0e50a4d469185651ef52677967860315bc63" dependencies = [ "array-bytes 6.2.3", "docify", @@ -11466,17 +11623,17 @@ version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b18cef11d2c69703e0d7c3528202ef4ed1cd2b47a6f063e9e17cad8255b1fa94" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "sc-client-api" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b068619ce130f12b7120591a2d743684f80de69a8d8d13e3fa267888525e094" +checksum = "37040b88b3084ceaabe7e497dcb6fd26b1d8c73b7c236b12dfc4da5fe438eb18" dependencies = [ "fnv", "futures", @@ -11501,9 +11658,9 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.53.0" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eacf905b3faf65f4209fe98ce1adc77dd956b33884592f32e2a34be3d755544" +checksum = "a474f1f6d5ef6feff9d8f106eae0fe1258048f8d3bd395b8a14d0d6499aacfd9" dependencies = [ "async-trait", "futures", @@ -11525,9 +11682,9 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" -version = "0.39.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6aa67ee43aa5d35de67749dc30ee6c6b557db963d1fea8a06f1e1ff875fdde4" +checksum = "65fd35b641dc98c0b5e154d1ce8ded71c2d5c1037bea2732f59698c05241d0d8" dependencies = [ "ahash", "array-bytes 6.2.3", @@ -11570,9 +11727,9 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.46.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ccccc135aafa612089e5ad00879d6978ab46a80073cca2cd4f5359a85e00e61" +checksum = "54bfa8e053012dd4655b68142abadae0ffd396582fdb71ac933a0fe831dcabad" dependencies = [ "parity-scale-codec", "parking_lot 0.12.5", @@ -11594,11 +11751,11 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.42.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "871f1a283c4a6439235e8dcdfdbfcfa429d0dc14ed106072cd9d62887e50738d" +checksum = "b7ddd1d656dfac549057ee3adf889c7884848f8f52179c7654d4f8ff6c2f6e49" dependencies = [ - "polkavm", + "polkavm 0.26.0", "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface", @@ -11608,26 +11765,26 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" -version = "0.39.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20634cadfbe2041739e6849d4b82ff599f21735faf003195b077b40ff978491c" +checksum = "d3946090e5e3ce64304564908bf1886c3ca0992791261a110c83842581833902" dependencies = [ "log", - "polkavm", + "polkavm 0.26.0", "sc-executor-common", "sp-wasm-interface", ] [[package]] name = "sc-executor-wasmtime" -version = "0.42.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af2b04977d8a9ccd4ace81be0d17c12c176e08883970693072d67be15a4ce72f" +checksum = "825b33fc35931913d1308797321d65b4ef5eedd6b412af920c92d67d352dd388" dependencies = [ "anyhow", "log", "parking_lot 0.12.5", - "rustix 0.36.17", + "rustix", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -11637,9 +11794,9 @@ dependencies = [ [[package]] name = "sc-mixnet" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061501f0467a2a014475bf3f67c54ce7e58579701557244231b61d2c75005940" +checksum = "baeffff9122f6a2bc74c826994100e3c6e9cdc92d95d9dfcbb5177a3beee0ae0" dependencies = [ "array-bytes 6.2.3", "arrayvec", @@ -11666,16 +11823,15 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.54.0" +version = "0.55.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f39c95497b214a82d43f76bcef0542ad6d8eca0ae3e393a7339648d30972a12" +checksum = "643f4ebc4ed818c403b3605e15c72ec53ead1429071bff43f13fc9d8a8911d21" dependencies = [ "array-bytes 6.2.3", "async-channel", "async-trait", "asynchronous-codec 0.6.2", "bytes", - "cid 0.9.0", "either", "fnv", "futures", @@ -11691,7 +11847,7 @@ dependencies = [ "partial_sort", "pin-project", "prost 0.12.6", - "prost-build", + "prost-build 0.13.5", "rand 0.8.5", "sc-client-api", "sc-network-common", @@ -11717,9 +11873,9 @@ dependencies = [ [[package]] name = "sc-network-common" -version = "0.50.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f006ff1f1f5cd1b254323bb1eeedce27927f851a44028d1ecdaf9e8a1f672c90" +checksum = "cdac0bd4e0a1d77a7e610ab69eb41da04052005b860a83baeee3aba521c7e691" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -11728,9 +11884,9 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.54.0" +version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42fe01a17a0250b0e3c278f63a2b380459f6bdb18e8c958bda8a3879d6af3600" +checksum = "d9a70e26da9413999c7a1de63545b487805f2fa726cc3dd8b9a5021886679051" dependencies = [ "ahash", "futures", @@ -11748,9 +11904,9 @@ dependencies = [ [[package]] name = "sc-network-sync" -version = "0.53.0" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6faa4ac3e052defd8e8ead9ef27cecac7d5cbb9dfaf96782a8bc17065020e876" +checksum = "2ffefc6d3dceb20f417a6b4116324a6a3135efa81599eb8ff85831c165fa7440" dependencies = [ "array-bytes 6.2.3", "async-channel", @@ -11761,7 +11917,7 @@ dependencies = [ "mockall", "parity-scale-codec", "prost 0.12.6", - "prost-build", + "prost-build 0.13.5", "sc-client-api", "sc-consensus", "sc-network", @@ -11784,9 +11940,9 @@ dependencies = [ [[package]] name = "sc-network-types" -version = "0.18.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a8f883c5f12300eac2bbcf86f856316bafe4993284db3589e2b515bf279b22f" +checksum = "11103f2e35999989326ed5be87f0a7d335269bef6d6a1c0ddd543a7d9aed7788" dependencies = [ "bs58", "bytes", @@ -11806,9 +11962,9 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.53.0" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f06299cd0eb602a0818991b64d6a4bcde9d58707955e8065cf64b108a30e93c2" +checksum = "455d1000322ee5609c22dbe7879bc8892055a9e02ce731bd08590f6590f89964" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -11847,19 +12003,20 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" -version = "41.0.0" +version = "43.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "576c5443c7ccaa907e03b2c167d4f9f64168d638261b6ac1a08dcd30c3811862" +checksum = "34aa1bf9a23dfc74491f95787ff1d57bf031ca94f2f656f79a8d47eeea0e2e1b" dependencies = [ "async-trait", "futures", - "indexmap 2.12.1", + "indexmap 2.13.0", "log", "parity-scale-codec", "serde", "sp-blockchain", "sp-core", "sp-runtime", + "strum 0.26.3", "thiserror 1.0.69", ] @@ -11902,7 +12059,7 @@ dependencies = [ "scale-decode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -11914,7 +12071,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -11929,7 +12086,7 @@ dependencies = [ "scale-encode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -11939,10 +12096,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17020f2d59baabf2ddcdc20a4e567f8210baf089b8a8d4785f5fd5e716f92038" dependencies = [ "darling 0.20.11", - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -11965,10 +12122,10 @@ version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -11983,9 +12140,9 @@ dependencies = [ [[package]] name = "scale-value" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884aab179aba344c67ddcd1d7dd8e3f8fee202f2e570d97ec34ec8688442a5b3" +checksum = "b3b64809a541e8d5a59f7a9d67cc700cdf5d7f907932a83a0afdedc90db07ccb" dependencies = [ "either", "parity-scale-codec", @@ -11993,7 +12150,7 @@ dependencies = [ "scale-decode", "scale-encode", "scale-type-resolver", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -12019,9 +12176,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", @@ -12122,7 +12279,7 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ - "bitcoin_hashes 0.14.1", + "bitcoin_hashes", "rand 0.8.5", "secp256k1-sys 0.10.1", "serde", @@ -12134,7 +12291,7 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" dependencies = [ - "bitcoin_hashes 0.14.1", + "bitcoin_hashes", "rand 0.9.2", "secp256k1-sys 0.11.0", ] @@ -12195,11 +12352,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.5.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -12208,9 +12365,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -12311,7 +12468,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -12320,7 +12477,7 @@ version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "itoa", "memchr", "serde", @@ -12339,17 +12496,17 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.1" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +checksum = "381b283ce7bc6b476d903296fb59d0d36633652b633b27f64db4fb46dcbfc3b9" dependencies = [ - "base64 0.22.1", + "base64", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.12.1", + "indexmap 2.13.0", "schemars 0.9.0", - "schemars 1.2.0", + "schemars 1.2.1", "serde_core", "serde_json", "serde_with_macros", @@ -12358,14 +12515,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.1" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +checksum = "a6d4e30573c8cb306ed6ab1dca8423eec9a463ea0e155f45399455e0368b27e0" dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -12431,9 +12588,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", @@ -12479,11 +12636,11 @@ dependencies = [ [[package]] name = "simple-dns" -version = "0.9.3" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee851d0e5e7af3721faea1843e8015e820a234f81fda3dea9247e15bac9a86a" +checksum = "df350943049174c4ae8ced56c604e28270258faec12a6a48637a7655287c9ce0" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", ] [[package]] @@ -12494,15 +12651,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" @@ -12512,9 +12669,9 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "19.0.0" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b143ebffebf7b7cfbcaa72dcdbd7ff77d16a96f3a7531649273540cfaac647" +checksum = "e8438f5da8b5478363971a4d673bdfa6bc890517cda4b7c4507dfb809029bc17" dependencies = [ "enumn", "parity-scale-codec", @@ -12560,9 +12717,9 @@ dependencies = [ [[package]] name = "snowbridge-beacon-primitives" -version = "0.17.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b85fc926fddfe68cbea50c48acee5db4110adfbd6aa3e9b1a98ae758da2f43df" +checksum = "cb028a97defaa9f17f81d802a9f3060fba79b7a5ee1cfd12b432c0d61d282530" dependencies = [ "byte-slice-cast", "frame-support", @@ -12583,15 +12740,14 @@ dependencies = [ [[package]] name = "snowbridge-core" -version = "0.17.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe02ed4437a15294aeb461261c691d464ac5871c6530b127c1d2e04d45ffe33" +checksum = "2fb58cba2820e72d795e2d75e027e418e969002d085f363909a1934c8b7b4ea4" dependencies = [ "bp-relayers", "frame-support", "frame-system", "hex-literal", - "log", "parity-scale-codec", "polkadot-parachain-primitives", "scale-info", @@ -12604,14 +12760,19 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "tracing", ] [[package]] name = "snowbridge-ethereum" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb10d39eb22a8ad079721c60ec74787480024ba1227337dbad9e2229ba97477d" +checksum = "2d0991a761b5d2e1edfb01ad74cf98bfad2c4a1dd176b7fc826170bac9ea60c1" dependencies = [ + "alloy-consensus", + "alloy-core", + "alloy-primitives", + "alloy-rlp", "ethabi-decode", "ethbloom", "ethereum-types", @@ -12629,15 +12790,15 @@ dependencies = [ [[package]] name = "snowbridge-inbound-queue-primitives" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0793fc3106d1163d630ec87a6342b63bd45c814a0d7d77ad4f9737faf6a43a8e" +checksum = "d383c8c7e2dc6348280235ef2151ab204da3ad5a099c0c7d1f5d472cb5d5ae57" dependencies = [ "alloy-core", + "assets-common", "frame-support", "frame-system", "hex-literal", - "log", "parity-scale-codec", "scale-info", "snowbridge-beacon-primitives", @@ -12650,13 +12811,14 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "tracing", ] [[package]] name = "snowbridge-merkle-tree" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45827ffba95c4ffb890574024db3824b48acb76bf6fb49b7cda52c6fe51235a9" +checksum = "0cd5895fd4f0eb8cc97af39310ec0eafcfa18dd54297361c6e60b5fb4fb5f3aa" dependencies = [ "parity-scale-codec", "scale-info", @@ -12681,16 +12843,15 @@ dependencies = [ [[package]] name = "snowbridge-outbound-queue-primitives" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd17d58f2ae7a691fda9af7c103ac9136db38fca305a8bf84b647e122319558d" +checksum = "20ba1371768bcf9d0e24a94bc64509226a1ea8d5d4cb413787eb6fd084a9ee3b" dependencies = [ "alloy-core", "ethabi-decode", "frame-support", "frame-system", "hex-literal", - "log", "parity-scale-codec", "polkadot-parachain-primitives", "scale-info", @@ -12704,13 +12865,14 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "tracing", ] [[package]] name = "snowbridge-outbound-queue-runtime-api" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733b035a169c8d15757504295dc177b9f7e0f1c26a7b8f5c2d4c057546bb75d8" +checksum = "93d633e2e1876faac89ab1a0bd6196cdfc3becfd947ee169dfc9f863c3cfbc54" dependencies = [ "frame-support", "parity-scale-codec", @@ -12723,9 +12885,9 @@ dependencies = [ [[package]] name = "snowbridge-outbound-queue-v2-runtime-api" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "457353b773fed1355c3753467b7fcae1c8b5f3dc4a75a901ec7835556a9758ad" +checksum = "aca743fb69380e2792f2092c72fd37a5f8dda575db7a299a733f8e86b20bd4f8" dependencies = [ "frame-support", "parity-scale-codec", @@ -12737,15 +12899,14 @@ dependencies = [ [[package]] name = "snowbridge-pallet-ethereum-client" -version = "0.17.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb201a0c09666042a7674c74b77dc6edf3de1ab6cabc268124c08b68c6c3d6b" +checksum = "893d6db15aeb440819bc1b1d869f5c50e9e96461ed62a672fe114fa97672a667" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "hex-literal", - "log", "pallet-timestamp", "parity-scale-codec", "scale-info", @@ -12760,13 +12921,14 @@ dependencies = [ "sp-runtime", "sp-std", "static_assertions", + "tracing", ] [[package]] name = "snowbridge-pallet-ethereum-client-fixtures" -version = "0.25.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1d8496a174880bab0df3d4153d35bef3ec7458403ee27a7e06233e02ed989" +checksum = "9bc58118faf3a4451392958e1e29a641396689ee6b3e64f1fb19e3722bbf0737" dependencies = [ "hex-literal", "snowbridge-beacon-primitives", @@ -12777,15 +12939,14 @@ dependencies = [ [[package]] name = "snowbridge-pallet-inbound-queue" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5cf09167bd0752a420151258402daa3e4db39de9ca10cc33ef8c5f5061d135" +checksum = "995eadd6fc62cb4195f25c4d3b850bd731277b3bd3f5bd89a37b76bb5c9f9818" dependencies = [ "alloy-core", "frame-benchmarking", "frame-support", "frame-system", - "log", "pallet-balances", "parity-scale-codec", "scale-info", @@ -12800,13 +12961,14 @@ dependencies = [ "sp-std", "staging-xcm", "staging-xcm-executor", + "tracing", ] [[package]] name = "snowbridge-pallet-inbound-queue-fixtures" -version = "0.25.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaad8c0ddf1ee55d5ab47cdfdf933a5f98b8377d871dbc9cf6bb15a33b6f8d7d" +checksum = "7fd3960168a244229f083ad468d7e761e49b3a4b899365b4efe54bbea54c8d01" dependencies = [ "hex-literal", "snowbridge-beacon-primitives", @@ -12818,16 +12980,15 @@ dependencies = [ [[package]] name = "snowbridge-pallet-inbound-queue-v2" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f9883aca96a69ffe4a29c18a85e00969a053ac31ddc571f1fdd20963d675b73" +checksum = "6418b0ecf638f177dcc0d87e65339099d69e93be69eb1056c6d9ff900c54c7ec" dependencies = [ "alloy-core", "bp-relayers", "frame-benchmarking", "frame-support", "frame-system", - "log", "pallet-balances", "parity-scale-codec", "scale-info", @@ -12848,9 +13009,9 @@ dependencies = [ [[package]] name = "snowbridge-pallet-inbound-queue-v2-fixtures" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc173145283a10b42bb9a51de194695bb9382006440e351d521274e3fff52328" +checksum = "dbc188780177df9fcf9079c206703aa006f9881062eb7351754ddc1d1bb7268c" dependencies = [ "hex-literal", "snowbridge-beacon-primitives", @@ -12862,9 +13023,9 @@ dependencies = [ [[package]] name = "snowbridge-pallet-outbound-queue" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e90f80dc7bb0d2819ee3fd0a516255f413304bf940ef718634173e156caebad8" +checksum = "bf7d1d2652ad8a2d2aece3575304b39d5dc49a461c830298a795a0489f5e1f6d" dependencies = [ "bridge-hub-common", "ethabi-decode", @@ -12886,13 +13047,12 @@ dependencies = [ [[package]] name = "snowbridge-pallet-outbound-queue-v2" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced9d4fde40c8472c8cd40cf2934ba1f6433c9b10b9f978e01597c76c5e8db98" +checksum = "d3746a1e30fd7a31ea5d6358a959c1aecb3b7c29845044ab1eb6d037528d35ef" dependencies = [ "alloy-core", "bp-relayers", - "bridge-hub-common", "ethabi-decode", "frame-benchmarking", "frame-support", @@ -12918,14 +13078,13 @@ dependencies = [ [[package]] name = "snowbridge-pallet-system" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0ae4798132928b665ecc4c82f95281feab6df3014534c74c2144ddfcd16a11" +checksum = "01a10b7211bd147fddb99b4b4a8ea53d652fd2e5922d39d80efe4ee9121f095e" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", "parity-scale-codec", "scale-info", "snowbridge-core", @@ -12936,18 +13095,18 @@ dependencies = [ "sp-std", "staging-xcm", "staging-xcm-executor", + "tracing", ] [[package]] name = "snowbridge-pallet-system-frontend" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c71696c9bf2e9f7f90f30b7f4c830740b5d2a40b06a95575ed3a7568b30c173" +checksum = "e9ac1ddb2871ad24ce6e6c265b84c4293529cd6bec256d4dbb71dc3a0abe049f" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", "pallet-asset-conversion", "parity-scale-codec", "scale-info", @@ -12963,14 +13122,13 @@ dependencies = [ [[package]] name = "snowbridge-pallet-system-v2" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42487f65b512b4256a0c892b44e12bd1e398a295dba574e3b0da47a8df7af45a" +checksum = "dbe5276f26717bb9f31f09ad2e88aa3ed6febabeb6381eaaa6321205d3138c9e" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", "parity-scale-codec", "scale-info", "snowbridge-core", @@ -12987,29 +13145,27 @@ dependencies = [ [[package]] name = "snowbridge-runtime-common" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac60894ce9ded23505b4d6159639014fbd3b96c0b3b7a36b1d6790075b137f48" +checksum = "5154421ead4f2509ae6cd3514bdf59e0ecfcd53bdac7c671efcf5a44799fa05a" dependencies = [ "frame-support", "frame-system", - "log", "pallet-xcm", "parity-scale-codec", - "snowbridge-core", - "snowbridge-outbound-queue-primitives", "sp-arithmetic", "sp-std", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "tracing", ] [[package]] name = "snowbridge-runtime-test-common" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1498c1d16b511742133df17fdc42151d4bd88b79c995b6d44d05ff624bfa64a1" +checksum = "019b50252653852f82dad89385b1a85240fa244ff083a6ab70e6c72982ce713e" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -13039,9 +13195,9 @@ dependencies = [ [[package]] name = "snowbridge-system-runtime-api" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d234863dca4dbb92378b9d23b6863a0a33ad824d96f74ed8f3791d9458eb54b5" +checksum = "23bda2014835fc38a9d2ed2680e92f6d59fc968203b4f8c769c515ff7f97d7d1" dependencies = [ "parity-scale-codec", "snowbridge-core", @@ -13052,9 +13208,9 @@ dependencies = [ [[package]] name = "snowbridge-system-v2-runtime-api" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d99c1ce166aba65960494349dc84461c8813ff236d05fec7cddbd36dd04d227" +checksum = "e8d11eb7711133830526ab105c94b49e30e639ae5f683b2bd23c3aa799197c29" dependencies = [ "parity-scale-codec", "snowbridge-core", @@ -13065,9 +13221,9 @@ dependencies = [ [[package]] name = "snowbridge-verification-primitives" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a8299e762d107c60ee006012d6eb2555fc50e21ed5ddf183dab4f012fcc5552" +checksum = "693e47ce3655db940100caedb027e1069710ca62dd355d86bae50da3af111627" dependencies = [ "frame-support", "parity-scale-codec", @@ -13089,9 +13245,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", @@ -13103,7 +13259,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures", "httparse", @@ -13114,9 +13270,9 @@ dependencies = [ [[package]] name = "sp-api" -version = "38.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d91062b6183f20a6c5fb02d055eeacb4791c8ad32fa1d280c75c0b29aa74acf" +checksum = "de4eb4aada6284b59f42a8da445c729384a514963340af130b4eb01b4835da4d" dependencies = [ "docify", "hash-db", @@ -13137,24 +13293,24 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "24.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8124c25cffbde85d2ef5978fa710bb900d89c368821e04d59040788a0ece3e25" +checksum = "4f2ae0305276704ca35c4499162a709413e4bca4e47a3c909df50a110930121f" dependencies = [ "Inflector", "blake2 0.10.6", "expander", - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "sp-application-crypto" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb8f2382e7b06f3754d66d781bb57021e415715b48a3a65ea452f9ca7e13ec8" +checksum = "c33baebe847fc50edccd36d0e0e86df21d4db93876b5d74aadae9d8e96ca35e2" dependencies = [ "parity-scale-codec", "scale-info", @@ -13180,9 +13336,9 @@ dependencies = [ [[package]] name = "sp-authority-discovery" -version = "38.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f00f125cb1ee42d105005efbf0d78191db96420b35393b19ed121151f2db3f26" +checksum = "fb086abf5450de480d9d815a393ec2c36295350bdb63ded1a9832dfb6757f0a2" dependencies = [ "parity-scale-codec", "scale-info", @@ -13193,9 +13349,9 @@ dependencies = [ [[package]] name = "sp-block-builder" -version = "38.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090c35a7ce8057aa1882cd096863533300ff3805e6fd31eb2c0d25298cec2896" +checksum = "2263a76570421410cc67e49d057700d2196d00e7c7e1c5b282cee5bd352de94f" dependencies = [ "sp-api", "sp-inherents", @@ -13204,9 +13360,9 @@ dependencies = [ [[package]] name = "sp-blockchain" -version = "41.0.0" +version = "43.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20bbc12a32427066f7c84621dc6e1a8017c5a2b73ca6fa549c0a79d106bc78e8" +checksum = "25fe12508b0274ab1f250621feed7c99ead5d4928788b5b7e15cc372862e0832" dependencies = [ "futures", "parity-scale-codec", @@ -13224,9 +13380,9 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.44.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a3f4a09ba62631a18bddea0aee8cc7f50f02aeb1b9ffbaa578b0345dbd2867" +checksum = "5c3515d414dc7dc7186b87cb2ad9b3070edbfa85754373e56c33b408fbaa3f4e" dependencies = [ "async-trait", "futures", @@ -13239,9 +13395,9 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.44.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ae4c25ce19f4b0527d26a2d4225c3ddc1fcf0b4dfc8d1f02f874ecfa64eb7d" +checksum = "edb79fc4bf40bf12755a62b3bd201bb2f8de974b7393d81bee70cccecf40321f" dependencies = [ "async-trait", "parity-scale-codec", @@ -13256,9 +13412,9 @@ dependencies = [ [[package]] name = "sp-consensus-babe" -version = "0.44.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e4b6de91c8151b91bd43f9291fbe8f543ca82cbdb19fff71bda6961c6b7802" +checksum = "5fb7b73c605282232d12a7c5932fd7118dca87b096e0c053a81d780b3de6ca10" dependencies = [ "async-trait", "parity-scale-codec", @@ -13275,9 +13431,9 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" -version = "26.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e818dbd8d5d6b38d97d2892467e40836e808ff53b593dc6098e6dc8f74631795" +checksum = "813b9f529dca0247d1fc184aebc493b704363e82f3e1d81a69f2f9569be965a0" dependencies = [ "parity-scale-codec", "scale-info", @@ -13296,9 +13452,9 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" -version = "25.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fae471cdb1dd297031bdb674e1e99545dc6fc721afcfcf37ab388c60e835fc74" +checksum = "35e695150a413205139d93aea2112ff6d2bfdae77b6aae81fbd4aa8c9cee75a5" dependencies = [ "finality-grandpa", "log", @@ -13314,9 +13470,9 @@ dependencies = [ [[package]] name = "sp-consensus-slots" -version = "0.44.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac5030ea234ed6b31c089df51f9029bd5f8ab9560b83a24133df4b2f966379a3" +checksum = "740ac0574f072dc388239f78c4d19ca5dea530b24a84bfd1124834ec7dc58aea" dependencies = [ "parity-scale-codec", "scale-info", @@ -13326,12 +13482,13 @@ dependencies = [ [[package]] name = "sp-core" -version = "38.1.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707602208776d0e19d4269bb3f68c5306cacbdfabbb2e4d8d499af7b907bb0a3" +checksum = "b0f32d2a9af72fe90bec51076d0e109ef3c25aa1d2a1eef15cf3588acd4a23da" dependencies = [ "ark-vrf", "array-bytes 6.2.3", + "bip39", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", @@ -13347,7 +13504,6 @@ dependencies = [ "libsecp256k1", "log", "merlin", - "parity-bip39", "parity-scale-codec", "parking_lot 0.12.5", "paste", @@ -13394,7 +13550,7 @@ checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" dependencies = [ "quote", "sp-crypto-hashing", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -13415,14 +13571,14 @@ checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "sp-externalities" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cbf059dce180a8bf8b6c8b08b6290fa3d1c7f069a60f1df038ab5dd5fc0ba6" +checksum = "76b67582d8eb400e730d4abaa9f8841898fa36782a2c6b7f61676e5dd6f8166c" dependencies = [ "environmental", "parity-scale-codec", @@ -13431,9 +13587,9 @@ dependencies = [ [[package]] name = "sp-genesis-builder" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e16e1046045e47124c09a9c9c03bfd1933926d67512aa1e66b778b81e51f4bb" +checksum = "6bd14bfa3d9980aab810acf6b0d326cddc72e37ab2ef9f0b17efb80d53c985a7" dependencies = [ "parity-scale-codec", "scale-info", @@ -13444,9 +13600,9 @@ dependencies = [ [[package]] name = "sp-inherents" -version = "38.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d91ae44bf5232bff4e1a804b8eda9cecbf56921c0d67699f7b638db4ea1b776" +checksum = "5785f49653ece32f136b593a3a83cc0d81472d0eb94e6e8b84cc2635e907bb86" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -13458,9 +13614,9 @@ dependencies = [ [[package]] name = "sp-io" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0f8eb3f6c8824549b9482d71516324cf6e2fd650fcc0845d7a4080233898da" +checksum = "84c3b7db2a4f180e3362e374754983e3ddc844b7a1cd2c2e5b71ab0bd3673dfe" dependencies = [ "bytes", "docify", @@ -13485,9 +13641,9 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "43.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0152e8b42857f1764a2ce6abda725d8be008423cc054b747c33a69cbc2a3dd7c" +checksum = "4d3ac79313643baacce1ffebfd0ae78b86ddc9529ef85fa0495e37ef75f13e1d" dependencies = [ "sp-core", "sp-runtime", @@ -13496,9 +13652,9 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.44.1" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a5c0b829014afc22e992be2c198f2677592db43267fc218e9f3207dbbfb6fbb" +checksum = "fc62157d26f8c6847e2827168f71edea83f9f2c3cc12b8fb694dbe58aefe5972" dependencies = [ "parity-scale-codec", "parking_lot 0.12.5", @@ -13518,9 +13674,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", @@ -13529,9 +13685,9 @@ dependencies = [ [[package]] name = "sp-mixnet" -version = "0.16.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a80557d8156b9f52999eb5cde3cea8e3df02713d11fb045c4507a4dd92141" +checksum = "cbebcdd1e8055e1cecfec886f226a0339f9af7a2b78c7452a50dd1dfa2cb1287" dependencies = [ "parity-scale-codec", "scale-info", @@ -13541,9 +13697,9 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" -version = "38.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a492ae11f4c220fea20eb5fbcdc788b02085ebd83c9e2e769708b2b58bf96e3" +checksum = "ec94fa772252d86932a5f01bff70df3e7f170f350dfabf14417b26eb5c9e10c9" dependencies = [ "log", "parity-scale-codec", @@ -13559,9 +13715,9 @@ dependencies = [ [[package]] name = "sp-npos-elections" -version = "38.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db55883feff59ac34d221f97030d1a0b0699ab259838cb28a5ed19d56de40519" +checksum = "9767c2808334b8a5932d314f4ffd16b2cb7b735a75f60231f4590fb50ffbd9bb" dependencies = [ "parity-scale-codec", "scale-info", @@ -13573,9 +13729,9 @@ dependencies = [ [[package]] name = "sp-offchain" -version = "38.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4ddad79b8992fe2cc2b285816ae3814a351139c742da924fcf17c23dd1c145" +checksum = "122459d7edab703f86d192fde32338301b998aff9ef81d7a87ffe2cd3a190741" dependencies = [ "sp-api", "sp-core", @@ -13594,9 +13750,9 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "36.0.1" +version = "37.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71516b7b2b70b94b028cb66e5ac4ec20424c1b66363a939c65b5c5f6759723f7" +checksum = "08001f6b51a282cf83ec9386ddd8134d0a417a3ec51c8e641e0181de50d48b4e" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -13605,11 +13761,12 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "43.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3992bd6026675946f12fc3c891c863f017a01449a5a15d07656ea1b6503f3ba2" +checksum = "7f799c308ab442aa1c80b193db8c76f36dcc5a911408bf8861511987f4e4f2ee" dependencies = [ "binary-merkle-tree", + "bytes", "docify", "either", "hash256-std-hasher", @@ -13629,21 +13786,21 @@ dependencies = [ "sp-std", "sp-trie", "sp-weights", + "strum 0.26.3", "tracing", "tuplex", ] [[package]] name = "sp-runtime-interface" -version = "31.0.0" +version = "33.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4820882d8e6e764b98efaeed3a431aa9a0d1738c4adf935fbb4c50113288073" +checksum = "22644a2fabb5c246911ecde30fdb7f0801c90f5e611b1147140055ad7b6dabab" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive 0.26.0", - "primitive-types 0.13.1", "sp-externalities", "sp-runtime-interface-proc-macro", "sp-std", @@ -13661,17 +13818,17 @@ checksum = "04178084ae654b3924934a56943ee73e3562db4d277e948393561b08c3b5b5fe" dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "sp-session" -version = "40.0.0" +version = "42.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "860f9c9f4681c99341f8d12640788924f73b92118982638cae0ef2f483e79dd2" +checksum = "9a79f3383169cb7cf58a0b8f76492ba934aa73c3c41a206fe2b47be0ac5a2d11" dependencies = [ "parity-scale-codec", "scale-info", @@ -13684,9 +13841,9 @@ dependencies = [ [[package]] name = "sp-staking" -version = "40.0.0" +version = "42.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9945ce70bbfb9b1c876f94a81017915bc932a576b8a9735b88aabfa01ea4e5" +checksum = "56facdf4a950590afa2aa45d2f4d8acac77dfa486f9124e4977c55f6b8ecac90" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -13698,9 +13855,9 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.47.0" +version = "0.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaa59c3fdf73700dd3e9dcce503fb15c3ef59dfed3ed34f0eec78d8f5b5d1c45" +checksum = "1b5bfda052a2fe9be497139e0c5d0a51946873f3cd7c2ff81bdbcb8b446caa37" dependencies = [ "hash-db", "log", @@ -13738,9 +13895,9 @@ dependencies = [ [[package]] name = "sp-timestamp" -version = "38.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57897783f3ae2b0630196f767194d9f753759305a5266fc2e0522e920733df0a" +checksum = "81f5dcc250a9b105e732ae43969ae956d88ba8c8de9e3dd3e73155cbc7ab2ead" dependencies = [ "async-trait", "parity-scale-codec", @@ -13751,9 +13908,9 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "18.0.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7fa3a9161173fa99b4455afc52811eb8251e90ca37a2cbebb8be9c47dc55c00" +checksum = "f2c7372456c39cc81e15befe54d0caab8378f2b30fd34d1bcb5f0f56631c6b6e" dependencies = [ "parity-scale-codec", "regex", @@ -13764,9 +13921,9 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "38.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ec2ce1712ceb1111418ebe3855f017c5d68e954d376d8bf97dcb720a950edc9" +checksum = "fb825fac0981a640d025b7bbc8f3e11147a961df502d399b563a5688ffde1b96" dependencies = [ "sp-api", "sp-runtime", @@ -13774,9 +13931,9 @@ dependencies = [ [[package]] name = "sp-trie" -version = "41.1.0" +version = "42.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd2a05942903900c23aaa5fded094fa8186523e646ae8874bff3fce74985d0e5" +checksum = "6beed4d77d66f085443eac37171d88b2dbf6f7358d9d3451c11479ddfce60d6e" dependencies = [ "ahash", "foldhash 0.1.5", @@ -13800,9 +13957,9 @@ dependencies = [ [[package]] name = "sp-version" -version = "41.0.0" +version = "43.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d7b57b6577ddab5b363c2d6e9d49609749e041ee50e7232ecb413bc1cfa3f" +checksum = "dd07f9e708698156d941b816582cb5298a3a406d230648fcc8840f118ac423a1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -13826,14 +13983,14 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "sp-wasm-interface" -version = "23.0.0" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568979072b49384ef6bbaa5aa1306a91f0b983a4b22c8ef515b601748683b97c" +checksum = "dd177d0658f3df0492f28bd39d665133a7868db5aa66c8642c949b6265430719" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -13871,9 +14028,9 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spinners" -version = "4.1.1" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ef947f358b9c238923f764c72a4a9d42f2d637c46e059dbd319d6e7cfb4f82" +checksum = "071af1a9d34b78b8db3ca4424b0ea4d87052d607dbe96287aebaccd596cabc86" dependencies = [ "lazy_static", "maplit", @@ -13936,9 +14093,9 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "staging-parachain-info" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae7ccae65fded98a5599089ec0de9d9a56cc8993820d793e511db6f936a0cd7e" +checksum = "2c878a6d9ad844a122ec17446b05a94c16a566e13250a52287f5eb8debf5d89c" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -13950,9 +14107,9 @@ dependencies = [ [[package]] name = "staging-xcm" -version = "20.0.0" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "289bd536ba4f2ecede20ddb65312df821baa33828423223d926ad2b3d5caab52" +checksum = "5da5a04bfec3911a3b5f497b3e6e3e0d4655960d5b6a1f9c28ef22d38ad0af31" dependencies = [ "array-bytes 6.2.3", "bounded-collections", @@ -13961,20 +14118,20 @@ dependencies = [ "frame-support", "hex-literal", "impl-trait-for-tuples", - "log", "parity-scale-codec", "scale-info", "serde", "sp-runtime", "sp-weights", + "tracing", "xcm-procedural", ] [[package]] name = "staging-xcm-builder" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf50224ee19aa772ff0708ca83bcc1d2d3d2428f3af2ea6a1e56e977fa84428a" +checksum = "736228eb2316473060b925a71bb626ec38bc88a106a1dc1fc3d012da16e89114" dependencies = [ "environmental", "frame-support", @@ -13997,9 +14154,9 @@ dependencies = [ [[package]] name = "staging-xcm-executor" -version = "23.0.0" +version = "24.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa449c89ca664a961a15219ac4bdd237142d23e0f22b3c45af7badec39be8dd" +checksum = "e170ec1fc40070d7459aa3348a9e2dae9569aab99fd60986a61b76e3ff36470e" dependencies = [ "environmental", "frame-benchmarking", @@ -14069,7 +14226,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -14115,9 +14272,9 @@ dependencies = [ [[package]] name = "substrate-rpc-client" -version = "0.53.0" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f5b71b45562d7a90deba18c6eca51b94b3c47ac08205f0a657add570910714" +checksum = "b423f09edcf02bba07db91beadee78d1c8977a5461238d2304cd33972cc09564" dependencies = [ "async-trait", "jsonrpsee", @@ -14129,9 +14286,9 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "30.0.0" +version = "31.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18ce72580a7874d691946deb585f52b868d9271291963b8917a99f4c3232f2fe" +checksum = "c2e84e19e2e219e108876cdf2adef2523670886ec4471d1526930f27cf9de8db" dependencies = [ "array-bytes 6.2.3", "build-helper", @@ -14196,7 +14353,7 @@ dependencies = [ "serde_json", "sp-crypto-hashing", "subxt-metadata", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] @@ -14212,7 +14369,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-crypto-hashing", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -14221,7 +14378,7 @@ version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a9bd240ae819f64ac6898d7ec99a88c8b838dba2fb9d83b843feb70e77e34c8" dependencies = [ - "base64 0.22.1", + "base64", "bip32", "bip39", "cfg-if", @@ -14241,7 +14398,7 @@ dependencies = [ "sha2 0.10.9", "sp-crypto-hashing", "subxt-core", - "thiserror 2.0.17", + "thiserror 2.0.18", "zeroize", ] @@ -14258,9 +14415,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.114" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -14269,14 +14426,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.5.2" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f92d01b5de07eaf324f7fca61cc6bd3d82bbc1de5b6c963e6fe79e86f36580d" +checksum = "53f425ae0b12e2f5ae65542e00898d500d4d318b4baf09f40fd0d410454e9947" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -14299,16 +14456,16 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -14326,30 +14483,25 @@ dependencies = [ [[package]] name = "system-parachains-common" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", "frame-support", "log", - "pallet-treasury", - "parachains-common", + "pallet-multi-asset-bounties", "parity-scale-codec", "polkadot-primitives", - "polkadot-runtime-common", "scale-info", "sp-api", - "sp-core", "sp-runtime", "sp-state-machine", - "staging-xcm", - "staging-xcm-executor", ] [[package]] name = "system-parachains-constants" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes?tag=v2.0.6#a92d13901419136c82483b01e6b5d7c3cb0cad09" +source = "git+https://github.com/polkadot-fellows/runtimes?branch=oty-release-210#7a2829e0ad43108496435e46283c7c3f1a648f18" dependencies = [ "array-bytes 9.3.0", "frame-support", @@ -14367,7 +14519,7 @@ dependencies = [ [[package]] name = "system-parachains-constants" -version = "2.0.6" +version = "2.1.0" dependencies = [ "array-bytes 9.3.0", "frame-support", @@ -14396,20 +14548,20 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.16" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" +checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" [[package]] name = "tempfile" -version = "3.24.0" +version = "3.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" +checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.2", "once_cell", - "rustix 1.1.3", + "rustix", "windows-sys 0.61.2", ] @@ -14430,9 +14582,9 @@ checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" [[package]] name = "testnet-parachains-constants" -version = "17.0.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d3008409edfc82c826457043586baba2c17ca5105ad0acdc6f62f25e12e95a" +checksum = "cf046c8f3b848f9e394b046a945f323d1068eca9f3aa6132dd9147410c902fe8" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -14455,11 +14607,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]] @@ -14470,18 +14622,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[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", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -14504,30 +14656,30 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", "num-conv", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", @@ -14569,29 +14721,29 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.49.0" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" dependencies = [ "bytes", "libc", "mio", "parking_lot 0.12.5", "pin-project-lite", - "socket2 0.6.1", + "socket2 0.6.2", "tokio-macros", "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -14628,9 +14780,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.26.2" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" +checksum = "489a59b6730eda1b0171fcfda8b121f4bee2b35cba8645ca35c5f7ba3eb736c1" dependencies = [ "futures-util", "log", @@ -14688,9 +14840,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.0.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "32c2555c699578a4f59f0cc68e5116c8d7cabbd45e1409b989d4be085b53f13e" dependencies = [ "serde_core", ] @@ -14701,7 +14853,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "serde", "serde_spanned", "toml_datetime 0.6.11", @@ -14711,21 +14863,21 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "a0a07913e63758bc95142d9863a5a45173b71515e68b690cad70cf99c3255ce1" dependencies = [ - "indexmap 2.12.1", - "toml_datetime 0.7.5+spec-1.1.0", + "indexmap 2.13.0", + "toml_datetime 1.0.0+spec-1.1.0", "toml_parser", "winnow", ] [[package]] name = "toml_parser" -version = "1.0.6+spec-1.1.0" +version = "1.0.9+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" dependencies = [ "winnow", ] @@ -14783,7 +14935,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -14870,9 +15022,9 @@ checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" [[package]] name = "tungstenite" -version = "0.26.2" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" +checksum = "eadc29d668c91fcc564941132e17b28a7ceb2f3ebf0b9dae3e03fd7a6748eb0d" dependencies = [ "bytes", "data-encoding", @@ -14883,7 +15035,7 @@ dependencies = [ "rustls", "rustls-pki-types", "sha1", - "thiserror 2.0.17", + "thiserror 2.0.18", "url", "utf-8", ] @@ -14950,15 +15102,15 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" dependencies = [ "tinyvec", ] @@ -15051,11 +15203,11 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.19.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" +checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" dependencies = [ - "getrandom 0.3.4", + "getrandom 0.4.2", "js-sys", "wasm-bindgen", ] @@ -15182,18 +15334,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 = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +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 = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -15204,11 +15365,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.56" +version = "0.4.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" dependencies = [ "cfg-if", + "futures-util", "js-sys", "once_cell", "wasm-bindgen", @@ -15217,9 +15379,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -15227,26 +15389,46 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.235.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3bc393c395cb621367ff02d854179882b9a351b4e0c93d1397e6090b53a5c2a" +dependencies = [ + "leb128fmt", + "wasmparser 0.235.0", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-instrument" version = "0.4.0" @@ -15256,6 +15438,18 @@ dependencies = [ "parity-wasm", ] +[[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 0.244.0", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-opt" version = "0.116.1" @@ -15313,214 +15507,270 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.102.0" +version = "0.235.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" +checksum = "161296c618fa2d63f6ed5fffd1112937e803cb9ec71b32b01a76321555660917" dependencies = [ - "indexmap 1.9.3", - "url", + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver 1.0.27", + "serde", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver 1.0.27", +] + +[[package]] +name = "wasmprinter" +version = "0.235.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75aa8e9076de6b9544e6dab4badada518cca0bf4966d35b131bbd057aed8fa0a" +dependencies = [ + "anyhow", + "termcolor", + "wasmparser 0.235.0", ] [[package]] name = "wasmtime" -version = "8.0.1" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" +checksum = "b6fe976922a16af3b0d67172c473d1fd4f1aa5d0af9c8ba6538c741f3af686f4" dependencies = [ + "addr2line 0.24.2", "anyhow", - "bincode", + "bitflags 2.11.0", + "bumpalo", + "cc", "cfg-if", - "indexmap 1.9.3", + "fxprof-processed-profile", + "gimli 0.31.1", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "ittapi", "libc", "log", - "object 0.30.4", + "mach2", + "memfd", + "object 0.36.7", "once_cell", - "paste", - "psm", + "postcard", + "pulley-interpreter", "rayon", + "rustix", "serde", + "serde_derive", + "serde_json", + "smallvec", "target-lexicon", - "wasmparser", - "wasmtime-cache", - "wasmtime-cranelift", + "wasmparser 0.235.0", "wasmtime-environ", - "wasmtime-jit", - "wasmtime-runtime", - "windows-sys 0.45.0", + "wasmtime-internal-asm-macros", + "wasmtime-internal-cache", + "wasmtime-internal-cranelift", + "wasmtime-internal-fiber", + "wasmtime-internal-jit-debug", + "wasmtime-internal-jit-icache-coherence", + "wasmtime-internal-math", + "wasmtime-internal-slab", + "wasmtime-internal-unwinder", + "wasmtime-internal-versioned-export-macros", + "wasmtime-internal-winch", + "windows-sys 0.59.0", ] [[package]] -name = "wasmtime-asm-macros" -version = "8.0.1" +name = "wasmtime-environ" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" +checksum = "44b6264a78d806924abbc76bbc75eac24976bc83bdfb938e5074ae551242436f" +dependencies = [ + "anyhow", + "cpp_demangle", + "cranelift-bitset", + "cranelift-entity", + "gimli 0.31.1", + "indexmap 2.13.0", + "log", + "object 0.36.7", + "postcard", + "rustc-demangle", + "serde", + "serde_derive", + "smallvec", + "target-lexicon", + "wasm-encoder 0.235.0", + "wasmparser 0.235.0", + "wasmprinter", +] + +[[package]] +name = "wasmtime-internal-asm-macros" +version = "35.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6775a9b516559716e5710e95a8014ca0adcc81e5bf4d3ad7899d89ae40094d1a" dependencies = [ "cfg-if", ] [[package]] -name = "wasmtime-cache" -version = "8.0.1" +name = "wasmtime-internal-cache" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" +checksum = "138e33ad4bd120f3b1c77d6d0dcdce0de8239555495befcda89393a40ba5e324" dependencies = [ "anyhow", - "base64 0.21.7", - "bincode", + "base64", "directories-next", - "file-per-thread-logger", "log", - "rustix 0.36.17", + "postcard", + "rustix", "serde", + "serde_derive", "sha2 0.10.9", - "toml 0.5.11", - "windows-sys 0.45.0", - "zstd 0.11.2+zstd.1.5.2", + "toml 0.8.23", + "windows-sys 0.59.0", + "zstd 0.13.3", ] [[package]] -name = "wasmtime-cranelift" -version = "8.0.1" +name = "wasmtime-internal-cranelift" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" +checksum = "7ec9ad7565e6a8de7cb95484e230ff689db74a4a085219e0da0cbd637a29c01c" dependencies = [ "anyhow", + "cfg-if", "cranelift-codegen", + "cranelift-control", "cranelift-entity", "cranelift-frontend", "cranelift-native", - "cranelift-wasm", - "gimli 0.27.3", + "gimli 0.31.1", + "itertools 0.14.0", "log", - "object 0.30.4", + "object 0.36.7", + "pulley-interpreter", + "smallvec", "target-lexicon", - "thiserror 1.0.69", - "wasmparser", - "wasmtime-cranelift-shared", + "thiserror 2.0.18", + "wasmparser 0.235.0", "wasmtime-environ", + "wasmtime-internal-math", + "wasmtime-internal-versioned-export-macros", ] [[package]] -name = "wasmtime-cranelift-shared" -version = "8.0.1" +name = "wasmtime-internal-fiber" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd041e382ef5aea1b9fc78442394f1a4f6d676ce457e7076ca4cb3f397882f8b" +checksum = "8b636ff8b220ebaf29dfe3b23770e4b2bad317b9683e3bf7345e162387385b39" dependencies = [ "anyhow", - "cranelift-codegen", - "cranelift-native", - "gimli 0.27.3", - "object 0.30.4", - "target-lexicon", - "wasmtime-environ", + "cc", + "cfg-if", + "libc", + "rustix", + "wasmtime-internal-asm-macros", + "wasmtime-internal-versioned-export-macros", + "windows-sys 0.59.0", ] [[package]] -name = "wasmtime-environ" -version = "8.0.1" +name = "wasmtime-internal-jit-debug" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" +checksum = "61d8693995ab3df48e88777b6ee3b2f441f2c4f895ab938996cdac3db26f256c" dependencies = [ - "anyhow", - "cranelift-entity", - "gimli 0.27.3", - "indexmap 1.9.3", - "log", - "object 0.30.4", - "serde", - "target-lexicon", - "thiserror 1.0.69", - "wasmparser", - "wasmtime-types", + "cc", + "object 0.36.7", + "rustix", + "wasmtime-internal-versioned-export-macros", ] [[package]] -name = "wasmtime-jit" -version = "8.0.1" +name = "wasmtime-internal-jit-icache-coherence" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" +checksum = "4417e06b7f80baff87d9770852c757a39b8d7f11d78b2620ca992b8725f16f50" dependencies = [ - "addr2line 0.19.0", "anyhow", - "bincode", "cfg-if", - "cpp_demangle", - "gimli 0.27.3", - "log", - "object 0.30.4", - "rustc-demangle", - "serde", - "target-lexicon", - "wasmtime-environ", - "wasmtime-jit-debug", - "wasmtime-jit-icache-coherence", - "wasmtime-runtime", - "windows-sys 0.45.0", + "libc", + "windows-sys 0.59.0", ] [[package]] -name = "wasmtime-jit-debug" -version = "8.0.1" +name = "wasmtime-internal-math" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" +checksum = "7710d5c4ecdaa772927fd11e5dc30a9a62d1fc8fe933e11ad5576ad596ab6612" dependencies = [ - "object 0.30.4", - "once_cell", - "rustix 0.36.17", + "libm", ] [[package]] -name = "wasmtime-jit-icache-coherence" -version = "8.0.1" +name = "wasmtime-internal-slab" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" -dependencies = [ - "cfg-if", - "libc", - "windows-sys 0.45.0", -] +checksum = "e6ab22fabe1eed27ab01fd47cd89deacf43ad222ed7fd169ba6f4dd1fbddc53b" [[package]] -name = "wasmtime-runtime" -version = "8.0.1" +name = "wasmtime-internal-unwinder" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" +checksum = "307708f302f5dcf19c1bbbfb3d9f2cbc837dd18088a7988747b043a46ba38ecc" dependencies = [ "anyhow", - "cc", "cfg-if", - "indexmap 1.9.3", - "libc", + "cranelift-codegen", "log", - "mach", - "memfd", - "memoffset", - "paste", - "rand 0.8.5", - "rustix 0.36.17", - "wasmtime-asm-macros", - "wasmtime-environ", - "wasmtime-jit-debug", - "windows-sys 0.45.0", + "object 0.36.7", ] [[package]] -name = "wasmtime-types" -version = "8.0.1" +name = "wasmtime-internal-versioned-export-macros" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" +checksum = "342b0466f92b7217a4de9e114175fedee1907028567d2548bcd42f71a8b5b016" dependencies = [ - "cranelift-entity", - "serde", - "thiserror 1.0.69", - "wasmparser", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "wasmtime-internal-winch" +version = "35.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2012e7384c25b91aab2f1b6a1e1cbab9d0f199bbea06cc873597a3f047f05730" +dependencies = [ + "anyhow", + "cranelift-codegen", + "gimli 0.31.1", + "object 0.36.7", + "target-lexicon", + "wasmparser 0.235.0", + "wasmtime-environ", + "wasmtime-internal-cranelift", + "winch-codegen", ] [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" dependencies = [ "js-sys", "wasm-bindgen", @@ -15542,14 +15792,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" dependencies = [ - "webpki-root-certs 1.0.5", + "webpki-root-certs 1.0.6", ] [[package]] name = "webpki-root-certs" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36a29fc0408b113f68cf32637857ab740edfafdf460c326cd2afaa2d84cc05dc" +checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" dependencies = [ "rustls-pki-types", ] @@ -15562,9 +15812,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "westend-runtime-constants" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "165eb3a439aa4b035703ea15f8752532e25643566a10c8faa12a3b181b915682" +checksum = "9f5c91a17bd066a495d3df9ed4098b3238c757361bc4c043101b6d2e0a3e3fe2" dependencies = [ "frame-support", "polkadot-primitives", @@ -15624,24 +15874,45 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "winch-codegen" +version = "35.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "839a334ef7c62d8368dbd427e767a6fbb1ba08cc12ecce19cbb666c10613b585" +dependencies = [ + "anyhow", + "cranelift-assembler-x64", + "cranelift-codegen", + "gimli 0.31.1", + "regalloc2 0.12.2", + "smallvec", + "target-lexicon", + "thiserror 2.0.18", + "wasmparser 0.235.0", + "wasmtime-environ", + "wasmtime-internal-cranelift", + "wasmtime-internal-math", +] + [[package]] name = "windows" -version = "0.53.0" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" dependencies = [ - "windows-core 0.53.0", - "windows-targets 0.52.6", + "windows-collections", + "windows-core", + "windows-future", + "windows-numerics", ] [[package]] -name = "windows-core" -version = "0.53.0" +name = "windows-collections" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" dependencies = [ - "windows-result 0.1.2", - "windows-targets 0.52.6", + "windows-core", ] [[package]] @@ -15653,10 +15924,21 @@ dependencies = [ "windows-implement", "windows-interface", "windows-link", - "windows-result 0.4.1", + "windows-result", "windows-strings", ] +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core", + "windows-link", + "windows-threading", +] + [[package]] name = "windows-implement" version = "0.60.2" @@ -15665,7 +15947,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -15676,7 +15958,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -15686,12 +15968,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] -name = "windows-result" -version = "0.1.2" +name = "windows-numerics" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ - "windows-targets 0.52.6", + "windows-core", + "windows-link", ] [[package]] @@ -15829,6 +16112,15 @@ dependencies = [ "windows_x86_64_msvc 0.53.1", ] +[[package]] +name = "windows-threading" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -16030,9 +16322,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.117", + "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.117", + "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.11.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata", + "wasmparser 0.244.0", + "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 0.244.0", +] [[package]] name = "writeable" @@ -16091,15 +16465,15 @@ dependencies = [ "nom", "oid-registry 0.8.1", "rusticata-macros", - "thiserror 2.0.17", + "thiserror 2.0.18", "time", ] [[package]] name = "xcm-emulator" -version = "0.24.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51dc3044122d10846d15aabc7b381a7591dd1a7a9841ad243f5c4256fe0e9386" +checksum = "787ad485a0c770c130d15d7421bcb35e2cd6873568397e2b1180cb1d0451b146" dependencies = [ "array-bytes 6.2.3", "cumulus-pallet-parachain-system", @@ -16109,7 +16483,7 @@ dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", - "log", + "pallet-aura", "pallet-balances", "pallet-message-queue", "pallet-timestamp", @@ -16120,6 +16494,7 @@ dependencies = [ "polkadot-primitives", "polkadot-runtime-parachains", "sp-arithmetic", + "sp-consensus-aura", "sp-core", "sp-crypto-hashing", "sp-io", @@ -16127,6 +16502,7 @@ dependencies = [ "sp-tracing", "staging-xcm", "staging-xcm-executor", + "tracing", "xcm-simulator", ] @@ -16139,14 +16515,14 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "xcm-runtime-apis" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fdec3d7bed063bd760bb15afd7d1818ed070b3f70773ace165ddee392042755" +checksum = "fd4fdfa1a38598cb8f49012d2b1f5b0b07d46aaae7c2e19d96f0674c970c4eab" dependencies = [ "frame-support", "parity-scale-codec", @@ -16159,9 +16535,9 @@ dependencies = [ [[package]] name = "xcm-simulator" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bdc7fa003940ad9b233eb50784384f8c04fa2c8375c26e6702a930c67345127" +checksum = "a77cef52b3a7e1b4209988ba3a5cdbdc11949c312bd6ccc518bb8579bb61b6a7" dependencies = [ "frame-support", "frame-system", @@ -16211,9 +16587,9 @@ dependencies = [ [[package]] name = "yamux" -version = "0.13.8" +version = "0.13.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deab71f2e20691b4728b349c6cee8fc7223880fa67b6b4f92225ec32225447e5" +checksum = "c650efd29044140aa63caaf80129996a9e2659a2ab7045a7e061807d02fc8549" dependencies = [ "futures", "log", @@ -16253,28 +16629,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "synstructure 0.13.2", ] [[package]] name = "zerocopy" -version = "0.8.32" +version = "0.8.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fabae64378cb18147bb18bca364e63bdbe72a0ffe4adf0addfec8aa166b2c56" +checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.32" +version = "0.8.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9c2d862265a8bb4471d87e033e730f536e2a285cc7cb05dbce09a2a97075f90" +checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -16294,7 +16670,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "synstructure 0.13.2", ] @@ -16315,7 +16691,7 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -16348,38 +16724,38 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "zmij" -version = "1.0.12" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" [[package]] name = "zstd" -version = "0.11.2+zstd.1.5.2" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", + "zstd-safe 6.0.6", ] [[package]] name = "zstd" -version = "0.12.4" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" dependencies = [ - "zstd-safe 6.0.6", + "zstd-safe 7.2.4", ] [[package]] name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" +version = "6.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" dependencies = [ "libc", "zstd-sys", @@ -16387,11 +16763,10 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "6.0.6" +version = "7.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" dependencies = [ - "libc", "zstd-sys", ] diff --git a/Cargo.toml b/Cargo.toml index 63373d2b2..9ab3c6cd2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,28 +1,25 @@ [workspace.package] -version = "2.0.6" +version = "2.1.0" authors = ["Paseo Core Team"] edition = "2021" repository = "https://github.com/paseo-network/runtimes.git" license = "GPL-3.0-only" # TODO [workspace.dependencies] -pallet-ah-migrator = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.0.6", default-features = false } -pallet-ah-ops = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.0.6", default-features = false } -pallet-rc-migrator = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.0.6", default-features = false } -system-parachains-common = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.0.6", default-features = false } - -pallet-election-provider-multi-block = { version = "0.7.0", default-features = false } -pallet-staking-async = { version = "0.7.1", default-features = false } +pallet-ah-migrator = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.1.0", default-features = false } +pallet-rc-migrator = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.1.0", default-features = false } +pallet-ah-ops = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.1.0", default-features = false } +pallet-election-provider-multi-block = { version = "0.6.1", default-features = false } +pallet-staking-async = { version = "0.10.2", default-features = false } hex = { version = "0.4.3", default-features = false } rand = { version = "0.9.2" } impl-trait-for-tuples = { version = "0.2.3", default-features = false } -kusama-runtime-constants = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.0.6", package = "kusama-runtime-constants", default-features = false } -bp-bridge-hub-kusama = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.0.6", package = "bp-bridge-hub-kusama", default-features = false } -bp-bridge-hub-polkadot = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.0.6", package = "bp-bridge-hub-polkadot", default-features = false } -bp-asset-hub-kusama = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.0.6", package = "bp-asset-hub-kusama", default-features = false } -collectives-polkadot-runtime-constants = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.0.6", package = "collectives-polkadot-runtime-constants", default-features = false } -pallet-remote-proxy = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.0.6", package = "pallet-remote-proxy", default-features = false } +kusama-runtime-constants = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.1.0", package = "kusama-runtime-constants", default-features = false } +bp-bridge-hub-kusama = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.1.0", package = "bp-bridge-hub-kusama", default-features = false } +bp-bridge-hub-polkadot = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.1.0", package = "bp-bridge-hub-polkadot", default-features = false } +bp-asset-hub-kusama = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.1.0", package = "bp-asset-hub-kusama", default-features = false } +collectives-polkadot-runtime-constants = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.1.0", package = "collectives-polkadot-runtime-constants", default-features = false } # Local dependencies @@ -48,212 +45,238 @@ paseo-emulated-chain = { path = "integration-tests/emulated/chains/relays/paseo" assert_matches = { version = "1.5.0" } approx = { version = "0.5.1" } array-bytes = { version = "9.3.0" } -asset-test-utils = { version = "28.0.0" } -assets-common = { version = "0.26.0", default-features = false } -authority-discovery-primitives = { version = "38.0.0", default-features = false, package = "sp-authority-discovery" } -babe-primitives = { version = "0.44.0", default-features = false, package = "sp-consensus-babe" } -beefy-primitives = { version = "26.0.0", default-features = false, package = "sp-consensus-beefy" } -binary-merkle-tree = { version = "16.0.0", default-features = false } -bp-bridge-hub-cumulus = { version = "0.26.0", default-features = false } -bp-header-chain = { version = "0.24.0", default-features = false } -bp-messages = { version = "0.24.0", default-features = false } -bp-parachains = { version = "0.24.0", default-features = false } -bp-polkadot-core = { version = "0.24.0", default-features = false } -bp-relayers = { version = "0.24.0", default-features = false } -bp-runtime = { version = "0.24.0", default-features = false } -bp-xcm-bridge-hub = { version = "0.10.0", default-features = false } -bp-xcm-bridge-hub-router = { version = "0.21.0", default-features = false } -bridge-hub-common = { version = "0.17.0", default-features = false } -bridge-hub-test-utils = { version = "0.27.0" } -bridge-runtime-common = { version = "0.25.0", default-features = false } +asset-test-utils = { version = "29.0.1" } +assets-common = { version = "0.27.1", default-features = false } +authority-discovery-primitives = { version = "40.0.0", default-features = false, package = "sp-authority-discovery" } +babe-primitives = { version = "0.46.0", default-features = false, package = "sp-consensus-babe" } +beefy-primitives = { version = "28.0.0", default-features = false, package = "sp-consensus-beefy" } +binary-merkle-tree = { version = "16.1.0", default-features = false } +bp-bridge-hub-cumulus = { version = "0.27.0", default-features = false } +bp-header-chain = { version = "0.25.0", default-features = false } +bp-messages = { version = "0.25.0", default-features = false } +bp-parachains = { version = "0.25.0", default-features = false } +bp-paseo-core = { version = "0.25.0", default-features = false } +bp-polkadot-core = { version = "0.25.0", default-features = false } +bp-relayers = { version = "0.25.0", default-features = false } +bp-runtime = { version = "0.25.0", default-features = false } +bp-xcm-bridge-hub = { version = "0.11.0", default-features = false } +bp-xcm-bridge-hub-router = { version = "0.22.0", default-features = false } +bridge-hub-common = { version = "0.18.0", default-features = false } +bridge-hub-test-utils = { version = "0.28.0" } +bridge-runtime-common = { version = "0.26.0", default-features = false } clap = { version = "4.5.0" } codec = { package = "parity-scale-codec", version = "3.7.5", default-features = false } collectives-paseo-emulated-chain = { path = "integration-tests/emulated/chains/parachains/collectives/collectives-paseo" } coretime-paseo-emulated-chain = { path = "integration-tests/emulated/chains/parachains/coretime/coretime-paseo" } -cumulus-pallet-aura-ext = { version = "0.24.0", default-features = false } -cumulus-pallet-parachain-system = { version = "0.24.1", default-features = false } -cumulus-pallet-session-benchmarking = { version = "25.0.0", default-features = false } -cumulus-pallet-xcm = { version = "0.23.0", default-features = false } -cumulus-pallet-xcmp-queue = { version = "0.24.0", default-features = false } -cumulus-pallet-weight-reclaim = { version = "0.6.0", default-features = false } -cumulus-primitives-aura = { version = "0.19.0", default-features = false } -cumulus-primitives-core = { version = "0.22.0", default-features = false } -cumulus-primitives-utility = { version = "0.24.0", default-features = false } -emulated-integration-tests-common = { version = "26.0.0" } +cumulus-pallet-aura-ext = { version = "0.25.0", default-features = false } +cumulus-pallet-parachain-system = { version = "0.25.0", default-features = false } +cumulus-pallet-weight-reclaim = { version = "0.7.0", default-features = false } +cumulus-pallet-session-benchmarking = { version = "26.0.0", default-features = false } +cumulus-pallet-xcm = { version = "0.24.0", default-features = false } +cumulus-pallet-xcmp-queue = { version = "0.25.0", default-features = false } +cumulus-primitives-aura = { version = "0.21.0", default-features = false } +cumulus-primitives-core = { version = "0.23.0", default-features = false } +cumulus-primitives-utility = { version = "0.25.0", default-features = false } +emulated-integration-tests-common = { version = "28.0.0" } enumflags2 = { version = "0.7.7" } -frame-benchmarking = { version = "44.0.1", default-features = false } -frame-election-provider-support = { version = "44.0.0", default-features = false } -frame-executive = { version = "44.0.0", default-features = false } -frame-support = { version = "44.0.0", default-features = false } -frame-system = { version = "44.0.0", default-features = false } -frame-system-benchmarking = { version = "44.0.0", default-features = false } -frame-system-rpc-runtime-api = { version = "38.0.0", default-features = false } -frame-try-runtime = { version = "0.50.0", default-features = false } -grandpa = { version = "0.39.0", package = "sc-consensus-grandpa" } +frame-benchmarking = { version = "45.0.3", default-features = false } +frame-election-provider-support = { version = "45.0.0", default-features = false } +frame-executive = { version = "45.0.1", default-features = false } +frame-support = { version = "45.1.0", default-features = false } +frame-system = { version = "45.0.0", default-features = false } +frame-system-benchmarking = { version = "45.0.0", default-features = false } +frame-system-rpc-runtime-api = { version = "40.0.0", default-features = false } +frame-try-runtime = { version = "0.51.0", default-features = false } +grandpa = { version = "0.40.0", package = "sc-consensus-grandpa" } +grandpa-primitives = { version = "27.0.0", default-features = false, package = "sp-consensus-grandpa" } hex-literal = { version = "0.4.1" } log = { version = "0.4.22", default-features = false } -pallet-alliance = { version = "43.0.0", default-features = false } -pallet-asset-conversion = { version = "26.0.0", default-features = false } -pallet-asset-conversion-tx-payment = { version = "26.0.0", default-features = false } -pallet-asset-rate = { version = "23.0.0", default-features = false } -pallet-asset-tx-payment = { version = "44.0.0", default-features = false } -pallet-assets = { version = "47.0.0", default-features = false } -pallet-assets-holder = { version = "0.7.0", default-features = false } -pallet-assets-precompiles = { version = "0.3.0", default-features = false } -pallet-aura = { version = "43.0.0", default-features = false } -pallet-authority-discovery = { version = "44.0.0", default-features = false } -pallet-authorship = { version = "44.0.0", default-features = false } -pallet-babe = { version = "44.0.1", default-features = false } -pallet-bags-list = { version = "43.0.0", default-features = false } -pallet-balances = { version = "45.0.0", default-features = false } -pallet-beefy = { version = "45.0.0", default-features = false } -pallet-beefy-mmr = { version = "45.0.0", default-features = false } -pallet-bounties = { version = "43.0.0", default-features = false } -pallet-bridge-grandpa = { version = "0.24.0", default-features = false } -pallet-bridge-messages = { version = "0.24.0", default-features = false } -pallet-bridge-parachains = { version = "0.24.0", default-features = false } -pallet-bridge-relayers = { version = "0.24.0", default-features = false } -pallet-broker = { version = "0.23.0", default-features = false } -pallet-child-bounties = { version = "43.0.0", default-features = false } -pallet-collator-selection = { version = "25.0.1", default-features = false } -pallet-collective = { version = "44.0.0", default-features = false } -pallet-conviction-voting = { version = "44.0.0", default-features = false } -pallet-core-fellowship = { version = "28.0.0", default-features = false } -pallet-election-provider-multi-phase = { version = "43.0.0", default-features = false } -pallet-election-provider-support-benchmarking = { version = "43.0.0", default-features = false } -pallet-fast-unstake = { version = "43.0.0", default-features = false } -pallet-glutton = { version = "30.0.0", default-features = false } -pallet-grandpa = { version = "44.0.1", default-features = false } -pallet-identity = { version = "44.0.0", default-features = false } -pallet-indices = { version = "44.0.0", default-features = false } -pallet-insecure-randomness-collective-flip = { version = "32.0.0", default-features = false } -pallet-membership = { version = "44.0.0", default-features = false } -pallet-message-queue = { version = "47.0.0", default-features = false } -pallet-mmr = { version = "44.0.0", default-features = false } -pallet-multisig = { version = "44.0.0", default-features = false } -pallet-nft-fractionalization = { version = "28.0.0", default-features = false } -pallet-nfts = { version = "38.0.0", default-features = false } -pallet-nfts-runtime-api = { version = "28.0.0", default-features = false } -pallet-nis = { version = "44.0.0", default-features = false } -pallet-migrations = { version = "14.0.0", default-features = false } -pallet-nomination-pools = { version = "42.0.1", default-features = false } -pallet-nomination-pools-benchmarking = { version = "42.0.1", default-features = false } -pallet-nomination-pools-runtime-api = { version = "40.0.0", default-features = false } -pallet-offences = { version = "43.0.0", default-features = false } -pallet-offences-benchmarking = { version = "44.0.0", default-features = false } -pallet-parameters = { version = "0.15.0", default-features = false } -pallet-preimage = { version = "44.0.0", default-features = false } -pallet-proxy = { version = "44.0.0", default-features = false } -pallet-ranked-collective = { version = "44.0.0", default-features = false } -pallet-recovery = { version = "44.0.0", default-features = false } -pallet-referenda = { version = "44.0.0", default-features = false } -pallet-revive = { version = "0.11.3", default-features = false } -pallet-salary = { version = "29.0.0", default-features = false } -pallet-scheduler = { version = "45.0.0", default-features = false } -pallet-session = { version = "44.0.1", default-features = false } -pallet-session-benchmarking = { version = "44.0.0", default-features = false } -pallet-society = { version = "44.0.0", default-features = false } -pallet-staking = { version = "44.0.1", default-features = false } -pallet-delegated-staking = { version = "11.0.0", default-features = false } -pallet-staking-async-ah-client = { version = "0.6.0", default-features = false } -pallet-staking-async-rc-client = { version = "0.6.0", default-features = false } +pallet-alliance = { version = "44.0.0", default-features = false } +pallet-asset-conversion = { version = "27.0.0", default-features = false } +pallet-asset-conversion-tx-payment = { version = "27.0.1", default-features = false } +pallet-asset-rate = { version = "24.0.0", default-features = false } +pallet-asset-tx-payment = { version = "45.0.0", default-features = false } +pallet-assets = { version = "48.1.0", default-features = false } +pallet-assets-holder = { version = "0.8.0", default-features = false } +pallet-assets-precompiles = { version = "0.4.1", default-features = false } +pallet-aura = { version = "44.0.0", default-features = false } +pallet-authority-discovery = { version = "45.0.0", default-features = false } +pallet-authorship = { version = "45.0.0", default-features = false } +pallet-babe = { version = "45.0.0", default-features = false } +pallet-bags-list = { version = "44.0.1", default-features = false } +pallet-balances = { version = "46.0.0", default-features = false } +pallet-beefy = { version = "46.0.0", default-features = false } +pallet-beefy-mmr = { version = "46.0.0", default-features = false } +pallet-bounties = { version = "44.0.0", default-features = false } +pallet-bridge-grandpa = { version = "0.25.0", default-features = false } +pallet-bridge-messages = { version = "0.25.0", default-features = false } +pallet-bridge-parachains = { version = "0.25.0", default-features = false } +pallet-bridge-relayers = { version = "0.25.0", default-features = false } +pallet-broker = { version = "0.24.1", default-features = false } +pallet-child-bounties = { version = "44.0.0", default-features = false } +pallet-collator-selection = { version = "26.0.0", default-features = false } +pallet-collective = { version = "45.0.0", default-features = false } +pallet-conviction-voting = { version = "45.0.0", default-features = false } +pallet-dap = { version = "0.2.0", default-features = false } +pallet-core-fellowship = { version = "29.0.0", default-features = false } +pallet-election-provider-multi-phase = { version = "44.0.0", default-features = false } +pallet-election-provider-support-benchmarking = { version = "44.0.0", default-features = false } +pallet-encointer-balances = { version = "~21.2.0", default-features = false } +pallet-encointer-bazaar = { version = "~21.1.0", default-features = false } +pallet-encointer-bazaar-rpc-runtime-api = { version = "~21.1.0", default-features = false } +pallet-encointer-ceremonies = { version = "~21.1.0", default-features = false } +pallet-encointer-ceremonies-rpc-runtime-api = { version = "~21.1.0", default-features = false } +pallet-encointer-communities = { version = "~21.1.0", default-features = false } +pallet-encointer-communities-rpc-runtime-api = { version = "~21.1.0", default-features = false } +pallet-encointer-democracy = { version = "~21.7.0", default-features = false } +pallet-encointer-faucet = { version = "~21.2.0", default-features = false } +pallet-encointer-offline-payment = { version = "~21.0.0", default-features = false } +pallet-encointer-reputation-commitments = { version = "~21.1.1", default-features = false } +pallet-encointer-reputation-rings = { version = "~21.0.0", default-features = false } +pallet-encointer-scheduler = { version = "~21.1.0", default-features = false } +pallet-encointer-treasuries = { version = "~21.7.0", default-features = false } +pallet-encointer-treasuries-rpc-runtime-api = { version = "~21.3.0", default-features = false } +pallet-fast-unstake = { version = "44.0.0", default-features = false } +pallet-glutton = { version = "31.0.0", default-features = false } +pallet-grandpa = { version = "45.0.0", default-features = false } +pallet-identity = { version = "45.0.0", default-features = false } +pallet-indices = { version = "45.0.0", default-features = false } +pallet-insecure-randomness-collective-flip = { version = "33.0.0", default-features = false } +pallet-membership = { version = "45.0.0", default-features = false } +pallet-message-queue = { version = "48.0.0", default-features = false } +pallet-mmr = { version = "45.0.0", default-features = false } +pallet-multi-asset-bounties = { version = "0.2.1", default-features = false } +pallet-multisig = { version = "45.0.0", default-features = false } +pallet-nft-fractionalization = { version = "29.0.0", default-features = false } +pallet-nfts = { version = "39.0.0", default-features = false } +pallet-nfts-runtime-api = { version = "30.0.0", default-features = false } +pallet-nis = { version = "45.0.0", default-features = false } +pallet-migrations = { version = "15.0.0", default-features = false } +pallet-nomination-pools = { version = "43.0.2", default-features = false } +pallet-nomination-pools-benchmarking = { version = "43.0.0", default-features = false } +pallet-nomination-pools-runtime-api = { version = "41.0.0", default-features = false } +pallet-offences = { version = "44.0.0", default-features = false } +pallet-offences-benchmarking = { version = "45.0.0", default-features = false } +pallet-parameters = { version = "0.16.0", default-features = false } +pallet-preimage = { version = "45.0.0", default-features = false } +pallet-proxy = { version = "45.0.0", default-features = false } +pallet-ranked-collective = { version = "45.0.0", default-features = false } +pallet-recovery = { version = "45.0.0", default-features = false } +pallet-referenda = { version = "45.0.0", default-features = false } +pallet-remote-proxy = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.1.0", package = "pallet-remote-proxy", default-features = false } +pallet-revive = { version = "0.12.2", default-features = false } +pallet-salary = { version = "30.0.0", default-features = false } +pallet-scheduler = { version = "46.0.0", default-features = false } +pallet-session = { version = "45.1.0", default-features = false } +pallet-session-benchmarking = { version = "45.0.0", default-features = false } +pallet-society = { version = "45.0.0", default-features = false } +pallet-staking = { version = "45.0.0", default-features = false } +pallet-delegated-staking = { version = "12.0.0", default-features = false } +pallet-staking-async-ah-client = { version = "0.7.2", default-features = false } +pallet-staking-async-rc-client = { version = "0.7.2", default-features = false } pallet-staking-reward-curve = { version = "12.0.0" } pallet-staking-reward-fn = { version = "24.0.0", default-features = false } -pallet-staking-runtime-api = { version = "28.0.0", default-features = false } -pallet-state-trie-migration = { version = "49.0.0", default-features = false } -pallet-sudo = { version = "44.0.0", default-features = false } -pallet-timestamp = { version = "43.0.0", default-features = false } -pallet-transaction-payment = { version = "44.0.0", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { version = "44.0.0", default-features = false } -pallet-treasury = { version = "43.0.0", default-features = false } -pallet-uniques = { version = "44.0.0", default-features = false } -pallet-utility = { version = "44.0.0", default-features = false } -pallet-vesting = { version = "44.0.0", default-features = false } -pallet-whitelist = { version = "43.0.0", default-features = false } -pallet-xcm = { version = "24.0.0", default-features = false } -pallet-xcm-precompiles = { version = "0.2.0", default-features = false } -pallet-xcm-benchmarks = { version = "24.0.0", default-features = false } -pallet-xcm-bridge-hub = { version = "0.20.0", default-features = false } -pallet-xcm-bridge-hub-router = { version = "0.22.0", default-features = false } -parachain-info = { version = "0.24.0", default-features = false, package = "staging-parachain-info" } -parachains-common = { version = "26.0.0", default-features = false } -parachains-runtimes-test-utils = { version = "27.0.1" } +pallet-staking-runtime-api = { version = "30.0.0", default-features = false } +pallet-state-trie-migration = { version = "50.0.0", default-features = false } +pallet-sudo = { version = "45.0.0", default-features = false } +pallet-timestamp = { version = "44.0.0", default-features = false } +pallet-transaction-payment = { version = "45.0.0", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { version = "45.0.0", default-features = false } +pallet-treasury = { version = "44.0.0", default-features = false } +pallet-uniques = { version = "45.0.0", default-features = false } +pallet-utility = { version = "45.0.0", default-features = false } +pallet-vesting = { version = "45.0.0", default-features = false } +pallet-whitelist = { version = "44.0.0", default-features = false } +pallet-xcm = { version = "25.0.0", default-features = false } +pallet-xcm-benchmarks = { version = "25.0.0", default-features = false } +pallet-xcm-precompiles = { version = "0.3.1", default-features = false } +pallet-xcm-bridge-hub = { version = "0.21.0", default-features = false } +pallet-xcm-bridge-hub-router = { version = "0.23.0", default-features = false } +parachain-info = { version = "0.25.0", default-features = false, package = "staging-parachain-info" } +parachains-common = { version = "27.1.0", default-features = false } +parachains-runtimes-test-utils = { version = "28.0.0" } paste = { version = "1.0.14" } -penpal-runtime = { version = "0.34.2" } +penpal-runtime = { version = "0.35.1" } people-kusama-emulated-chain = { path = "integration-tests/emulated/chains/parachains/people/people-kusama" } people-kusama-runtime = { path = "system-parachains/people/people-kusama" } -polkadot-core-primitives = { version = "19.0.0", default-features = false } -polkadot-parachain-primitives = { version = "18.0.0", default-features = false } -polkadot-primitives = { version = "20.0.0", default-features = false } -polkadot-runtime-common = { version = "23.0.1", default-features = false } +paseo-core-primitives = { version = "21.0.0", default-features = false } +paseo-parachain-primitives = { version = "20.0.0", default-features = false } +paseo-primitives = { package = "polkadot-primitives", version = "22.0.0", default-features = false } +polkadot-core-primitives = { version = "21.0.0", default-features = false } +polkadot-parachain-primitives = { version = "20.0.0", default-features = false } +polkadot-primitives = { version = "22.0.0", default-features = false } +polkadot-runtime-common = { version = "24.0.0", default-features = false } +paseo-runtime-common = { version = "24.0.0", default-features = false } primitive-types = { version = "0.13.1", default-features = false } -frame-metadata-hash-extension = { version = "0.12.0", default-features = false } -remote-externalities = { version = "0.55.0", package = "frame-remote-externalities" } -runtime-parachains = { version = "23.0.0", default-features = false, package = "polkadot-runtime-parachains" } -sc-chain-spec = { version = "47.0.0" } -sc-network = { version = "0.54.0" } +frame-metadata-hash-extension = { version = "0.13.0", default-features = false } +remote-externalities = { version = "0.56.0", package = "frame-remote-externalities" } +runtime-parachains = { version = "24.0.0", default-features = false, package = "polkadot-runtime-parachains" } +sc-chain-spec = { version = "48.0.0" } +sc-network = { version = "0.55.1" } scale-info = { version = "2.11.6", default-features = false } separator = { version = "0.4.1" } serde = { version = "1.0.214" } serde_json = { version = "1.0.132", default-features = false } smallvec = { version = "1.13.1" } -snowbridge-beacon-primitives = { version = "0.17.0", default-features = false } -snowbridge-core = { version = "0.17.0", default-features = false } -snowbridge-merkle-tree = { version = "0.4.0", default-features = false } -snowbridge-outbound-queue-runtime-api = { version = "0.17.0", default-features = false } -snowbridge-outbound-queue-v2-runtime-api = { version = "0.6.0", default-features = false } -snowbridge-outbound-queue-primitives = { version = "0.6.0", default-features = false } -snowbridge-pallet-ethereum-client = { version = "0.17.0", default-features = false } -snowbridge-pallet-inbound-queue = { version = "0.17.0", default-features = false } -snowbridge-pallet-inbound-queue-v2 = { version = "0.6.1", default-features = false } -snowbridge-pallet-inbound-queue-fixtures = { version = "0.25.0" } -snowbridge-pallet-ethereum-client-fixtures = { version = "0.25.0" } -snowbridge-pallet-outbound-queue = { version = "0.17.0", default-features = false } -snowbridge-pallet-outbound-queue-v2 = { version = "0.6.0", default-features = false } -snowbridge-pallet-system = { version = "0.17.0", default-features = false } -snowbridge-pallet-system-v2 = { version = "0.6.0", default-features = false } -snowbridge-pallet-system-frontend = { version = "0.6.0", default-features = false } -snowbridge-inbound-queue-primitives = { version = "0.6.0", default-features = false } -snowbridge-runtime-common = { version = "0.18.0", default-features = false } -snowbridge-runtime-test-common = { version = "0.20.0" } -snowbridge-system-runtime-api = { version = "0.17.0", default-features = false } -snowbridge-system-v2-runtime-api = { version = "0.6.0", default-features = false } -sp-api = { version = "38.0.0", default-features = false } -sp-application-crypto = { version = "42.0.0", default-features = false } +snowbridge-beacon-primitives = { version = "0.18.1", default-features = false } +snowbridge-core = { version = "0.18.1", default-features = false } +snowbridge-merkle-tree = { version = "0.6.0", default-features = false } +snowbridge-outbound-queue-runtime-api = { version = "0.18.0", default-features = false } +snowbridge-outbound-queue-v2-runtime-api = { version = "0.7.0", default-features = false } +snowbridge-outbound-queue-primitives = { version = "0.7.1", default-features = false } +snowbridge-pallet-ethereum-client = { version = "0.18.2", default-features = false } +snowbridge-pallet-inbound-queue = { version = "0.18.0", default-features = false } +snowbridge-pallet-inbound-queue-v2 = { version = "0.7.0", default-features = false } +snowbridge-pallet-inbound-queue-fixtures = { version = "0.26.1", default-features = false } +snowbridge-pallet-inbound-queue-v2-fixtures = { version = "0.7.1", default-features = false } +snowbridge-pallet-ethereum-client-fixtures = { version = "0.26.1" } +snowbridge-pallet-outbound-queue = { version = "0.18.0", default-features = false } +snowbridge-pallet-outbound-queue-v2 = { version = "0.7.1", default-features = false } +snowbridge-pallet-system = { version = "0.18.0", default-features = false } +snowbridge-pallet-system-v2 = { version = "0.7.0", default-features = false } +snowbridge-pallet-system-frontend = { version = "0.7.0", default-features = false } +snowbridge-inbound-queue-primitives = { version = "0.7.0", default-features = false } +snowbridge-runtime-common = { version = "0.19.0", default-features = false } +snowbridge-runtime-test-common = { version = "0.21.0" } +snowbridge-system-runtime-api = { version = "0.18.0", default-features = false } +snowbridge-system-v2-runtime-api = { version = "0.7.0", default-features = false } +sp-api = { version = "40.0.0", default-features = false } +sp-application-crypto = { version = "44.0.0", default-features = false } sp-arithmetic = { version = "28.0.0", default-features = false } -sp-block-builder = { version = "38.0.0", default-features = false } -sp-consensus-aura = { version = "0.44.0", default-features = false } -sp-core = { version = "38.0.1", default-features = false } +sp-block-builder = { version = "40.0.0", default-features = false } +sp-consensus-aura = { version = "0.46.0", default-features = false } +sp-core = { version = "39.0.0", default-features = false } sp-debug-derive = { version = "14.0.0", default-features = false } -sp-genesis-builder = { version = "0.19.0", default-features = false } -sp-inherents = { version = "38.0.0", default-features = false } -sp-io = { version = "42.0.0", default-features = false } -sp-keyring = { version = "43.0.0" } -sp-npos-elections = { version = "38.0.0", default-features = false } -sp-offchain = { version = "38.0.0", default-features = false } -sp-runtime = { version = "43.0.0", default-features = false } -sp-session = { version = "40.0.0", default-features = false } -sp-staking = { version = "40.0.0", default-features = false } +sp-genesis-builder = { version = "0.21.0", default-features = false } +sp-inherents = { version = "40.0.0", default-features = false } +sp-io = { version = "44.0.0", default-features = false } +sp-keyring = { version = "45.0.0" } +sp-npos-elections = { version = "40.0.0", default-features = false } +sp-offchain = { version = "40.0.0", default-features = false } +sp-runtime = { version = "45.0.0", default-features = false } +sp-session = { version = "42.0.0", default-features = false } +sp-staking = { version = "42.1.0", default-features = false } sp-std = { version = "14.0.0", default-features = false } -sp-state-machine = { version = "0.47.0", default-features = false } +sp-state-machine = { version = "0.49.0", default-features = false } sp-storage = { version = "22.0.0", default-features = false } -sp-tracing = { version = "18.0.0", default-features = false } -sp-transaction-pool = { version = "38.0.0", default-features = false } -sp-trie = { version = "41.0.0", default-features = false } -sp-version = { version = "41.0.0", default-features = false } -sp-weights = { version = "33.0.0", default-features = false } -substrate-wasm-builder = { version = "30.0.0" } +sp-tracing = { version = "19.0.0", default-features = false } +sp-transaction-pool = { version = "40.0.0", default-features = false } +sp-trie = { version = "42.0.1", default-features = false } +sp-version = { version = "43.0.0", default-features = false } +sp-weights = { version = "33.2.0", default-features = false } +substrate-wasm-builder = { version = "31.1.0" } system-parachains-constants = { path = "system-parachains/constants", default-features = false } +system-parachains-common = { git = "https://github.com/polkadot-fellows/runtimes", tag = "v2.1.0", package = "system-parachains-common", default-features = false } tokio = { version = "1.45.0" } -xcm = { version = "20.0.0", default-features = false, package = "staging-xcm" } -xcm-builder = { version = "24.0.0", default-features = false, package = "staging-xcm-builder" } -xcm-emulator = { version = "0.24.1" } -xcm-executor = { version = "23.0.0", default-features = false, package = "staging-xcm-executor" } -xcm-runtime-apis = { version = "0.11.0", default-features = false } +xcm = { version = "21.0.0", default-features = false, package = "staging-xcm" } +xcm-builder = { version = "25.0.0", default-features = false, package = "staging-xcm-builder" } +xcm-emulator = { version = "0.26.0" } +xcm-executor = { version = "24.0.1", default-features = false, package = "staging-xcm-executor" } +xcm-runtime-apis = { version = "0.12.0", default-features = false } anyhow = { version = "1.0.82" } subxt = { version = "0.43.0" } tracing-subscriber = { version = "0.3.18" } -zombienet-sdk = { version = "0.3.12" } +zombienet-sdk = { version = "0.4.2" } tuplex = { version = "0.1.0", default-features = false } relay-common = { path = "relay/common", default-features = false } ss58-registry = { version = "1.47.0" } @@ -262,6 +285,7 @@ ss58-registry = { version = "1.47.0" } resolver = "2" members = [ + "integration-tests/emulated/chains/parachains/assets/asset-hub-paseo", "integration-tests/emulated/chains/parachains/bridges/bridge-hub-paseo", "integration-tests/emulated/chains/parachains/collectives/collectives-paseo", diff --git a/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/Cargo.toml b/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/Cargo.toml index 95509be80..7588b71e8 100644 --- a/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/Cargo.toml +++ b/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/Cargo.toml @@ -15,14 +15,16 @@ sp-keyring = { workspace = true } frame-support = { workspace = true, default-features = true } # Cumulus +assets-common = { workspace = true, default-features = true } parachains-common = { workspace = true, default-features = true } cumulus-primitives-core = { workspace = true, default-features = true } emulated-integration-tests-common = { workspace = true } xcm = { workspace = true, default-features = true } +xcm-builder = { workspace = true, default-features = true } polkadot-parachain-primitives = { workspace = true } # Runtimes -asset-hub-paseo-runtime = { workspace = true, default-features = true } +asset-hub-paseo-runtime = { workspace = true } paseo-emulated-chain = { workspace = true } penpal-emulated-chain = { workspace = true } @@ -35,6 +37,7 @@ integration-tests-helpers = { workspace = true } [features] runtime-benchmarks = [ "asset-hub-paseo-runtime/runtime-benchmarks", + "assets-common/runtime-benchmarks", "cumulus-primitives-core/runtime-benchmarks", "frame-support/runtime-benchmarks", "integration-tests-helpers/runtime-benchmarks", @@ -43,6 +46,6 @@ runtime-benchmarks = [ "penpal-emulated-chain/runtime-benchmarks", "polkadot-parachain-primitives/runtime-benchmarks", "snowbridge-inbound-queue-primitives/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", "xcm/runtime-benchmarks", ] -try-runtime = [] diff --git a/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/src/genesis.rs b/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/src/genesis.rs index 73c4a1e45..84c93b1d1 100644 --- a/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/src/genesis.rs @@ -17,17 +17,16 @@ use sp_keyring::Sr25519Keyring; // Cumulus -use asset_hub_paseo_runtime::xcm_config::bridging::to_ethereum::EthereumNetwork; use emulated_integration_tests_common::{ - accounts, build_genesis_storage, xcm_emulator::ConvertLocation, RESERVABLE_ASSET_ID, + accounts, build_genesis_storage, xcm_emulator::ConvertLocation, PenpalALocation, + PenpalASiblingSovereignAccount, PenpalATeleportableAssetLocation, PenpalBLocation, + PenpalBSiblingSovereignAccount, PenpalBTeleportableAssetLocation, RESERVABLE_ASSET_ID, SAFE_XCM_VERSION, }; -use frame_support::sp_runtime::traits::AccountIdConversion; use integration_tests_helpers::common::snowbridge::{EthLocation, WethLocation, MIN_ETHER_BALANCE}; use parachains_common::{AccountId, Balance}; -use polkadot_parachain_primitives::primitives::Sibling; -use snowbridge_inbound_queue_primitives::EthereumLocationsConverterFor; use xcm::prelude::*; +use xcm_builder::ExternalConsensusLocationsConverterFor; pub const PARA_ID: u32 = 1000; pub const ED: Balance = asset_hub_paseo_runtime::ExistentialDeposit::get(); @@ -35,27 +34,9 @@ pub const USDT_ID: u32 = 1984; frame_support::parameter_types! { pub AssetHubPaseoAssetOwner: AccountId = Sr25519Keyring::Alice.to_account_id(); - pub PenpalATeleportableAssetLocation: Location - = Location::new(1, [ - Parachain(penpal_emulated_chain::PARA_ID_A), - PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID), - GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()), - ] - ); - pub PenpalBTeleportableAssetLocation: Location - = Location::new(1, [ - Parachain(penpal_emulated_chain::PARA_ID_B), - PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID), - GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()), - ] - ); - pub PenpalASiblingSovereignAccount: AccountId = Sibling::from(penpal_emulated_chain::PARA_ID_A).into_account_truncating(); - pub PenpalBSiblingSovereignAccount: AccountId = Sibling::from(penpal_emulated_chain::PARA_ID_B).into_account_truncating(); - pub EthereumSovereignAccount: AccountId = EthereumLocationsConverterFor::::convert_location( - &Location::new( - 2, - [GlobalConsensus(EthereumNetwork::get())], - ), + pub UniversalLocation: InteriorLocation = [GlobalConsensus(Paseo), Parachain(PARA_ID)].into(); + pub EthereumSovereignAccount: AccountId = ExternalConsensusLocationsConverterFor::::convert_location( + &EthLocation::get(), ).unwrap(); } @@ -137,6 +118,18 @@ pub fn genesis() -> sp_core::storage::Storage { // Weth (WethLocation::get(), EthereumSovereignAccount::get(), true, MIN_ETHER_BALANCE), ], + reserves: vec![ + ( + PenpalATeleportableAssetLocation::get(), + vec![(PenpalALocation::get(), true).into()], + ), + ( + PenpalBTeleportableAssetLocation::get(), + vec![(PenpalBLocation::get(), true).into()], + ), + (EthLocation::get(), vec![(EthLocation::get(), false).into()]), + (WethLocation::get(), vec![(EthLocation::get(), false).into()]), + ], ..Default::default() }, ..Default::default() diff --git a/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/src/lib.rs b/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/src/lib.rs index 26d966c5f..6189e55c1 100644 --- a/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/src/lib.rs +++ b/integration-tests/emulated/chains/parachains/assets/asset-hub-paseo/src/lib.rs @@ -27,6 +27,8 @@ use emulated_integration_tests_common::{ }; use paseo_emulated_chain::Paseo; +pub use assets_common::local_and_foreign_assets::ForeignAssetReserveData; + // AssetHubPaseo Parachain declaration decl_test_parachains! { pub struct AssetHubPaseo { @@ -59,5 +61,9 @@ impl_accounts_helpers_for_parachain!(AssetHubPaseo); impl_assert_events_helpers_for_parachain!(AssetHubPaseo); impl_assets_helpers_for_system_parachain!(AssetHubPaseo, Paseo); impl_assets_helpers_for_parachain!(AssetHubPaseo); -impl_foreign_assets_helpers_for_parachain!(AssetHubPaseo, xcm::latest::Location); +impl_foreign_assets_helpers_for_parachain!( + AssetHubPaseo, + xcm::latest::Location, + ForeignAssetReserveData +); impl_xcm_helpers_for_parachain!(AssetHubPaseo); diff --git a/integration-tests/emulated/chains/parachains/testing/penpal/src/lib.rs b/integration-tests/emulated/chains/parachains/testing/penpal/src/lib.rs index bcb7bbb4b..694dfbc96 100644 --- a/integration-tests/emulated/chains/parachains/testing/penpal/src/lib.rs +++ b/integration-tests/emulated/chains/parachains/testing/penpal/src/lib.rs @@ -96,7 +96,15 @@ impl_assert_events_helpers_for_parachain!(PenpalA); impl_assert_events_helpers_for_parachain!(PenpalB); impl_assets_helpers_for_parachain!(PenpalA); impl_assets_helpers_for_parachain!(PenpalB); -impl_foreign_assets_helpers_for_parachain!(PenpalA, xcm::latest::Location); -impl_foreign_assets_helpers_for_parachain!(PenpalB, xcm::latest::Location); +impl_foreign_assets_helpers_for_parachain!( + PenpalA, + xcm::latest::Location, + penpal_runtime::ForeignAssetReserveData +); +impl_foreign_assets_helpers_for_parachain!( + PenpalB, + xcm::latest::Location, + penpal_runtime::ForeignAssetReserveData +); impl_xcm_helpers_for_parachain!(PenpalA); impl_xcm_helpers_for_parachain!(PenpalB); diff --git a/integration-tests/emulated/helpers/Cargo.toml b/integration-tests/emulated/helpers/Cargo.toml index e99d68cb6..05a302b62 100644 --- a/integration-tests/emulated/helpers/Cargo.toml +++ b/integration-tests/emulated/helpers/Cargo.toml @@ -17,6 +17,7 @@ pallet-message-queue = { workspace = true, default-features = true } # Polkadot xcm = { workspace = true, default-features = true } +xcm-runtime-apis = { workspace = true, default-features = true } pallet-xcm = { workspace = true, default-features = true } # Cumulus @@ -30,5 +31,6 @@ runtime-benchmarks = [ "pallet-balances/runtime-benchmarks", "pallet-message-queue/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", + "xcm-runtime-apis/runtime-benchmarks", "xcm/runtime-benchmarks", ] diff --git a/integration-tests/emulated/helpers/src/lib.rs b/integration-tests/emulated/helpers/src/lib.rs index 84718238e..b59fce719 100644 --- a/integration-tests/emulated/helpers/src/lib.rs +++ b/integration-tests/emulated/helpers/src/lib.rs @@ -21,432 +21,12 @@ pub use pallet_message_queue; // Polkadot pub use pallet_xcm; -pub use xcm::prelude::{AccountId32, VersionedAssets, Weight, WeightLimit}; +pub use xcm::prelude::{AccountId32, VersionedAssetId, VersionedAssets, Weight, WeightLimit}; +pub use xcm_runtime_apis::fees::runtime_decl_for_xcm_payment_api::XcmPaymentApiV2; // Cumulus pub use cumulus_pallet_xcmp_queue; -pub use emulated_integration_tests_common::{macros::Dmp, test_chain_can_claim_assets}; +pub use emulated_integration_tests_common::*; pub use xcm_emulator::Chain; pub mod common; - -#[macro_export] -macro_rules! test_relay_is_trusted_teleporter { - ( $sender_relay:ty, vec![$( $receiver_para:ty ),+], ($assets:expr, $amount:expr), $xcm_call:ident ) => { - $crate::paste::paste! { - // init Origin variables - let sender = [<$sender_relay Sender>]::get(); - let mut relay_sender_balance_before = - <$sender_relay as $crate::Chain>::account_data_of(sender.clone()).free; - let fee_asset_item = 0; - let weight_limit = $crate::WeightLimit::Unlimited; - - $( - { - // init Destination variables - let receiver = [<$receiver_para Receiver>]::get(); - let para_receiver_balance_before = - <$receiver_para as $crate::Chain>::account_data_of(receiver.clone()).free; - let para_destination = - <$sender_relay>::child_location_of(<$receiver_para>::para_id()); - let beneficiary: Location = - $crate::AccountId32 { network: None, id: receiver.clone().into() }.into(); - - <$sender_relay>::execute_with(|| { - $crate::Dmp::<<$sender_relay as $crate::Chain>::Runtime>::make_parachain_reachable(<$receiver_para>::para_id()); - }); - - // Dry-run first. - let call = <$sender_relay as Chain>::RuntimeCall::XcmPallet(pallet_xcm::Call::$xcm_call { - dest: bx!(para_destination.clone().into()), - beneficiary: bx!(beneficiary.clone().into()), - assets: bx!($assets.clone().into()), - fee_asset_item: fee_asset_item, - weight_limit: weight_limit.clone(), - }); - - // verify sane weight for a call - let max_weight_with_margin_for_error = (Weight::MAX.ref_time() / 100) * 90; // assume up to 90% of max weight - assert!(call.get_dispatch_info().call_weight.ref_time() < max_weight_with_margin_for_error); - - let mut delivery_fees_amount = 0; - let mut remote_message = VersionedXcm::from(Xcm(Vec::new())); - <$sender_relay>::execute_with(|| { - type Runtime = <$sender_relay as Chain>::Runtime; - type OriginCaller = <$sender_relay as Chain>::OriginCaller; - - let origin = OriginCaller::system(RawOrigin::Signed(sender.clone())); - let result = Runtime::dry_run_call(origin, call.clone(), xcm::prelude::XCM_VERSION).unwrap(); - // We filter the result to get only the messages we are interested in. - let (destination_to_query, messages_to_query) = &result - .forwarded_xcms - .iter() - .find(|(destination, _)| { - *destination == VersionedLocation::from(Location::new(0, [Parachain(<$receiver_para>::para_id().into())])) - }) - .unwrap(); - assert_eq!(messages_to_query.len(), 1); - remote_message = messages_to_query[0].clone(); - let delivery_fees = - Runtime::query_delivery_fees(destination_to_query.clone(), remote_message.clone()) - .unwrap(); - let latest_delivery_fees: Assets = delivery_fees.clone().try_into().unwrap(); - let Fungible(inner_delivery_fees_amount) = latest_delivery_fees.inner()[0].fun else { - unreachable!("asset is non-fungible"); - }; - delivery_fees_amount = inner_delivery_fees_amount; - }); - - // Reset to send actual message. - <$sender_relay>::reset_ext(); - <$receiver_para>::reset_ext(); - - // Send XCM message from Relay. - <$sender_relay>::execute_with(|| { - $crate::Dmp::<<$sender_relay as $crate::Chain>::Runtime>::make_parachain_reachable(<$receiver_para>::para_id()); - - let origin = <$sender_relay as Chain>::RuntimeOrigin::signed(sender.clone()); - assert_ok!(call.dispatch(origin)); - - type RuntimeEvent = <$sender_relay as $crate::Chain>::RuntimeEvent; - - assert_expected_events!( - $sender_relay, - vec![ - RuntimeEvent::XcmPallet( - $crate::pallet_xcm::Event::Attempted { outcome: Outcome::Complete { .. } } - ) => {}, - RuntimeEvent::Balances( - $crate::pallet_balances::Event::Burned { who: sender, amount } - ) => {}, - RuntimeEvent::XcmPallet( - $crate::pallet_xcm::Event::Sent { .. } - ) => {}, - ] - ); - }); - - // Receive XCM message in Destination Parachain - <$receiver_para>::execute_with(|| { - type RuntimeEvent = <$receiver_para as $crate::Chain>::RuntimeEvent; - - assert_expected_events!( - $receiver_para, - vec![ - RuntimeEvent::Balances( - $crate::pallet_balances::Event::Minted { who: receiver, .. } - ) => {}, - RuntimeEvent::MessageQueue( - $crate::pallet_message_queue::Event::Processed { success: true, .. } - ) => {}, - ] - ); - }); - - // Check if balances are updated accordingly in Origin and Parachain - let relay_sender_balance_after = - <$sender_relay as $crate::Chain>::account_data_of(sender.clone()).free; - let para_receiver_balance_after = - <$receiver_para as $crate::Chain>::account_data_of(receiver.clone()).free; - - assert_eq!(relay_sender_balance_before - $amount - delivery_fees_amount, relay_sender_balance_after); - assert!(para_receiver_balance_after > para_receiver_balance_before); - - // Update sender balance - relay_sender_balance_before = <$sender_relay as $crate::Chain>::account_data_of(sender.clone()).free; - } - )+ - } - }; -} - -#[macro_export] -macro_rules! test_parachain_is_trusted_teleporter_for_relay { - ( $sender_para:ty, $receiver_relay:ty, $amount:expr, $xcm_call:ident ) => { - $crate::paste::paste! { - // init Origin variables - let sender = [<$sender_para Sender>]::get(); - // Mint assets to `$sender_para` to succeed with teleport. - <$sender_para>::execute_with(|| { - assert_ok!(<$sender_para as [<$sender_para Pallet>]>::Balances::mint_into( - &sender, - $amount + 10_000_000_000, // Some extra for delivery fees. - )); - }); - let mut para_sender_balance_before = - <$sender_para as $crate::Chain>::account_data_of(sender.clone()).free; - let origin = <$sender_para as $crate::Chain>::RuntimeOrigin::signed(sender.clone()); - let assets: Assets = (Parent, $amount).into(); - let fee_asset_item = 0; - let weight_limit = $crate::WeightLimit::Unlimited; - - // We need to mint funds into the checking account of `$receiver_relay` - // for it to accept a teleport from `$sender_para`. - // Else we'd get a `NotWithdrawable` error since it tries to reduce the check account balance, which - // would be 0. - <$receiver_relay>::execute_with(|| { - let check_account = <$receiver_relay as [<$receiver_relay Pallet>]>::XcmPallet::check_account(); - assert_ok!(<$receiver_relay as [<$receiver_relay Pallet>]>::Balances::mint_into( - &check_account, - $amount, - )); - }); - - // Init destination variables. - let receiver = [<$receiver_relay Receiver>]::get(); - let relay_receiver_balance_before = - <$receiver_relay as $crate::Chain>::account_data_of(receiver.clone()).free; - let relay_destination: Location = Parent.into(); - let beneficiary: Location = - $crate::AccountId32 { network: None, id: receiver.clone().into() }.into(); - - // Dry-run first. - let call = <$sender_para as Chain>::RuntimeCall::PolkadotXcm(pallet_xcm::Call::$xcm_call { - dest: bx!(relay_destination.clone().into()), - beneficiary: bx!(beneficiary.clone().into()), - assets: bx!(assets.clone().into()), - fee_asset_item: fee_asset_item, - weight_limit: weight_limit.clone(), - }); - - // verify sane weight for a call - let max_weight_with_margin_for_error = (Weight::MAX.ref_time() / 100) * 90; // assume up to 90% of max weight - assert!(call.get_dispatch_info().call_weight.ref_time() < max_weight_with_margin_for_error); - - // These will be filled in the closure. - let mut delivery_fees_amount = 0; - let mut remote_message = VersionedXcm::from(Xcm(Vec::new())); - <$sender_para>::execute_with(|| { - type Runtime = <$sender_para as Chain>::Runtime; - type OriginCaller = <$sender_para as Chain>::OriginCaller; - - let origin = OriginCaller::system(RawOrigin::Signed(sender.clone())); - let result = Runtime::dry_run_call(origin, call.clone(), xcm::prelude::XCM_VERSION).unwrap(); - // We filter the result to get only the messages we are interested in. - let (destination_to_query, messages_to_query) = &result - .forwarded_xcms - .iter() - .find(|(destination, _)| { - *destination == VersionedLocation::from(Location::parent()) - }) - .unwrap(); - assert_eq!(messages_to_query.len(), 1); - remote_message = messages_to_query[0].clone(); - let delivery_fees = - Runtime::query_delivery_fees(destination_to_query.clone(), remote_message.clone()) - .unwrap(); - let latest_delivery_fees: Assets = delivery_fees.clone().try_into().unwrap(); - delivery_fees_amount = if let Some(first_asset) = latest_delivery_fees.inner().first() { - let Fungible(inner_delivery_fees_amount) = first_asset.fun else { - unreachable!("asset is non-fungible"); - }; - inner_delivery_fees_amount - } else { - 0 - } - }); - - // Reset to send actual message. - <$sender_para>::reset_ext(); - <$receiver_relay>::reset_ext(); - - // Mint assets to `$sender_para` to succeed with teleport. - <$sender_para>::execute_with(|| { - assert_ok!(<$sender_para as [<$sender_para Pallet>]>::Balances::mint_into( - &sender, - $amount + 10_000_000_000, // Some extra for delivery fees. - )); - }); - - // Since we reset everything, we need to mint funds into the checking account again. - <$receiver_relay>::execute_with(|| { - let check_account = <$receiver_relay as [<$receiver_relay Pallet>]>::XcmPallet::check_account(); - assert_ok!(<$receiver_relay as [<$receiver_relay Pallet>]>::Balances::mint_into( - &check_account, - $amount, - )); - }); - - // Send XCM message from Parachain. - <$sender_para>::execute_with(|| { - let origin = <$sender_para as Chain>::RuntimeOrigin::signed(sender.clone()); - assert_ok!(call.dispatch(origin)); - - type RuntimeEvent = <$sender_para as $crate::Chain>::RuntimeEvent; - - assert_expected_events!( - $sender_para, - vec![ - RuntimeEvent::PolkadotXcm( - $crate::pallet_xcm::Event::Attempted { outcome: Outcome::Complete { .. } } - ) => {}, - RuntimeEvent::Balances( - $crate::pallet_balances::Event::Burned { who: sender, amount } - ) => {}, - RuntimeEvent::PolkadotXcm( - $crate::pallet_xcm::Event::Sent { .. } - ) => {}, - ] - ); - }); - - // Receive XCM message in Destination Parachain - <$receiver_relay>::execute_with(|| { - type RuntimeEvent = <$receiver_relay as $crate::Chain>::RuntimeEvent; - - assert_expected_events!( - $receiver_relay, - vec![ - RuntimeEvent::Balances( - $crate::pallet_balances::Event::Minted { who: receiver, .. } - ) => {}, - RuntimeEvent::MessageQueue( - $crate::pallet_message_queue::Event::Processed { success: true, .. } - ) => {}, - ] - ); - }); - - // Check if balances are updated accordingly in Origin and Relay Chain - let para_sender_balance_after = - <$sender_para as $crate::Chain>::account_data_of(sender.clone()).free; - let relay_receiver_balance_after = - <$receiver_relay as $crate::Chain>::account_data_of(receiver.clone()).free; - - assert_eq!(para_sender_balance_before - $amount - delivery_fees_amount, para_sender_balance_after); - assert!(relay_receiver_balance_after > relay_receiver_balance_before); - - // Update sender balance - para_sender_balance_before = <$sender_para as $crate::Chain>::account_data_of(sender.clone()).free; - } - }; -} - -#[macro_export] -macro_rules! test_parachain_is_trusted_teleporter { - ( $sender_para:ty, vec![$( $receiver_para:ty ),+], ($assets:expr, $amount:expr), $xcm_call:ident ) => { - $crate::paste::paste! { - // init Origin variables - let sender = [<$sender_para Sender>]::get(); - let mut para_sender_balance_before = - <$sender_para as $crate::Chain>::account_data_of(sender.clone()).free; - let origin = <$sender_para as $crate::Chain>::RuntimeOrigin::signed(sender.clone()); - let fee_asset_item = 0; - let weight_limit = $crate::WeightLimit::Unlimited; - - $( - { - // init Destination variables - let receiver = [<$receiver_para Receiver>]::get(); - let para_receiver_balance_before = - <$receiver_para as $crate::Chain>::account_data_of(receiver.clone()).free; - let para_destination = - <$sender_para>::sibling_location_of(<$receiver_para>::para_id()); - let beneficiary: Location = - $crate::AccountId32 { network: None, id: receiver.clone().into() }.into(); - - // Dry-run first. - let call = <$sender_para as Chain>::RuntimeCall::PolkadotXcm(pallet_xcm::Call::$xcm_call { - dest: bx!(para_destination.clone().into()), - beneficiary: bx!(beneficiary.clone().into()), - assets: bx!($assets.clone().into()), - fee_asset_item: fee_asset_item, - weight_limit: weight_limit.clone(), - }); - - let max_weight_with_margin_for_error = (Weight::MAX.ref_time() / 100) * 90; // assume up to 90% of max weight - assert!(call.get_dispatch_info().call_weight.ref_time() < max_weight_with_margin_for_error); - - let mut delivery_fees_amount = 0; - let mut remote_message = VersionedXcm::from(Xcm(Vec::new())); - <$sender_para>::execute_with(|| { - type Runtime = <$sender_para as Chain>::Runtime; - type OriginCaller = <$sender_para as Chain>::OriginCaller; - - let origin = OriginCaller::system(RawOrigin::Signed(sender.clone())); - let result = Runtime::dry_run_call(origin, call.clone(), xcm::prelude::XCM_VERSION).unwrap(); - // We filter the result to get only the messages we are interested in. - let (destination_to_query, messages_to_query) = &result - .forwarded_xcms - .iter() - .find(|(destination, _)| { - *destination == VersionedLocation::from(Location::new(1, [Parachain(<$receiver_para>::para_id().into())])) - }) - .unwrap(); - assert_eq!(messages_to_query.len(), 1); - remote_message = messages_to_query[0].clone(); - let delivery_fees = - Runtime::query_delivery_fees(destination_to_query.clone(), remote_message.clone()) - .unwrap(); - let latest_delivery_fees: Assets = delivery_fees.clone().try_into().unwrap(); - let Fungible(inner_delivery_fees_amount) = latest_delivery_fees.inner()[0].fun else { - unreachable!("asset is non-fungible"); - }; - delivery_fees_amount = inner_delivery_fees_amount; - }); - - // Reset to send actual message. - <$sender_para>::reset_ext(); - <$receiver_para>::reset_ext(); - - // TODO: The test fails without the line below, seems like no horizontal message passing is being done - // when also using dry_run_call above (it works if there is no dry_run_call) - // So this is just workaround, must be investigated - <$sender_para>::execute_with(|| { }); - - // Send XCM message from Origin Parachain - <$sender_para>::execute_with(|| { - let origin = <$sender_para as Chain>::RuntimeOrigin::signed(sender.clone()); - assert_ok!(call.dispatch(origin)); - - type RuntimeEvent = <$sender_para as $crate::Chain>::RuntimeEvent; - - assert_expected_events!( - $sender_para, - vec![ - RuntimeEvent::PolkadotXcm( - $crate::pallet_xcm::Event::Attempted { outcome: Outcome::Complete { .. } } - ) => {}, - RuntimeEvent::XcmpQueue( - $crate::cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. } - ) => {}, - RuntimeEvent::Balances( - $crate::pallet_balances::Event::Burned { who: sender, amount } - ) => {}, - ] - ); - }); - - // Receive XCM message in Destination Parachain - <$receiver_para>::execute_with(|| { - type RuntimeEvent = <$receiver_para as $crate::Chain>::RuntimeEvent; - - assert_expected_events!( - $receiver_para, - vec![ - RuntimeEvent::Balances( - $crate::pallet_balances::Event::Minted { who: receiver, .. } - ) => {}, - RuntimeEvent::MessageQueue( - $crate::pallet_message_queue::Event::Processed { success: true, .. } - ) => {}, - ] - ); - }); - - // Check if balances are updated accordingly in Origin and Destination Parachains - let para_sender_balance_after = - <$sender_para as $crate::Chain>::account_data_of(sender.clone()).free; - let para_receiver_balance_after = - <$receiver_para as $crate::Chain>::account_data_of(receiver.clone()).free; - - assert_eq!(para_sender_balance_before - $amount - delivery_fees_amount, para_sender_balance_after); - assert!(para_receiver_balance_after > para_receiver_balance_before); - - // Update sender balance - para_sender_balance_before = <$sender_para as $crate::Chain>::account_data_of(sender.clone()).free; - } - )+ - } - }; -} diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-paseo/src/lib.rs b/integration-tests/emulated/tests/bridges/bridge-hub-paseo/src/lib.rs index 4da65d18a..e4da37632 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-paseo/src/lib.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-paseo/src/lib.rs @@ -53,7 +53,7 @@ pub use paseo_system_emulated_network::{ genesis::{ AssetHubPaseoAssetOwner, PenpalATeleportableAssetLocation, ED as ASSET_HUB_POLKADOT_ED, }, - AssetHubPaseoParaPallet as AssetHubPaseoPallet, + AssetHubPaseoParaPallet as AssetHubPaseoPallet, ForeignAssetReserveData, }, bridge_hub_paseo_emulated_chain::{ genesis::ED as BRIDGE_HUB_POLKADOT_ED, BridgeHubPaseoParaPallet as BridgeHubPaseoPallet, diff --git a/integration-tests/emulated/tests/coretime/coretime-paseo/src/tests/coretime_interface.rs b/integration-tests/emulated/tests/coretime/coretime-paseo/src/tests/coretime_interface.rs index 4bda551fb..29a6f6860 100644 --- a/integration-tests/emulated/tests/coretime/coretime-paseo/src/tests/coretime_interface.rs +++ b/integration-tests/emulated/tests/coretime/coretime-paseo/src/tests/coretime_interface.rs @@ -65,7 +65,7 @@ fn transact_hardcoded_weights_are_sane() { // Configure broker and start sales. let config = ConfigRecord { - advance_notice: 1, + advance_notice: 2, interlude_length: 1, leadin_length: 2, region_length: 1, diff --git a/integration-tests/emulated/tests/coretime/coretime-paseo/src/tests/teleport.rs b/integration-tests/emulated/tests/coretime/coretime-paseo/src/tests/teleport.rs index f38b964d6..c5c36487b 100644 --- a/integration-tests/emulated/tests/coretime/coretime-paseo/src/tests/teleport.rs +++ b/integration-tests/emulated/tests/coretime/coretime-paseo/src/tests/teleport.rs @@ -15,19 +15,10 @@ // limitations under the License. use crate::*; -use frame_support::{ - dispatch::{GetDispatchInfo, RawOrigin}, - sp_runtime::traits::Dispatchable, - traits::fungible::Mutate, -}; use integration_tests_helpers::{ test_parachain_is_trusted_teleporter, test_parachain_is_trusted_teleporter_for_relay, test_relay_is_trusted_teleporter, }; -use xcm_runtime_apis::{ - dry_run::runtime_decl_for_dry_run_api::DryRunApiV2, - fees::runtime_decl_for_xcm_payment_api::XcmPaymentApiV1, -}; #[test] fn teleport_via_transfer_assets_from_and_to_relay() { diff --git a/relay/common/Cargo.toml b/relay/common/Cargo.toml index abdbb864a..c91ca2b85 100644 --- a/relay/common/Cargo.toml +++ b/relay/common/Cargo.toml @@ -8,23 +8,15 @@ repository.workspace = true version.workspace = true [dependencies] -codec = { features = ["derive", "max-encoded-len"], workspace = true } -scale-info = { features = ["derive"], workspace = true } - -sp-api = { workspace = true } sp-runtime = { workspace = true } -polkadot-primitives = { workspace = true } pallet-staking-reward-fn = { workspace = true } +polkadot-primitives = { workspace = true } [features] default = ["std"] std = [ - "codec/std", - "scale-info/std", - "pallet-staking-reward-fn/std", "polkadot-primitives/std", - "sp-api/std", "sp-runtime/std", ] runtime-benchmarks = [ diff --git a/relay/common/src/lib.rs b/relay/common/src/lib.rs index e38d99408..a84679639 100644 --- a/relay/common/src/lib.rs +++ b/relay/common/src/lib.rs @@ -20,35 +20,6 @@ use polkadot_primitives::Balance; use sp_runtime::{Perquintill, Saturating}; -/// Extra runtime APIs for kusama runtime. -pub mod apis { - /// Information about the current inflation rate of the system. - /// - /// Both fields should be treated as best-effort, given that the inflation rate might not be - /// fully predict-able. - #[derive(scale_info::TypeInfo, codec::Encode, codec::Decode)] - #[cfg_attr(feature = "std", derive(Debug))] - pub struct InflationInfo { - /// The rate of inflation estimated per annum. - pub inflation: sp_runtime::Perquintill, - /// Next amount that we anticipate to mint. - /// - /// First item is the amount that goes to stakers, second is the leftover that is usually - /// forwarded to the treasury. - pub next_mint: (polkadot_primitives::Balance, polkadot_primitives::Balance), - } - - sp_api::decl_runtime_apis! { - pub trait Inflation { - /// Return the current estimates of the inflation amount. - /// - /// This is marked as experimental in light of RFC#89. Nonetheless, its usage is highly - /// recommended over trying to read-storage, or re-create the onchain logic. - fn experimental_inflation_prediction_info() -> InflationInfo; - } - } -} - // ---- TODO: Below is copy pasted from sdk, remove once we pull the version containing // https://github.com/paritytech/polkadot-sdk/pull/4938 diff --git a/relay/paseo/Cargo.toml b/relay/paseo/Cargo.toml index f023ee3a7..7f7391e6a 100644 --- a/relay/paseo/Cargo.toml +++ b/relay/paseo/Cargo.toml @@ -8,9 +8,11 @@ edition.workspace = true license.workspace = true [dependencies] + # Asset Hub Migration concerning deps pallet-rc-migrator = { workspace = true } # End: Asset Hub Migration concerning deps + codec = { features = ["derive", "max-encoded-len"], workspace = true } scale-info = { features = ["derive"], workspace = true } serde_json = { features = ["alloc"], workspace = true } @@ -50,7 +52,7 @@ pallet-broker = { workspace = true } pallet-child-bounties = { workspace = true } pallet-delegated-staking = { workspace = true } pallet-staking-async-ah-client = { workspace = true } -pallet-staking-async-rc-client = { workspace = true } +pallet-staking-async-rc-client = { workspace = true, features = ["xcm-sender"] } pallet-transaction-payment = { workspace = true } pallet-transaction-payment-rpc-runtime-api = { workspace = true } pallet-conviction-voting = { workspace = true } @@ -131,8 +133,13 @@ substrate-wasm-builder = { workspace = true, optional = true } [features] default = ["std"] no_std = [] -paseo-ahm = ["pallet-rc-migrator/polkadot-ahm"] + +paseo-ahm = [ + "pallet-rc-migrator/polkadot-ahm", +] std = [ + "pallet-rc-migrator/std", + "authority-discovery-primitives/std", "babe-primitives/std", "beefy-primitives/std", @@ -176,7 +183,6 @@ std = [ "pallet-offences/std", "pallet-preimage/std", "pallet-proxy/std", - "pallet-rc-migrator/std", "pallet-referenda/std", "pallet-scheduler/std", "pallet-session-benchmarking?/std", @@ -231,6 +237,8 @@ std = [ "xcm/std", ] runtime-benchmarks = [ + "pallet-rc-migrator/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", "frame-election-provider-support/runtime-benchmarks", "frame-support/runtime-benchmarks", @@ -260,7 +268,6 @@ runtime-benchmarks = [ "pallet-offences/runtime-benchmarks", "pallet-preimage/runtime-benchmarks", "pallet-proxy/runtime-benchmarks", - "pallet-rc-migrator/runtime-benchmarks", "pallet-referenda/runtime-benchmarks", "pallet-scheduler/runtime-benchmarks", "pallet-session-benchmarking/runtime-benchmarks", @@ -292,6 +299,8 @@ runtime-benchmarks = [ "xcm/runtime-benchmarks", ] try-runtime = [ + "pallet-rc-migrator/try-runtime", + "frame-election-provider-support/try-runtime", "frame-executive/try-runtime", "frame-support/try-runtime", @@ -322,7 +331,6 @@ try-runtime = [ "pallet-offences/try-runtime", "pallet-preimage/try-runtime", "pallet-proxy/try-runtime", - "pallet-rc-migrator/try-runtime", "pallet-referenda/try-runtime", "pallet-scheduler/try-runtime", "pallet-session/try-runtime", @@ -349,14 +357,10 @@ metadata-hash = ["substrate-wasm-builder?/metadata-hash"] # A feature that should be enabled when the runtime should be built for on-chain # deployment. This will disable stuff that shouldn't be part of the on-chain wasm # to make it smaller, like logging for example. -on-chain-release-build = [ - "metadata-hash", - "paseo-ahm", - "sp-api/disable-logging", -] +on-chain-release-build = ["metadata-hash", "paseo-ahm", "sp-api/disable-logging"] # Set timing constants (e.g. session period) to faster versions to speed up testing. -fast-runtime = ["paseo-runtime-constants/fast-runtime"] +fast-runtime = [] runtime-metrics = ["runtime-parachains/runtime-metrics", "sp-io/with-tracing"] diff --git a/relay/paseo/src/lib.rs b/relay/paseo/src/lib.rs index 584e7491e..0b0e4c439 100644 --- a/relay/paseo/src/lib.rs +++ b/relay/paseo/src/lib.rs @@ -70,16 +70,13 @@ use pallet_transaction_payment::{FeeDetails, FungibleAdapter, RuntimeDispatchInf use pallet_treasury::TreasuryAccountId; use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; use polkadot_primitives::{ - slashing, - vstaging::{ - async_backing::Constraints, CandidateEvent, - CommittedCandidateReceiptV2 as CommittedCandidateReceipt, CoreState, ScrapedOnChainVotes, - }, - AccountId, AccountIndex, ApprovalVotingParams, Balance, BlockNumber, CandidateHash, CoreIndex, - DisputeState, ExecutorParams, GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, + async_backing::Constraints, slashing, AccountId, AccountIndex, ApprovalVotingParams, Balance, + BlockNumber, CandidateEvent, CandidateHash, + CommittedCandidateReceiptV2 as CommittedCandidateReceipt, CoreIndex, CoreState, DisputeState, + ExecutorParams, GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, InboundHrmpMessage, Moment, NodeFeatures, Nonce, OccupiedCoreAssumption, - PersistedValidationData, SessionInfo, Signature, ValidationCode, ValidationCodeHash, - ValidatorId, ValidatorIndex, PARACHAIN_KEY_TYPE_ID, + PersistedValidationData, ScrapedOnChainVotes, SessionInfo, Signature, ValidationCode, + ValidationCodeHash, ValidatorId, ValidatorIndex, PARACHAIN_KEY_TYPE_ID, }; use polkadot_runtime_common::{ auctions, claims, crowdloan, impl_runtime_weights, @@ -103,9 +100,7 @@ use runtime_parachains::{ initializer as parachains_initializer, on_demand as parachains_on_demand, origin as parachains_origin, paras as parachains_paras, paras_inherent as parachains_paras_inherent, reward_points as parachains_reward_points, - runtime_api_impl::{ - v11 as parachains_runtime_api_impl, vstaging as parachains_runtime_api_impl_vstaging, - }, + runtime_api_impl::v13 as parachains_runtime_api_impl, scheduler as parachains_scheduler, session_info as parachains_session_info, shared as parachains_shared, }; @@ -174,7 +169,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: alloc::borrow::Cow::Borrowed("paseo"), impl_name: alloc::borrow::Cow::Borrowed("paseo-testnet"), authoring_version: 0, - spec_version: 2_000_006, + spec_version: 2_001_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 26, @@ -784,7 +779,7 @@ parameter_types! { pub const DisableSpends: BlockNumber = BlockNumber::MAX; pub const Burn: Permill = Permill::from_percent(1); pub const TreasuryPalletId: PalletId = PalletId(*b"py/trsry"); - pub const PayoutSpendPeriod: BlockNumber = 30 * DAYS; + pub const PayoutSpendPeriod: BlockNumber = 90 * DAYS; // The asset's interior location for the paying account. This is the Treasury // pallet instance (which sits at index 19). pub TreasuryInteriorLocation: InteriorLocation = PalletInstance(TREASURY_PALLET_ID).into(); @@ -1559,7 +1554,7 @@ impl pallet_staking_async_ah_client::Config for Runtime { type AssetHubOrigin = frame_support::traits::EitherOfDiverse, EnsureAssetHub>; type AdminOrigin = EnsureRoot; - type SessionInterface = Self; + type SessionInterface = Session; type SendToAssetHub = StakingXcmToAssetHub; // Paseo RC currently has 150 validators. 100 minimum for now. type MinimumValidatorSetSize = ConstU32<100>; @@ -1594,7 +1589,7 @@ impl frame_support::traits::EnsureOrigin for EnsureAssetHub { #[derive(Encode, Decode)] enum AssetHubRuntimePallets { - // Audit: `StakingRcClient` in asset-hub-westend + // Audit: `StakingRcClient` in asset-hub-paseo #[codec(index = 84)] RcClient(RcClientCalls), } @@ -1910,7 +1905,7 @@ construct_runtime! { // The pallet must be located below `MessageQueue` to get the XCM message acknowledgements // from Asset Hub before we get the `RcMigrator` `on_initialize` executed. RcMigrator: pallet_rc_migrator = 255 - } + } } impl frame_system::offchain::CreateBare for Runtime @@ -2251,7 +2246,7 @@ sp_api::impl_runtime_apis! { VERSION } - fn execute_block(block: Block) { + fn execute_block(block: ::LazyBlock) { Executive::execute_block(block); } @@ -2288,7 +2283,7 @@ sp_api::impl_runtime_apis! { } fn check_inherents( - block: Block, + block: ::LazyBlock, data: sp_inherents::InherentData, ) -> sp_inherents::CheckInherentsResult { data.check_extrinsics(&block) @@ -2480,7 +2475,7 @@ sp_api::impl_runtime_apis! { } fn unapplied_slashes( - ) -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)> { + ) -> Vec<(SessionIndex, CandidateHash, slashing::LegacyPendingSlashes)> { parachains_runtime_api_impl::unapplied_slashes::() } @@ -2508,7 +2503,7 @@ sp_api::impl_runtime_apis! { parachains_runtime_api_impl::minimum_backing_votes::() } - fn para_backing_state(para_id: ParaId) -> Option { + fn para_backing_state(para_id: ParaId) -> Option { #[allow(deprecated)] parachains_runtime_api_impl::backing_state::(para_id) } @@ -2539,15 +2534,15 @@ sp_api::impl_runtime_apis! { } fn validation_code_bomb_limit() -> u32 { - parachains_runtime_api_impl_vstaging::validation_code_bomb_limit::() + parachains_runtime_api_impl::validation_code_bomb_limit::() } fn backing_constraints(para_id: ParaId) -> Option { - parachains_runtime_api_impl_vstaging::backing_constraints::(para_id) + parachains_runtime_api_impl::backing_constraints::(para_id) } fn scheduling_lookahead() -> u32 { - parachains_runtime_api_impl_vstaging::scheduling_lookahead::() + parachains_runtime_api_impl::scheduling_lookahead::() } } @@ -2602,16 +2597,6 @@ sp_api::impl_runtime_apis! { key_owner_proof.decode()?, ) } - - fn generate_ancestry_proof( - prev_block_number: BlockNumber, - best_known_block_number: Option, - ) -> Option { - Mmr::generate_ancestry_proof(prev_block_number, best_known_block_number) - .map(|p| p.encode()) - .map(OpaqueKeyOwnershipProof::new) - .ok() - } } impl mmr::MmrApi for Runtime { @@ -2640,6 +2625,13 @@ sp_api::impl_runtime_apis! { ) } + fn generate_ancestry_proof( + prev_block_number: BlockNumber, + best_known_block_number: Option, + ) -> Result, mmr::Error> { + Mmr::generate_ancestry_proof(prev_block_number, best_known_block_number) + } + fn verify_proof(leaves: Vec, proof: mmr::LeafProof) -> Result<(), mmr::Error> { @@ -2839,8 +2831,9 @@ sp_api::impl_runtime_apis! { XcmPallet::query_xcm_weight(message) } - fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { - XcmPallet::query_delivery_fees(destination, message) + fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>, asset_id: VersionedAssetId) -> Result { + type AssetExchanger = ::AssetExchanger; + XcmPallet::query_delivery_fees::(destination, message, asset_id) } } @@ -2850,7 +2843,7 @@ sp_api::impl_runtime_apis! { } fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { - XcmPallet::dry_run_xcm::(origin_location, xcm) + XcmPallet::dry_run_xcm::(origin_location, xcm) } } @@ -2889,7 +2882,7 @@ sp_api::impl_runtime_apis! { } fn execute_block( - block: Block, + block: ::LazyBlock, state_root_check: bool, signature_check: bool, select: frame_try_runtime::TryStateSelect, @@ -3003,14 +2996,12 @@ mod test_fees { claims::PrevalidateAttests::::new(), frame_metadata_hash_extension::CheckMetadataHash::::new(false), ); - let uxt = UncheckedExtrinsic { - preamble: generic::Preamble::Signed( - MultiAddress::Id(Alice.to_account_id()), - MultiSignature::Sr25519(Alice.sign(b"foo")), - tx_ext, - ), - function: call, - }; + let uxt = UncheckedExtrinsic::new_signed( + call, + MultiAddress::Id(Alice.to_account_id()), + MultiSignature::Sr25519(Alice.sign(b"foo")), + tx_ext, + ); let len = uxt.encoded_size(); let mut ext = sp_io::TestExternalities::new_empty(); diff --git a/relay/paseo/src/xcm_config.rs b/relay/paseo/src/xcm_config.rs index 161a99ed2..58953015c 100644 --- a/relay/paseo/src/xcm_config.rs +++ b/relay/paseo/src/xcm_config.rs @@ -60,6 +60,8 @@ parameter_types! { pub TeleportTracking: Option<(AccountId, MintLocation)> = crate::RcMigrator::teleport_tracking(); /// Account of the treasury pallet. pub TreasuryAccount: AccountId = Treasury::account_id(); + // Fellows pluralistic body. + pub const FellowsBodyId: BodyId = BodyId::Technical; } /// The canonical means of converting a `Location` into an `AccountId`, used when we want to diff --git a/relay/paseo/tests/beefy_tests.rs b/relay/paseo/tests/beefy_tests.rs new file mode 100644 index 000000000..e29e5efbe --- /dev/null +++ b/relay/paseo/tests/beefy_tests.rs @@ -0,0 +1,55 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Paseo. + +// Paseo is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Paseo is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Paseo. If not, see . + +//! Tests for the BEEFY ParaHeadsRootProvider and whitelisted parathreads. + +use beefy_primitives::mmr::BeefyDataProvider; +use paseo_runtime::{BuildStorage, ParaHeadsRootProvider, Runtime}; +use polkadot_primitives::{HeadData, Id as ParaId}; +use runtime_parachains::paras as parachains_paras; + +#[test] +fn para_heads_root_provider_includes_whitelisted_parathreads() { + let t = frame_system::GenesisConfig::::default().build_storage().unwrap(); + sp_io::TestExternalities::new(t).execute_with(|| { + // Insert heads for paras 1, 2, 3367 (whitelisted parathread), 4000. + let head = |i: u32| HeadData(vec![i as u8; 32]); + for id in [1u32, 2, 3367, 4000] { + parachains_paras::Heads::::insert(ParaId::from(id), head(id)); + } + + // Register 1, 2, 4000 as active parachains – 3367 is NOT in Parachains. + parachains_paras::Parachains::::put(vec![ + ParaId::from(1u32), + ParaId::from(2u32), + ParaId::from(4000u32), + ]); + let root_without_3367_in_parachains = ParaHeadsRootProvider::extra_data(); + + // Now also add 3367 to the active parachains list (reordered to verify BTreeMap sorts). + parachains_paras::Parachains::::put(vec![ + ParaId::from(4000u32), + ParaId::from(3367u32), + ParaId::from(2u32), + ParaId::from(1u32), + ]); + let root_with_3367_in_parachains = ParaHeadsRootProvider::extra_data(); + + // Both roots must be identical: 3367 is included via the whitelist regardless + // of whether it appears in the active parachains list. The BTreeMap deduplicates. + assert_eq!(root_without_3367_in_parachains, root_with_3367_in_parachains); + }); +} diff --git a/relay/paseo/tests/mod.rs b/relay/paseo/tests/mod.rs index 5ff1604a1..9e037837b 100644 --- a/relay/paseo/tests/mod.rs +++ b/relay/paseo/tests/mod.rs @@ -15,4 +15,5 @@ // along with Paseo. If not, see . mod asset_rate; +mod beefy_tests; mod location_conversion; diff --git a/system-parachains/asset-hub-paseo/Cargo.toml b/system-parachains/asset-hub-paseo/Cargo.toml index f8f2f8037..f76768af7 100644 --- a/system-parachains/asset-hub-paseo/Cargo.toml +++ b/system-parachains/asset-hub-paseo/Cargo.toml @@ -19,14 +19,16 @@ scale-info = { features = ["derive"], workspace = true } serde_json = { features = ["alloc"], workspace = true } # Local +bp-asset-hub-kusama = { workspace = true } bp-asset-hub-paseo = { workspace = true } -bp-bridge-hub-paseo = { workspace = true } bp-bridge-hub-kusama = { workspace = true } +bp-bridge-hub-paseo = { workspace = true } bp-bridge-hub-polkadot = { workspace = true } collectives-polkadot-runtime-constants = { workspace = true } +kusama-runtime-constants = { workspace = true } paseo-runtime-constants = { workspace = true } system-parachains-constants = { workspace = true } -system-parachains-common = { workspace = true } +system-parachains-common = { workspace = true, features = ["multi-asset-bounties"] } # Substrate frame-benchmarking = { optional = true, workspace = true } @@ -42,7 +44,6 @@ frame-try-runtime = { optional = true, workspace = true } pallet-asset-conversion-tx-payment = { workspace = true } pallet-asset-conversion = { workspace = true } pallet-nomination-pools = { workspace = true } -pallet-nomination-pools-runtime-api = { workspace = true } pallet-assets = { workspace = true } pallet-assets-precompiles = { workspace = true } pallet-asset-rate = { workspace = true } @@ -55,25 +56,27 @@ pallet-child-bounties = { workspace = true } pallet-conviction-voting = { workspace = true } pallet-indices = { workspace = true } pallet-message-queue = { workspace = true } +pallet-migrations = { workspace = true } pallet-multisig = { workspace = true } +pallet-multi-asset-bounties = { workspace = true } pallet-nfts = { workspace = true } pallet-nfts-runtime-api = { workspace = true } pallet-parameters = { workspace = true } pallet-preimage = { workspace = true } pallet-proxy = { workspace = true } pallet-referenda = { workspace = true } +pallet-revive = { workspace = true } pallet-scheduler = { workspace = true } -pallet-migrations = { workspace = true } +pallet-sudo = { workspace = true } pallet-nomination-pools-benchmarking = { optional = true, workspace = true } pallet-staking-async = { workspace = true } -pallet-staking-async-rc-client = { workspace = true } +pallet-staking-async-rc-client = { workspace = true, features = ["xcm-sender"] } pallet-election-provider-multi-block = { workspace = true } -pallet-revive = { workspace = true } pallet-session = { workspace = true } pallet-staking = { workspace = true } pallet-staking-runtime-api = { workspace = true } pallet-state-trie-migration = { workspace = true } -pallet-sudo = { workspace = true } +pallet-nomination-pools-runtime-api = { workspace = true } pallet-timestamp = { workspace = true } pallet-transaction-payment = { workspace = true } pallet-transaction-payment-rpc-runtime-api = { workspace = true } @@ -85,9 +88,13 @@ pallet-whitelist = { workspace = true } sp-api = { workspace = true } sp-arithmetic = { workspace = true } sp-block-builder = { workspace = true } +authority-discovery-primitives = { workspace = true } +babe-primitives = { workspace = true } +beefy-primitives = { workspace = true } +grandpa-primitives = { workspace = true } +paseo-primitives = { workspace = true } sp-consensus-aura = { workspace = true } sp-core = { workspace = true } -sp-debug-derive = { workspace = true } sp-genesis-builder = { workspace = true } sp-io = { workspace = true } sp-inherents = { workspace = true } @@ -105,12 +112,13 @@ primitive-types = { features = [ "num-traits", "scale-info", ], workspace = true } +pallet-dap = { workspace = true } pallet-delegated-staking = { workspace = true } # Polkadot pallet-xcm = { workspace = true } -pallet-xcm-precompiles = { workspace = true } pallet-xcm-benchmarks = { optional = true, workspace = true } +pallet-xcm-precompiles = { workspace = true } polkadot-core-primitives = { workspace = true } polkadot-parachain-primitives = { workspace = true } polkadot-runtime-common = { workspace = true } @@ -124,8 +132,8 @@ xcm-runtime-apis = { workspace = true } cumulus-pallet-aura-ext = { workspace = true } cumulus-pallet-parachain-system = { workspace = true } cumulus-pallet-session-benchmarking = { workspace = true } -cumulus-pallet-xcm = { workspace = true } cumulus-pallet-weight-reclaim = { workspace = true } +cumulus-pallet-xcm = { workspace = true } cumulus-pallet-xcmp-queue = { features = ["bridging"], workspace = true } cumulus-primitives-aura = { workspace = true } cumulus-primitives-core = { workspace = true } @@ -145,8 +153,13 @@ snowbridge-runtime-common = { workspace = true } [dev-dependencies] approx = { workspace = true } asset-test-utils = { workspace = true } +hex = { workspace = true } parachains-runtimes-test-utils = { workspace = true } +paseo-runtime = { workspace = true } sp-tracing = { workspace = true, default-features = true } +remote-externalities = { workspace = true } +frame-try-runtime = { workspace = true } +tokio = { features = ["macros"], workspace = true } [build-dependencies] substrate-wasm-builder = { optional = true, workspace = true } @@ -157,9 +170,11 @@ default = ["std"] paseo-ahm = [ "pallet-ah-migrator/polkadot-ahm", "pallet-rc-migrator/polkadot-ahm", + "paseo-runtime/paseo-ahm", ] runtime-benchmarks = [ "assets-common/runtime-benchmarks", + "bp-asset-hub-kusama/runtime-benchmarks", "bp-asset-hub-paseo/runtime-benchmarks", "bp-bridge-hub-kusama/runtime-benchmarks", "bp-bridge-hub-paseo/runtime-benchmarks", @@ -175,6 +190,7 @@ runtime-benchmarks = [ "frame-support/runtime-benchmarks", "frame-system-benchmarking/runtime-benchmarks", "frame-system/runtime-benchmarks", + "kusama-runtime-constants/runtime-benchmarks", "pallet-ah-migrator/runtime-benchmarks", "pallet-ah-ops/runtime-benchmarks", "pallet-asset-conversion-tx-payment/runtime-benchmarks", @@ -188,11 +204,13 @@ runtime-benchmarks = [ "pallet-child-bounties/runtime-benchmarks", "pallet-collator-selection/runtime-benchmarks", "pallet-conviction-voting/runtime-benchmarks", + "pallet-dap/runtime-benchmarks", "pallet-delegated-staking/runtime-benchmarks", "pallet-election-provider-multi-block/runtime-benchmarks", "pallet-indices/runtime-benchmarks", "pallet-message-queue/runtime-benchmarks", "pallet-migrations/runtime-benchmarks", + "pallet-multi-asset-bounties/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", "pallet-nfts/runtime-benchmarks", "pallet-nomination-pools-benchmarking/runtime-benchmarks", @@ -202,6 +220,7 @@ runtime-benchmarks = [ "pallet-proxy/runtime-benchmarks", "pallet-rc-migrator/runtime-benchmarks", "pallet-referenda/runtime-benchmarks", + "pallet-revive/runtime-benchmarks", "pallet-scheduler/runtime-benchmarks", "pallet-session/runtime-benchmarks", "pallet-staking-async-rc-client/runtime-benchmarks", @@ -221,7 +240,9 @@ runtime-benchmarks = [ "pallet-xcm-precompiles/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", "parachains-common/runtime-benchmarks", + "paseo-primitives/runtime-benchmarks", "paseo-runtime-constants/runtime-benchmarks", + "paseo-runtime/runtime-benchmarks", "polkadot-parachain-primitives/runtime-benchmarks", "polkadot-runtime-common/runtime-benchmarks", "snowbridge-inbound-queue-primitives/runtime-benchmarks", @@ -237,6 +258,7 @@ runtime-benchmarks = [ "xcm/runtime-benchmarks", ] try-runtime = [ + "asset-test-utils/try-runtime", "assets-common/try-runtime", "cumulus-pallet-aura-ext/try-runtime", "cumulus-pallet-parachain-system/try-runtime", @@ -263,11 +285,13 @@ try-runtime = [ "pallet-child-bounties/try-runtime", "pallet-collator-selection/try-runtime", "pallet-conviction-voting/try-runtime", + "pallet-dap/try-runtime", "pallet-delegated-staking/try-runtime", "pallet-election-provider-multi-block/try-runtime", "pallet-indices/try-runtime", "pallet-message-queue/try-runtime", "pallet-migrations/try-runtime", + "pallet-multi-asset-bounties/try-runtime", "pallet-multisig/try-runtime", "pallet-nfts/try-runtime", "pallet-nomination-pools/try-runtime", @@ -296,7 +320,9 @@ try-runtime = [ "pallet-xcm/try-runtime", "parachain-info/try-runtime", "parachains-common/try-runtime", + "paseo-runtime/try-runtime", "polkadot-runtime-common/try-runtime", + "snowbridge-inbound-queue-primitives/try-runtime", "snowbridge-pallet-system-frontend/try-runtime", "snowbridge-runtime-common/try-runtime", "sp-runtime/try-runtime", @@ -304,8 +330,13 @@ try-runtime = [ "system-parachains-constants/try-runtime", ] std = [ + "pallet-ah-migrator/std", + "assets-common/std", - "bp-asset-hub-paseo/std", + "authority-discovery-primitives/std", + "babe-primitives/std", + "beefy-primitives/std", + "bp-asset-hub-kusama/std", "bp-asset-hub-paseo/std", "bp-bridge-hub-kusama/std", "bp-bridge-hub-paseo/std", @@ -329,8 +360,10 @@ std = [ "frame-system-rpc-runtime-api/std", "frame-system/std", "frame-try-runtime?/std", + "grandpa-primitives/std", + "hex/std", + "kusama-runtime-constants/std", "log/std", - "pallet-ah-migrator/std", "pallet-ah-ops/std", "pallet-asset-conversion-tx-payment/std", "pallet-asset-conversion/std", @@ -345,11 +378,13 @@ std = [ "pallet-child-bounties/std", "pallet-collator-selection/std", "pallet-conviction-voting/std", + "pallet-dap/std", "pallet-delegated-staking/std", "pallet-election-provider-multi-block/std", "pallet-indices/std", "pallet-message-queue/std", "pallet-migrations/std", + "pallet-multi-asset-bounties/std", "pallet-multisig/std", "pallet-nfts-runtime-api/std", "pallet-nfts/std", @@ -384,6 +419,7 @@ std = [ "pallet-xcm/std", "parachain-info/std", "parachains-common/std", + "paseo-primitives/std", "paseo-runtime-constants/std", "polkadot-core-primitives/std", "polkadot-parachain-primitives/std", @@ -400,7 +436,6 @@ std = [ "sp-block-builder/std", "sp-consensus-aura/std", "sp-core/std", - "sp-debug-derive/std", "sp-genesis-builder/std", "sp-inherents/std", "sp-io/std", @@ -422,17 +457,13 @@ std = [ "xcm/std", ] +# Set timing constants (e.g. session period) to faster versions to speed up testing. +fast-runtime = [] + # Enable metadata hash generation at compile time for the `CheckMetadataHash` extension. metadata-hash = ["substrate-wasm-builder?/metadata-hash"] # A feature that should be enabled when the runtime should be built for on-chain # deployment. This will disable stuff that shouldn't be part of the on-chain wasm # to make it smaller, like logging for example. -on-chain-release-build = [ - "metadata-hash", - "paseo-ahm", - "sp-api/disable-logging", -] - -fast-runtime = ["paseo-runtime-constants/fast-runtime"] -force-debug = ["sp-debug-derive/force-debug"] +on-chain-release-build = ["metadata-hash", "paseo-ahm", "sp-api/disable-logging"] diff --git a/system-parachains/asset-hub-paseo/primitives/Cargo.toml b/system-parachains/asset-hub-paseo/primitives/Cargo.toml index cdf22985e..1fca86441 100644 --- a/system-parachains/asset-hub-paseo/primitives/Cargo.toml +++ b/system-parachains/asset-hub-paseo/primitives/Cargo.toml @@ -40,4 +40,3 @@ runtime-benchmarks = [ "system-parachains-constants/runtime-benchmarks", "xcm/runtime-benchmarks", ] -try-runtime = [] diff --git a/system-parachains/asset-hub-paseo/primitives/src/lib.rs b/system-parachains/asset-hub-paseo/primitives/src/lib.rs index b1500edef..20c234022 100644 --- a/system-parachains/asset-hub-paseo/primitives/src/lib.rs +++ b/system-parachains/asset-hub-paseo/primitives/src/lib.rs @@ -77,5 +77,5 @@ pub fn build_congestion_message( ] } -/// Identifier of AssetHubPolkadot in the Polkadot relay chain. +/// Identifier of AssetHubPaseo in the Paseo relay chain. pub const ASSET_HUB_PASEO_PARACHAIN_ID: u32 = 1000; diff --git a/system-parachains/asset-hub-paseo/src/ah_migration/call_filter.rs b/system-parachains/asset-hub-paseo/src/ah_migration/call_filter.rs index adb3f50e3..7d49aa710 100644 --- a/system-parachains/asset-hub-paseo/src/ah_migration/call_filter.rs +++ b/system-parachains/asset-hub-paseo/src/ah_migration/call_filter.rs @@ -96,6 +96,7 @@ pub fn call_allowed_status( Balances(..) => ON, // no reason to disable it, just convenience Bounties(..) => OFF, ChildBounties(..) => OFF, + MultiAssetBounties(..) => OFF, Claims(..) => OFF, CollatorSelection(..) => ON, // Why? ConvictionVoting(..) => OFF, @@ -106,8 +107,8 @@ pub fn call_allowed_status( MultiBlockElectionSigned(..) => OFF, MultiBlockElectionUnsigned(..) => OFF, MultiBlockElectionVerifier(..) => OFF, - MultiBlockMigrations(..) => OFF, //Has not calls - MessageQueue(..) => ON, // contains non-permissioned service calls + MultiBlockMigrations(..) => OFF, + MessageQueue(..) => ON, // contains non-permissioned service calls Multisig(..) => OFF, Nfts(..) => ON, // no reason to disable it, just convenience NominationPools(..) => OFF, @@ -128,10 +129,9 @@ pub fn call_allowed_status( Staking(..) => OFF, StakingRcClient(..) => ON, // Keep on for incoming RC calls over XCM StateTrieMigration(..) => OFF, // Deprecated - Sudo(..) => ON, - System(..) => ON, // remark plus root calls - Timestamp(..) => ON, // only `set` inherit - ToKusamaXcmRouter(..) => ON, // Allow to report bridge congestion + System(..) => ON, // remark plus root calls + Timestamp(..) => ON, // only `set` inherit + ToKusamaXcmRouter(..) => ON, // Allow to report bridge congestion Treasury(..) => OFF, Uniques(..) => OFF, Utility(..) => ON, // batching etc, just convenience @@ -141,6 +141,7 @@ pub fn call_allowed_status( XcmpQueue(..) => ON, // Allow updating XCM settings. Only by Fellowship and root. Parameters(..) => ON, // allow governance to still update any params if needed Revive(..) => OFF, + Sudo(..) => ON, // Paseo-specific: allow sudo during all phases }; // Exhaustive match. Compiler ensures that we did not miss any. @@ -167,13 +168,13 @@ pub fn call_allowed_before_migration( MultiBlockElectionVerifier(..) => OFF, NominationPools(..) => OFF, VoterList(..) => OFF, - MultiBlockMigrations(..) => OFF, // Has not calls // To avoid insert issues. Indices(..) => OFF, Vesting(..) => OFF, // Governance disabled before migration starts. Bounties(..) => OFF, ChildBounties(..) => OFF, + MultiAssetBounties(..) => OFF, ConvictionVoting(..) => OFF, Referenda(..) => OFF, Treasury(..) => OFF, @@ -190,6 +191,7 @@ pub fn call_allowed_before_migration( CumulusXcm(..) | ForeignAssets(..) | MessageQueue(..) | + MultiBlockMigrations(..) | Multisig(..) | Nfts(..) | ParachainInfo(..) | @@ -203,7 +205,6 @@ pub fn call_allowed_before_migration( SnowbridgeSystemFrontend(..) | StakingRcClient(..) | StateTrieMigration(..) | - Sudo(..) | System(..) | Timestamp(..) | ToKusamaXcmRouter(..) | @@ -212,6 +213,7 @@ pub fn call_allowed_before_migration( Whitelist(..) | XcmpQueue(..) | Revive(..) | + Sudo(..) | Parameters(..) => ON, } } diff --git a/system-parachains/asset-hub-paseo/src/ah_migration/mod.rs b/system-parachains/asset-hub-paseo/src/ah_migration/mod.rs index 88fdac91a..2c18fad60 100644 --- a/system-parachains/asset-hub-paseo/src/ah_migration/mod.rs +++ b/system-parachains/asset-hub-paseo/src/ah_migration/mod.rs @@ -14,6 +14,7 @@ // limitations under the License. pub mod call_filter; +pub mod xcm_mapping; extern crate alloc; @@ -255,6 +256,8 @@ pub enum RcSchedulerCall { pub enum RcXcmCall { #[codec(index = 0u8)] send { dest: Box, message: Box> }, + #[codec(index = 3u8)] + execute { message: Box>, max_weight: Weight }, #[codec(index = 8u8)] limited_reserve_transfer_assets { dest: Box, @@ -414,6 +417,33 @@ impl RcToAhCall { message, })) }, + RcRuntimeCall::XcmPallet(RcXcmCall::execute { message, max_weight }) => { + // Go through the instructions and reanchor destinations and assets, since they + // are relative to the local chain, which was previously the Relay Chain. + + // Absolute location of the Relay Chain. + let universal_location: InteriorLocation = + [GlobalConsensus(NetworkId::Polkadot)].into(); + // Relative location of Asset Hub from the perspective of the Relay Chain. + let ah_location = Location::new(0, [Parachain(1000)]); + + // Convert the versioned XCM to latest version for reanchoring + let xcm: xcm::latest::Xcm<()> = (*message).try_into().map_err(|err| { + log::error!( + target: LOG_TARGET, + "Failed to convert versioned XCM to latest version: {err:?}", + ); + })?; + + // Reanchor the XCM message + let reanchored_xcm = + xcm_mapping::reanchor_xcm(xcm, &ah_location, &universal_location)?; + + Ok(RuntimeCall::PolkadotXcm(pallet_xcm::Call::::execute { + message: Box::new(VersionedXcm::from(reanchored_xcm.into())), + max_weight, + })) + }, RcRuntimeCall::XcmPallet(RcXcmCall::limited_reserve_transfer_assets { dest, beneficiary, diff --git a/system-parachains/asset-hub-paseo/src/ah_migration/xcm_mapping.rs b/system-parachains/asset-hub-paseo/src/ah_migration/xcm_mapping.rs new file mode 100644 index 000000000..3f3ac9d7c --- /dev/null +++ b/system-parachains/asset-hub-paseo/src/ah_migration/xcm_mapping.rs @@ -0,0 +1,269 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Module for mapping XCM programs from Relay Chain to Asset Hub during the AHM. + +use alloc::vec::Vec; +use pallet_ah_migrator::LOG_TARGET; +use xcm::prelude::*; + +/// Reanchors an XCM used in `execute` to the Asset Hub. +/// +/// It iterates over all instructions, changing locations and assets when needed. +/// +/// Only some instructions are mapped, the rest will throw an error. +#[allow(clippy::result_unit_err)] +pub fn reanchor_xcm( + xcm: Xcm<()>, + ah_location: &Location, + universal_location: &InteriorLocation, +) -> Result, ()> { + let reanchored_instructions: Result, ()> = xcm + .0 + .into_iter() + .map(|instruction| reanchor_instruction(instruction, ah_location, universal_location)) + .collect(); + + Ok(Xcm(reanchored_instructions?)) +} + +fn reanchor_instruction( + instruction: Instruction<()>, + ah_location: &Location, + universal_location: &InteriorLocation, +) -> Result, ()> { + use Instruction::*; + + // We only map a particular subset of instructions, to keep the logic minimal. + match instruction { + WithdrawAsset(assets) => { + let reanchored_assets = + assets.reanchored(ah_location, universal_location).map_err(|err| { + log::error!(target: LOG_TARGET, "Failed to reanchor assets: {err:?}"); + })?; + Ok(WithdrawAsset(reanchored_assets)) + }, + PayFees { asset } => { + let reanchored_asset = + asset.reanchored(ah_location, universal_location).map_err(|err| { + log::error!(target: LOG_TARGET, "Failed to reanchor asset: {err:?}"); + })?; + Ok(PayFees { asset: reanchored_asset }) + }, + DepositAsset { assets, beneficiary } => { + let reanchored_beneficiary = if is_local_account(&beneficiary) { + // Local accounts (parents: 0, AccountId32/AccountKey20) don't need reanchoring. + beneficiary + } else { + beneficiary.reanchored(ah_location, universal_location).map_err(|err| { + log::error!(target: LOG_TARGET, "Failed to reanchor beneficiary: {err:?}"); + })? + }; + Ok(DepositAsset { assets, beneficiary: reanchored_beneficiary }) + }, + DepositReserveAsset { assets, dest, xcm } => { + let reanchored_dest = + dest.reanchored(ah_location, universal_location).map_err(|err| { + log::error!(target: LOG_TARGET, "Failed to reanchor dest: {err:?}"); + })?; + let reanchored_assets = reanchor_asset_filter(assets, ah_location, universal_location)?; + // The nested xcm is already from the perspective of the dest, so no reanchoring needed. + Ok(DepositReserveAsset { assets: reanchored_assets, dest: reanchored_dest, xcm }) + }, + RefundSurplus => Ok(RefundSurplus), + + // All other instructions are not supported in the migration. + instruction => { + log::error!( + target: LOG_TARGET, + "Unsupported XCM instruction in migration: {instruction:?}", + ); + Err(()) + }, + } +} + +fn is_local_account(location: &Location) -> bool { + // Check if this is a local account (parents: 0, AccountId32/AccountKey20) + if location.parents != 0 && location.interior.len() != 1 { + return false; + } + + matches!( + location.interior.first(), + Some(Junction::AccountId32 { .. }) | Some(Junction::AccountKey20 { .. }) + ) +} + +fn reanchor_asset_filter( + filter: AssetFilter, + ah_location: &Location, + universal_location: &InteriorLocation, +) -> Result { + match filter { + AssetFilter::Definite(assets) => { + let reanchored_assets = + assets.reanchored(ah_location, universal_location).map_err(|err| { + log::error!(target: LOG_TARGET, "Failed to reanchor asset filter assets: {err:?}"); + })?; + Ok(AssetFilter::Definite(reanchored_assets)) + }, + AssetFilter::Wild(wild) => { + // Wild filters don't contain specific locations, so pass through unchanged. + Ok(AssetFilter::Wild(wild)) + }, + } +} + +#[cfg(test)] +mod tests { + use crate::ah_migration::{RcRuntimeCall, RcToAhCall, RcXcmCall, RuntimeCall, RuntimeOrigin}; + + use codec::DecodeAll; + use xcm::prelude::*; + + #[test] + fn map_xcm_execute() { + // XCM on Relay Chain we want to execute. + let xcm = Xcm::builder() + .withdraw_asset((Here, 10_000_000_000u128)) + .pay_fees((Here, 100_000_000u128)) + .deposit_reserve_asset( + AllCounted(1), + Location::new(0, [Parachain(1004)]), + // Whatever. + Xcm::builder_unsafe() + .clear_origin() + .withdraw_asset((Parent, 10_000_000_000u128)) + .build(), + ) + .refund_surplus() + .deposit_asset(AllCounted(1), [1u8; 32]) + .build(); + let rc_call = RcRuntimeCall::XcmPallet(RcXcmCall::execute { + message: Box::new(VersionedXcm::from(xcm)), + max_weight: Weight::MAX, + }); + let mapped_call = RcToAhCall::map(rc_call).expect("Call can be mapped"); + assert_eq!( + mapped_call, + RuntimeCall::PolkadotXcm(pallet_xcm::Call::execute { + message: Box::new(VersionedXcm::V5( + Xcm::builder() + // `Here` becomes `Parent`. + .withdraw_asset((Parent, 10_000_000_000u128)) + .pay_fees((Parent, 100_000_000u128)) + .deposit_reserve_asset( + AllCounted(1), + // Parachain location gets a parent. + Location::new(1, [Parachain(1004)]), + // The same remote xcm, since it was already meant + // for the destination. + Xcm::builder_unsafe() + .clear_origin() + .withdraw_asset((Parent, 10_000_000_000u128)) + .build(), + ) + .refund_surplus() + // Local accounts are not reanchored. + .deposit_asset(AllCounted(1), [1u8; 32]) + .build() + )), + max_weight: Weight::MAX, + }) + ); + } + + // Test that the referendum from https://paseo.subsquare.io/referenda/1770 gets mapped + // and the mapping is correct. + #[test] + fn mapping_complex_ref_works() { + let call_hex = "0x1a02081a0300016d6f646c70792f747273727900000000000000000000000000000000000000006303051400040000000f00109b70ce1627300000000700e40b54020e010204000100c91f08130100000700e40b5402000d010204010100b10f140d010204000101006d6f646c70792f7472737279000000000000000000000000000000000000000062a4f7b739a90104020000000000630005000100c91f05180b0100b10f00040100000700e40b5402130100000700e40b5402000601010700e40b5402821a0600b50142007369626cec03000000000000000000000000000000000000000000000000000014000000008848065a1627000000000000000000010a01204e000001102700000005000000de0000000038be697903000000000000000000000000d02d048daefb39000000000000000000140d010204010100b10f"; + let call_bytes = hex::decode(&call_hex[2..]).expect("Invalid hex string"); + let rc_call = RcRuntimeCall::decode_all(&mut call_bytes.as_slice()).expect("Invalid bytes"); + let ah_call = RcToAhCall::map(rc_call).expect("Failed to map RC call to AH call"); + assert_eq!( + ah_call, + RuntimeCall::Utility(pallet_utility::Call::batch_all { + calls: vec![ + RuntimeCall::Utility(pallet_utility::Call::dispatch_as { + as_origin: Box::new(RuntimeOrigin::signed( + sp_runtime::AccountId32::from([109, 111, 100, 108, 112, 121, 47, 116, 114, 115, 114, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) + ).caller), + call: Box::new(RuntimeCall::PolkadotXcm(pallet_xcm::Call::execute { + message: Box::new(VersionedXcm::V5( + Xcm::builder() + // PAS turns from `Here` to `Parent`. + .withdraw_asset((Parent, 11_002_600_000_000_000u128)) + .pay_fees((Parent, 10_000_000_000u128)) + .deposit_reserve_asset( + AllCounted(1), + // A `Parent` is added. + (Parent, Parachain(2034)), + // This stays exactly the same as it was already meant for the destination. + Xcm::builder_unsafe() + .buy_execution( + (Parent, 10_000_000_000u128), + Unlimited + ) + .deposit_asset( + AllCounted(1), + (Parent, Parachain(1004)) + ) + .build() + ) + .refund_surplus() + .deposit_asset( + AllCounted(1), + // Local accounts don't get reanchored. + [109, 111, 100, 108, 112, 121, 47, 116, 114, 115, 114, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + ) + .build() + )), + max_weight: Weight::from_parts(771_615_000, 10_830), + })), + }), + RuntimeCall::Scheduler(pallet_scheduler::Call::schedule_after { + after: 2, + maybe_periodic: None, + priority: 0, + call: Box::new(RuntimeCall::PolkadotXcm(pallet_xcm::Call::send { + dest: Box::new(VersionedLocation::V5(Location::new(1, [Parachain(2034)]))), + message: Box::new(VersionedXcm::V5( + Xcm::builder_unsafe() + // This descend won't really work if origin is AH, + // so it shouldn't be used in refs pre AHM. + .descend_origin(Parachain(1004)) + .withdraw_asset((Parent, 10_000_000_000u128)) + .buy_execution((Parent, 10_000_000_000u128), Unlimited) + .transact( + OriginKind::SovereignAccount, + Weight::from_parts(10000000000, 100000), + hex::decode("42007369626cec03000000000000000000000000000000000000000000000000000014000000008848065a1627000000000000000000010a01204e000001102700000005000000de0000000038be697903000000000000000000000000d02d048daefb39000000000000000000").unwrap() + ) + .refund_surplus() + .deposit_asset( + AllCounted(1), + (Parent, Parachain(1004)) + ) + .build() + )) + })) + }) + ], + }), + ); + } +} diff --git a/system-parachains/asset-hub-paseo/src/genesis_config_presets.rs b/system-parachains/asset-hub-paseo/src/genesis_config_presets.rs index 77bc8a4ca..1a3d0ce4f 100644 --- a/system-parachains/asset-hub-paseo/src/genesis_config_presets.rs +++ b/system-parachains/asset-hub-paseo/src/genesis_config_presets.rs @@ -16,18 +16,23 @@ //! Genesis configs presets for the AssetHubPaseo runtime -use crate::{xcm_config::UniversalLocation, *}; +use crate::{staking::DapPalletId, xcm_config::UniversalLocation, *}; use alloc::vec::Vec; +use frame_support::sp_runtime::traits::AccountIdConversion; +use parachains_common::AuraId; use sp_core::sr25519; use sp_genesis_builder::PresetId; use system_parachains_constants::genesis_presets::*; use xcm::latest::prelude::*; use xcm_builder::GlobalConsensusConvertsFor; use xcm_executor::traits::ConvertLocation; -use AuraId; const ASSET_HUB_POLKADOT_ED: Balance = ExistentialDeposit::get(); +fn dap_buffer_account() -> AccountId { + DapPalletId::get().into_account_truncating() +} + /// Invulnerable Collators for the particular case of AssetHubPaseo pub fn invulnerables_asset_hub_paseo() -> Vec<(AccountId, AuraId)> { vec![ @@ -43,15 +48,16 @@ fn asset_hub_paseo_genesis( foreign_assets: Vec<(Location, AccountId, Balance)>, foreign_assets_endowed_accounts: Vec<(Location, AccountId, Balance)>, ) -> serde_json::Value { - let dev_stakers = - if cfg!(feature = "runtime-benchmarks") { Some((2_000, 25_000)) } else { None }; + let mut balances: Vec<(AccountId, Balance)> = endowed_accounts + .iter() + .cloned() + .map(|k| (k, ASSET_HUB_POLKADOT_ED * 4096 * 4096)) + .collect(); + balances.push((dap_buffer_account(), ASSET_HUB_POLKADOT_ED)); + serde_json::json!({ "balances": BalancesConfig { - balances: endowed_accounts - .iter() - .cloned() - .map(|k| (k, ASSET_HUB_POLKADOT_ED * 4096 * 4096)) - .collect(), + balances, dev_accounts: None, }, "parachainInfo": ParachainInfoConfig { @@ -82,10 +88,10 @@ fn asset_hub_paseo_genesis( "polkadotXcm": { "safeXcmVersion": Some(SAFE_XCM_VERSION), }, - "staking": { - "validatorCount": 100, - "devStakers": dev_stakers - }, + "staking": { + "validatorCount": 100, + "devStakers": Some((2_000, 25_000)), + }, "foreignAssets": ForeignAssetsConfig { assets: foreign_assets .into_iter() diff --git a/system-parachains/asset-hub-paseo/src/governance/tracks.rs b/system-parachains/asset-hub-paseo/src/governance/tracks.rs index 9d870cdde..c2f2e7d8d 100644 --- a/system-parachains/asset-hub-paseo/src/governance/tracks.rs +++ b/system-parachains/asset-hub-paseo/src/governance/tracks.rs @@ -22,14 +22,12 @@ use alloc::borrow::Cow; use sp_arithmetic::FixedI64; use sp_runtime::str_array as s; -const fn percent(x: i32) -> sp_arithmetic::FixedI64 { +const fn percent(x: i32) -> FixedI64 { FixedI64::from_rational(x as u128, 100) } - const fn per_mille(x: i32) -> FixedI64 { FixedI64::from_rational(x as u128, 1000) } - use pallet_referenda::Curve; const APP_ROOT: Curve = Curve::make_reciprocal(4, 28, percent(80), percent(50), percent(100)); const SUP_ROOT: Curve = Curve::make_linear(28, 28, percent(0), percent(50)); @@ -263,7 +261,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 16] = [ info: pallet_referenda::TrackInfo { name: s("small_spender"), max_deciding: 5, - decision_deposit: GRAND, + decision_deposit: 500 * DOLLARS, prepare_period: 4 * RC_HOURS, decision_period: 28 * RC_DAYS, confirm_period: 2 * RC_DAYS, @@ -276,8 +274,8 @@ const TRACKS_DATA: [pallet_referenda::Track; 16] = [ id: 33, info: pallet_referenda::TrackInfo { name: s("medium_spender"), - max_deciding: 50, - decision_deposit: 200 * DOLLARS, + max_deciding: 5, + decision_deposit: GRAND, prepare_period: 4 * RC_HOURS, decision_period: 28 * RC_DAYS, confirm_period: 4 * RC_DAYS, diff --git a/system-parachains/asset-hub-paseo/src/lib.rs b/system-parachains/asset-hub-paseo/src/lib.rs index 894006761..f6ce8cd62 100644 --- a/system-parachains/asset-hub-paseo/src/lib.rs +++ b/system-parachains/asset-hub-paseo/src/lib.rs @@ -35,6 +35,11 @@ //! //! Asset Hub Paseo uses its parent PAS token as its native asset. //! +//! ### Governance +//! +//! As a system parachain, Asset Hub defers its governance (namely, its `Root` origin), to its +//! Relay Chain parent, Paseo. +//! //! ### Collator Selection //! //! Asset Hub uses `pallet-collator-selection`, a simple first-come-first-served registration @@ -64,6 +69,9 @@ pub mod ah_migration; pub mod bridge_to_ethereum_config; pub mod genesis_config_presets; pub mod governance; +mod migrations; +#[cfg(all(test, feature = "try-runtime"))] +mod remote_tests; pub mod staking; pub mod treasury; mod weights; @@ -73,7 +81,7 @@ use crate::governance::WhitelistedCaller; use alloc::{borrow::Cow, vec, vec::Vec}; use assets_common::{ foreign_creators::ForeignCreators, - local_and_foreign_assets::{LocalFromLeft, TargetFromLeft}, + local_and_foreign_assets::{ForeignAssetReserveData, LocalFromLeft, TargetFromLeft}, matching::{FromNetwork, FromSiblingParachain}, AssetIdForTrustBackedAssetsConvert, }; @@ -82,8 +90,6 @@ use cumulus_pallet_parachain_system::{RelayNumberMonotonicallyIncreases, Relaych use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::traits::EnsureOrigin; use governance::{pallet_custom_origins, GeneralAdmin, StakingAdmin, Treasurer, TreasurySpender}; -use pallet_assets_precompiles::{InlineIdConfig, ERC20}; -use pallet_nomination_pools::PoolId; use paseo_runtime_constants::time::{ DAYS as RC_DAYS, HOURS as RC_HOURS, MINUTES as RC_MINUTES, YEARS as RC_YEARS, }; @@ -96,7 +102,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, FixedU128, Perbill, Permill, }; -use system_parachains_constants::async_backing::MINUTES; use xcm::latest::prelude::*; use xcm_runtime_apis::{ dry_run::{CallDryRunEffects, Error as XcmDryRunApiError, XcmDryRunEffects}, @@ -119,7 +124,7 @@ use frame_support::{ fungibles, tokens::imbalance::{ResolveAssetTo, ResolveTo}, AsEnsureOriginWithArg, ConstBool, ConstU32, ConstU64, ConstU8, Contains, EitherOf, - EitherOfDiverse, Equals, Everything, InstanceFilter, LinearStoragePrice, NeverEnsureOrigin, + EitherOfDiverse, Equals, InstanceFilter, LinearStoragePrice, NeverEnsureOrigin, PrivilegeCmp, TransformOrigin, WithdrawReasons, }, weights::{ConstantMultiplier, Weight}, @@ -129,18 +134,20 @@ use frame_system::{ limits::{BlockLength, BlockWeights}, EnsureRoot, EnsureSigned, EnsureSignedBy, }; +use pallet_assets_precompiles::{InlineIdConfig, ERC20}; use pallet_nfts::PalletFeatures; +use pallet_nomination_pools::PoolId; +use pallet_xcm_precompiles::XcmPrecompile; use parachains_common::{ message_queue::*, AccountId, AssetIdForTrustBackedAssets, AuraId, Balance, BlockNumber, Hash, Header, Nonce, Signature, }; - -use pallet_revive::evm::runtime::EthExtra; use sp_runtime::RuntimeDebug; +use system_parachains_common::ForceUnstuckOnFailedMigration; pub use system_parachains_constants::async_backing::SLOT_DURATION; use system_parachains_constants::{ async_backing::{ - AVERAGE_ON_INITIALIZE_RATIO, HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, + AVERAGE_ON_INITIALIZE_RATIO, HOURS, MAXIMUM_BLOCK_WEIGHT, MINUTES, NORMAL_DISPATCH_RATIO, }, paseo::{ consensus::{ @@ -153,7 +160,6 @@ use system_parachains_constants::{ fee::WeightToFee as PaseoWeightToFee, }, }; - use xcm::{ latest::prelude::{AssetId, BodyId}, Version as XcmVersion, VersionedAsset, VersionedAssetId, VersionedAssets, VersionedLocation, @@ -169,8 +175,8 @@ use xcm_config::{ #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; +// Paseo imports use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; -use pallet_xcm_precompiles::XcmPrecompile; use polkadot_runtime_common::{ claims as pallet_claims, prod_or_fast, BlockHashCount, SlowAdjustingFeeUpdate, }; @@ -187,7 +193,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { impl_name: Cow::Borrowed("asset-hub-paseo"), spec_name: Cow::Borrowed("asset-hub-paseo"), authoring_version: 1, - spec_version: 2_000_006, + spec_version: 2_001_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 15, @@ -227,7 +233,7 @@ parameter_types! { // Configure FRAME pallets to include in runtime. impl frame_system::Config for Runtime { - type BaseCallFilter = Everything; + type BaseCallFilter = AhMigrator; type BlockWeights = RuntimeBlockWeights; type BlockLength = RuntimeBlockLength; type AccountId = AccountId; @@ -273,7 +279,7 @@ impl pallet_migrations::Config for Runtime { type CursorMaxLen = ConstU32<65_536>; type IdentifierMaxLen = ConstU32<256>; type MigrationStatusHandler = (); - type FailedMigrationHandler = frame_support::migrations::FreezeChainOnFailedMigration; + type FailedMigrationHandler = ForceUnstuckOnFailedMigration; type MaxServiceWeight = MbmServiceWeight; type WeightInfo = weights::pallet_migrations::WeightInfo; } @@ -345,10 +351,10 @@ impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter>; + type WeightToFee = PaseoWeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; type OperationalFeeMultiplier = ConstU8<5>; - type WeightToFee = PaseoWeightToFee; type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } @@ -390,6 +396,8 @@ impl pallet_assets::Config for Runtime { type CallbackHandle = pallet_assets::AutoIncAssetId; type AssetAccountDeposit = AssetAccountDeposit; type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; + // TODO FIXME BEFORE 2.1.0: see https://github.com/sigurpol/runtimes/pull/5 + type ReserveData = (); #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); } @@ -443,8 +451,9 @@ impl pallet_assets::Config for Runtime { type CallbackHandle = (); type AssetAccountDeposit = ForeignAssetsAssetAccountDeposit; type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; + type ReserveData = ForeignAssetReserveData; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = xcm_config::XcmBenchmarkHelper; + type BenchmarkHelper = assets_common::benchmarks::LocationAssetsBenchmarkHelper; } parameter_types! { @@ -540,8 +549,8 @@ pub enum ProxyType { Governance, /// Allows access to staking related calls. /// - /// Contains the `Staking`, `Session`, `Utility`, `FastUnstake`, `VoterList`, `NominationPools` - /// pallets. + /// Contains the `Staking`, `StakingRcClient`, `Session`, `Utility`, `VoterList`, + /// `NominationPools` pallets. Staking, /// Allows access to nomination pools related calls. /// @@ -555,8 +564,12 @@ pub enum ProxyType { /// /// This variant cannot do anything on Asset Hub itself. ParaRegistration, - /// Operator proxy for validators. Can only manage operational tasks like validate, chill, - /// kick. Cannot do bonding, unbonding, nominating, or reward destination changes. + /// Operator proxy for validators. Can perform operational tasks: validating, chilling, + /// kicking, and managing session keys. Cannot bond/unbond funds, change reward + /// destinations, or nominate. + /// + /// Contains `Staking` (validate, chill, kick), `StakingRcClient` (set_keys, purge_keys), + /// and `Utility` batching calls (batch, batch_all, force_batch). StakingOperator, } impl Default for ProxyType { @@ -582,11 +595,13 @@ impl InstanceFilter for ProxyType { // Specifically omitting Indices `transfer`, `force_transfer` // Specifically omitting the entire Balances pallet RuntimeCall::Staking(..) | + RuntimeCall::StakingRcClient(..) | RuntimeCall::Session(..) | // Not on AH RuntimeCall::Grandpa(..) | RuntimeCall::Treasury(..) | RuntimeCall::Bounties(..) | RuntimeCall::ChildBounties(..) | + RuntimeCall::MultiAssetBounties(..) | RuntimeCall::ConvictionVoting(..) | RuntimeCall::Referenda(..) | RuntimeCall::Whitelist(..) | @@ -612,28 +627,41 @@ impl InstanceFilter for ProxyType { RuntimeCall::Bounties(..) | RuntimeCall::Utility(..) | RuntimeCall::ChildBounties(..) | + RuntimeCall::MultiAssetBounties(..) | RuntimeCall::ConvictionVoting(..) | RuntimeCall::Referenda(..) | RuntimeCall::Whitelist(..) ), - ProxyType::Staking => { - matches!( - c, - RuntimeCall::Staking(..) | - RuntimeCall::Session(..) | - RuntimeCall::Utility(..) | - // Not on AH RuntimeCall::FastUnstake(..) | - RuntimeCall::VoterList(..) | - RuntimeCall::NominationPools(..) | - RuntimeCall::Proxy(pallet_proxy::Call::add_proxy { - proxy_type: ProxyType::StakingOperator, - .. - }) | RuntimeCall::Proxy(pallet_proxy::Call::remove_proxy { - proxy_type: ProxyType::StakingOperator, - .. - }) - ) - }, + ProxyType::Staking => matches!( + c, + RuntimeCall::Staking(..) | + RuntimeCall::StakingRcClient(..) | + RuntimeCall::Session(..) | + RuntimeCall::Utility(..) | + // Not on AH RuntimeCall::FastUnstake(..) | + RuntimeCall::VoterList(..) | + RuntimeCall::NominationPools(..) | + RuntimeCall::Proxy(pallet_proxy::Call::add_proxy { + proxy_type: ProxyType::StakingOperator, + .. + }) | RuntimeCall::Proxy(pallet_proxy::Call::remove_proxy { + proxy_type: ProxyType::StakingOperator, + .. + }) + ), + ProxyType::StakingOperator => matches!( + c, + RuntimeCall::Staking(pallet_staking_async::Call::validate { .. }) | + RuntimeCall::Staking(pallet_staking_async::Call::chill { .. }) | + RuntimeCall::Staking(pallet_staking_async::Call::kick { .. }) | + RuntimeCall::StakingRcClient( + pallet_staking_async_rc_client::Call::set_keys { .. } + ) | RuntimeCall::StakingRcClient( + pallet_staking_async_rc_client::Call::purge_keys { .. } + ) | RuntimeCall::Utility(pallet_utility::Call::batch { .. }) | + RuntimeCall::Utility(pallet_utility::Call::batch_all { .. }) | + RuntimeCall::Utility(pallet_utility::Call::force_batch { .. }) + ), ProxyType::NominationPools => { matches!(c, RuntimeCall::NominationPools(..) | RuntimeCall::Utility(..)) }, @@ -727,15 +755,6 @@ impl InstanceFilter for ProxyType { RuntimeCall::Utility { .. } | RuntimeCall::Multisig { .. } ), - ProxyType::StakingOperator => { - matches!( - c, - RuntimeCall::Staking(pallet_staking_async::Call::validate { .. }) | - RuntimeCall::Staking(pallet_staking_async::Call::chill { .. }) | - RuntimeCall::Staking(pallet_staking_async::Call::kick { .. }) | - RuntimeCall::Utility { .. } - ) - }, } } @@ -791,7 +810,6 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type ConsensusHook = ConsensusHook; type WeightInfo = weights::cumulus_pallet_parachain_system::WeightInfo; - type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; type RelayParentOffset = ConstU32; } @@ -829,10 +847,6 @@ impl pallet_message_queue::Config for Runtime { impl cumulus_pallet_aura_ext::Config for Runtime {} -impl cumulus_pallet_weight_reclaim::Config for Runtime { - type WeightInfo = weights::cumulus_pallet_weight_reclaim::WeightInfo; -} - parameter_types! { /// The asset ID for the asset that we use to pay for message delivery fees. pub FeeAssetId: AssetId = AssetId(xcm_config::DotLocation::get()); @@ -1074,6 +1088,8 @@ impl pallet_assets::Config for Runtime { type Extra = (); type CallbackHandle = (); type WeightInfo = weights::pallet_assets_pool::WeightInfo; + // TODO FIXME BEFORE 2.1.0: see https://github.com/sigurpol/runtimes/pull/5 + type ReserveData = (); #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); } @@ -1144,52 +1160,6 @@ impl pallet_asset_conversion::Config for Runtime { >; } -parameter_types! { - pub const DepositPerItem: Balance = system_para_deposit(1, 0); - pub const DepositPerChildTrieItem: Balance = system_para_deposit(1, 0) / 10; - pub const DepositPerByte: Balance = system_para_deposit(0, 1); - pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); - pub const MaxEthExtrinsicWeight: FixedU128 = FixedU128::from_rational(9, 10); -} - -impl pallet_revive::Config for Runtime { - type Time = Timestamp; - type Balance = Balance; - type Currency = Balances; - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type RuntimeOrigin = RuntimeOrigin; - type DepositPerItem = DepositPerItem; - type DepositPerChildTrieItem = DepositPerChildTrieItem; - type DepositPerByte = DepositPerByte; - // TODO(#840): use `weights::pallet_revive::WeightInfo` here - type WeightInfo = pallet_revive::weights::SubstrateWeight; - type Precompiles = ( - ERC20, TrustBackedAssetsInstance>, - // We will add ForeignAssetsInstance at <0x220> once we have Location to Id mapping - // ERC20, ForeignAssetsInstance>, - ERC20, PoolAssetsInstance>, - XcmPrecompile, - ); - type AddressMapper = pallet_revive::AccountId32Mapper; - type RuntimeMemory = ConstU32<{ 128 * 1024 * 1024 }>; - type PVFMemory = ConstU32<{ 512 * 1024 * 1024 }>; - type UnsafeUnstableInterface = ConstBool; - type UploadOrigin = EnsureSigned; - type InstantiateOrigin = EnsureSigned; - type RuntimeHoldReason = RuntimeHoldReason; - type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; - type ChainId = ConstU64<420_420_417>; - type NativeToEthRatio = ConstU32<100_000_000>; // 10^(18 - 10) Eth is 10^18, Native is 10^10. - type FindAuthor = ::FindAuthor; - type AllowEVMBytecode = ConstBool; - type FeeInfo = pallet_revive::evm::fees::Info; - type MaxEthExtrinsicWeight = MaxEthExtrinsicWeight; - // Must be set to `false` in a live chain - type DebugEnabled = ConstBool; - type GasScale = ConstU32<100_000>; -} - parameter_types! { pub const PreimageBaseDeposit: Balance = system_para_deposit(2, 64); pub const PreimageByteDeposit: Balance = system_para_deposit(0, 1); @@ -1197,11 +1167,16 @@ parameter_types! { RuntimeHoldReason::Preimage(pallet_preimage::HoldReason::Preimage); } +ord_parameter_types! { + pub const ManagerMultisig: AccountId = pallet_rc_migrator::Pallet::::manager_multisig_id(); +} + impl pallet_preimage::Config for Runtime { type WeightInfo = weights::pallet_preimage::WeightInfo; type RuntimeEvent = RuntimeEvent; type Currency = Balances; - type ManagerOrigin = EnsureRoot; + type ManagerOrigin = + EitherOfDiverse, EnsureSignedBy>; type Consideration = HoldConsideration< AccountId, Balances, @@ -1429,11 +1404,11 @@ parameter_types! { impl pallet_ah_ops::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; + type Fungibles = NativeAndAssets; type AssetId = Location; type RelevantAssets = RelevantAssets; - type MigrateOrigin = EnsureRoot; - type Fungibles = NativeAndAssets; type RcBlockNumberProvider = RelaychainDataProvider; + type MigrateOrigin = EnsureRoot; type WeightInfo = weights::pallet_ah_ops::WeightInfo; type MigrationCompletion = pallet_rc_migrator::types::MigrationCompletion; type TreasuryPreMigrationAccount = xcm_config::PreMigrationRelayTreasuryPalletAccount; @@ -1456,6 +1431,7 @@ impl pallet_ah_migrator::Config for Runtime { type TreasuryPaymaster = treasury::TreasuryPaymaster; type Assets = NativeAndAssets; type CheckingAccount = xcm_config::CheckingAccount; + type StakingPotAccount = xcm_config::StakingPot; type RcProxyType = ah_migration::RcProxyType; type RcToProxyType = ah_migration::RcToProxyType; type RcBlockNumberProvider = RelaychainDataProvider; @@ -1472,7 +1448,56 @@ impl pallet_ah_migrator::Config for Runtime { type AhPostMigrationCalls = ah_migration::call_filter::CallsEnabledAfterMigration; type MessageQueue = MessageQueue; type DmpQueuePriorityPattern = DmpQueuePriorityPattern; - type StakingPotAccount = xcm_config::StakingPot; +} + +parameter_types! { + pub const DepositPerItem: Balance = system_para_deposit(1, 0); + pub const DepositPerChildTrieItem: Balance = system_para_deposit(1, 0) / 10; + pub const DepositPerByte: Balance = system_para_deposit(0, 1); + pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); + pub const MaxEthExtrinsicWeight: FixedU128 = FixedU128::from_rational(5, 10); +} + +impl pallet_revive::Config for Runtime { + type Time = Timestamp; + type Balance = Balance; + type Currency = Balances; + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type RuntimeOrigin = RuntimeOrigin; + type DepositPerItem = DepositPerItem; + type DepositPerChildTrieItem = DepositPerChildTrieItem; + type DepositPerByte = DepositPerByte; + // TODO(#840): use `weights::pallet_revive::WeightInfo` here + type WeightInfo = pallet_revive::weights::SubstrateWeight; + type Precompiles = ( + ERC20, TrustBackedAssetsInstance>, + // We will add ForeignAssetsInstance at <0x220> once we have Location to Id mapping + // ERC20, ForeignAssetsInstance>, + ERC20, PoolAssetsInstance>, + XcmPrecompile, + ); + type AddressMapper = pallet_revive::AccountId32Mapper; + type RuntimeMemory = ConstU32<{ 128 * 1024 * 1024 }>; + type PVFMemory = ConstU32<{ 512 * 1024 * 1024 }>; + type UnsafeUnstableInterface = ConstBool; + type UploadOrigin = EnsureSigned; + type InstantiateOrigin = EnsureSigned; + type RuntimeHoldReason = RuntimeHoldReason; + type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; + type ChainId = ConstU64<420_420_417>; + type NativeToEthRatio = ConstU32<100_000_000>; // 10^(18 - 10) Eth is 10^18, Native is 10^10. + type FindAuthor = ::FindAuthor; + type AllowEVMBytecode = ConstBool; + type FeeInfo = pallet_revive::evm::fees::Info; + type MaxEthExtrinsicWeight = MaxEthExtrinsicWeight; + // Must be set to `false` in a live chain + type DebugEnabled = ConstBool; + type GasScale = ConstU32<100_000>; +} + +impl cumulus_pallet_weight_reclaim::Config for Runtime { + type WeightInfo = weights::cumulus_pallet_weight_reclaim::WeightInfo; } // Create the runtime by composing the FRAME pallets that were previously configured. @@ -1497,6 +1522,7 @@ construct_runtime!( AssetTxPayment: pallet_asset_conversion_tx_payment = 13, Vesting: pallet_vesting = 14, Claims: pallet_claims = 15, + Dap: pallet_dap = 16, // Collator support. the order of these 5 are important and shall not change. Authorship: pallet_authorship = 20, @@ -1536,6 +1562,7 @@ construct_runtime!( Bounties: pallet_bounties = 65, ChildBounties: pallet_child_bounties = 66, AssetRate: pallet_asset_rate = 67, + MultiAssetBounties: pallet_multi_asset_bounties = 68, // State trie migration pallet, only temporary. StateTrieMigration: pallet_state_trie_migration = 70, @@ -1551,7 +1578,9 @@ construct_runtime!( MultiBlockElectionSigned: pallet_election_provider_multi_block::signed = 88, Staking: pallet_staking_async = 89, + // Contracts Revive: pallet_revive = 100, + // Sudo. Sudo: pallet_sudo::{Pallet, Call, Storage, Event, Config} = 251, @@ -1573,6 +1602,7 @@ pub type BlockId = generic::BlockId; pub type TxExtension = cumulus_pallet_weight_reclaim::StorageWeightReclaim< Runtime, ( + frame_system::AuthorizeCall, frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -1590,12 +1620,13 @@ pub type TxExtension = cumulus_pallet_weight_reclaim::StorageWeightReclaim< #[derive(Clone, PartialEq, Eq, Debug)] pub struct EthExtraImpl; -impl EthExtra for EthExtraImpl { +impl pallet_revive::evm::runtime::EthExtra for EthExtraImpl { type Config = Runtime; type Extension = TxExtension; fn get_eth_extension(nonce: u32, tip: Balance) -> Self::Extension { ( + frame_system::AuthorizeCall::::new(), frame_system::CheckNonZeroSender::::new(), frame_system::CheckSpecVersion::::new(), frame_system::CheckTxVersion::::new(), @@ -1615,31 +1646,6 @@ impl EthExtra for EthExtraImpl { pub type UncheckedExtrinsic = pallet_revive::evm::runtime::UncheckedExtrinsic; -/// The runtime migrations per release. -#[allow(deprecated, missing_docs)] -pub mod migrations { - use super::*; - - /// Unreleased migrations. Add new ones here: - pub type Unreleased = ( - pallet_session::migrations::v1::MigrateV0ToV1< - Runtime, - pallet_session::migrations::v1::InitOffenceSeverity, - >, - cumulus_pallet_aura_ext::migration::MigrateV0ToV1, - staking::InitiateStakingAsync, - ); - - /// Migrations/checks that do not need to be versioned and can run on every update. - pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; - - /// All single block migrations that will run on the next runtime upgrade. - pub type SingleBlockMigrations = (Unreleased, Permanent); - - /// MBM migrations to apply on runtime upgrade. - pub type MbmMigrations = pallet_revive::migrations::v2::Migration; -} - /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -1717,6 +1723,9 @@ impl } } +#[cfg(feature = "runtime-benchmarks")] +type StakingRcClientBench = pallet_staking_async_rc_client::benchmarking::Pallet; + #[cfg(feature = "runtime-benchmarks")] mod benches { use super::*; @@ -1752,21 +1761,21 @@ mod benches { [pallet_transaction_payment, TransactionPayment] [pallet_collator_selection, CollatorSelection] [cumulus_pallet_parachain_system, ParachainSystem] - [cumulus_pallet_xcmp_queue, XcmpQueue] [cumulus_pallet_weight_reclaim, WeightReclaim] + [cumulus_pallet_xcmp_queue, XcmpQueue] [pallet_conviction_voting, ConvictionVoting] [pallet_referenda, Referenda] [pallet_whitelist, Whitelist] - // TODO: uncomment this as soon as https://github.com/polkadot-fellows/runtimes/issues/840 is - // resolved - //[pallet_revive, Revive] [pallet_bounties, Bounties] [pallet_child_bounties, ChildBounties] [pallet_asset_rate, AssetRate] + [pallet_multi_asset_bounties, MultiAssetBounties] [pallet_ah_migrator, AhMigrator] [pallet_indices, Indices] [polkadot_runtime_common::claims, Claims] [pallet_ah_ops, AhOps] + // TODO(#840): uncomment this so that pallet-revive is also benchmarked with this runtime + // [pallet_revive, Revive] // XCM [pallet_xcm, PalletXcmExtrinsicsBenchmark::] @@ -1779,19 +1788,20 @@ mod benches { // Staking [pallet_staking_async, Staking] + [pallet_staking_async_rc_client, StakingRcClientBench::] [pallet_bags_list, VoterList] // DelegatedStaking has no calls [pallet_election_provider_multi_block, MultiBlockElection] - [pallet_election_provider_multi_block_verifier, MultiBlockElectionVerifier] - [pallet_election_provider_multi_block_unsigned, MultiBlockElectionUnsigned] - [pallet_election_provider_multi_block_signed, MultiBlockElectionSigned] + [pallet_election_provider_multi_block::verifier, MultiBlockElectionVerifier] + [pallet_election_provider_multi_block::unsigned, MultiBlockElectionUnsigned] + [pallet_election_provider_multi_block::signed, MultiBlockElectionSigned] ); use frame_benchmarking::BenchmarkError; use xcm::latest::prelude::{ - Asset, Assets as XcmAssets, Fungible, Here, InteriorLocation, Junction, Location, - NetworkId, NonFungible, Parent, ParentThen, Response, XCM_VERSION, + AccountId32, Asset, Assets as XcmAssets, Fungible, Here, InteriorLocation, Junction, + Location, NetworkId, NonFungible, Parent, ParentThen, Response, XCM_VERSION, }; impl frame_system_benchmarking::Config for Runtime { @@ -1820,6 +1830,46 @@ mod benches { pub const RandomParaId: ParaId = ParaId::new(43211234); } + impl pallet_staking_async_rc_client::benchmarking::Config for Runtime { + type DeliveryHelper = cumulus_primitives_utility::ToParentDeliveryHelper< + xcm_config::XcmConfig, + ExistentialDepositAsset, + PriceForParentDelivery, + >; + + fn account_to_location(account: Self::AccountId) -> Location { + [AccountId32 { network: None, id: account.into() }].into() + } + + fn generate_session_keys() -> Vec { + use staking::RelayChainSessionKeys; + RelayChainSessionKeys::generate(None) + } + + fn setup_validator() -> Self::AccountId { + use frame_benchmarking::account; + use frame_support::traits::fungible::Mutate; + + let stash: Self::AccountId = account("validator", 0, 0); + // Must be >= 2 * MinSetKeysBond (10_000 PAS) since we bond half. + let balance = 20_000 * UNITS; + + let _ = Balances::mint_into(&stash, balance); + + assert_ok!(Staking::bond( + RuntimeOrigin::signed(stash.clone()), + balance / 2, + pallet_staking_async::RewardDestination::Stash + )); + assert_ok!(Staking::validate( + RuntimeOrigin::signed(stash.clone()), + pallet_staking_async::ValidatorPrefs::default() + )); + + stash + } + } + impl pallet_xcm::benchmarking::Config for Runtime { type DeliveryHelper = ( polkadot_runtime_common::xcm_sender::ToParachainDeliveryHelper< @@ -1995,15 +2045,33 @@ mod benches { )); pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; // AssetHubPaseo trusts AssetHubKusama as reserve for KSMs - pub TrustedReserve: Option<(Location, Asset)> = Some( - ( - xcm_config::bridging::to_kusama::AssetHubKusama::get(), - Asset::from(( - xcm_config::bridging::to_kusama::KsmLocation::get(), - 1000000000000_u128 - )) - ) - ); + pub TrustedReserve: Option<(Location, Asset)> = Some({ + use frame_support::traits::tokens::fungible::{Inspect, Mutate}; + let ksm_id = xcm_config::bridging::to_kusama::KsmLocation::get(); + let ksm = Asset::from((ksm_id.clone(), 1000000000000_u128)); + let reserve = xcm_config::bridging::to_kusama::AssetHubKusama::get(); + let (account, _) = pallet_xcm_benchmarks::account_and_location::(1); + assert_ok!(>::mint_into( + &account, + >::minimum_balance(), + )); + // register foreign KSMs + assert_ok!(ForeignAssets::force_create( + RuntimeOrigin::root(), + ksm_id.clone(), + account.clone().into(), + true, + 1u128, + )); + let reserves = ForeignAssetReserveData { reserve, teleportable: false }; + // set trusted reserve + assert_ok!(ForeignAssets::set_reserves( + RuntimeOrigin::signed(account), + ksm_id.clone(), + vec![reserves.clone()].try_into().unwrap(), + )); + (reserves.reserve, ksm) + }); } impl pallet_xcm_benchmarks::fungible::Config for Runtime { @@ -2199,7 +2267,7 @@ mod benches { #[cfg(feature = "runtime-benchmarks")] use benches::*; -pallet_revive::impl_runtime_apis_plus_revive_traits! { +pallet_revive::impl_runtime_apis_plus_revive_traits!( Runtime, Revive, Executive, @@ -2234,7 +2302,7 @@ pallet_revive::impl_runtime_apis_plus_revive_traits! { VERSION } - fn execute_block(block: Block) { + fn execute_block(block: ::LazyBlock) { Executive::execute_block(block) } @@ -2271,7 +2339,7 @@ pallet_revive::impl_runtime_apis_plus_revive_traits! { } fn check_inherents( - block: Block, + block: ::LazyBlock, data: sp_inherents::InherentData, ) -> sp_inherents::CheckInherentsResult { data.check_extrinsics(&block) @@ -2388,8 +2456,8 @@ pallet_revive::impl_runtime_apis_plus_revive_traits! { PolkadotXcm::query_xcm_weight(message) } - fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { - PolkadotXcm::query_delivery_fees(destination, message) + fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>, asset_id: VersionedAssetId) -> Result { + PolkadotXcm::query_delivery_fees::(destination, message, asset_id) } } @@ -2399,7 +2467,7 @@ pallet_revive::impl_runtime_apis_plus_revive_traits! { } fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { - PolkadotXcm::dry_run_xcm::(origin_location, xcm) + PolkadotXcm::dry_run_xcm::(origin_location, xcm) } } @@ -2602,7 +2670,7 @@ pallet_revive::impl_runtime_apis_plus_revive_traits! { } } - impl system_parachains_common::apis::Inflation for Runtime { + impl system_parachains_common::apis::Inflation for Runtime { fn experimental_issuance_prediction_info() -> system_parachains_common::apis::InflationInfo { crate::staking::EraPayout::impl_experimental_inflation_info() } @@ -2616,7 +2684,7 @@ pallet_revive::impl_runtime_apis_plus_revive_traits! { } fn execute_block( - block: Block, + block: ::LazyBlock, state_root_check: bool, signature_check: bool, select: frame_try_runtime::TryStateSelect, @@ -2651,7 +2719,7 @@ pallet_revive::impl_runtime_apis_plus_revive_traits! { Ok(batches) } } -} +); cumulus_pallet_parachain_system::register_validate_block! { Runtime = Runtime, @@ -2777,8 +2845,6 @@ mod tests { // Assets IS supertype of AssetOwner and AssetManager assert!(ProxyType::Assets.is_superset(&ProxyType::AssetOwner)); assert!(ProxyType::Assets.is_superset(&ProxyType::AssetManager)); - // Staking IS supertype of StakingOperator - assert!(ProxyType::Staking.is_superset(&ProxyType::StakingOperator)); // NonTransfer is NOT supertype of Any, Assets, AssetOwner and AssetManager assert!(!ProxyType::NonTransfer.is_superset(&ProxyType::Any)); assert!(!ProxyType::NonTransfer.is_superset(&ProxyType::Assets)); @@ -2789,10 +2855,12 @@ mod tests { assert!(ProxyType::NonTransfer.is_superset(&ProxyType::Collator)); assert!(ProxyType::NonTransfer.is_superset(&ProxyType::Governance)); assert!(ProxyType::NonTransfer.is_superset(&ProxyType::Staking)); + assert!(ProxyType::NonTransfer.is_superset(&ProxyType::StakingOperator)); assert!(ProxyType::NonTransfer.is_superset(&ProxyType::NominationPools)); assert!(ProxyType::NonTransfer.is_superset(&ProxyType::Auction)); assert!(ProxyType::NonTransfer.is_superset(&ProxyType::ParaRegistration)); - assert!(ProxyType::NonTransfer.is_superset(&ProxyType::StakingOperator)); + // Staking IS supertype of StakingOperator + assert!(ProxyType::Staking.is_superset(&ProxyType::StakingOperator)); } #[test] @@ -2815,9 +2883,48 @@ mod tests { assert!(ProxyType::StakingOperator .filter(&RuntimeCall::Staking(pallet_staking_async::Call::kick { who: vec![] }))); - // - Utility calls (for batching) + // - StakingRcClient::set_keys (session key management on Asset Hub) + assert!(ProxyType::StakingOperator.filter(&RuntimeCall::StakingRcClient( + pallet_staking_async_rc_client::Call::set_keys { + keys: Default::default(), + max_delivery_and_remote_execution_fee: None, + } + ))); + + // - StakingRcClient::purge_keys + assert!(ProxyType::StakingOperator.filter(&RuntimeCall::StakingRcClient( + pallet_staking_async_rc_client::Call::purge_keys { + max_delivery_and_remote_execution_fee: None, + } + ))); + + // - Utility batching calls assert!(ProxyType::StakingOperator .filter(&RuntimeCall::Utility(pallet_utility::Call::batch { calls: vec![] }))); + assert!(ProxyType::StakingOperator + .filter(&RuntimeCall::Utility(pallet_utility::Call::batch_all { calls: vec![] }))); + assert!(ProxyType::StakingOperator + .filter(&RuntimeCall::Utility(pallet_utility::Call::force_batch { calls: vec![] }))); + + // - Utility non-batching calls are disallowed + assert!(!ProxyType::StakingOperator.filter(&RuntimeCall::Utility( + pallet_utility::Call::as_derivative { + index: 0, + call: Box::new(RuntimeCall::System(frame_system::Call::remark { remark: vec![] })), + } + ))); + assert!(!ProxyType::StakingOperator.filter(&RuntimeCall::Utility( + pallet_utility::Call::dispatch_as { + as_origin: Box::new(OriginCaller::system(frame_system::RawOrigin::Root)), + call: Box::new(RuntimeCall::System(frame_system::Call::remark { remark: vec![] })), + } + ))); + assert!(!ProxyType::StakingOperator.filter(&RuntimeCall::Utility( + pallet_utility::Call::with_weight { + call: Box::new(RuntimeCall::System(frame_system::Call::remark { remark: vec![] })), + weight: Default::default(), + } + ))); // StakingOperator DISALLOWS these calls: // - Staking::bond_extra (cannot add more stake) @@ -2860,8 +2967,17 @@ mod tests { } ))); - // - Session calls (session key management is on relay chain, not Asset Hub) - // Note: Asset Hub's Session pallet is for collators, not validators + // - Session calls: set and purge keys + assert!(!ProxyType::StakingOperator.filter(&RuntimeCall::Session( + pallet_session::Call::set_keys { + keys: SessionKeys { + aura: sp_consensus_aura::ed25519::AuthorityId::from( + sp_core::ed25519::Public::from_raw([0u8; 32]), + ), + }, + proof: vec![], + } + ))); assert!(!ProxyType::StakingOperator .filter(&RuntimeCall::Session(pallet_session::Call::purge_keys {}))); @@ -2886,6 +3002,19 @@ mod tests { ProxyType::Staking.filter(&RuntimeCall::Staking(pallet_staking_async::Call::chill {})) ); + // Staking proxy allows StakingRcClient calls + assert!(ProxyType::Staking.filter(&RuntimeCall::StakingRcClient( + pallet_staking_async_rc_client::Call::set_keys { + keys: Default::default(), + max_delivery_and_remote_execution_fee: None, + } + ))); + assert!(ProxyType::Staking.filter(&RuntimeCall::StakingRcClient( + pallet_staking_async_rc_client::Call::purge_keys { + max_delivery_and_remote_execution_fee: None, + } + ))); + // Staking proxy can add/remove StakingOperator proxies let delegate = sp_runtime::MultiAddress::Id(AccountId::from([1u8; 32])); assert!(ProxyType::Staking.filter(&RuntimeCall::Proxy(pallet_proxy::Call::add_proxy { @@ -2906,4 +3035,26 @@ mod tests { delay: 0, }))); } + + #[test] + fn governance_and_nontransfer_proxy_allow_multi_asset_bounties() { + use frame_support::traits::InstanceFilter; + use sp_runtime::MultiAddress; + + let call = + RuntimeCall::MultiAssetBounties(pallet_multi_asset_bounties::Call::propose_curator { + parent_bounty_id: 0, + child_bounty_id: Some(0), + curator: MultiAddress::Id(AccountId::from([0u8; 32])), + }); + + assert!( + ProxyType::Governance.filter(&call), + "Governance proxy must allow MultiAssetBounties::propose_curator", + ); + assert!( + ProxyType::NonTransfer.filter(&call), + "NonTransfer proxy must allow MultiAssetBounties::propose_curator", + ); + } } diff --git a/system-parachains/asset-hub-paseo/src/migrations.rs b/system-parachains/asset-hub-paseo/src/migrations.rs new file mode 100644 index 000000000..5662a56f1 --- /dev/null +++ b/system-parachains/asset-hub-paseo/src/migrations.rs @@ -0,0 +1,155 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! The runtime migrations per release. + +/// Unreleased migrations. Add new ones here: +pub type Unreleased = (); + +/// Migrations/checks that do not need to be versioned and can run on every update. +pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; + +/// All single block migrations that will run on the next runtime upgrade. +pub type SingleBlockMigrations = (Unreleased, Permanent); + +#[cfg(not(feature = "runtime-benchmarks"))] +pub use multiblock_migrations::MbmMigrations; + +#[cfg(not(feature = "runtime-benchmarks"))] +mod multiblock_migrations { + use crate::{ + xcm_config::bridging::{ + to_ethereum::EthereumLocation, + to_kusama::{AssetHubKusama, KsmLocation}, + }, + *, + }; + use alloc::{vec, vec::Vec}; + use assets_common::{ + local_and_foreign_assets::ForeignAssetReserveData, + migrations::foreign_assets_reserves::ForeignAssetsReservesProvider, + }; + use frame_support::traits::Contains; + use xcm::v5::{Junction, Location}; + use xcm_builder::StartsWith; + + /// MBM migrations to apply on runtime upgrade. + pub type MbmMigrations = + assets_common::migrations::foreign_assets_reserves::ForeignAssetsReservesMigration< + Runtime, + ForeignAssetsInstance, + AssetHubPaseoForeignAssetsReservesProvider, + >; + + /// This type provides reserves information for `asset_id`. Meant to be used in a migration + /// running on the Asset Hub Paseo upgrade which changes the Foreign Assets + /// reserve-transfers and teleports from hardcoded rules to per-asset configured reserves. + /// + /// The hardcoded rules (see `xcm_config.rs`) migrated here: + /// 1. Foreign Assets native to sibling parachains are teleportable between the asset's native + /// chain and Asset Hub ==> `ForeignAssetReserveData { reserve: "Asset's native chain", + /// teleport: true }` + /// 2. Foreign assets native to Ethereum Ecosystem have Ethereum as trusted reserve. ==> + /// `ForeignAssetReserveData { reserve: "Ethereum", teleport: false }` + /// 3. Foreign assets native to Kusama Ecosystem have Asset Hub Kusama as trusted reserve. ==> + /// `ForeignAssetReserveData { reserve: "Asset Hub Kusama", teleport: false }` + pub struct AssetHubPaseoForeignAssetsReservesProvider; + impl ForeignAssetsReservesProvider for AssetHubPaseoForeignAssetsReservesProvider { + type ReserveData = ForeignAssetReserveData; + fn reserves_for(asset_id: &Location) -> Vec { + let reserves = if StartsWith::::contains(asset_id) { + // rule 3: Kusama asset, Asset Hub Kusama reserve, non teleportable + vec![(AssetHubKusama::get(), false).into()] + } else if StartsWith::::contains(asset_id) { + // rule 2: Ethereum asset, Ethereum reserve, non teleportable + vec![(EthereumLocation::get(), false).into()] + } else { + match asset_id.unpack() { + (1, interior) => { + match interior.first() { + Some(Junction::Parachain(sibling_para_id)) + if sibling_para_id.ne( + &paseo_runtime_constants::system_parachain::ASSET_HUB_ID, + ) => + { + // rule 1: sibling parachain asset, sibling parachain reserve, + // teleportable + vec![ForeignAssetReserveData { + reserve: Location::new( + 1, + Junction::Parachain(*sibling_para_id), + ), + teleportable: true, + }] + }, + _ => vec![], + } + }, + _ => vec![], + } + }; + if reserves.is_empty() { + log::error!( + target: "runtime::AssetHubPaseoForeignAssetsReservesProvider::reserves_for", + "unexpected asset id {asset_id:?}", + ); + } + reserves + } + + #[cfg(feature = "try-runtime")] + fn check_reserves_for(asset_id: &Location, reserves: Vec) -> bool { + if StartsWith::::contains(asset_id) { + let expected = + ForeignAssetReserveData { reserve: AssetHubKusama::get(), teleportable: false }; + // rule 3: Kusama asset + reserves.len() == 1 && expected.eq(reserves.get(0).unwrap()) + } else if StartsWith::::contains(asset_id) { + let expected = ForeignAssetReserveData { + reserve: EthereumLocation::get(), + teleportable: false, + }; + // rule 2: Ethereum asset + reserves.len() == 1 && expected.eq(reserves.get(0).unwrap()) + } else { + match asset_id.unpack() { + (1, interior) => { + match interior.first() { + Some(Junction::Parachain(sibling_para_id)) + if sibling_para_id.ne( + &paseo_runtime_constants::system_parachain::ASSET_HUB_ID, + ) => + { + let expected = ForeignAssetReserveData { + reserve: Location::new( + 1, + Junction::Parachain(*sibling_para_id), + ), + teleportable: true, + }; + // rule 1: sibling parachain asset + reserves.len() == 1 && expected.eq(reserves.get(0).unwrap()) + }, + // unexpected asset + _ => false, + } + }, + // unexpected asset + _ => false, + } + } + } + } +} diff --git a/system-parachains/asset-hub-paseo/src/remote_tests.rs b/system-parachains/asset-hub-paseo/src/remote_tests.rs new file mode 100644 index 000000000..f516d82d4 --- /dev/null +++ b/system-parachains/asset-hub-paseo/src/remote_tests.rs @@ -0,0 +1,98 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Tests that run against a state snapshot. + +use super::*; +use frame_support::{assert_ok, traits::fungible::Inspect as FungibleInspect}; +use remote_externalities::{Builder, Mode, OfflineConfig}; +use sp_runtime::AccountId32; +use std::{env::var, str::FromStr}; + +/// Ensure that the Stellaswap account is correctly migrated. +/// +/// This test can be removed after the relevant code was deployed on-chain. +/// See: https://github.com/paseo-fellows/runtimes/pull/1036 +#[tokio::test] +async fn moonbeam_stellaswap_translation() { + sp_tracing::try_init_simple(); + let Some(state_snapshot) = var("SNAP").map(|s| s.into()).ok() else { + return; + }; + + let mut ext = Builder::::default() + .mode(Mode::Offline(OfflineConfig { state_snapshot })) + .build() + .await + .unwrap(); + ext.execute_with(|| { + frame_system::Pallet::::reset_events(); + + let child_5_1 = + AccountId32::from_str("1zAWXSCmRTR9ZkRXZXeHZftj1J6rnDe8BLXV8UJ2S2exCvL").unwrap(); + let sibl_5_1 = + AccountId32::from_str("13GWAfgWAKLGm8AsKLn5pDbDyMHfShFgtMFEqM4TRNhXbSea").unwrap(); + let derivation_path_5_1 = vec![5, 1]; + + test_translate(child_5_1, sibl_5_1, derivation_path_5_1); + println!("Second account:"); + + let child_5_2 = + AccountId32::from_str("14KQD8dRoT3q2fCbCC49bFjU1diFu1d516tYuGmSUMmEoGNa").unwrap(); + let sibl_5_2 = + AccountId32::from_str("123oqim7B24XzwB1hC4Fh7LGwbTas3QmxL6v6sVd95eTD5ee").unwrap(); + let derivation_path = vec![5, 2]; + + test_translate(child_5_2, sibl_5_2, derivation_path); + }); +} + +/// Run the actual translation and do total balance checks. +fn test_translate(child_5_2: AccountId32, sibl_5_2: AccountId32, derivation_path: Vec) { + let child_before = summary(&child_5_2); + assert_eq!(summary(&sibl_5_2), 0, "Sibl acc should be empty"); + + assert_ok!( + pallet_ah_ops::Pallet::::do_translate_para_sovereign_child_to_sibling_derived( + 2004, + derivation_path.clone(), + child_5_2.clone(), + sibl_5_2.clone(), + ) + ); + + for event in frame_system::Pallet::::events() { + println!("{event:?}"); + } + + let child_remaining = summary(&child_5_2); + let ed = >::minimum_balance(); + // It can still have ED in case that we did not migrate all assets. + assert!(child_remaining <= ed, "Child remaining should have at most ED"); + assert_eq!( + summary(&sibl_5_2), + child_before - child_remaining, + "Sibl should have child balance" + ); +} + +/// Account summary and return the total balance. +fn summary(acc: &AccountId32) -> u128 { + let info = frame_system::Account::::get(acc); + let ledger = pallet_staking_async::Ledger::::get(acc); + println!("{acc}\n\tInfo: {info:?}\n\tLedger: {ledger:?}"); + + info.data.free + info.data.reserved +} diff --git a/system-parachains/asset-hub-paseo/src/staking/mod.rs b/system-parachains/asset-hub-paseo/src/staking/mod.rs index 0d5e6b039..ad6219b22 100644 --- a/system-parachains/asset-hub-paseo/src/staking/mod.rs +++ b/system-parachains/asset-hub-paseo/src/staking/mod.rs @@ -23,6 +23,7 @@ pub mod nom_pools; pub mod stepped_curve; use crate::{governance::StakingAdmin, *}; +use codec::Encode; use cumulus_pallet_parachain_system::RelaychainDataProvider; use frame_election_provider_support::{ElectionDataProvider, SequentialPhragmen}; use frame_support::{ @@ -107,11 +108,10 @@ pub struct RebagIffMigrationDone; impl sp_runtime::traits::Get for RebagIffMigrationDone { fn get() -> u32 { if cfg!(feature = "runtime-benchmarks") || - matches!( - pallet_ah_migrator::AhMigrationStage::::get(), - pallet_ah_migrator::MigrationStage::MigrationDone - ) { - 5 + pallet_ah_migrator::MigrationEndBlock::::get() + .is_some_and(|n| frame_system::Pallet::::block_number() > n + 1) + { + 10 } else { 0 } @@ -131,19 +131,24 @@ impl pallet_bags_list::Config for Runtime { parameter_types! { pub const DelegatedStakingPalletId: PalletId = PalletId(*b"py/dlstk"); pub const SlashRewardFraction: Perbill = Perbill::from_percent(1); + pub const DapPalletId: PalletId = PalletId(*b"dap/buff"); } impl pallet_delegated_staking::Config for Runtime { type RuntimeEvent = RuntimeEvent; type PalletId = DelegatedStakingPalletId; type Currency = Balances; - // slashes are sent to the treasury. - type OnSlash = ResolveTo; + type OnSlash = Dap; type SlashRewardFraction = SlashRewardFraction; type RuntimeHoldReason = RuntimeHoldReason; type CoreStaking = Staking; } +impl pallet_dap::Config for Runtime { + type Currency = Balances; + type PalletId = DapPalletId; +} + #[cfg(feature = "runtime-benchmarks")] parameter_types! { pub BenchElectionBounds: frame_election_provider_support::bounds::ElectionBounds = @@ -214,7 +219,7 @@ parameter_types! { /// // Base deposit /// assert_eq!(GeometricDeposit::calculate_base_deposit(0), InitialBaseDeposit::get()); /// assert_eq!(GeometricDeposit::calculate_base_deposit(1), 2 * InitialBaseDeposit::get()); -/// assert_eq!(GeometricDeposit::calculate_base_deposit(2), 4 * InitialBaseDeposit::get()); +/// assert_eq!(GeometricDeposit::calculate_base_deposit(2), 4 * InitialBaseDeposit::get()); /// // and so on /// /// // Full 16 page deposit, to be paid on top of the above base @@ -267,7 +272,7 @@ parameter_types! { impl multi_block::unsigned::Config for Runtime { type MinerPages = MinerPages; type OffchainStorage = ConstBool; - type OffchainSolver = SequentialPhragmen>; + type OffchainSolver = SequentialPhragmen, ()>; type MinerTxPriority = MinerTxPriority; type OffchainRepeat = OffchainRepeat; type WeightInfo = weights::pallet_election_provider_multi_block_unsigned::WeightInfo; @@ -291,6 +296,9 @@ impl multi_block::unsigned::miner::MinerConfig for Runtime { type MaxVotesPerVoter = <::DataProvider as ElectionDataProvider>::MaxVotesPerVoter; type MaxLength = MinerMaxLength; + #[cfg(feature = "runtime-benchmarks")] + type Solver = frame_election_provider_support::QuickDirtySolver; + #[cfg(not(feature = "runtime-benchmarks"))] type Solver = ::OffchainSolver; type Pages = Pages; type Solution = NposCompactSolution16; @@ -436,6 +444,10 @@ parameter_types! { pub const SessionsPerEra: SessionIndex = prod_or_fast!(6, 1); pub const RelaySessionDuration: BlockNumber = prod_or_fast!(4 * RC_HOURS, RC_MINUTES); pub const BondingDuration: sp_staking::EraIndex = 28; + /// Nominators are expected to be slashable and support fast unbonding + /// depending on AreNominatorSlashable storage value, as set by governance. + /// NominatorFastUnbondDuration value below is ignored if nominators are slashable. + pub const NominatorFastUnbondDuration: sp_staking::EraIndex = 2; pub const SlashDeferDuration: sp_staking::EraIndex = 27; pub const MaxControllersInDeprecationBatch: u32 = 512; // alias for 16, which is the max nominations per nominator in the runtime. @@ -443,6 +455,8 @@ parameter_types! { /// Maximum numbers that we prune from pervious eras in each `prune_era` tx. pub MaxPruningItems: u32 = 100; + /// Session index at which to export the validator set to the relay chain. + pub const ValidatorSetExportSession: SessionIndex = 4; } impl pallet_staking_async::Config for Runtime { @@ -453,10 +467,11 @@ impl pallet_staking_async::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type CurrencyToVote = sp_staking::currency_to_vote::SaturatingCurrencyToVote; type RewardRemainder = ResolveTo; - type Slash = ResolveTo; + type Slash = Dap; type Reward = (); type SessionsPerEra = SessionsPerEra; type BondingDuration = BondingDuration; + type NominatorFastUnbondDuration = NominatorFastUnbondDuration; type SlashDeferDuration = SlashDeferDuration; type AdminOrigin = EitherOf, StakingAdmin>; type EraPayout = EraPayout; @@ -471,7 +486,7 @@ impl pallet_staking_async::Config for Runtime { type MaxControllersInDeprecationBatch = MaxControllersInDeprecationBatch; type EventListeners = (NominationPools, DelegatedStaking); type MaxInvulnerables = frame_support::traits::ConstU32<20>; - // This will start election for the next era as soon as an era starts. 1 era = 6 epochs + // This will start election for the next era as soon as an era starts. type PlanningEraOffset = ConstU32<6>; type RcClientInterface = StakingRcClient; type MaxEraDuration = MaxEraDuration; @@ -479,13 +494,38 @@ impl pallet_staking_async::Config for Runtime { type WeightInfo = weights::pallet_staking_async::WeightInfo; } +// Must match Paseo relay chain's `SessionKeys` structure for encoding/decoding compatibility. +sp_runtime::impl_opaque_keys! { + pub struct RelayChainSessionKeys { + pub grandpa: grandpa_primitives::AuthorityId, + pub babe: babe_primitives::AuthorityId, + pub para_validator: paseo_primitives::ValidatorId, + pub para_assignment: paseo_primitives::AssignmentId, + pub authority_discovery: authority_discovery_primitives::AuthorityId, + pub beefy: beefy_primitives::ecdsa_crypto::AuthorityId, + } +} + impl pallet_staking_async_rc_client::Config for Runtime { type RelayChainOrigin = EnsureRoot; type AHStakingInterface = Staking; type SendToRelayChain = StakingXcmToRelayChain; type MaxValidatorSetRetries = ConstU32<64>; - // Export elected validator set at the end of the 4th session of the era. - type ValidatorSetExportSession = ConstU32<4>; + type ValidatorSetExportSession = ValidatorSetExportSession; + type RelayChainSessionKeys = RelayChainSessionKeys; + type MinSetKeysBond = ConstU128<{ 10_000 * UNITS }>; + type Balance = Balance; + // | Key | Crypto | Public Key | Signature | + // |---------------------|---------|------------|-----------| + // | grandpa | Ed25519 | 32 bytes | 64 bytes | + // | babe | Sr25519 | 32 bytes | 64 bytes | + // | para_validator | Sr25519 | 32 bytes | 64 bytes | + // | para_assignment | Sr25519 | 32 bytes | 64 bytes | + // | authority_discovery | Sr25519 | 32 bytes | 64 bytes | + // | beefy | ECDSA | 33 bytes | 65 bytes | + // Buffer for SCALE encoding overhead and future expansions. + type MaxSessionKeysLength = ConstU32<256>; + type WeightInfo = weights::pallet_staking_async_rc_client::WeightInfo; } #[derive(Encode, Decode)] @@ -498,38 +538,52 @@ pub enum RelayChainRuntimePallets { #[derive(Encode, Decode)] pub enum AhClientCalls { - // index of `fn validator_set` in `staking-async-ah-client`. It has only one call. + // index of `fn validator_set` in `staking-async-ah-client`. #[codec(index = 0)] ValidatorSet(rc_client::ValidatorSetReport), + // index of `fn set_keys_from_ah` in `staking-async-ah-client`. + #[codec(index = 3)] + SetKeys { stash: AccountId, keys: Vec }, + // index of `fn purge_keys_from_ah` in `staking-async-ah-client`. + #[codec(index = 4)] + PurgeKeys { stash: AccountId }, } pub struct ValidatorSetToXcm; impl Convert, Xcm<()>> for ValidatorSetToXcm { fn convert(report: rc_client::ValidatorSetReport) -> Xcm<()> { - Xcm(vec![ - Instruction::UnpaidExecution { - weight_limit: WeightLimit::Unlimited, - check_origin: None, - }, - Instruction::Transact { - origin_kind: OriginKind::Native, - fallback_max_weight: None, - call: RelayChainRuntimePallets::AhClient(AhClientCalls::ValidatorSet(report)) - .encode() - .into(), - }, - ]) + rc_client::build_transact_xcm( + RelayChainRuntimePallets::AhClient(AhClientCalls::ValidatorSet(report)).encode(), + ) + } +} + +pub struct KeysMessageToXcm; +impl Convert, Xcm<()>> for KeysMessageToXcm { + fn convert(msg: rc_client::KeysMessage) -> Xcm<()> { + let encoded_call = match msg { + rc_client::KeysMessage::SetKeys { stash, keys } => + RelayChainRuntimePallets::AhClient(AhClientCalls::SetKeys { stash, keys }).encode(), + rc_client::KeysMessage::PurgeKeys { stash } => + RelayChainRuntimePallets::AhClient(AhClientCalls::PurgeKeys { stash }).encode(), + }; + rc_client::build_transact_xcm(encoded_call) } } parameter_types! { pub RelayLocation: Location = Location::parent(); + /// Conservative RC execution cost for set/purge keys operations. + /// ~3x of Paseo relay benchmarked session set/purge_keys (~58-60M ref_time, ~16538 proof). + pub RemoteKeysExecutionWeight: Weight = Weight::from_parts(180_000_000, 50_000); } pub struct StakingXcmToRelayChain; impl rc_client::SendToRelayChain for StakingXcmToRelayChain { type AccountId = AccountId; + type Balance = Balance; + fn validator_set(report: rc_client::ValidatorSetReport) -> Result<(), ()> { rc_client::XCMSender::< xcm_config::XcmRouter, @@ -538,6 +592,63 @@ impl rc_client::SendToRelayChain for StakingXcmToRelayChain { ValidatorSetToXcm, >::send(report) } + + fn set_keys( + stash: Self::AccountId, + keys: Vec, + max_delivery_and_remote_execution_fee: Option, + ) -> Result> { + let execution_cost = + as frame_support::weights::WeightToFee>::weight_to_fee( + &RemoteKeysExecutionWeight::get(), + ); + + rc_client::XCMSender::< + xcm_config::XcmRouter, + RelayLocation, + rc_client::KeysMessage, + KeysMessageToXcm, + >::send_with_fees::< + xcm_executor::XcmExecutor, + RuntimeCall, + AccountId, + rc_client::AccountId32ToLocation, + Self::Balance, + >( + rc_client::KeysMessage::set_keys(stash.clone(), keys), + stash, + max_delivery_and_remote_execution_fee, + execution_cost, + ) + } + + fn purge_keys( + stash: Self::AccountId, + max_delivery_and_remote_execution_fee: Option, + ) -> Result> { + let execution_cost = + as frame_support::weights::WeightToFee>::weight_to_fee( + &RemoteKeysExecutionWeight::get(), + ); + + rc_client::XCMSender::< + xcm_config::XcmRouter, + RelayLocation, + rc_client::KeysMessage, + KeysMessageToXcm, + >::send_with_fees::< + xcm_executor::XcmExecutor, + RuntimeCall, + AccountId, + rc_client::AccountId32ToLocation, + Self::Balance, + >( + rc_client::KeysMessage::purge_keys(stash.clone()), + stash, + max_delivery_and_remote_execution_fee, + execution_cost, + ) + } } impl frame_system::offchain::CreateTransactionBase for Runtime @@ -581,7 +692,7 @@ impl InitiateStakingAsync { impl frame_support::traits::OnRuntimeUpgrade for InitiateStakingAsync { fn on_runtime_upgrade() -> Weight { if !Self::needs_init() { - return ::DbWeight::get().writes(1) + return ::DbWeight::get().writes(1); } use pallet_election_provider_multi_block::verifier::Verifier; // set parity staking miner as the invulnerable submitter in `multi-block`. @@ -594,16 +705,25 @@ impl frame_support::traits::OnRuntimeUpgrade for InitiateStakingAsync { // Set the minimum score for the election, as per the Polkadot RC state. // - // This value is set from block 27,730,872 of Polkadot RC. + // These values are created using script: + // + // https://github.com/paritytech/paseo-scripts/blob/master/src/services/election_score_stats.ts + // + // At https://paseo.subscan.io/block/28207264. + // + // Note: the script looks at the last 30 elections, gets their average, and calculates 70% + // threshold thereof. + // // Recent election scores in Polkadot can be found on: // https://polkadot.subscan.io/event?page=1&time_dimension=date&module=electionprovidermultiphase&event_id=electionfinalized // - // The last example, at block [27721215](https://polkadot.subscan.io/event/27721215-0) being: + // The last example, at block [27721215](https://paseo.subscan.io/event/27721215-0) + // being: // - // * minimal_stake: 10907549130714057 (1.28x the minimum) - // * sum_stake: 8028519336725652293 (2.44x the minimum) - // * sum_stake_squared: 108358993218278434700023844467997545 (0.4 the minimum, the lower the - // better) + // * minimal_stake: 10907549130714057 (1.38x the minimum) + // * sum_stake: 8028519336725652293 (1.49x the minimum) + // * sum_stake_squared: 108358993218278434700023844467997545 (0.57 the minimum, the lower + // the better) let minimum_score = sp_npos_elections::ElectionScore { minimal_stake: 8474057820699941, sum_stake: 3276970719352749444, @@ -629,13 +749,14 @@ mod tests { use paseo_runtime_constants::time::YEARS as RC_YEARS; use sp_runtime::{Perbill, Percent}; use sp_weights::constants::{WEIGHT_PROOF_SIZE_PER_KB, WEIGHT_REF_TIME_PER_MILLIS}; - // TODO: in the future, make these tests use remote-ext and increase their longevity. const MILLISECONDS_PER_DAY: u64 = 24 * 60 * 60 * 1000; const APPROX_PRE_CAP_STAKING: Balance = 279_477 * UNITS; const APPROX_PRE_CAP_TREASURY: Balance = 49_320 * UNITS; const APPROX_PRE_CAP_TOTAL: Balance = APPROX_PRE_CAP_STAKING + APPROX_PRE_CAP_TREASURY; + // TODO: in the future, make these tests use remote-ext and increase their longevity. + #[test] fn inflation_sanity_check() { use pallet_staking_async::EraPayout as _; @@ -1242,7 +1363,7 @@ mod tests { "export terminal", ::WeightInfo::export_terminal(), ::BlockWeights::get().max_block, - Some(Percent::from_percent(95)), // TODO: reduce to 75 once re-benchmarked. + Some(Percent::from_percent(75)), ); } diff --git a/system-parachains/asset-hub-paseo/src/treasury.rs b/system-parachains/asset-hub-paseo/src/treasury.rs index c424d07d4..0eea6e4b3 100644 --- a/system-parachains/asset-hub-paseo/src/treasury.rs +++ b/system-parachains/asset-hub-paseo/src/treasury.rs @@ -13,9 +13,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::*; -use frame_support::traits::{tokens::UnityOrOuterConversion, FromContains}; -use parachains_common::pay::VersionedLocatableAccount; +use crate::{governance::Treasurer, *}; +use frame_support::traits::{ + fungible::HoldConsideration, tokens::UnityOrOuterConversion, FromContains, +}; +use parachains_common::pay::{AccountIdToLocalLocation, LocalPay, VersionedLocatableAccount}; use polkadot_runtime_common::impls::{ContainsParts, VersionedLocatableAsset}; parameter_types! { @@ -28,7 +30,7 @@ parameter_types! { pub TreasuryAccount: AccountId = Treasury::account_id(); } -pub type TreasuryPaymaster = system_parachains_common::pay::LocalPay< +pub type TreasuryPaymaster = parachains_common::pay::LocalPay< NativeAndAssets, TreasuryAccount, xcm_config::LocationToAccountId, @@ -53,7 +55,7 @@ impl pallet_treasury::Config for Runtime { type BalanceConverter = AssetRateWithNative; type PayoutPeriod = PayoutSpendPeriod; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = system_parachains_common::pay::benchmarks::LocalPayArguments< + type BenchmarkHelper = parachains_common::pay::benchmarks::LocalPayArguments< xcm_config::TrustBackedAssetsPalletIndex, >; type BlockNumberProvider = RelaychainDataProvider; @@ -102,6 +104,60 @@ impl pallet_child_bounties::Config for Runtime { type WeightInfo = weights::pallet_child_bounties::WeightInfo; } +parameter_types! { + pub const MultiAssetCuratorHoldReason: RuntimeHoldReason = + RuntimeHoldReason::MultiAssetBounties(pallet_multi_asset_bounties::HoldReason::CuratorDeposit); +} + +impl pallet_multi_asset_bounties::Config for Runtime { + type Balance = Balance; + type RejectOrigin = EitherOfDiverse, Treasurer>; + type SpendOrigin = TreasurySpender; + type AssetKind = VersionedLocatableAsset; + type Beneficiary = VersionedLocatableAccount; + type BeneficiaryLookup = IdentityLookup; + type BountyValueMinimum = BountyValueMinimum; + type ChildBountyValueMinimum = ChildBountyValueMinimum; + type MaxActiveChildBountyCount = MaxActiveChildBountyCount; + type WeightInfo = weights::pallet_multi_asset_bounties::WeightInfo; + type FundingSource = pallet_multi_asset_bounties::PalletIdAsFundingSource< + TreasuryPalletId, + Runtime, + AccountIdToLocalLocation, + >; + type BountySource = + system_parachains_common::multi_asset_bounty_sources::MultiAssetBountySourceFromPalletId< + TreasuryPalletId, + Runtime, + AccountIdToLocalLocation, + >; + type ChildBountySource = + system_parachains_common::multi_asset_bounty_sources::MultiAssetChildBountySourceFromPalletId< + TreasuryPalletId, + Runtime, + AccountIdToLocalLocation, + >; + type Paymaster = LocalPay; + type BalanceConverter = AssetRateWithNative; + type Preimages = Preimage; + type Consideration = HoldConsideration< + AccountId, + Balances, + MultiAssetCuratorHoldReason, + pallet_multi_asset_bounties::CuratorDepositAmount< + CuratorDepositMultiplier, + CuratorDepositMin, + CuratorDepositMax, + Balance, + >, + Balance, + >; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = parachains_common::pay::benchmarks::LocalPayWithSourceArguments< + xcm_config::TrustBackedAssetsPalletIndex, + >; +} + /// The [frame_support::traits::tokens::ConversionFromAssetBalance] implementation provided by the /// `AssetRate` pallet instance. /// diff --git a/system-parachains/asset-hub-paseo/src/weights/cumulus_pallet_xcmp_queue.rs b/system-parachains/asset-hub-paseo/src/weights/cumulus_pallet_xcmp_queue.rs index 07a67f185..a319f2d0d 100644 --- a/system-parachains/asset-hub-paseo/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/system-parachains/asset-hub-paseo/src/weights/cumulus_pallet_xcmp_queue.rs @@ -179,7 +179,7 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - fn take_first_concatenated_xcm() -> Weight { + fn take_first_concatenated_xcm(_n: u32) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` diff --git a/system-parachains/asset-hub-paseo/src/weights/inmemorydb_weights.rs b/system-parachains/asset-hub-paseo/src/weights/inmemorydb_weights.rs new file mode 100644 index 000000000..0c67870bf --- /dev/null +++ b/system-parachains/asset-hub-paseo/src/weights/inmemorydb_weights.rs @@ -0,0 +1,108 @@ +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 49.1.0 +//! DATE: 2025-09-10 (Y/M/D) +//! HOSTNAME: `versi-developer-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! +//! DATABASE: `InMemoryDb`, RUNTIME: `Paseo Asset Hub` +//! BLOCK-NUM: `BlockId::Number(9640792)` +//! SKIP-WRITE: `false`, SKIP-READ: `false`, WARMUPS: `1` +//! STATE-VERSION: `V1`, STATE-CACHE-SIZE: `` +//! WEIGHT-PATH: `` +//! METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0` + +// Executed Command: +// ./target/production/paseo-parachain +// benchmark +// storage +// --warmups +// 1 +// --state-version +// 1 +// --base-path +// /opt/local-ssd/paseo-asset-hub/ +// --chain +// cumulus/paseo-parachain/chain-specs/asset-hub-paseo.json +// --detailed-log-output +// --enable-trie-cache +// --trie-cache-size +// 10737418240 +// --batch-size +// 10000 +// --mode +// validate-block +// --validate-block-rounds +// 100 + +/// Storage DB weights for the `Paseo Asset Hub` runtime and `InMemoryDb`. +pub mod constants { + use frame_support::weights::constants; + use sp_core::parameter_types; + use sp_weights::RuntimeDbWeight; + + parameter_types! { + /// `InMemoryDb` weights are measured in the context of the validation functions. + /// To avoid submitting overweight blocks to the relay chain this is the configuration + /// parachains should use. + pub const InMemoryDbWeight: RuntimeDbWeight = RuntimeDbWeight { + // Time to read one storage item. + // Calculated by multiplying the *Average* of all values with `1.0` and adding `0`. + // + // Stats nanoseconds: + // Min, Max: 13_036, 14_636 + // Average: 13_701 + // Median: 13_739 + // Std-Dev: 327.35 + // + // Percentiles nanoseconds: + // 99th: 14_322 + // 95th: 14_185 + // 75th: 13_962 + read: 13_701 * constants::WEIGHT_REF_TIME_PER_NANOS, + + // Time to write one storage item. + // Calculated by multiplying the *Average* of all values with `1.0` and adding `0`. + // + // Stats nanoseconds: + // Min, Max: 31_957, 34_238 + // Average: 33_060 + // Median: 33_048 + // Std-Dev: 230.45 + // + // Percentiles nanoseconds: + // 99th: 33_927 + // 95th: 33_440 + // 75th: 33_157 + write: 33_060 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::InMemoryDbWeight as W; + use sp_weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn bound() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/system-parachains/asset-hub-paseo/src/weights/mod.rs b/system-parachains/asset-hub-paseo/src/weights/mod.rs index 5d02c5ab0..9954b55a2 100644 --- a/system-parachains/asset-hub-paseo/src/weights/mod.rs +++ b/system-parachains/asset-hub-paseo/src/weights/mod.rs @@ -42,6 +42,7 @@ pub mod pallet_election_provider_multi_block_verifier; pub mod pallet_indices; pub mod pallet_message_queue; pub mod pallet_migrations; +pub mod pallet_multi_asset_bounties; pub mod pallet_multisig; pub mod pallet_nfts; pub mod pallet_parameters; @@ -51,6 +52,8 @@ pub mod pallet_referenda; pub mod pallet_scheduler; pub mod pallet_session; pub mod pallet_staking_async; +pub mod pallet_staking_async_rc_client; +pub mod pallet_sudo; pub mod pallet_timestamp; pub mod pallet_transaction_payment; pub mod pallet_treasury; diff --git a/system-parachains/asset-hub-paseo/src/weights/pallet_assets_foreign.rs b/system-parachains/asset-hub-paseo/src/weights/pallet_assets_foreign.rs index 8b9a34faf..07476df4e 100644 --- a/system-parachains/asset-hub-paseo/src/weights/pallet_assets_foreign.rs +++ b/system-parachains/asset-hub-paseo/src/weights/pallet_assets_foreign.rs @@ -570,4 +570,12 @@ impl pallet_assets::WeightInfo for WeightInfo { .saturating_add(Weight::from_parts(0, 4211)) .saturating_add(T::DbWeight::get().reads(1)) } + fn set_reserves(_n: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 0_000 picoseconds. + Weight::from_parts(0, 0) + .saturating_add(Weight::from_parts(0, 0)) + } } diff --git a/system-parachains/asset-hub-paseo/src/weights/pallet_assets_local.rs b/system-parachains/asset-hub-paseo/src/weights/pallet_assets_local.rs index 70421894c..69c1cbf63 100644 --- a/system-parachains/asset-hub-paseo/src/weights/pallet_assets_local.rs +++ b/system-parachains/asset-hub-paseo/src/weights/pallet_assets_local.rs @@ -566,4 +566,12 @@ impl pallet_assets::WeightInfo for WeightInfo { .saturating_add(Weight::from_parts(0, 3613)) .saturating_add(T::DbWeight::get().reads(1)) } + fn set_reserves(_n: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 0_000 picoseconds. + Weight::from_parts(0, 0) + .saturating_add(Weight::from_parts(0, 0)) + } } diff --git a/system-parachains/asset-hub-paseo/src/weights/pallet_assets_pool.rs b/system-parachains/asset-hub-paseo/src/weights/pallet_assets_pool.rs index 5b52187a9..72dfc914a 100644 --- a/system-parachains/asset-hub-paseo/src/weights/pallet_assets_pool.rs +++ b/system-parachains/asset-hub-paseo/src/weights/pallet_assets_pool.rs @@ -560,4 +560,12 @@ impl pallet_assets::WeightInfo for WeightInfo { .saturating_add(Weight::from_parts(0, 3613)) .saturating_add(T::DbWeight::get().reads(1)) } + fn set_reserves(_n: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 0_000 picoseconds. + Weight::from_parts(0, 0) + .saturating_add(Weight::from_parts(0, 0)) + } } diff --git a/system-parachains/asset-hub-paseo/src/weights/pallet_multi_asset_bounties.rs b/system-parachains/asset-hub-paseo/src/weights/pallet_multi_asset_bounties.rs new file mode 100644 index 000000000..735405b28 --- /dev/null +++ b/system-parachains/asset-hub-paseo/src/weights/pallet_multi_asset_bounties.rs @@ -0,0 +1,367 @@ +// Copyright (C) Parity Technologies and the various Paseo contributors, see Contributions.md +// for a list of specific contributors. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Autogenerated weights for `pallet_multi_asset_bounties` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 53.0.0 +//! DATE: 2026-02-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `df580984f9e7`, CPU: `QEMU Virtual CPU version 2.5+` +//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024 + +// Executed Command: +// frame-omni-bencher +// v1 +// benchmark +// pallet +// --extrinsic=* +// --runtime=target/production/wbuild/asset-hub-paseo-runtime/asset_hub_paseo_runtime.wasm +// --pallet=pallet_multi_asset_bounties +// --header=/_work/ibp-ch/runtimes/runtimes/.github/scripts/cmd/file_header.txt +// --output=./system-parachains/asset-hubs/asset-hub-paseo/src/weights +// --wasm-execution=compiled +// --steps=50 +// --repeat=20 +// --heap-pages=4096 + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_multi_asset_bounties`. +pub struct WeightInfo(PhantomData); +impl pallet_multi_asset_bounties::WeightInfo for WeightInfo { + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:0) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(1238), added: 3713, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::BountyCount` (r:1 w:1) + /// Proof: `MultiAssetBounties::BountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::Bounties` (r:0 w:1) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + fn fund_bounty() -> Weight { + // Proof Size summary in bytes: + // Measured: `2541` + // Estimated: `6208` + // Minimum execution time: 97_570_000 picoseconds. + Weight::from_parts(100_450_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(8)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:0) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(1238), added: 3713, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBountiesPerParent` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBountiesPerParent` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBountiesValuePerParent` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBountiesValuePerParent` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::TotalChildBountiesPerParent` (r:1 w:1) + /// Proof: `MultiAssetBounties::TotalChildBountiesPerParent` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:0 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + fn fund_child_bounty() -> Weight { + // Proof Size summary in bytes: + // Measured: `1568` + // Estimated: `6208` + // Minimum execution time: 106_929_000 picoseconds. + Weight::from_parts(108_949_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(11)) + .saturating_add(T::DbWeight::get().writes(9)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:0) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(1238), added: 3713, mode: `MaxEncodedLen`) + fn propose_curator_parent_bounty() -> Weight { + // Proof Size summary in bytes: + // Measured: `307` + // Estimated: `5978` + // Minimum execution time: 27_140_000 picoseconds. + Weight::from_parts(28_280_000, 0) + .saturating_add(Weight::from_parts(0, 5978)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + fn propose_curator_child_bounty() -> Weight { + // Proof Size summary in bytes: + // Measured: `468` + // Estimated: `5978` + // Minimum execution time: 27_131_000 picoseconds. + Weight::from_parts(28_109_000, 0) + .saturating_add(Weight::from_parts(0, 5978)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + /// Storage: `AssetRate::ConversionRateToNative` (r:1 w:0) + /// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(1238), added: 3713, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(265), added: 2740, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::CuratorDeposit` (r:0 w:1) + /// Proof: `MultiAssetBounties::CuratorDeposit` (`max_values`: None, `max_size`: Some(41), added: 2516, mode: `MaxEncodedLen`) + fn accept_curator() -> Weight { + // Proof Size summary in bytes: + // Measured: `3473` + // Estimated: `5978` + // Minimum execution time: 95_098_000 picoseconds. + Weight::from_parts(96_369_000, 0) + .saturating_add(Weight::from_parts(0, 5978)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::CuratorDeposit` (r:1 w:1) + /// Proof: `MultiAssetBounties::CuratorDeposit` (`max_values`: None, `max_size`: Some(41), added: 2516, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(265), added: 2740, mode: `MaxEncodedLen`) + fn unassign_curator() -> Weight { + // Proof Size summary in bytes: + // Measured: `3497` + // Estimated: `5978` + // Minimum execution time: 72_769_000 picoseconds. + Weight::from_parts(76_090_000, 0) + .saturating_add(Weight::from_parts(0, 5978)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn award_bounty() -> Weight { + // Proof Size summary in bytes: + // Measured: `2903` + // Estimated: `6208` + // Minimum execution time: 96_230_000 picoseconds. + Weight::from_parts(97_620_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBountiesPerParent` (r:1 w:0) + /// Proof: `MultiAssetBounties::ChildBountiesPerParent` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn close_parent_bounty() -> Weight { + // Proof Size summary in bytes: + // Measured: `2602` + // Estimated: `6208` + // Minimum execution time: 89_599_000 picoseconds. + Weight::from_parts(97_529_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn close_child_bounty() -> Weight { + // Proof Size summary in bytes: + // Measured: `1801` + // Estimated: `6208` + // Minimum execution time: 87_189_000 picoseconds. + Weight::from_parts(89_649_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + fn check_status_funding() -> Weight { + // Proof Size summary in bytes: + // Measured: `510` + // Estimated: `5978` + // Minimum execution time: 27_750_000 picoseconds. + Weight::from_parts(28_949_000, 0) + .saturating_add(Weight::from_parts(0, 5978)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::CuratorDeposit` (r:1 w:1) + /// Proof: `MultiAssetBounties::CuratorDeposit` (`max_values`: None, `max_size`: Some(41), added: 2516, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(265), added: 2740, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBountiesValuePerParent` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBountiesValuePerParent` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBountiesPerParent` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBountiesPerParent` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + fn check_status_refund() -> Weight { + // Proof Size summary in bytes: + // Measured: `3631` + // Estimated: `5978` + // Minimum execution time: 98_080_000 picoseconds. + Weight::from_parts(100_650_000, 0) + .saturating_add(Weight::from_parts(0, 5978)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::CuratorDeposit` (r:1 w:1) + /// Proof: `MultiAssetBounties::CuratorDeposit` (`max_values`: None, `max_size`: Some(41), added: 2516, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(265), added: 2740, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBountiesPerParent` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBountiesPerParent` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + fn check_status_payout() -> Weight { + // Proof Size summary in bytes: + // Measured: `3654` + // Estimated: `5978` + // Minimum execution time: 95_468_000 picoseconds. + Weight::from_parts(98_090_000, 0) + .saturating_add(Weight::from_parts(0, 5978)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn retry_payment_funding() -> Weight { + // Proof Size summary in bytes: + // Measured: `2143` + // Estimated: `6208` + // Minimum execution time: 85_141_000 picoseconds. + Weight::from_parts(88_729_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn retry_payment_refund() -> Weight { + // Proof Size summary in bytes: + // Measured: `1803` + // Estimated: `6208` + // Minimum execution time: 84_570_000 picoseconds. + Weight::from_parts(85_859_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: `MultiAssetBounties::Bounties` (r:1 w:0) + /// Proof: `MultiAssetBounties::Bounties` (`max_values`: None, `max_size`: Some(2513), added: 4988, mode: `MaxEncodedLen`) + /// Storage: `MultiAssetBounties::ChildBounties` (r:1 w:1) + /// Proof: `MultiAssetBounties::ChildBounties` (`max_values`: None, `max_size`: Some(1323), added: 3798, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn retry_payment_payout() -> Weight { + // Proof Size summary in bytes: + // Measured: `2943` + // Estimated: `6208` + // Minimum execution time: 93_880_000 picoseconds. + Weight::from_parts(96_569_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(6)) + } +} diff --git a/system-parachains/asset-hub-paseo/src/weights/pallet_staking_async.rs b/system-parachains/asset-hub-paseo/src/weights/pallet_staking_async.rs index aed1ab6e4..4d2cce869 100644 --- a/system-parachains/asset-hub-paseo/src/weights/pallet_staking_async.rs +++ b/system-parachains/asset-hub-paseo/src/weights/pallet_staking_async.rs @@ -770,7 +770,7 @@ impl pallet_staking_async::WeightInfo for WeightInfo /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(229), added: 2704, mode: `MaxEncodedLen`) /// Storage: `AhMigrator::AhMigrationStage` (r:1 w:0) /// Proof: `AhMigrator::AhMigrationStage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) - fn apply_slash() -> Weight { + fn apply_slash(_s: u32) -> Weight { // Proof Size summary in bytes: // Measured: `994414` // Estimated: `1656954` @@ -984,13 +984,17 @@ impl pallet_staking_async::WeightInfo for WeightInfo .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: `Staking::ActiveEra` (r:1 w:0) - /// Proof: `Staking::ActiveEra` (`max_values`: Some(1), `max_size`: Some(13), added: 508, mode: `Measured`) - /// Storage: `Staking::EraPruningState` (r:1 w:1) - /// Proof: `Staking::EraPruningState` (`max_values`: None, `max_size`: Some(13), added: 2488, mode: `Measured`) - /// Storage: `Staking::ErasTotalStake` (r:0 w:1) - /// Proof: `Staking::ErasTotalStake` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `Measured`) - fn prune_era_total_stake() -> Weight { + fn prune_era_single_entry_cleanups() -> Weight { + // Proof Size summary in bytes: + // Measured: `743` + // Estimated: `4208` + // Minimum execution time: 53_049_000 picoseconds. + Weight::from_parts(65_833_000, 0) + .saturating_add(Weight::from_parts(0, 4208)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + fn prune_era_validator_slash_in_era(_s: u32) -> Weight { // Proof Size summary in bytes: // Measured: `743` // Estimated: `4208` diff --git a/system-parachains/asset-hub-paseo/src/weights/pallet_staking_async_rc_client.rs b/system-parachains/asset-hub-paseo/src/weights/pallet_staking_async_rc_client.rs new file mode 100644 index 000000000..8c0dcfa0f --- /dev/null +++ b/system-parachains/asset-hub-paseo/src/weights/pallet_staking_async_rc_client.rs @@ -0,0 +1,101 @@ +// Copyright (C) Parity Technologies and the various Paseo contributors, see Contributions.md +// for a list of specific contributors. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Autogenerated weights for `pallet_staking_async_rc_client` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 53.0.0 +//! DATE: 2026-02-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm1-3`, CPU: `Intel(R) Xeon(R) E-2388G CPU @ 3.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024 + +// Executed Command: +// frame-omni-bencher +// v1 +// benchmark +// pallet +// --extrinsic=* +// --runtime=target/production/wbuild/asset-hub-paseo-runtime/asset_hub_paseo_runtime.wasm +// --pallet=pallet_staking_async_rc_client +// --header=/opt/actions-runner/_work/runtimes/runtimes/.github/scripts/cmd/file_header.txt +// --output=./system-parachains/asset-hubs/asset-hub-paseo/src/weights +// --wasm-execution=compiled +// --steps=50 +// --repeat=20 +// --heap-pages=4096 + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_staking_async_rc_client`. +pub struct WeightInfo(PhantomData); +impl pallet_staking_async_rc_client::WeightInfo for WeightInfo { + /// Storage: `Staking::Validators` (r:1 w:0) + /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`) + /// Storage: `AhMigrator::AhMigrationStage` (r:1 w:0) + /// Proof: `AhMigrator::AhMigrationStage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `4518` + // Estimated: `7983` + // Minimum execution time: 114_732_000 picoseconds. + Weight::from_parts(118_197_000, 0) + .saturating_add(Weight::from_parts(0, 7983)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `AhMigrator::AhMigrationStage` (r:1 w:0) + /// Proof: `AhMigrator::AhMigrationStage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn purge_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `2667` + // Estimated: `6196` + // Minimum execution time: 101_750_000 picoseconds. + Weight::from_parts(105_138_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(3)) + } +} diff --git a/system-parachains/asset-hub-paseo/src/weights/pallet_sudo.rs b/system-parachains/asset-hub-paseo/src/weights/pallet_sudo.rs index 0dd66476f..142c88d0c 100644 --- a/system-parachains/asset-hub-paseo/src/weights/pallet_sudo.rs +++ b/system-parachains/asset-hub-paseo/src/weights/pallet_sudo.rs @@ -93,4 +93,15 @@ impl pallet_sudo::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `Sudo::Key` (r:1 w:0) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + fn check_only_sudo_account() -> Weight { + // Proof Size summary in bytes: + // Measured: `132` + // Estimated: `1517` + // Minimum execution time: 3_000_000 picoseconds. + Weight::from_parts(3_500_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) + } } diff --git a/system-parachains/asset-hub-paseo/src/xcm_config.rs b/system-parachains/asset-hub-paseo/src/xcm_config.rs index c011dcf3a..810540d24 100644 --- a/system-parachains/asset-hub-paseo/src/xcm_config.rs +++ b/system-parachains/asset-hub-paseo/src/xcm_config.rs @@ -25,7 +25,11 @@ use super::{ }; use alloc::{collections::BTreeSet, vec, vec::Vec}; use assets_common::{ - matching::{FromNetwork, FromSiblingParachain, IsForeignConcreteAsset, ParentLocation}, + matching::{ + FromNetwork, FromSiblingParachain, IsForeignConcreteAsset, + NonTeleportableAssetFromTrustedReserve, ParentLocation, + TeleportableAssetWithTrustedReserve, + }, TrustBackedAssetsAsLocation, }; use core::marker::PhantomData; @@ -311,26 +315,6 @@ impl Contains for AmbassadorEntities { } } -/// Location type to determine the Secretary Collective related -/// pallets for use in XCM. -pub struct SecretaryEntities; -impl Contains for SecretaryEntities { - fn contains(location: &Location) -> bool { - matches!( - location.unpack(), - ( - 1, - [ - Parachain(system_parachain::COLLECTIVES_ID), - PalletInstance( - collectives_polkadot_runtime_constants::SECRETARY_SALARY_PALLET_INDEX - ) - ] - ) - ) - } -} - pub struct ParentOrParentsPlurality; impl Contains for ParentOrParentsPlurality { fn contains(location: &Location) -> bool { @@ -367,7 +351,6 @@ pub type Barrier = TrailingSetTopicAsId< Equals, Equals, AmbassadorEntities, - SecretaryEntities, IsSiblingSystemParachain>, )>, // Subscriptions for version tracking are OK. @@ -389,17 +372,25 @@ pub type WaivedLocations = ( Equals, FellowshipEntities, AmbassadorEntities, - SecretaryEntities, LocalPlurality, ); +/// Asset Hub accepts incoming reserve transfers only for "Foreign Assets" and only from locations +/// explicitly set by the asset's owner. +pub type TrustedReserves = ( + IsForeignConcreteAsset< + NonTeleportableAssetFromTrustedReserve, + >, +); + /// Cases where a remote origin is accepted as trusted Teleporter for a given asset: /// /// - DOT with the parent Relay Chain and sibling system parachains; and -/// - Sibling parachains' assets from where they originate (as `ForeignCreators`). +/// - Sibling parachains' assets according to their configured trusted reserves (teleportable when +/// `Here` and `origin` are both trusted reserve locations). pub type TrustedTeleporters = ( ConcreteAssetFromSystem, - IsForeignConcreteAsset>>, + IsForeignConcreteAsset>, ); /// During migration we only allow teleports of foreign assets (not DOT). @@ -435,14 +426,7 @@ impl xcm_executor::Config for XcmConfig { type XcmRecorder = PolkadotXcm; type AssetTransactor = AssetTransactors; type OriginConverter = XcmOriginToTransactDispatchOrigin; - // Asset Hub trusts only particular, pre-configured bridged locations from a different consensus - // as reserve locations (we trust the Bridge Hub to relay the message that a reserve is being - // held). Asset Hub may _act_ as a reserve location for DOT and assets created - // under `pallet-assets`. Users must use teleport where allowed (e.g. DOT with the Relay Chain). - type IsReserve = ( - bridging::to_kusama::KusamaAssetFromAssetHubKusama, - bridging::to_ethereum::EthereumAssetFromEthereum, - ); + type IsReserve = TrustedReserves; type IsTeleporter = pallet_ah_migrator::xcm_config::TrustedTeleporters< crate::AhMigrator, TrustedTeleportersWhileMigrating, @@ -639,15 +623,6 @@ impl cumulus_pallet_xcm::Config for Runtime { type XcmExecutor = XcmExecutor; } -/// Simple conversion of `u32` into an `AssetId` for use in benchmarking. -pub struct XcmBenchmarkHelper; -#[cfg(feature = "runtime-benchmarks")] -impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { - fn create_asset_id_parameter(id: u32) -> Location { - Location::new(1, Parachain(id)) - } -} - /// All configuration related to bridging pub mod bridging { use super::*; @@ -784,7 +759,7 @@ pub mod bridging { pub mod to_ethereum { use super::*; - pub use bp_bridge_hub_paseo::snowbridge::EthereumNetwork; + pub use bp_bridge_hub_paseo::snowbridge::{EthereumLocation, EthereumNetwork}; use bp_bridge_hub_paseo::snowbridge::{ InboundQueuePalletInstance, InboundQueueV2PalletInstance, }; diff --git a/system-parachains/asset-hub-paseo/tests/snowbridge.rs b/system-parachains/asset-hub-paseo/tests/snowbridge.rs index 309ac4292..f3b1c1e48 100644 --- a/system-parachains/asset-hub-paseo/tests/snowbridge.rs +++ b/system-parachains/asset-hub-paseo/tests/snowbridge.rs @@ -60,7 +60,7 @@ fn network_export_table_works() { None, ), // From Ethereum with the Mainnet chain ID instead of Sepolia, not matched. - (Ethereum { chain_id: 1}, Here, None), + (Ethereum { chain_id: 1 }, Here, None), ]; for (network, remote_location, expected_result) in test_data { diff --git a/system-parachains/asset-hub-paseo/tests/tests.rs b/system-parachains/asset-hub-paseo/tests/tests.rs index 42f6e72b9..cbbaa3879 100644 --- a/system-parachains/asset-hub-paseo/tests/tests.rs +++ b/system-parachains/asset-hub-paseo/tests/tests.rs @@ -22,7 +22,7 @@ use asset_hub_paseo_runtime::{ bridging, CheckingAccount, DotLocation, LocationToAccountId, RelayChainLocation, StakingPot, TrustBackedAssetsPalletLocation, XcmConfig, }, - AllPalletsWithoutSystem, AssetDeposit, Assets, Balances, Block, ExistentialDeposit, + AllPalletsWithoutSystem, AssetDeposit, Assets, Balances, Block, Dap, ExistentialDeposit, ForeignAssets, ForeignAssetsInstance, MetadataDepositBase, MetadataDepositPerByte, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, SessionKeys, ToKusamaXcmRouterInstance, TrustBackedAssetsInstance, XcmpQueue, SLOT_DURATION, @@ -35,6 +35,7 @@ use asset_test_utils::{ }, CollatorSessionKey, CollatorSessionKeys, ExtBuilder, GovernanceOrigin, SlotDurations, }; +use assets_common::local_and_foreign_assets::ForeignAssetReserveData; use codec::{Decode, Encode}; use frame_support::{ assert_err, assert_ok, @@ -66,7 +67,6 @@ frame_support::parameter_types! { type AssetIdForTrustBackedAssetsConvertLatest = assets_common::AssetIdForTrustBackedAssetsConvert; - type RuntimeHelper = asset_test_utils::RuntimeHelper; type WeightToFee = PaseoWeightToFee; @@ -403,10 +403,19 @@ fn receive_reserve_asset_deposited_ksm_from_asset_hub_kusama_fees_paid_by_pool_s let staking_pot = StakingPot::get(); let foreign_asset_id_location_v5 = Location::new(2, [GlobalConsensus(NetworkId::Kusama)]); + let reserve_location = Location::new(2, [GlobalConsensus(NetworkId::Kusama), Parachain(1000)]); + let foreign_asset_reserve_data = + ForeignAssetReserveData { reserve: reserve_location, teleportable: false }; let foreign_asset_id_minimum_balance = 1_000_000_000; // sovereign account as foreign asset owner (can be whoever for this scenario) let foreign_asset_owner = LocationToAccountId::convert_location(&Location::parent()).unwrap(); let foreign_asset_create_params = ( + foreign_asset_owner.clone(), + foreign_asset_id_location_v5.clone(), + foreign_asset_reserve_data, + foreign_asset_id_minimum_balance, + ); + let pool_params = ( foreign_asset_owner, foreign_asset_id_location_v5.clone(), foreign_asset_id_minimum_balance, @@ -423,14 +432,14 @@ fn receive_reserve_asset_deposited_ksm_from_asset_hub_kusama_fees_paid_by_pool_s AccountId::from([73; 32]), block_author_account.clone(), // receiving KSMs - foreign_asset_create_params.clone(), + foreign_asset_create_params, 1000000000000, || { // setup pool for paying fees to touch `SwapFirstAssetTrader` asset_test_utils::test_cases::setup_pool_for_paying_fees_with_foreign_assets::< Runtime, RuntimeOrigin, - >(ExistentialDeposit::get(), foreign_asset_create_params); + >(ExistentialDeposit::get(), pool_params); // staking pot account for collecting local native fees from `BuyExecution` let _ = Balances::force_set_balance( RuntimeOrigin::root(), @@ -442,7 +451,7 @@ fn receive_reserve_asset_deposited_ksm_from_asset_hub_kusama_fees_paid_by_pool_s }, ( [PalletInstance( - bp_bridge_hub_paseo::WITH_BRIDGE_POLKADOT_TO_KUSAMA_MESSAGES_PALLET_INDEX, + bp_bridge_hub_paseo::WITH_BRIDGE_POLKAPAS_TO_KUSAMA_MESSAGES_PALLET_INDEX, )] .into(), GlobalConsensus(Kusama), @@ -1075,3 +1084,238 @@ fn staking_proxy_can_manage_staking_operator() { ); }); } + +/// Verifies StakingOperator filter allows validator operations and session key management, +/// but forbids fund management. +#[test] +fn staking_operator_filter_allows_validator_ops_and_session_keys() { + use asset_hub_paseo_runtime::ProxyType; + use frame_support::traits::InstanceFilter; + use pallet_staking_async::{Call as StakingCall, RewardDestination, ValidatorPrefs}; + use pallet_staking_async_rc_client::Call as RcClientCall; + + let operator = ProxyType::StakingOperator; + + // StakingOperator can perform validator operations + assert!(operator + .filter(&RuntimeCall::Staking(StakingCall::validate { prefs: ValidatorPrefs::default() }))); + assert!(operator.filter(&RuntimeCall::Staking(StakingCall::chill {}))); + assert!(operator.filter(&RuntimeCall::Staking(StakingCall::kick { who: vec![] }))); + + // StakingOperator can manage session keys + assert!(operator.filter(&RuntimeCall::StakingRcClient(RcClientCall::set_keys { + keys: Default::default(), + max_delivery_and_remote_execution_fee: None, + }))); + assert!(operator.filter(&RuntimeCall::StakingRcClient(RcClientCall::purge_keys { + max_delivery_and_remote_execution_fee: None, + }))); + + // StakingOperator can batch operations + assert!(operator.filter(&RuntimeCall::Utility(pallet_utility::Call::batch { calls: vec![] }))); + assert!( + operator.filter(&RuntimeCall::Utility(pallet_utility::Call::batch_all { calls: vec![] })) + ); + assert!( + operator.filter(&RuntimeCall::Utility(pallet_utility::Call::force_batch { calls: vec![] })) + ); + + // StakingOperator cannot use other utility calls + assert!(!operator.filter(&RuntimeCall::Utility(pallet_utility::Call::as_derivative { + index: 0, + call: Box::new(RuntimeCall::System(frame_system::Call::remark { remark: vec![] })), + }))); + assert!(!operator.filter(&RuntimeCall::Utility(pallet_utility::Call::dispatch_as { + as_origin: Box::new(asset_hub_paseo_runtime::OriginCaller::system( + frame_system::RawOrigin::Root, + )), + call: Box::new(RuntimeCall::System(frame_system::Call::remark { remark: vec![] })), + }))); + assert!(!operator.filter(&RuntimeCall::Utility(pallet_utility::Call::with_weight { + call: Box::new(RuntimeCall::System(frame_system::Call::remark { remark: vec![] })), + weight: Default::default(), + }))); + + // StakingOperator cannot manage funds or nominations + assert!(!operator.filter(&RuntimeCall::Staking(StakingCall::bond { + value: 100, + payee: RewardDestination::Staked + }))); + assert!(!operator.filter(&RuntimeCall::Staking(StakingCall::unbond { value: 100 }))); + assert!(!operator.filter(&RuntimeCall::Staking(StakingCall::nominate { targets: vec![] }))); + assert!(!operator + .filter(&RuntimeCall::Staking(StakingCall::update_payee { controller: [0u8; 32].into() }))); +} + +/// Test that a pure proxy stash can delegate to a StakingOperator +/// who can then call validate, chill, and manage session keys. +#[test] +fn pure_proxy_stash_can_delegate_to_staking_operator() { + use asset_hub_paseo_runtime::ProxyType; + + let controller: AccountId = ALICE.into(); + let operator: AccountId = [2u8; 32].into(); + + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + use frame_support::traits::fungible::Mutate; + + // GIVEN: fund controller and operator + assert_ok!(Balances::mint_into(&controller, 100 * UNITS)); + assert_ok!(Balances::mint_into(&operator, 100 * UNITS)); + + // WHEN: controller creates a pure proxy stash with Staking proxy type + assert_ok!(asset_hub_paseo_runtime::Proxy::create_pure( + RuntimeOrigin::signed(controller.clone()), + ProxyType::Staking, + 0, + 0 + )); + let pure_stash = asset_hub_paseo_runtime::Proxy::pure_account( + &controller, + &ProxyType::Staking, + 0, + None, + ); + + // Fund the pure proxy stash + assert_ok!(Balances::mint_into(&pure_stash, 100 * UNITS)); + + // WHEN: controller (via Staking proxy) adds StakingOperator proxy for the operator + let add_operator_call = RuntimeCall::Proxy(pallet_proxy::Call::add_proxy { + delegate: operator.clone().into(), + proxy_type: ProxyType::StakingOperator, + delay: 0, + }); + assert_ok!(asset_hub_paseo_runtime::Proxy::proxy( + RuntimeOrigin::signed(controller.clone()), + pure_stash.clone().into(), + None, + Box::new(add_operator_call), + )); + + // THEN: operator can call chill on behalf of pure proxy stash + let chill_call = RuntimeCall::Staking(pallet_staking_async::Call::chill {}); + assert_ok!(asset_hub_paseo_runtime::Proxy::proxy( + RuntimeOrigin::signed(operator.clone()), + pure_stash.clone().into(), + None, + Box::new(chill_call), + )); + + // THEN: operator can call validate on behalf of pure proxy stash + let validate_call = RuntimeCall::Staking(pallet_staking_async::Call::validate { + prefs: Default::default(), + }); + assert_ok!(asset_hub_paseo_runtime::Proxy::proxy( + RuntimeOrigin::signed(operator.clone()), + pure_stash.clone().into(), + None, + Box::new(validate_call), + )); + + // THEN: operator can call purge_keys (session key management on AssetHub) + let purge_keys_call = + RuntimeCall::StakingRcClient(pallet_staking_async_rc_client::Call::purge_keys { + max_delivery_and_remote_execution_fee: None, + }); + assert_ok!(asset_hub_paseo_runtime::Proxy::proxy( + RuntimeOrigin::signed(operator.clone()), + pure_stash.clone().into(), + None, + Box::new(purge_keys_call), + )); + + // THEN: operator CANNOT call bond (fund management is forbidden) + let bond_call = RuntimeCall::Staking(pallet_staking_async::Call::bond { + value: 10 * UNITS, + payee: pallet_staking_async::RewardDestination::Staked, + }); + assert_ok!(asset_hub_paseo_runtime::Proxy::proxy( + RuntimeOrigin::signed(operator.clone()), + pure_stash.clone().into(), + None, + Box::new(bond_call), + )); + // Check that the proxied call failed due to filter (CallFiltered error) + frame_system::Pallet::::assert_last_event( + pallet_proxy::Event::ProxyExecuted { + result: Err(frame_system::Error::::CallFiltered.into()), + } + .into(), + ); + }); +} + +#[test] +fn slash_goes_to_dap_buffer_account() { + use asset_hub_paseo_runtime::staking::DapPalletId; + use frame_support::{ + sp_runtime::traits::AccountIdConversion, + traits::{ + fungible::{Balanced, Inspect}, + OnUnbalanced, + }, + }; + use sp_runtime::BuildStorage; + + let dap_buffer: AccountId = DapPalletId::get().into_account_truncating(); + + let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); + pallet_balances::GenesisConfig:: { + balances: vec![ + (AccountId::from(ALICE), 1_000 * UNITS), + (dap_buffer.clone(), ExistentialDeposit::get()), + ], + ..Default::default() + } + .assimilate_storage(&mut t) + .unwrap(); + + sp_io::TestExternalities::from(t).execute_with(|| { + let buffer = dap_buffer.clone(); + let ed = >::minimum_balance(); + + // Given: buffer account exists and has ED + assert!(frame_system::Pallet::::account_exists(&buffer)); + assert_eq!(Balances::free_balance(&buffer), ed); + + // When: a slash occurs (simulating staking slash via OnUnbalanced) + let slash_amount = 100 * UNITS; + let credit = >::issue(slash_amount); + Dap::on_unbalanced(credit); + + // Then: buffer has ED + slash amount + assert_eq!(Balances::free_balance(&buffer), ed + slash_amount); + + // When: another slash occurs + let slash_amount_2 = 50 * UNITS; + let credit2 = >::issue(slash_amount_2); + Dap::on_unbalanced(credit2); + + // Then: buffer accumulates both slashes + assert_eq!(Balances::free_balance(&buffer), ed + slash_amount + slash_amount_2); + }); +} + +#[test] +fn session_keys_are_compatible_between_ah_and_rc() { + use asset_hub_paseo_runtime::staking::RelayChainSessionKeys; + use sp_runtime::traits::OpaqueKeys; + + // Verify the key type IDs match in order. + // This ensures that when keys are encoded on AssetHub and decoded on Paseo (or vice versa), + // they map to the correct key types. + assert_eq!( + RelayChainSessionKeys::key_ids(), + paseo_runtime::SessionKeys::key_ids(), + "Session key type IDs must match between AssetHub and Paseo" + ); +} diff --git a/system-parachains/bridge-hub-paseo/Cargo.toml b/system-parachains/bridge-hub-paseo/Cargo.toml index 144a9f8e3..44ff047c8 100644 --- a/system-parachains/bridge-hub-paseo/Cargo.toml +++ b/system-parachains/bridge-hub-paseo/Cargo.toml @@ -125,10 +125,14 @@ snowbridge-outbound-queue-runtime-api = { workspace = true } snowbridge-outbound-queue-v2-runtime-api = { workspace = true } snowbridge-inbound-queue-primitives = { workspace = true } snowbridge-runtime-common = { workspace = true } +snowbridge-pallet-inbound-queue-fixtures = { workspace = true, optional = true } +snowbridge-pallet-inbound-queue-v2-fixtures = { workspace = true, optional = true } sp-debug-derive = { workspace = true } [dev-dependencies] +# TODO: Remove when https://github.com/paritytech/paseo-sdk/issues/10962 is closed +assets-common = { workspace = true } bridge-hub-test-utils = { workspace = true } bridge-runtime-common = { features = [ "integrity-test", @@ -142,6 +146,7 @@ parachains-runtimes-test-utils = { workspace = true } [features] default = ["std"] std = [ + "assets-common/std", "bp-asset-hub-kusama/std", "bp-asset-hub-paseo/std", "bp-bridge-hub-kusama/std", @@ -214,6 +219,8 @@ std = [ "snowbridge-outbound-queue-runtime-api/std", "snowbridge-outbound-queue-v2-runtime-api/std", "snowbridge-pallet-ethereum-client/std", + "snowbridge-pallet-inbound-queue-fixtures?/std", + "snowbridge-pallet-inbound-queue-v2-fixtures?/std", "snowbridge-pallet-inbound-queue-v2/std", "snowbridge-pallet-inbound-queue/std", "snowbridge-pallet-outbound-queue-v2/std", @@ -247,6 +254,7 @@ std = [ ] runtime-benchmarks = [ + "assets-common/runtime-benchmarks", "bp-asset-hub-kusama/runtime-benchmarks", "bp-asset-hub-paseo/runtime-benchmarks", "bp-bridge-hub-kusama/runtime-benchmarks", @@ -290,6 +298,10 @@ runtime-benchmarks = [ "snowbridge-inbound-queue-primitives/runtime-benchmarks", "snowbridge-pallet-ethereum-client-fixtures/runtime-benchmarks", "snowbridge-pallet-ethereum-client/runtime-benchmarks", + "snowbridge-pallet-inbound-queue-fixtures", + "snowbridge-pallet-inbound-queue-fixtures?/runtime-benchmarks", + "snowbridge-pallet-inbound-queue-v2-fixtures", + "snowbridge-pallet-inbound-queue-v2-fixtures?/runtime-benchmarks", "snowbridge-pallet-inbound-queue-v2/runtime-benchmarks", "snowbridge-pallet-inbound-queue/runtime-benchmarks", "snowbridge-pallet-outbound-queue-v2/runtime-benchmarks", @@ -307,6 +319,7 @@ runtime-benchmarks = [ ] try-runtime = [ + "assets-common/try-runtime", "cumulus-pallet-aura-ext/try-runtime", "cumulus-pallet-parachain-system/try-runtime", "cumulus-pallet-weight-reclaim/try-runtime", @@ -337,6 +350,7 @@ try-runtime = [ "parachain-info/try-runtime", "parachains-common/try-runtime", "polkadot-runtime-common/try-runtime", + "snowbridge-inbound-queue-primitives/try-runtime", "snowbridge-pallet-ethereum-client/try-runtime", "snowbridge-pallet-inbound-queue-v2/try-runtime", "snowbridge-pallet-inbound-queue/try-runtime", diff --git a/system-parachains/bridge-hub-paseo/primitives/src/lib.rs b/system-parachains/bridge-hub-paseo/primitives/src/lib.rs index 9523057b3..3298f5c64 100644 --- a/system-parachains/bridge-hub-paseo/primitives/src/lib.rs +++ b/system-parachains/bridge-hub-paseo/primitives/src/lib.rs @@ -166,6 +166,8 @@ pub mod snowbridge { parameter_types! { /// Should match the `ForeignAssets::create` index on Asset Hub. pub const CreateAssetCall: [u8;2] = [53, 0]; + /// Should match the `ForeignAssets::set_reserves` index on Asset Hub. + pub const SetReservesCall: [u8;2] = [53, 33]; /// The pallet index of the Ethereum inbound queue pallet in the BridgeHub runtime. pub const InboundQueuePalletInstance: u8 = 80; /// The pallet index of the Ethereum inbound queue v2 pallet in the BridgeHub runtime. diff --git a/system-parachains/bridge-hub-paseo/src/bridge_to_ethereum_config.rs b/system-parachains/bridge-hub-paseo/src/bridge_to_ethereum_config.rs index 84a6f0257..6b647ae08 100644 --- a/system-parachains/bridge-hub-paseo/src/bridge_to_ethereum_config.rs +++ b/system-parachains/bridge-hub-paseo/src/bridge_to_ethereum_config.rs @@ -17,13 +17,14 @@ use crate::{ bridge_common_config::BridgeReward, xcm_config::{self, RelayNetwork, RelayTreasuryPalletAccount, RootLocation, UniversalLocation}, - Balances, BridgeRelayers, EthereumBeaconClient, EthereumInboundQueue, EthereumInboundQueueV2, - EthereumOutboundQueue, EthereumOutboundQueueV2, EthereumSystem, EthereumSystemV2, MessageQueue, - Runtime, RuntimeEvent, TransactionByteFee, + AggregateMessageOrigin, Balances, BridgeRelayers, EthereumBeaconClient, EthereumInboundQueue, + EthereumInboundQueueV2, EthereumOutboundQueue, EthereumOutboundQueueV2, EthereumSystem, + EthereumSystemV2, MessageQueue, Runtime, RuntimeEvent, TransactionByteFee, }; use bp_asset_hub_paseo::SystemFrontendPalletInstance; use bp_bridge_hub_paseo::snowbridge::{ - CreateAssetCall, InboundQueuePalletInstance, InboundQueueV2PalletInstance, Parameters, + CreateAssetCall as CreateAssetCallIndex, InboundQueuePalletInstance, + InboundQueueV2PalletInstance, Parameters, SetReservesCall, }; pub use bp_bridge_hub_paseo::snowbridge::{EthereumLocation, EthereumNetwork}; use frame_support::{parameter_types, traits::Contains, weights::ConstantMultiplier}; @@ -34,7 +35,7 @@ use parachains_common::{AccountId, Balance}; use paseo_runtime_constants::system_parachain::AssetHubParaId; use snowbridge_beacon_primitives::{Fork, ForkVersions}; use snowbridge_core::AllowSiblingsOnly; -use snowbridge_inbound_queue_primitives::v1::MessageToXcm; +use snowbridge_inbound_queue_primitives::{v1::MessageToXcm, v2::CreateAssetCallInfo}; use snowbridge_outbound_queue_primitives::{ v1::{ConstantGasMeter, EthereumBlobExporter}, v2::{ConstantGasMeter as ConstantGasMeterV2, EthereumBlobExporter as EthereumBlobExporterV2}, @@ -73,6 +74,12 @@ parameter_types! { pub InboundQueueV2Location: InteriorLocation = [PalletInstance(InboundQueueV2PalletInstance::get())].into(); pub const SnowbridgeReward: BridgeReward = BridgeReward::Snowbridge; pub SnowbridgeFrontendLocation: Location = Location::new(1, [Parachain(paseo_runtime_constants::system_parachain::ASSET_HUB_ID), PalletInstance(SystemFrontendPalletInstance::get())]); + pub CreateAssetCall: CreateAssetCallInfo = CreateAssetCallInfo { + create_call: CreateAssetCallIndex::get(), + deposit: bp_asset_hub_paseo::CreateForeignAssetDeposit::get(), + min_balance: 1, + set_reserves_call: SetReservesCall::get(), + }; } impl snowbridge_pallet_inbound_queue::Config for Runtime { @@ -88,7 +95,7 @@ impl snowbridge_pallet_inbound_queue::Config for Runtime { #[cfg(feature = "runtime-benchmarks")] type Helper = Runtime; type MessageConverter = MessageToXcm< - CreateAssetCall, + CreateAssetCallIndex, bp_asset_hub_paseo::CreateForeignAssetDeposit, InboundQueuePalletInstance, AccountId, @@ -120,14 +127,12 @@ impl snowbridge_pallet_inbound_queue_v2::Config for Runtime { type XcmExecutor = XcmExecutor; type MessageConverter = snowbridge_inbound_queue_primitives::v2::MessageToXcm< CreateAssetCall, - bp_asset_hub_paseo::CreateForeignAssetDeposit, EthereumNetwork, + RelayNetwork, + EthereumGatewayAddress, InboundQueueV2Location, + AssetHubParaId, EthereumSystem, - EthereumGatewayAddress, - EthereumUniversalLocation, - AssetHubFromEthereum, - AssetHubUniversalLocation, AccountId, >; type AccountToLocation = xcm_builder::AliasesIntoAccountId32< @@ -176,6 +181,8 @@ impl snowbridge_pallet_outbound_queue_v2::Config for Runtime { type RewardKind = BridgeReward; type DefaultRewardKind = SnowbridgeReward; type RewardPayment = BridgeRelayers; + type AggregateMessageOrigin = AggregateMessageOrigin; + type OnNewCommitment = (); #[cfg(feature = "runtime-benchmarks")] type Helper = Runtime; } @@ -302,8 +309,11 @@ pub mod benchmark_helpers { use frame_support::{parameter_types, traits::fungible}; use hex_literal::hex; use snowbridge_beacon_primitives::BeaconHeader; + use snowbridge_inbound_queue_primitives::EventFixture; use snowbridge_pallet_inbound_queue::BenchmarkHelper; + use snowbridge_pallet_inbound_queue_fixtures::register_token::make_register_token_message; use snowbridge_pallet_inbound_queue_v2::BenchmarkHelper as InboundQueueBenchmarkHelperV2; + use snowbridge_pallet_inbound_queue_v2_fixtures::register_token::make_register_token_message as make_register_token_message_v2; use snowbridge_pallet_outbound_queue_v2::BenchmarkHelper as OutboundQueueBenchmarkHelperV2; use sp_core::{H160, H256}; use xcm::latest::{Assets, Location, SendError, SendResult, SendXcm, Xcm, XcmHash}; @@ -316,44 +326,38 @@ pub mod benchmark_helpers { } impl BenchmarkHelper for Runtime { - fn initialize_storage(beacon_header: BeaconHeader, block_roots_root: H256) { - initialize_storage_for_benchmarks( - EthereumGatewayAddressV1::get(), - beacon_header, - block_roots_root, - ); + fn initialize_storage() -> EventFixture { + let message = make_register_token_message(); + EthereumBeaconClient::store_finalized_header( + message.finalized_header, + message.block_roots_root, + ) + .unwrap(); + EthereumGatewayAddress::set(&EthereumGatewayAddressV1::get()); + message } } impl InboundQueueBenchmarkHelperV2 for Runtime { - fn initialize_storage(beacon_header: BeaconHeader, block_roots_root: H256) { - initialize_storage_for_benchmarks( - EthereumGatewayAddressV2::get(), - beacon_header, - block_roots_root, - ); + fn initialize_storage() -> EventFixture { + let message = make_register_token_message_v2(); + EthereumBeaconClient::store_finalized_header( + message.finalized_header, + message.block_roots_root, + ) + .unwrap(); + EthereumGatewayAddress::set(&EthereumGatewayAddressV2::get()); + message } } impl OutboundQueueBenchmarkHelperV2 for Runtime { fn initialize_storage(beacon_header: BeaconHeader, block_roots_root: H256) { - initialize_storage_for_benchmarks( - EthereumGatewayAddressV2::get(), - beacon_header, - block_roots_root, - ); + EthereumBeaconClient::store_finalized_header(beacon_header, block_roots_root).unwrap(); + EthereumGatewayAddress::set(&EthereumGatewayAddressV2::get()); } } - fn initialize_storage_for_benchmarks( - gateway_address: H160, - beacon_header: BeaconHeader, - block_roots_root: H256, - ) { - EthereumBeaconClient::store_finalized_header(beacon_header, block_roots_root).unwrap(); - EthereumGatewayAddress::set(&gateway_address); - } - pub struct DoNothingRouter; impl SendXcm for DoNothingRouter { type Ticket = Xcm<()>; diff --git a/system-parachains/bridge-hub-paseo/src/bridge_to_kusama_config.rs b/system-parachains/bridge-hub-paseo/src/bridge_to_kusama_config.rs index 88091edff..69ec1b309 100644 --- a/system-parachains/bridge-hub-paseo/src/bridge_to_kusama_config.rs +++ b/system-parachains/bridge-hub-paseo/src/bridge_to_kusama_config.rs @@ -102,7 +102,7 @@ parameter_types! { pub const ParachainPalletNameAtKusama: &'static str = bp_kusama::PARAS_PALLET_NAME; // see the `FEE_BOOST_PER_MESSAGE` constant to get the meaning of this value - pub PriorityBoostPerMessage: u64 = 3_641_799_307_958; + pub PriorityBoostPerMessage: u64 = 3_981_967_375_185; } /// Proof of messages, coming from Kusama. diff --git a/system-parachains/bridge-hub-paseo/src/lib.rs b/system-parachains/bridge-hub-paseo/src/lib.rs index 04312201e..1588e1d1a 100644 --- a/system-parachains/bridge-hub-paseo/src/lib.rs +++ b/system-parachains/bridge-hub-paseo/src/lib.rs @@ -214,7 +214,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: Cow::Borrowed("bridge-hub-paseo"), impl_name: Cow::Borrowed("bridge-hub-paseo"), authoring_version: 1, - spec_version: 2_000_006, + spec_version: 2_001_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 4, @@ -379,7 +379,6 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type ConsensusHook = ConsensusHook; type WeightInfo = weights::cumulus_pallet_parachain_system::WeightInfo; - type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; type RelayParentOffset = ConstU32<0>; } @@ -597,6 +596,7 @@ pub enum ProxyType { /// Collator selection proxy. Can execute calls related to collator selection mechanism. Collator, } + impl Default for ProxyType { fn default() -> Self { Self::Any @@ -1037,9 +1037,9 @@ mod benches { bp_messages::LegacyLaneId, Balance, >::rewards_account(reward_kind); - Self::deposit_account(rewards_account, reward); + Self::deposit_account(rewards_account.clone(), reward); - None + Some(bridge_common_config::BridgeRewardBeneficiaries::LocalAccount(rewards_account)) } fn deposit_account(account: AccountId, balance: Balance) { @@ -1235,7 +1235,7 @@ impl_runtime_apis! { VERSION } - fn execute_block(block: Block) { + fn execute_block(block: ::LazyBlock) { Executive::execute_block(block) } @@ -1272,7 +1272,7 @@ impl_runtime_apis! { } fn check_inherents( - block: Block, + block: ::LazyBlock, data: sp_inherents::InherentData, ) -> sp_inherents::CheckInherentsResult { data.check_extrinsics(&block) @@ -1382,8 +1382,9 @@ impl_runtime_apis! { PolkadotXcm::query_xcm_weight(message) } - fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { - PolkadotXcm::query_delivery_fees(destination, message) + fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>, asset_id: VersionedAssetId) -> Result { + type AssetExchanger = ::AssetExchanger; + PolkadotXcm::query_delivery_fees::(destination, message, asset_id) } } @@ -1393,7 +1394,7 @@ impl_runtime_apis! { } fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { - PolkadotXcm::dry_run_xcm::(origin_location, xcm) + PolkadotXcm::dry_run_xcm::(origin_location, xcm) } } @@ -1550,7 +1551,7 @@ impl_runtime_apis! { } fn execute_block( - block: Block, + block: ::LazyBlock, state_root_check: bool, signature_check: bool, select: frame_try_runtime::TryStateSelect, diff --git a/system-parachains/bridge-hub-paseo/src/weights/cumulus_pallet_xcmp_queue.rs b/system-parachains/bridge-hub-paseo/src/weights/cumulus_pallet_xcmp_queue.rs index b5103a91f..7fe661c2d 100644 --- a/system-parachains/bridge-hub-paseo/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/system-parachains/bridge-hub-paseo/src/weights/cumulus_pallet_xcmp_queue.rs @@ -179,7 +179,7 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - fn take_first_concatenated_xcm() -> Weight { + fn take_first_concatenated_xcm(_n: u32) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` diff --git a/system-parachains/bridge-hub-paseo/tests/snowbridge.rs b/system-parachains/bridge-hub-paseo/tests/snowbridge.rs index ab7004436..1d46aee8b 100644 --- a/system-parachains/bridge-hub-paseo/tests/snowbridge.rs +++ b/system-parachains/bridge-hub-paseo/tests/snowbridge.rs @@ -492,7 +492,7 @@ fn check_compatibility_for_token_id_stored_on_ethereum() { }, ], ), - foreign: hex!("2a8080362874bbfeb585d676eba3f06e3b878d7c5d5f98d2a092ebb375bd484c") + foreign: hex!("e63b941f18079384e8de0a0bd11b3e0043b7bd675a3c4d2167dea38234047e2a") .into(), }, ]; diff --git a/system-parachains/collectives-paseo/src/fellowship/mod.rs b/system-parachains/collectives-paseo/src/fellowship/mod.rs index 725de0c55..b3a8ceb48 100644 --- a/system-parachains/collectives-paseo/src/fellowship/mod.rs +++ b/system-parachains/collectives-paseo/src/fellowship/mod.rs @@ -244,14 +244,14 @@ use xcm::prelude::*; parameter_types! { // The interior location on AssetHub for the paying account. This is the Fellowship Salary // pallet instance. This sovereign account will need funding. - pub Interior: InteriorLocation = PalletInstance(::index() as u8).into(); + pub FellowshipSalaryInteriorLocation: InteriorLocation = PalletInstance(::index() as u8).into(); } -const USDT_UNITS: u128 = 1_000_000; +pub const USDT_UNITS: u128 = 1_000_000; /// [`PayOverXcm`] setup to pay the Fellowship salary on the AssetHub in USDT. pub type FellowshipSalaryPaymaster = PayOverXcm< - Interior, + FellowshipSalaryInteriorLocation, crate::xcm_config::XcmRouter, crate::PolkadotXcm, ConstU32<{ 6 * HOURS }>, diff --git a/system-parachains/collectives-paseo/src/lib.rs b/system-parachains/collectives-paseo/src/lib.rs index 0b7ade177..221ef139b 100644 --- a/system-parachains/collectives-paseo/src/lib.rs +++ b/system-parachains/collectives-paseo/src/lib.rs @@ -451,7 +451,6 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type ConsensusHook = ConsensusHook; type WeightInfo = weights::cumulus_pallet_parachain_system::WeightInfo; - type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; type RelayParentOffset = ConstU32<0>; } @@ -1153,7 +1152,7 @@ impl_runtime_apis! { VERSION } - fn execute_block(block: Block) { + fn execute_block(block: ::LazyBlock) { Executive::execute_block(block) } @@ -1190,7 +1189,7 @@ impl_runtime_apis! { } fn check_inherents( - block: Block, + block: ::LazyBlock, data: sp_inherents::InherentData, ) -> sp_inherents::CheckInherentsResult { data.check_extrinsics(&block) @@ -1300,8 +1299,9 @@ impl_runtime_apis! { PolkadotXcm::query_xcm_weight(message) } - fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { - PolkadotXcm::query_delivery_fees(destination, message) + fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>, asset_id: VersionedAssetId) -> Result { + type AssetExchanger = ::AssetExchanger; + PolkadotXcm::query_delivery_fees::(destination, message, asset_id) } } @@ -1311,7 +1311,7 @@ impl_runtime_apis! { } fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { - PolkadotXcm::dry_run_xcm::(origin_location, xcm) + PolkadotXcm::dry_run_xcm::(origin_location, xcm) } } @@ -1385,7 +1385,7 @@ impl_runtime_apis! { } fn execute_block( - block: Block, + block: ::LazyBlock, state_root_check: bool, signature_check: bool, select: frame_try_runtime::TryStateSelect, diff --git a/system-parachains/collectives-paseo/src/secretary/mod.rs b/system-parachains/collectives-paseo/src/secretary/mod.rs index c55d8ecb0..c579ea1e4 100644 --- a/system-parachains/collectives-paseo/src/secretary/mod.rs +++ b/system-parachains/collectives-paseo/src/secretary/mod.rs @@ -16,27 +16,15 @@ //! The Polkadot Secretary Collective. -use core::marker::PhantomData; - -use crate::{fellowship::FellowshipAdminBodyId, *}; -use frame_support::{ - parameter_types, - traits::{tokens::GetSalary, EitherOf, MapSuccess, PalletInfoAccess, PollStatus, Polling}, +use crate::{ + fellowship::{FellowshipAdminBodyId, FellowshipSalaryPaymaster, USDT_UNITS}, + *, }; +use frame_support::traits::{tokens::GetSalary, EitherOf, MapSuccess, NoOpPoll}; use frame_system::{pallet_prelude::BlockNumberFor, EnsureRootWithSuccess}; -use pallet_ranked_collective::{MemberIndex, TallyOf, Votes}; use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; -use paseo_runtime_constants::time::HOURS; use sp_core::{ConstU128, ConstU32}; -use sp_runtime::{ - traits::{ConstU16, ConvertToValue, Identity, Replace}, - DispatchError, -}; - -use xcm::prelude::*; -use xcm_builder::{AliasesIntoAccountId32, PayOverXcm}; - -use self::xcm_config::AssetHubUsdt; +use sp_runtime::traits::{ConstU16, Identity, Replace}; /// The Secretary members' ranks. pub mod ranks { @@ -68,58 +56,6 @@ type ApproveOrigin = EitherOf< >, >; -pub struct SecretaryPolling, I: 'static>( - PhantomData<(T, I)>, -); - -impl, I: 'static> Polling> - for SecretaryPolling -{ - type Index = MemberIndex; - type Votes = Votes; - type Class = u16; - type Moment = BlockNumberFor; - - fn classes() -> Vec { - vec![] - } - - fn as_ongoing(_index: Self::Index) -> Option<(TallyOf, Self::Class)> { - None - } - - fn access_poll( - _index: Self::Index, - f: impl FnOnce(PollStatus<&mut TallyOf, Self::Moment, Self::Class>) -> R, - ) -> R { - f(PollStatus::None) - } - - fn try_access_poll( - _index: Self::Index, - f: impl FnOnce( - PollStatus<&mut TallyOf, Self::Moment, Self::Class>, - ) -> Result, - ) -> Result { - f(PollStatus::None) - } - - #[cfg(feature = "runtime-benchmarks")] - fn create_ongoing(_class: Self::Class) -> Result { - Err(()) - } - - #[cfg(feature = "runtime-benchmarks")] - fn end_ongoing(_index: Self::Index, _approved: bool) -> Result<(), ()> { - Err(()) - } - - #[cfg(feature = "runtime-benchmarks")] - fn max_ongoing() -> (Self::Class, u32) { - (0, 0) - } -} - pub type SecretaryCollectiveInstance = pallet_ranked_collective::Instance3; impl pallet_ranked_collective::Config for Runtime { @@ -130,7 +66,7 @@ impl pallet_ranked_collective::Config for Runtime { type PromoteOrigin = ApproveOrigin; type DemoteOrigin = ApproveOrigin; type ExchangeOrigin = ApproveOrigin; - type Polls = SecretaryPolling; + type Polls = NoOpPoll>; type MinRankOfClass = Identity; type MemberSwappedHandler = crate::SecretarySalary; type VoteWeight = pallet_ranked_collective::Geometric; @@ -141,26 +77,6 @@ impl pallet_ranked_collective::Config for Runtime { pub type SecretarySalaryInstance = pallet_salary::Instance3; -parameter_types! { - // The interior location on AssetHub for the paying account. This is the Secretary Salary - // pallet instance. This sovereign account will need funding. - pub SecretarySalaryInteriorLocation: InteriorLocation = PalletInstance(::index() as u8).into(); -} - -const USDT_UNITS: u128 = 1_000_000; - -/// [`PayOverXcm`] setup to pay the Secretary salary on the AssetHub in USDT. -pub type SecretarySalaryPaymaster = PayOverXcm< - SecretarySalaryInteriorLocation, - crate::xcm_config::XcmRouter, - crate::PolkadotXcm, - ConstU32<{ 6 * HOURS }>, - AccountId, - (), - ConvertToValue, - AliasesIntoAccountId32<(), AccountId>, ->; - pub struct SalaryForRank; impl GetSalary for SalaryForRank { fn get_salary(rank: u16, _who: &AccountId) -> Balance { @@ -177,10 +93,10 @@ impl pallet_salary::Config for Runtime { type RuntimeEvent = RuntimeEvent; #[cfg(not(feature = "runtime-benchmarks"))] - type Paymaster = SecretarySalaryPaymaster; + type Paymaster = FellowshipSalaryPaymaster; #[cfg(feature = "runtime-benchmarks")] type Paymaster = crate::impls::benchmarks::PayWithEnsure< - SecretarySalaryPaymaster, + FellowshipSalaryPaymaster, crate::impls::benchmarks::OpenHrmpChannel>, >; type Members = pallet_ranked_collective::Pallet; diff --git a/system-parachains/collectives-paseo/src/weights/cumulus_pallet_xcmp_queue.rs b/system-parachains/collectives-paseo/src/weights/cumulus_pallet_xcmp_queue.rs index 4e8f06e51..7ac529359 100644 --- a/system-parachains/collectives-paseo/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/system-parachains/collectives-paseo/src/weights/cumulus_pallet_xcmp_queue.rs @@ -181,7 +181,7 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - fn take_first_concatenated_xcm() -> Weight { + fn take_first_concatenated_xcm(_n: u32) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` diff --git a/system-parachains/coretime-paseo/src/lib.rs b/system-parachains/coretime-paseo/src/lib.rs index 4cba12c68..d83ccb30a 100644 --- a/system-parachains/coretime-paseo/src/lib.rs +++ b/system-parachains/coretime-paseo/src/lib.rs @@ -164,7 +164,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: Cow::Borrowed("coretime-paseo"), impl_name: Cow::Borrowed("coretime-paseo"), authoring_version: 1, - spec_version: 2_000_006, + spec_version: 2_001_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 0, @@ -345,7 +345,6 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ReservedXcmpWeight = ReservedXcmpWeight; type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type ConsensusHook = ConsensusHook; - type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; type RelayParentOffset = ConstU32<0>; } @@ -987,7 +986,7 @@ impl_runtime_apis! { VERSION } - fn execute_block(block: Block) { + fn execute_block(block: ::LazyBlock) { Executive::execute_block(block) } @@ -1024,7 +1023,7 @@ impl_runtime_apis! { } fn check_inherents( - block: Block, + block: ::LazyBlock, data: sp_inherents::InherentData, ) -> sp_inherents::CheckInherentsResult { data.check_extrinsics(&block) @@ -1134,8 +1133,9 @@ impl_runtime_apis! { PolkadotXcm::query_xcm_weight(message) } - fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { - PolkadotXcm::query_delivery_fees(destination, message) + fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>, asset_id: VersionedAssetId) -> Result { + type AssetExchanger = ::AssetExchanger; + PolkadotXcm::query_delivery_fees::(destination, message, asset_id) } } @@ -1145,7 +1145,7 @@ impl_runtime_apis! { } fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { - PolkadotXcm::dry_run_xcm::(origin_location, xcm) + PolkadotXcm::dry_run_xcm::(origin_location, xcm) } } @@ -1205,7 +1205,7 @@ impl_runtime_apis! { } fn execute_block( - block: Block, + block: ::LazyBlock, state_root_check: bool, signature_check: bool, select: frame_try_runtime::TryStateSelect, diff --git a/system-parachains/coretime-paseo/src/weights/cumulus_pallet_xcmp_queue.rs b/system-parachains/coretime-paseo/src/weights/cumulus_pallet_xcmp_queue.rs index 4f3dd8c03..bab5df466 100644 --- a/system-parachains/coretime-paseo/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/system-parachains/coretime-paseo/src/weights/cumulus_pallet_xcmp_queue.rs @@ -1,10 +1,25 @@ +// Copyright (C) Parity Technologies and the various Paseo contributors, see Contributions.md +// for a list of specific contributors. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. //! Autogenerated weights for `cumulus_pallet_xcmp_queue` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 50.0.0 -//! DATE: 2025-10-02, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 53.0.0 +//! DATE: 2026-02-06, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `paseo-weights-benchmark`, CPU: `QEMU Virtual CPU version 2.5+` +//! HOSTNAME: `bm1-3`, CPU: `Intel(R) Xeon(R) E-2388G CPU @ 3.20GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024 // Executed Command: @@ -12,17 +27,15 @@ // v1 // benchmark // pallet -// --runtime -// target/release/wbuild/coretime-paseo-runtime/coretime_paseo_runtime.compact.compressed.wasm -// --genesis-builder -// runtime -// --genesis-builder-preset -// local_testnet -// --all -// --exclude-pallets -// pallet_referenda -// --output -// /root/runtimes/weights/ +// --extrinsic=* +// --runtime=target/production/wbuild/coretime-paseo-runtime/coretime_paseo_runtime.wasm +// --pallet=cumulus_pallet_xcmp_queue +// --header=/opt/actions-runner/_work/runtimes/runtimes/.github/scripts/cmd/file_header.txt +// --output=./system-parachains/coretime/coretime-paseo/src/weights +// --wasm-execution=compiled +// --steps=50 +// --repeat=20 +// --heap-pages=4096 #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -41,8 +54,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `76` // Estimated: `1497` - // Minimum execution time: 6_793_000 picoseconds. - Weight::from_parts(9_618_000, 0) + // Minimum execution time: 5_800_000 picoseconds. + Weight::from_parts(6_088_000, 0) .saturating_add(Weight::from_parts(0, 1497)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -62,11 +75,11 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `82` // Estimated: `5487` - // Minimum execution time: 18_154_000 picoseconds. - Weight::from_parts(17_996_439, 0) + // Minimum execution time: 14_221_000 picoseconds. + Weight::from_parts(14_740_820, 0) .saturating_add(Weight::from_parts(0, 5487)) - // Standard Error: 22 - .saturating_add(Weight::from_parts(1_044, 0).saturating_mul(n.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(311, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -85,11 +98,11 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `82` // Estimated: `5487` - // Minimum execution time: 19_376_000 picoseconds. - Weight::from_parts(46_402_398, 0) + // Minimum execution time: 11_335_000 picoseconds. + Weight::from_parts(15_554_009, 0) .saturating_add(Weight::from_parts(0, 5487)) - // Standard Error: 3_481 - .saturating_add(Weight::from_parts(186_205, 0).saturating_mul(n.into())) + // Standard Error: 164 + .saturating_add(Weight::from_parts(123_285, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -106,11 +119,11 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `264 + n * (1 ±0)` // Estimated: `3725 + n * (1 ±0)` - // Minimum execution time: 26_960_000 picoseconds. - Weight::from_parts(27_865_136, 0) + // Minimum execution time: 19_345_000 picoseconds. + Weight::from_parts(19_340_608, 0) .saturating_add(Weight::from_parts(0, 3725)) - // Standard Error: 28 - .saturating_add(Weight::from_parts(2_184, 0).saturating_mul(n.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(979, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -130,11 +143,11 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `117` // Estimated: `5487` - // Minimum execution time: 16_801_000 picoseconds. - Weight::from_parts(84_908_576, 0) + // Minimum execution time: 12_469_000 picoseconds. + Weight::from_parts(12_599_000, 0) .saturating_add(Weight::from_parts(0, 5487)) - // Standard Error: 252_730 - .saturating_add(Weight::from_parts(58_290_592, 0).saturating_mul(n.into())) + // Standard Error: 15_309 + .saturating_add(Weight::from_parts(22_526_463, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) @@ -151,8 +164,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `33029` // Estimated: `36494` - // Minimum execution time: 292_779_000 picoseconds. - Weight::from_parts(323_818_000, 0) + // Minimum execution time: 176_625_000 picoseconds. + Weight::from_parts(179_101_000, 0) .saturating_add(Weight::from_parts(0, 36494)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -163,8 +176,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `76` // Estimated: `2767` - // Minimum execution time: 4_018_000 picoseconds. - Weight::from_parts(4_749_000, 0) + // Minimum execution time: 3_347_000 picoseconds. + Weight::from_parts(3_462_000, 0) .saturating_add(Weight::from_parts(0, 2767)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -175,19 +188,22 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `111` // Estimated: `2767` - // Minimum execution time: 5_290_000 picoseconds. - Weight::from_parts(5_941_000, 0) + // Minimum execution time: 4_214_000 picoseconds. + Weight::from_parts(4_431_000, 0) .saturating_add(Weight::from_parts(0, 2767)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - fn take_first_concatenated_xcm() -> Weight { + /// The range of component `n` is `[0, 92]`. + fn take_first_concatenated_xcm(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_278_000 picoseconds. - Weight::from_parts(10_199_000, 0) + // Minimum execution time: 1_726_000 picoseconds. + Weight::from_parts(2_024_311, 0) .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 110 + .saturating_add(Weight::from_parts(11_818, 0).saturating_mul(n.into())) } /// Storage: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) /// Proof: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) @@ -207,8 +223,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `65711` // Estimated: `69176` - // Minimum execution time: 127_168_000 picoseconds. - Weight::from_parts(137_728_000, 0) + // Minimum execution time: 66_310_000 picoseconds. + Weight::from_parts(67_741_000, 0) .saturating_add(Weight::from_parts(0, 69176)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -221,8 +237,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `65710` // Estimated: `69175` - // Minimum execution time: 82_064_000 picoseconds. - Weight::from_parts(106_740_000, 0) + // Minimum execution time: 41_767_000 picoseconds. + Weight::from_parts(42_768_000, 0) .saturating_add(Weight::from_parts(0, 69175)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/system-parachains/people-paseo/Cargo.toml b/system-parachains/people-paseo/Cargo.toml index c75a4cc4c..a7bdfeccf 100644 --- a/system-parachains/people-paseo/Cargo.toml +++ b/system-parachains/people-paseo/Cargo.toml @@ -58,7 +58,6 @@ sp-transaction-pool = { workspace = true } sp-version = { workspace = true } # Polkadot -assets-common = { workspace = true } pallet-xcm = { workspace = true } pallet-xcm-benchmarks = { optional = true, workspace = true } polkadot-parachain-primitives = { workspace = true } @@ -70,12 +69,13 @@ xcm-executor = { workspace = true } xcm-runtime-apis = { workspace = true } # Cumulus +assets-common = { workspace = true } cumulus-primitives-aura = { workspace = true } cumulus-pallet-aura-ext = { workspace = true } cumulus-pallet-parachain-system = { workspace = true } cumulus-pallet-session-benchmarking = { workspace = true } -cumulus-pallet-xcm = { workspace = true } cumulus-pallet-weight-reclaim = { workspace = true } +cumulus-pallet-xcm = { workspace = true } cumulus-pallet-xcmp-queue = { workspace = true } cumulus-primitives-core = { workspace = true } cumulus-primitives-utility = { workspace = true } diff --git a/system-parachains/people-paseo/src/assets.rs b/system-parachains/people-paseo/src/assets.rs index 156bf1267..d0b6c3d77 100644 --- a/system-parachains/people-paseo/src/assets.rs +++ b/system-parachains/people-paseo/src/assets.rs @@ -48,6 +48,8 @@ impl pallet_assets::Config for Runtime { type WeightInfo = weights::pallet_assets::WeightInfo; type CallbackHandle = (); type AssetAccountDeposit = AssetAccountDeposit; + // TODO FIXME BEFORE 2.1.0: see https://github.com/sigurpol/runtimes/pull/5 + type ReserveData = (); type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = xcm_config::XcmBenchmarkHelper; diff --git a/system-parachains/people-paseo/src/lib.rs b/system-parachains/people-paseo/src/lib.rs index 5410a0d70..5f5e2e2d7 100644 --- a/system-parachains/people-paseo/src/lib.rs +++ b/system-parachains/people-paseo/src/lib.rs @@ -120,30 +120,20 @@ pub type TxExtension = cumulus_pallet_weight_reclaim::StorageWeightReclaim< /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; - -/// All migrations that will run on the next runtime upgrade. -/// -/// This contains the combined migrations of the last 10 releases. It allows to skip runtime -/// upgrades in case governance decides to do so. THE ORDER IS IMPORTANT. -pub type Migrations = (migrations::Unreleased, migrations::Permanent); - /// The runtime migrations per release. #[allow(deprecated, missing_docs)] pub mod migrations { use super::*; /// Unreleased migrations. Add new ones here: - pub type Unreleased = ( - pallet_session::migrations::v1::MigrateV0ToV1< - Runtime, - pallet_session::migrations::v1::InitOffenceSeverity, - >, - cumulus_pallet_aura_ext::migration::MigrateV0ToV1, - ); + pub type Unreleased = (); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; + /// All migrations that will run on the next runtime upgrade. + pub type SingleBlockMigrations = (Unreleased, Permanent); + /// MBM migrations to apply on runtime upgrade. pub type MbmMigrations = (); } @@ -155,7 +145,6 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, - Migrations, >; impl_opaque_keys! { @@ -169,7 +158,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: Cow::Borrowed("people-paseo"), impl_name: Cow::Borrowed("people-paseo"), authoring_version: 1, - spec_version: 2_000_006, + spec_version: 2_001_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 0, @@ -225,6 +214,7 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type MaxConsumers = ConstU32<16>; + type SingleBlockMigrations = migrations::SingleBlockMigrations; type MultiBlockMigrator = MultiBlockMigrations; } @@ -296,7 +286,6 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type ConsensusHook = ConsensusHook; type WeightInfo = weights::cumulus_pallet_parachain_system::WeightInfo; - type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; type RelayParentOffset = ConstU32<0>; } @@ -339,10 +328,6 @@ impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} -impl cumulus_pallet_weight_reclaim::Config for Runtime { - type WeightInfo = weights::cumulus_pallet_weight_reclaim::WeightInfo; -} - parameter_types! { // Fellows pluralistic body. pub const FellowsBodyId: BodyId = BodyId::Technical; @@ -622,6 +607,10 @@ impl pallet_migrations::Config for Runtime { type WeightInfo = weights::pallet_migrations::WeightInfo; } +impl cumulus_pallet_weight_reclaim::Config for Runtime { + type WeightInfo = weights::cumulus_pallet_weight_reclaim::WeightInfo; +} + impl pallet_sudo::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; @@ -702,8 +691,8 @@ mod benches { [pallet_utility, Utility] // Cumulus [cumulus_pallet_parachain_system, ParachainSystem] - [cumulus_pallet_xcmp_queue, XcmpQueue] [cumulus_pallet_weight_reclaim, WeightReclaim] + [cumulus_pallet_xcmp_queue, XcmpQueue] [pallet_collator_selection, CollatorSelection] // XCM [pallet_xcm, PalletXcmExtrinsicsBenchmark::] @@ -805,7 +794,7 @@ mod benches { pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; pub TrustedReserve: Option<(Location, Asset)> = Some(( HydrationLocation::get(), - Hollar::get() + Hollar::get(), )); } @@ -926,7 +915,7 @@ impl_runtime_apis! { VERSION } - fn execute_block(block: Block) { + fn execute_block(block: ::LazyBlock) { Executive::execute_block(block) } @@ -963,7 +952,7 @@ impl_runtime_apis! { } fn check_inherents( - block: Block, + block: ::LazyBlock, data: sp_inherents::InherentData, ) -> sp_inherents::CheckInherentsResult { data.check_extrinsics(&block) @@ -1073,8 +1062,9 @@ impl_runtime_apis! { PolkadotXcm::query_xcm_weight(message) } - fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { - PolkadotXcm::query_delivery_fees(destination, message) + fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>, asset_id: VersionedAssetId) -> Result { + type AssetExchanger = ::AssetExchanger; + PolkadotXcm::query_delivery_fees::(destination, message, asset_id) } } @@ -1084,7 +1074,7 @@ impl_runtime_apis! { } fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { - PolkadotXcm::dry_run_xcm::(origin_location, xcm) + PolkadotXcm::dry_run_xcm::(origin_location, xcm) } } @@ -1144,7 +1134,7 @@ impl_runtime_apis! { } fn execute_block( - block: Block, + block: ::LazyBlock, state_root_check: bool, signature_check: bool, select: frame_try_runtime::TryStateSelect, diff --git a/system-parachains/people-paseo/src/weights/cumulus_pallet_xcmp_queue.rs b/system-parachains/people-paseo/src/weights/cumulus_pallet_xcmp_queue.rs index 419198aba..53b05abb9 100644 --- a/system-parachains/people-paseo/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/system-parachains/people-paseo/src/weights/cumulus_pallet_xcmp_queue.rs @@ -181,7 +181,7 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - fn take_first_concatenated_xcm() -> Weight { + fn take_first_concatenated_xcm(_n: u32) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` diff --git a/system-parachains/people-paseo/src/weights/pallet_assets.rs b/system-parachains/people-paseo/src/weights/pallet_assets.rs index 72f2b848e..0129780e4 100644 --- a/system-parachains/people-paseo/src/weights/pallet_assets.rs +++ b/system-parachains/people-paseo/src/weights/pallet_assets.rs @@ -302,6 +302,23 @@ impl pallet_assets::WeightInfo for WeightInfo { } /// Storage: `Assets::Asset` (r:1 w:0) /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `Assets::Reserves` (r:0 w:1) + /// Proof: `Assets::Reserves` (`max_values`: None, `max_size`: Some(619), added: 3094, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 5]`. + fn set_reserves(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `4273` + // Minimum execution time: 14_211_000 picoseconds. + Weight::from_parts(14_893_107, 0) + .saturating_add(Weight::from_parts(0, 4273)) + // Standard Error: 4_736 + .saturating_add(Weight::from_parts(33_277, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) /// Storage: `Assets::Metadata` (r:1 w:1) /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(738), added: 3213, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 50]`. diff --git a/system-parachains/people-paseo/src/xcm_config.rs b/system-parachains/people-paseo/src/xcm_config.rs index 3d804f613..956ad0f45 100644 --- a/system-parachains/people-paseo/src/xcm_config.rs +++ b/system-parachains/people-paseo/src/xcm_config.rs @@ -117,7 +117,7 @@ pub type LocationToAccountId = ( /// Means for transacting the native currency on this chain. pub type FungibleTransactor = FungibleAdapter< - // Use this implementation of `fungible::*` + // Use this implementation of `fungible::*`. Balances, // Use this currency when it is a fungible asset matching the given location or name: IsConcrete, @@ -275,9 +275,7 @@ impl frame_support::weights::WeightToFee for WeightToStableFee { fn weight_to_fee(weight: &Weight) -> Self::Balance { let native_fee = WeightToNativeFee::weight_to_fee(weight); - let result = AssetRate::to_asset_balance(native_fee, HollarLocation::get()); - - result + AssetRate::to_asset_balance(native_fee, HollarLocation::get()) // Using max value will make the payment fail and go to the next trader component. .unwrap_or(Balance::MAX) } @@ -310,7 +308,7 @@ impl xcm_executor::Config for XcmConfig { type XcmSender = XcmRouter; type AssetTransactor = AssetTransactors; type OriginConverter = XcmOriginToTransactDispatchOrigin; - // We only accept HOLLAR from Hydration + /// We only accept HOLLAR from Hydration. type IsReserve = HollarFromHydration; /// Only allow teleportation of DOT. type IsTeleporter = ConcreteAssetFromSystem; @@ -329,6 +327,7 @@ impl xcm_executor::Config for XcmConfig { type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; type AssetLocker = (); + // TODO: Will need for delivery fees. type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, @@ -414,10 +413,11 @@ impl cumulus_pallet_xcm::Config for Runtime { /// Simple conversion of `u32` into an `AssetId` for use in benchmarking. pub struct XcmBenchmarkHelper; #[cfg(feature = "runtime-benchmarks")] -impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { +impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { fn create_asset_id_parameter(id: u32) -> Location { Location::new(1, Parachain(id)) } + fn create_reserve_id_parameter(_id: u32) {} } #[test]