diff --git a/.github/workflows/runtimes-matrix.json b/.github/workflows/runtimes-matrix.json index b2c9da097f..4dda806f66 100644 --- a/.github/workflows/runtimes-matrix.json +++ b/.github/workflows/runtimes-matrix.json @@ -15,6 +15,7 @@ "uri": "wss://try-runtime-kusama.polkadot.io:443", "is_relay": true, "blocktime": 6000, + "benchmarks_exclude_extrinsics": "pallet_nomination_pools::apply_slash_fail", "extra_args": "--disable-mbm-checks" }, { @@ -96,8 +97,7 @@ "path": "system-parachains/people/people-kusama", "uri": "wss://kusama-people-rpc.polkadot.io:443", "is_relay": false, - "blocktime": 6000, - "extra_args": "--disable-mbm-checks" + "blocktime": 6000 }, { "name": "people-polkadot", @@ -105,8 +105,7 @@ "path": "system-parachains/people/people-polkadot", "uri": "wss://polkadot-people-rpc.polkadot.io:443", "is_relay": false, - "blocktime": 12000, - "extra_args": "--disable-mbm-checks" + "blocktime": 12000 }, { "name": "encointer-kusama", diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bf02ece97e..4a27b6711e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ on: workflow_dispatch: env: - FRAME_OMNI_BENCHER_RELEASE_VERSION: polkadot-stable2409 + FRAME_OMNI_BENCHER_RELEASE_VERSION: polkadot-stable2412-4 # cancel previous runs concurrency: @@ -104,8 +104,14 @@ jobs: echo "Preparing wasm for benchmarking RUNTIME_BLOB_PATH=$RUNTIME_BLOB_PATH" cargo build --profile production -p ${{ matrix.runtime.package }} --features=runtime-benchmarks -q --locked # run benchmarking - echo "Running benchmarking for RUNTIME_BLOB_PATH=$RUNTIME_BLOB_PATH" - ./frame-omni-bencher v1 benchmark pallet --runtime $RUNTIME_BLOB_PATH --all --steps 2 --repeat 1 + if [ -z "${{ matrix.runtime.benchmarks_exclude_extrinsics }}" ]; then + EXCLUDE_EXTRINSICS="" + else + EXCLUDE_EXTRINSICS=" --exclude-extrinsics " + EXCLUDE_EXTRINSICS+=${{ matrix.runtime.benchmarks_exclude_extrinsics }} + fi + echo "Running benchmarking for RUNTIME_BLOB_PATH=$RUNTIME_BLOB_PATH $EXCLUDE_EXTRINSICS" + ./frame-omni-bencher v1 benchmark pallet --runtime $RUNTIME_BLOB_PATH --all --steps 2 --repeat 1 $EXCLUDE_EXTRINSICS env: RUSTFLAGS: "-C debug-assertions -D warnings" diff --git a/CHANGELOG.md b/CHANGELOG.md index 94689ef18b..da11f6afdd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,29 @@ Changelog for the runtimes governed by the Polkadot Fellowship. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## [Unreleased] + +### Added + +- Now each system extension has its own weight, defined by `ExtensionWeightInfo` ([polkadot-fellows/runtimes/pull/606](https://github.com/polkadot-fellows/runtimes/pull/606)) +- Parachains define the default `CoreSelector` strategy, according to [`RFC-0103`](https://polkadot-fellows.github.io/RFCs/approved/0103-introduce-core-index-commitment.html) ([polkadot-fellows/runtimes/pull/606](https://github.com/polkadot-fellows/runtimes/pull/606)) +- Update to SDK version `2412-4` ([polkadot-fellows/runtimes/pull/606](https://github.com/polkadot-fellows/runtimes/pull/606)) + - Added XCM v5 ([paritytech/polkadot-sdk/pull/4826](https://github.com/paritytech/polkadot-sdk/pull/4826)) + - Added Trusted Query API calls ([paritytech/polkadot-sdk/pull/6039](https://github.com/paritytech/polkadot-sdk/pull/6039)) + - Bounties Pallet: add approve_bounty_with_curator call ([paritytech/polkadot-sdk/pull/5961](https://github.com/paritytech/polkadot-sdk/pull/5961)) + - Collective: Dynamic deposit based on number of proposals ([paritytech/polkadot-sdk/pull/3151](https://github.com/paritytech/polkadot-sdk/pull/3151)) + - New runtime api that returns the associated pool accounts with a nomination pool ([paritytech/polkadot-sdk/pull/6357](https://github.com/paritytech/polkadot-sdk/pull/6357)) + +### Changed + +- Update to SDK version `2412-2` ([polkadot-fellows/runtimes/pull/606](https://github.com/polkadot-fellows/runtimes/pull/606)) + - Changed from `SignedExtension` to `TransactionExtension` ([paritytech/polkadot-sdk/pull/3685](https://github.com/paritytech/polkadot-sdk/pull/3685)) + - Identity: Decouple usernames from identities ([https://github.com/paritytech/polkadot-sdk/pull/5554](https://github.com/paritytech/polkadot-sdk/pull/5554)) + - Staking: page information to staking::PayoutStarted event ([paritytech/polkadot-sdk/pull/5984](https://github.com/paritytech/polkadot-sdk/pull/5984)) + - Balances: fix: do not emit Issued { amount: 0 } event ([paritytech/polkadot-sdk/pull/5946](https://github.com/paritytech/polkadot-sdk/pull/5946)) + - Snowbridge: Support bridging native ETH ([paritytech/polkadot-sdk/pull/7090](https://github.com/paritytech/polkadot-sdk/pull/7090)) + - Runtime-APIs: Fix DryRunApi client-facing XCM versions ([paritytech/polkadot-sdk/pull/7689](https://github.com/paritytech/polkadot-sdk/pull/7689)) + ## [1.4.3] 14.04.2025 ### Changed @@ -13,6 +36,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - chain-spec-generator supports conditional building (`--no-default-features --features ` or `--no-default-features --features all-runtimes` or `--no-default-features --features all-polkadot` or `--no-default-features --features all-kusama`)([polkadot-fellows/runtimes/pull/637](https://github.com/polkadot-fellows/runtimes/pull/637)) + ## [1.4.2] 07.03.2025 ### Added diff --git a/Cargo.lock b/Cargo.lock index 92292bf50a..762b514475 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,18 +23,18 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.21.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.28.1", + "gimli 0.31.1", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "aead" @@ -48,9 +48,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher 0.4.4", @@ -68,47 +68,36 @@ dependencies = [ "cipher 0.4.4", "ctr", "ghash", - "subtle 2.5.0", -] - -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", + "subtle 2.6.1", ] [[package]] name = "ahash" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-primitives" @@ -120,11 +109,11 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more", + "derive_more 0.99.19", "hex-literal", "itoa", "proptest", - "rand", + "rand 0.8.5", "ruint", "serde", "tiny-keccak", @@ -132,11 +121,11 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.4" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d58d9f5da7b40e9bfff0b7e7816700be4019db97d4b6359fe7f94a9e22e42ac" +checksum = "3d6c1d995bff8d011f7cd6c81820d51825e6e06d6db73914c1630ecf544d83d6" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bytes", ] @@ -152,7 +141,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", "syn-solidity", "tiny-keccak", ] @@ -184,68 +173,61 @@ dependencies = [ "libc", ] -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "once_cell", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.83" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" [[package]] name = "approx" @@ -267,7 +249,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -344,7 +326,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "zeroize", ] @@ -446,7 +428,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -456,20 +438,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] name = "array-bytes" -version = "6.2.2" +version = "6.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0" +checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -482,9 +464,9 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "asn1-rs" @@ -498,23 +480,39 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] [[package]] name = "asn1-rs" -version = "0.6.1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" +dependencies = [ + "asn1-rs-derive 0.5.1", + "asn1-rs-impl 0.2.0", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror 1.0.69", + "time", +] + +[[package]] +name = "asn1-rs" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ad1373757efa0f70ec53939aabc7152e1591cb485208052993070ac8d2429d" +checksum = "56624a96882bb8c26d61312ae18cb45868e5a9992ea73c58e45c3101e56a1e60" dependencies = [ - "asn1-rs-derive 0.5.0", + "asn1-rs-derive 0.6.0", "asn1-rs-impl 0.2.0", "displaydoc", "nom", "num-traits", "rusticata-macros", - "thiserror", + "thiserror 2.0.12", "time", ] @@ -532,13 +530,25 @@ dependencies = [ [[package]] name = "asn1-rs-derive" -version = "0.5.0" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "synstructure 0.13.1", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", "synstructure 0.13.1", ] @@ -561,7 +571,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -582,7 +592,8 @@ dependencies = [ "parachains-common", "penpal-emulated-chain", "polkadot-parachain-primitives", - "sp-core 34.0.0", + "sp-core", + "sp-keyring", "staging-xcm", ] @@ -609,7 +620,7 @@ dependencies = [ "parachains-common", "parity-scale-codec", "polkadot-runtime-common", - "sp-runtime 39.0.5", + "sp-runtime", "staging-kusama-runtime", "staging-xcm", "staging-xcm-executor", @@ -677,25 +688,24 @@ dependencies = [ "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-runtime-common", - "primitive-types", + "primitive-types 0.12.2", "scale-info", "serde_json", "snowbridge-router-primitives", "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", - "sp-io 38.0.0", + "sp-io", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-std", - "sp-storage 21.0.0", + "sp-storage", "sp-transaction-pool", "sp-version", - "sp-weights 31.0.0", + "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -717,7 +727,8 @@ dependencies = [ "penpal-emulated-chain", "polkadot-emulated-chain", "polkadot-parachain-primitives", - "sp-core 34.0.0", + "sp-core", + "sp-keyring", "staging-xcm", ] @@ -745,7 +756,7 @@ dependencies = [ "polkadot-runtime", "polkadot-runtime-common", "polkadot-system-emulated-network", - "sp-runtime 39.0.5", + "sp-runtime", "staging-xcm", "staging-xcm-executor", "system-parachains-constants", @@ -812,25 +823,24 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-runtime-common", "polkadot-runtime-constants", - "primitive-types", + "primitive-types 0.12.2", "scale-info", "serde_json", "snowbridge-router-primitives", "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", - "sp-io 38.0.0", + "sp-io", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-std", - "sp-storage 21.0.0", + "sp-storage", "sp-transaction-pool", "sp-version", - "sp-weights 31.0.0", + "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -842,9 +852,9 @@ dependencies = [ [[package]] name = "asset-test-utils" -version = "20.0.0" +version = "21.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b0a99a8fa37a58ad868fca25530dde06b6582cb46b64bfae808f5b9b87e42ce" +checksum = "d2c8582c1d453909c9369da5c01791a5ddb431a396f47c307541de5a0b2c5fb7" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-pallet-xcmp-queue", @@ -862,8 +872,8 @@ dependencies = [ "parachains-common", "parachains-runtimes-test-utils", "parity-scale-codec", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -874,9 +884,9 @@ dependencies = [ [[package]] name = "assets-common" -version = "0.18.3" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c540587f89a03003946b14decef4fcadb083edc4e62f968de245b82e5402e923" +checksum = "7867f233943a76314a4e332dc1d02ba2145898ef1a90ce7721bd778c6936ffda" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -889,7 +899,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-runtime 39.0.5", + "sp-runtime", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -909,22 +919,21 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f2776ead772134d55b62dd45e59a79e21612d85d0af729b8b7d3967d601a62a" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 5.3.0", - "event-listener-strategy 0.5.2", + "event-listener-strategy", "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.11.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", @@ -939,48 +948,39 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock 3.2.0", + "async-lock", "blocking", "futures-lite", ] [[package]] name = "async-io" -version = "2.2.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6d3b15875ba253d1110c740755e246537483f152fa334f91abd7fe84c88b3ff" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ - "async-lock 3.2.0", + "async-lock", "cfg-if", "concurrent-queue", "futures-io", "futures-lite", "parking", "polling", - "rustix 0.38.31", + "rustix 0.38.44", "slab", "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", + "windows-sys 0.59.0", ] [[package]] name = "async-lock" -version = "3.2.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 4.0.0", - "event-listener-strategy 0.4.0", - "pin-project-lite 0.2.13", + "event-listener 5.4.0", + "event-listener-strategy", + "pin-project-lite", ] [[package]] @@ -996,40 +996,39 @@ dependencies = [ [[package]] name = "async-process" -version = "2.2.2" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53fc6301894e04a92cb2584fedde80cb25ba8e02d9dc39d4a87d036e22f397d" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ - "async-channel 2.3.0", + "async-channel 2.3.1", "async-io", - "async-lock 3.2.0", + "async-lock", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener 5.3.0", + "event-listener 5.4.0", "futures-lite", - "rustix 0.38.31", + "rustix 0.38.44", "tracing", - "windows-sys 0.52.0", ] [[package]] name = "async-signal" -version = "0.2.5" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ "async-io", - "async-lock 2.8.0", + "async-lock", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.31", + "rustix 0.38.44", "signal-hook-registry", "slab", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -1040,13 +1039,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -1059,7 +1058,20 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite", +] + +[[package]] +name = "asynchronous-codec" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a860072022177f903e59730004fb5dc13db9275b79bb2aef7ba8ce831956c233" +dependencies = [ + "bytes", + "futures-sink", + "futures-util", + "memchr", + "pin-project-lite", ] [[package]] @@ -1080,27 +1092,27 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" dependencies = [ - "http 0.2.11", + "http 0.2.12", "log", "url", ] [[package]] name = "auto_impl" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backoff" @@ -1108,24 +1120,24 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "getrandom", + "getrandom 0.2.15", "instant", - "rand", + "rand 0.8.5", ] [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "addr2line 0.21.0", - "cc", + "addr2line 0.24.2", "cfg-if", "libc", "miniz_oxide", - "object 0.32.2", + "object 0.36.7", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -1154,9 +1166,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.6" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79fed4cdb43e993fcdadc7e58a09fd0e3e649c4436fa11da71c9f1f3ee7feb9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64" @@ -1166,27 +1178,19 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "beef" -version = "0.5.2" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" -dependencies = [ - "serde", -] +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" [[package]] name = "binary-merkle-tree" -version = "15.0.1" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "336bf780dd7526a9a4bc1521720b25c1994dc132cccd59553431923fa4d1a693" +checksum = "181f5380e435b8ba6d901f8b16fc8908c6f0f8bea8973113d1c8718d89bb1809" dependencies = [ "hash-db", "log", + "parity-scale-codec", ] [[package]] @@ -1200,29 +1204,29 @@ dependencies = [ [[package]] name = "bip39" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" +checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" dependencies = [ - "bitcoin_hashes 0.11.0", + "bitcoin_hashes 0.13.0", "serde", "unicode-normalization", ] [[package]] name = "bit-set" -version = "0.5.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitcoin-internals" @@ -1231,10 +1235,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" [[package]] -name = "bitcoin_hashes" -version = "0.11.0" +name = "bitcoin-io" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" +checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" [[package]] name = "bitcoin_hashes" @@ -1243,7 +1247,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" dependencies = [ "bitcoin-internals", - "hex-conservative", + "hex-conservative 0.1.2", +] + +[[package]] +name = "bitcoin_hashes" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +dependencies = [ + "bitcoin-io", + "hex-conservative 0.2.1", ] [[package]] @@ -1254,9 +1268,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "bitvec" @@ -1304,37 +1318,37 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" dependencies = [ "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", + "arrayvec 0.7.6", + "constant_time_eq 0.3.1", ] [[package]] name = "blake2s_simd" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +checksum = "e90f7deecfac93095eb874a40febd69427776e24e1bd7f87f33ac62d6f0174df" dependencies = [ "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", + "arrayvec 0.7.6", + "constant_time_eq 0.3.1", ] [[package]] name = "blake3" -version = "1.5.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +checksum = "389a099b34312839e16420d499a9cad9650541715937ffbdd40d36f49e77eeb3" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "cc", "cfg-if", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -1357,12 +1371,11 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "async-channel 2.3.0", - "async-lock 3.2.0", + "async-channel 2.3.1", "async-task", "futures-io", "futures-lite", @@ -1371,9 +1384,9 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.2.0" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" +checksum = "64ad8a0bed7827f0b07a5d23cec2e58cc02038a99e4ca81616cb2bb2025f804d" dependencies = [ "log", "parity-scale-codec", @@ -1389,7 +1402,7 @@ dependencies = [ "frame-support", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", + "sp-core", "staging-xcm", "system-parachains-constants", ] @@ -1402,23 +1415,23 @@ dependencies = [ "frame-support", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", + "sp-core", "staging-xcm", "system-parachains-constants", ] [[package]] name = "bp-bridge-hub-cumulus" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3832b3362711b0c186f046d248407aec14b89812d39d996b914634a72b2bc2ce" +checksum = "0dc5710f9a5bc8cb1293b6ae0251c3d12918c5383a76e7f464982471e89dfd23" dependencies = [ "bp-messages", "bp-polkadot-core", "bp-runtime", "frame-support", "frame-system", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "sp-api", "sp-std", ] @@ -1436,7 +1449,7 @@ dependencies = [ "kusama-runtime-constants", "polkadot-runtime-constants", "sp-api", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", "system-parachains-constants", ] @@ -1455,7 +1468,7 @@ dependencies = [ "polkadot-runtime-constants", "snowbridge-core", "sp-api", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", "staging-xcm", "system-parachains-constants", @@ -1463,9 +1476,9 @@ dependencies = [ [[package]] name = "bp-header-chain" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "890df97cea17ee61ff982466bb9e90cb6b1462adb45380999019388d05e4b92d" +checksum = "a2a2304348dfed2276eef48ba03ca8afe5c3fe6ca6ea2c662e2e7a1a6ab639cd" dependencies = [ "bp-runtime", "finality-grandpa", @@ -1474,16 +1487,16 @@ dependencies = [ "scale-info", "serde", "sp-consensus-grandpa", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "sp-std", ] [[package]] name = "bp-messages" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7efabf94339950b914ba87249497f1a0e35a73849934d164fecae4b275928cf6" +checksum = "2e696909f51b67da053979ae9736ccbaab8c42306951b1f01fe64d49d555521e" dependencies = [ "bp-header-chain", "bp-runtime", @@ -1491,16 +1504,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 34.0.0", - "sp-io 38.0.0", + "sp-core", + "sp-io", "sp-std", ] [[package]] name = "bp-parachains" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9011e5c12c15caf3c4129a98f4f4916ea9165db8daf6ed85867c3106075f40df" +checksum = "f8603322511dcf02505670a63bb26429ad8dee986d4a0fc841e05215b1cf0606" dependencies = [ "bp-header-chain", "bp-polkadot-core", @@ -1509,35 +1522,34 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "sp-std", ] [[package]] name = "bp-polkadot-core" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345cf472bac11ef79d403e4846a666b7d22a13cd16d9c85b62cd6b5e16c4a042" +checksum = "9ecd5d535d3610d3567a5a440af1a71c2a21d20b051ad2cdb1184893c68beead" dependencies = [ "bp-messages", "bp-runtime", "frame-support", "frame-system", "parity-scale-codec", - "parity-util-mem", "scale-info", "serde", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "sp-std", ] [[package]] name = "bp-relayers" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9465ad727e466d67d64244a1aa7bb19933a297913fdde34b8e9bda0a341bdeb" +checksum = "c6c60a61255c9d31a1b6cae44bd6d0421560c8a3663a30e7e06321463470cd21" dependencies = [ "bp-header-chain", "bp-messages", @@ -1548,15 +1560,15 @@ dependencies = [ "pallet-utility", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", ] [[package]] name = "bp-runtime" -version = "0.18.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "746d9464f912b278f8a5e2400f10541f95da7fc6c7d688a2788b9a46296146ee" +checksum = "27578789ca57c0ee3a2f4b95dce0be3012234535b8c806583f8727a032890355" dependencies = [ "frame-support", "frame-system", @@ -1567,20 +1579,20 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-state-machine 0.43.0", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", "sp-std", - "sp-trie 37.0.0", - "trie-db 0.29.1", + "sp-trie", + "trie-db", ] [[package]] name = "bp-test-utils" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e659078b54c0b6bd79896738212a305842ad37168976363233516754337826" +checksum = "d1a295e84b72f31d78d9c98766cb48a1cbd9c6843304eeb77f5f0e1ca6fcaeab" dependencies = [ "bp-header-chain", "bp-parachains", @@ -1589,19 +1601,19 @@ dependencies = [ "ed25519-dalek", "finality-grandpa", "parity-scale-codec", - "sp-application-crypto 38.0.0", + "sp-application-crypto", "sp-consensus-grandpa", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "sp-std", - "sp-trie 37.0.0", + "sp-trie", ] [[package]] name = "bp-xcm-bridge-hub" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0873c54562b3d492541cbc8a7974c6854a5157d07880a2a71f8ba888a69e17e9" +checksum = "6096670fa8e283b60208d214beb84d816dc225d2a90a11d6fbb53b41cf788b7a" dependencies = [ "bp-messages", "bp-runtime", @@ -1609,30 +1621,30 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 34.0.0", - "sp-io 38.0.0", + "sp-core", + "sp-io", "sp-std", "staging-xcm", ] [[package]] name = "bp-xcm-bridge-hub-router" -version = "0.14.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9284820ca704f5c065563cad77d2e3d069a23cc9cb3a29db9c0de8dd3b173a87" +checksum = "439fd70cb49aae6cc58f6be630b460375fe11e0e950a6778b6eb47eb76bb1ac8" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "staging-xcm", ] [[package]] name = "bridge-hub-common" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b53c53d627e2da38f8910807944bf3121e154b5c0ac9e122995af9dfb13ed" +checksum = "b6e9199f3627f5f36fe6496f0cebb4ba19284d0c0d77637cca4134cb41ab42f2" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1640,8 +1652,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "snowbridge-core", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "sp-std", "staging-xcm", ] @@ -1656,7 +1668,8 @@ dependencies = [ "emulated-integration-tests-common", "frame-support", "parachains-common", - "sp-core 34.0.0", + "sp-core", + "sp-keyring", "staging-xcm", ] @@ -1690,8 +1703,8 @@ dependencies = [ "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "staging-xcm", "staging-xcm-executor", "system-parachains-constants", @@ -1767,16 +1780,15 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", - "sp-io 38.0.0", + "sp-io", "sp-keyring", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-std", - "sp-storage 21.0.0", + "sp-storage", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -1799,7 +1811,8 @@ dependencies = [ "emulated-integration-tests-common", "frame-support", "parachains-common", - "sp-core 34.0.0", + "sp-core", + "sp-keyring", "staging-xcm", ] @@ -1833,8 +1846,8 @@ dependencies = [ "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "staging-xcm", "staging-xcm-executor", "system-parachains-constants", @@ -1922,16 +1935,15 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", - "sp-io 38.0.0", + "sp-io", "sp-keyring", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-std", - "sp-storage 21.0.0", + "sp-storage", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -1946,9 +1958,9 @@ dependencies = [ [[package]] name = "bridge-hub-test-utils" -version = "0.20.1" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877ced8033734472eb3ab6c7d5f4b812020266784cf7223862ee6b29f629d006" +checksum = "7bc8fc20a146f2fcb47ae11fa578f4447d8c1c54c31028f08768b2b86a262537" dependencies = [ "asset-test-utils", "bp-header-chain", @@ -1976,12 +1988,12 @@ dependencies = [ "parachains-common", "parachains-runtimes-test-utils", "parity-scale-codec", - "sp-core 34.0.0", - "sp-io 38.0.0", + "sp-core", + "sp-io", "sp-keyring", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", - "sp-tracing 17.0.1", + "sp-tracing", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -1989,9 +2001,9 @@ dependencies = [ [[package]] name = "bridge-runtime-common" -version = "0.18.3" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "789eb7841c8791991317ec4b6e56c119e5e1c2e480ad293b8502736fd7f64b2e" +checksum = "b910601527d0add0507a8d100ddcfab0bb2719005e05993c5b8f9ba1cd364cb8" dependencies = [ "bp-header-chain", "bp-messages", @@ -2010,21 +2022,16 @@ dependencies = [ "pallet-utility", "parity-scale-codec", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", "sp-std", - "sp-trie 37.0.0", + "sp-trie", + "sp-weights", "staging-xcm", "static_assertions", "tuplex", ] -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" - [[package]] name = "bs58" version = "0.5.1" @@ -2045,15 +2052,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "byte-slice-cast" -version = "1.2.2" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "byte-tools" @@ -2063,9 +2070,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.14.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" [[package]] name = "byteorder" @@ -2075,9 +2082,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.1" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "c2-chacha" @@ -2091,18 +2098,18 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.6" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] @@ -2115,20 +2122,21 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.18", + "semver 1.0.26", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "cc" -version = "1.0.94" +version = "1.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7" +checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -2139,9 +2147,9 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cfg-expr" -version = "0.15.5" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", ] @@ -2152,6 +2160,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chacha" version = "0.3.0" @@ -2212,9 +2226,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ "android-tzdata", "iana-time-zone", @@ -2222,7 +2236,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.48.5", + "windows-link", ] [[package]] @@ -2273,9 +2287,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.0" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" dependencies = [ "clap_builder", "clap_derive", @@ -2283,40 +2297,41 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", + "strsim", ] [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "codespan-reporting" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ + "serde", "termcolor", "unicode-width", ] @@ -2330,7 +2345,7 @@ dependencies = [ "emulated-integration-tests-common", "frame-support", "parachains-common", - "sp-core 34.0.0", + "sp-core", ] [[package]] @@ -2361,8 +2376,8 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-constants", "polkadot-system-emulated-network", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "staging-xcm", "staging-xcm-executor", "system-parachains-constants", @@ -2426,18 +2441,17 @@ dependencies = [ "scale-info", "serde_json", "sp-api", - "sp-arithmetic 26.0.0", + "sp-arithmetic", "sp-block-builder", "sp-consensus-aura", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", - "sp-io 38.0.0", + "sp-io", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-std", - "sp-storage 21.0.0", + "sp-storage", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -2455,9 +2469,9 @@ version = "1.0.0" [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "combine" @@ -2477,31 +2491,31 @@ checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" [[package]] name = "concurrent-queue" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] [[package]] name = "console" -version = "0.15.8" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ "encode_unicode", - "lazy_static", "libc", + "once_cell", "unicode-width", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "const-hex" -version = "1.11.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbd12d49ab0eaf8193ba9175e45f56bbc2e4b27d57b8cfe62aa47942a46b9a9" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", "cpufeatures", @@ -2512,15 +2526,15 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-random" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ "const-random-macro", ] @@ -2531,11 +2545,31 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom", + "getrandom 0.2.15", "once_cell", "tiny-keccak", ] +[[package]] +name = "const_format" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -2544,9 +2578,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "constcat" @@ -2570,11 +2604,21 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core2" @@ -2594,7 +2638,7 @@ dependencies = [ "emulated-integration-tests-common", "frame-support", "parachains-common", - "sp-core 34.0.0", + "sp-core", ] [[package]] @@ -2618,7 +2662,7 @@ dependencies = [ "parity-scale-codec", "polkadot-runtime-common", "polkadot-runtime-parachains", - "sp-runtime 39.0.5", + "sp-runtime", "staging-kusama-runtime", "staging-xcm", "staging-xcm-executor", @@ -2675,14 +2719,13 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-std", - "sp-storage 21.0.0", + "sp-storage", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -2703,7 +2746,7 @@ dependencies = [ "emulated-integration-tests-common", "frame-support", "parachains-common", - "sp-core 34.0.0", + "sp-core", ] [[package]] @@ -2727,7 +2770,7 @@ dependencies = [ "polkadot-runtime-constants", "polkadot-runtime-parachains", "polkadot-system-emulated-network", - "sp-runtime 39.0.5", + "sp-runtime", "staging-xcm", "staging-xcm-executor", "xcm-runtime-apis", @@ -2781,17 +2824,16 @@ dependencies = [ "serde", "serde_json", "sp-api", - "sp-arithmetic 26.0.0", + "sp-arithmetic", "sp-block-builder", "sp-consensus-aura", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-std", - "sp-storage 21.0.0", + "sp-storage", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -2814,9 +2856,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -2936,18 +2978,18 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -2964,24 +3006,24 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-bigint" @@ -2991,7 +3033,7 @@ checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] @@ -3023,7 +3065,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.7", - "subtle 2.5.0", + "subtle 2.6.1", +] + +[[package]] +name = "crypto_secretbox" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1" +dependencies = [ + "aead", + "cipher 0.4.4", + "generic-array 0.14.7", + "poly1305", + "salsa20", + "subtle 2.6.1", + "zeroize", ] [[package]] @@ -3037,9 +3094,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cbe2735fc7cf2b6521eab00cb1a1ab025abc1575cc36887b36dc8c5cb1c9434" +checksum = "fcfd3a02157c9fa29569981d5ea9e3cdeec9db05d507eb92b1e273e8c79713e1" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -3048,16 +3105,16 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 38.0.0", + "sp-application-crypto", "sp-consensus-aura", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "cumulus-pallet-parachain-system" -version = "0.17.1" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "546403ee1185f4051a74cc9c9d76e82c63cac3fb68e1bf29f61efb5604c96488" +checksum = "9c7fa6bcd7747d830804ca9945a9d3f9c9bd11c367d58b241c4d9b2cd15688b5" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -3076,18 +3133,18 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-parachains", "scale-info", - "sp-core 34.0.0", - "sp-externalities 0.29.0", + "sp-core", + "sp-externalities", "sp-inherents", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-state-machine 0.43.0", + "sp-io", + "sp-runtime", + "sp-state-machine", "sp-std", - "sp-trie 37.0.0", + "sp-trie", "sp-version", "staging-xcm", "staging-xcm-builder", - "trie-db 0.29.1", + "trie-db", ] [[package]] @@ -3096,47 +3153,47 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "befbaf3a1ce23ac8476481484fef5f4d500cbd15b4dad6380ce1d28134b0c1f7" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "cumulus-pallet-session-benchmarking" -version = "19.0.0" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18168570689417abfb514ac8812fca7e6429764d01942750e395d7d8ce0716ef" +checksum = "2d5e093cc159f319f12e60fa92a83c0d07c89bb09bfa16d5d29cf79bbb5de21c" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "pallet-session", "parity-scale-codec", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "cumulus-pallet-xcm" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e49231f6cd8274438b078305dc8ce44c54c0d3f4a28e902589bcbaa53d954608" +checksum = "a82cc65ef2e9e584279c2ee13ff9bf40440750fdfaa5d51ed72d9e4d93d38d60" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", "staging-xcm", ] [[package]] name = "cumulus-pallet-xcmp-queue" -version = "0.17.2" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "105767016b8136031f14cca439edf28c8493e3556e6781847758511bfef2477a" +checksum = "8f4360e0f37edba48a9900f4b1037081d7d5cec0da9c3ce8494232d393098c98" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -3150,9 +3207,9 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-parachains", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -3160,66 +3217,62 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11e7825bcf3cc6c962a5b9b9f47e02dc381109e521d0bc00cad785c65da18471" +checksum = "3991e6f64338ee6656c624f8b5c3ff02c91cb17a0b2492b366c06e63c4339c02" dependencies = [ - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-primitives 15.0.0", "sp-api", "sp-consensus-aura", - "sp-runtime 39.0.5", ] [[package]] name = "cumulus-primitives-core" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c6b5221a4a3097f2ebef66c84c1e6d7a0b8ec7e63f2bd5ae04c1e6d3fc7514e" +checksum = "addbb15f04c1174d80696cc51a8b5281e2bf5e1917cd0811b2d3ed3373e5698d" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain-primitives", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "scale-info", "sp-api", - "sp-runtime 39.0.5", - "sp-trie 37.0.0", + "sp-runtime", + "sp-trie", "staging-xcm", ] [[package]] name = "cumulus-primitives-parachain-inherent" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842a694901e04a62d88995418dec35c22f7dba2b34d32d2b8de37d6b92f973ff" +checksum = "84c5e76a9ce17eb358b62e95f4835fec891c12502d9d6d6f0cc2e9dd8bdef3bf" dependencies = [ "async-trait", "cumulus-primitives-core", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", + "sp-core", "sp-inherents", - "sp-trie 37.0.0", + "sp-trie", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "421f03af054aac7c89e87a49e47964886e53a8d7395990eab27b6f201d42524f" +checksum = "0e89a46c3a18f3e0b38a308d30a4252516e3a6d41f95071562b68d94e9964ee3" dependencies = [ - "sp-externalities 0.29.0", - "sp-runtime-interface 28.0.0", - "sp-trie 37.0.0", + "sp-externalities", + "sp-runtime-interface", + "sp-trie", ] [[package]] name = "cumulus-primitives-utility" -version = "0.17.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bdcf4d46dd93f1e6d5dd6d379133566a44042ba6476d04bdcbdb4981c622ae4" +checksum = "5f41c80ec9ceb4bb0e262acd345d359da583b698c7ae0f22f2d55f8b2b7e99a2" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -3227,7 +3280,7 @@ dependencies = [ "pallet-asset-conversion", "parity-scale-codec", "polkadot-runtime-common", - "sp-runtime 39.0.5", + "sp-runtime", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -3235,29 +3288,16 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e570e41c3f05a8143ebff967bbb0c7dcaaa6f0bebd8639b9418b8005b13eda03" +checksum = "ebd21a9fe5af983ac7f0053f7e202ee122dda91d70db356870c211c7a18605e1" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", - "polkadot-primitives 16.0.0", - "sp-runtime 39.0.5", - "sp-state-machine 0.43.0", - "sp-trie 37.0.0", -] - -[[package]] -name = "curve25519-dalek" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle 2.5.0", - "zeroize", + "polkadot-primitives", + "sp-runtime", + "sp-state-machine", + "sp-trie", ] [[package]] @@ -3271,8 +3311,8 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.0", - "subtle 2.5.0", + "rustc_version 0.4.1", + "subtle 2.6.1", "zeroize", ] @@ -3284,134 +3324,114 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "cxx" -version = "1.0.110" +version = "1.0.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7129e341034ecb940c9072817cd9007974ea696844fc4dd582dc1653a7fbe2e8" +checksum = "4b4ab2681454aacfe7ce296ebc6df86791009f237f8020b0c752e8b245ba7c1d" dependencies = [ "cc", + "cxxbridge-cmd", "cxxbridge-flags", "cxxbridge-macro", + "foldhash", "link-cplusplus", ] [[package]] name = "cxx-build" -version = "1.0.110" +version = "1.0.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a24f3f5f8eed71936f21e570436f024f5c2e25628f7496aa7ccd03b90109d5" +checksum = "5e431f7ba795550f2b11c32509b3b35927d899f0ad13a1d1e030a317a08facbe" dependencies = [ "cc", "codespan-reporting", - "once_cell", "proc-macro2", "quote", "scratch", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] -name = "cxxbridge-flags" -version = "1.0.110" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06fdd177fc61050d63f67f5bd6351fac6ab5526694ea8e359cd9cd3b75857f44" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.110" +name = "cxxbridge-cmd" +version = "1.0.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "587663dd5fb3d10932c8aecfe7c844db1bcf0aee93eeab08fac13dc1212c2e7f" +checksum = "7cbc41933767955d04c2a90151806029b93df5fd8b682ba22a967433347480a9" dependencies = [ + "clap", + "codespan-reporting", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] -name = "darling" -version = "0.14.4" +name = "cxxbridge-flags" +version = "1.0.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = [ - "darling_core 0.14.4", - "darling_macro 0.14.4", -] +checksum = "9133547634329a5b76e5f58d1e53c16d627699bbcd421b9007796311165f9667" [[package]] -name = "darling" -version = "0.20.8" +name = "cxxbridge-macro" +version = "1.0.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" +checksum = "53e89d77ad5fd6066a3d42d94de3f72a2f23f95006da808177624429b5183596" dependencies = [ - "darling_core 0.20.8", - "darling_macro 0.20.8", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.100", ] [[package]] -name = "darling_core" -version = "0.14.4" +name = "darling" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 1.0.109", + "darling_core", + "darling_macro", ] [[package]] name = "darling_core" -version = "0.20.8" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", - "syn 2.0.65", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core 0.14.4", - "quote", - "syn 1.0.109", + "strsim", + "syn 2.0.100", ] [[package]] name = "darling_macro" -version = "0.20.8" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core 0.20.8", + "darling_core", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" [[package]] name = "data-encoding-macro" -version = "0.1.14" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" +checksum = "9f9724adfcf41f45bf652b3995837669d73c4d49a1b5ac1ff82905ac7d9b5558" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -3419,19 +3439,19 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.12" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" +checksum = "18e4fdb82bd54a12e42fb58a800dcae6b9e13982238ce2296dc3570b92148e1f" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "zeroize", @@ -3457,7 +3477,21 @@ version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" dependencies = [ - "asn1-rs 0.6.1", + "asn1-rs 0.6.2", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "der-parser" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" +dependencies = [ + "asn1-rs 0.7.1", "displaydoc", "nom", "num-bigint", @@ -3467,9 +3501,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.10" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", ] @@ -3493,20 +3527,52 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", +] + +[[package]] +name = "derive-where" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.0", - "syn 1.0.109", + "rustc_version 0.4.1", + "syn 2.0.100", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "unicode-xid", ] [[package]] @@ -3542,7 +3608,7 @@ dependencies = [ "block-buffer 0.10.4", "const-oid", "crypto-common", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -3568,29 +3634,29 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "docify" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" +checksum = "a772b62b1837c8f060432ddcc10b17aae1453ef17617a99bc07789252d2a5896" dependencies = [ "docify_macros", ] [[package]] name = "docify_macros" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" +checksum = "60e6be249b0a462a14784a99b19bf35a667bb5e09de611738bb7362fa4c95ff7" dependencies = [ "common-path", "derive-syn-parse", @@ -3598,9 +3664,9 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.65", + "syn 2.0.100", "termcolor", - "toml 0.8.12", + "toml 0.8.20", "walkdir", ] @@ -3618,21 +3684,21 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dtoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" +checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" [[package]] name = "dunce" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clonable" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" +checksum = "a36efbb9bfd58e1723780aa04b61aba95ace6a05d9ffabfdb0b43672552f0805" dependencies = [ "dyn-clonable-impl", "dyn-clone", @@ -3640,20 +3706,20 @@ dependencies = [ [[package]] name = "dyn-clonable-impl" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" +checksum = "7e8671d54058979a37a26f3511fbf8d198ba1aa35ffb202c42587d918d77213a" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" [[package]] name = "ecdsa" @@ -3686,26 +3752,12 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ - "curve25519-dalek 4.1.3", + "curve25519-dalek", "ed25519", "rand_core 0.6.4", "serde", "sha2 0.10.8", - "subtle 2.5.0", - "zeroize", -] - -[[package]] -name = "ed25519-zebra" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" -dependencies = [ - "curve25519-dalek 3.2.0", - "hashbrown 0.12.3", - "hex", - "rand_core 0.6.4", - "sha2 0.9.9", + "subtle 2.6.1", "zeroize", ] @@ -3715,9 +3767,9 @@ version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ - "curve25519-dalek 4.1.3", + "curve25519-dalek", "ed25519", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", "rand_core 0.6.4", "sha2 0.10.8", @@ -3726,9 +3778,9 @@ dependencies = [ [[package]] name = "either" -version = "1.11.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "elliptic-curve" @@ -3746,15 +3798,15 @@ dependencies = [ "rand_core 0.6.4", "sec1", "serdect", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] [[package]] name = "emulated-integration-tests-common" -version = "16.0.1" +version = "19.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8b3e59796b1469b3a8042f47377f88744cc256fee68a7075b76772fa77f0487" +checksum = "438b706f12ea5e56d1bba7350abe5402800ca94910342c8e4b7eea08b7056d17" dependencies = [ "asset-test-utils", "bp-messages", @@ -3773,38 +3825,39 @@ dependencies = [ "parity-scale-codec", "paste", "polkadot-parachain-primitives", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-parachains", "sc-consensus-grandpa", "sp-authority-discovery", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-keyring", + "sp-runtime", "staging-xcm", "xcm-emulator", ] [[package]] name = "encode_unicode" -version = "0.3.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] [[package]] name = "encointer-balances-tx-payment" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f7fcaa7f5fc5cd9493884a4020a9b1d50cb3d26ad1a921e68a6c50310aff144" +checksum = "afd5c304551fb94dceeb964bca360ca9c4c9f2b9d13e3b67e6375ed462fd87f9" dependencies = [ "encointer-primitives", "frame-support", @@ -3814,14 +3867,14 @@ dependencies = [ "pallet-encointer-balances", "pallet-encointer-ceremonies", "pallet-transaction-payment", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "encointer-balances-tx-payment-rpc-runtime-api" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "584f431b0780640fa3fa7f6637f2661cc317cd126a345bf4bba6809c7c0f891f" +checksum = "66044c51b871b1ec43fb2bebf38bef1e8d10b77fae78f92f17f377202070696c" dependencies = [ "encointer-primitives", "frame-support", @@ -3833,12 +3886,12 @@ dependencies = [ [[package]] name = "encointer-ceremonies-assignment" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3890b05d20d81cd72e461b4e4a40e574f357bd8bd93095d60196bf85f0ca2b" +checksum = "4c1dfc5d5e0e6e07266765e13b7b865f7673a36795a67cea10db24012a0837f0" dependencies = [ "encointer-primitives", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", ] @@ -3903,7 +3956,7 @@ dependencies = [ "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain-primitives", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-common", "scale-info", "serde_json", @@ -3911,13 +3964,12 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-std", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -3931,25 +3983,25 @@ dependencies = [ [[package]] name = "encointer-meetup-validation" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "722b39de0c811f628d8f4667b9d10f119b7219b2fef4bd8e58f4c06ea2e25b02" +checksum = "f44179c309bbb80b110c6233a1ff191a35c48a9a83031e20460df29fb4375c06" dependencies = [ "encointer-primitives", "parity-scale-codec", "scale-info", "serde", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", ] [[package]] name = "encointer-primitives" -version = "14.4.0" +version = "15.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b76f82da748ef0839a33162583133f9c9084d6469169ef7f9111242ebd9e73" +checksum = "e75e840d7a36a01b795797ee51e1837c42aa56159006784dc075a3cdc7f3670b" dependencies = [ - "bs58 0.5.1", + "bs58", "crc", "ep-core", "frame-support", @@ -3957,9 +4009,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "substrate-geohash", ] @@ -3978,34 +4030,34 @@ dependencies = [ [[package]] name = "enum-as-inner" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "enumflags2" -version = "0.7.8" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.8" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -4016,14 +4068,14 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "env_logger" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ "humantime", "is-terminal", @@ -4040,43 +4092,43 @@ checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] name = "ep-core" -version = "14.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7252d3d17ddaf02f1f1dccce29db2de5d76fb94ed046c7b1e5a7d74e0b636cf5" +checksum = "5e6d40965a4032e63ef279bba9925eff1a29342e63f1fdd566d84a900cf56642" dependencies = [ "array-bytes", "impl-serde", "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-core", + "sp-runtime", "sp-std", "substrate-fixed", ] [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "ethabi-decode" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d398648d65820a727d6a81e58b962f874473396a047e4c30bafe3240953417" +checksum = "52029c4087f9f01108f851d0d02df9c21feb5660a19713466724b7f95bd2d773" dependencies = [ "ethereum-types", "tiny-keccak", @@ -4084,13 +4136,13 @@ dependencies = [ [[package]] name = "ethbloom" -version = "0.13.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +checksum = "8c321610643004cf908ec0f5f2aa0d8f1f8e14b540562a2887a1111ff1ecbf7b" dependencies = [ "crunchy", "fixed-hash", - "impl-codec", + "impl-codec 0.7.1", "impl-rlp", "impl-serde", "scale-info", @@ -4099,18 +4151,18 @@ dependencies = [ [[package]] name = "ethereum-types" -version = "0.14.1" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +checksum = "1ab15ed80916029f878e0267c3a9f92b67df55e79af370bf66199059ae2b4ee3" dependencies = [ "ethbloom", "fixed-hash", - "impl-codec", + "impl-codec 0.7.1", "impl-rlp", "impl-serde", - "primitive-types", + "primitive-types 0.13.1", "scale-info", - "uint", + "uint 0.10.0", ] [[package]] @@ -4121,57 +4173,38 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "4.0.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", -] - -[[package]] -name = "event-listener" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.0", - "pin-project-lite 0.2.13", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.3.0", - "pin-project-lite 0.2.13", + "event-listener 5.4.0", + "pin-project-lite", ] [[package]] name = "expander" -version = "2.0.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +checksum = "e2c470c71d91ecbd179935b24170459e926382eaaa86b590b78814e180d8a8e2" dependencies = [ "blake2 0.10.6", + "file-guard", "fs-err", + "prettyplease", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -4188,9 +4221,9 @@ checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" [[package]] name = "fastrand" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fastrlp" @@ -4198,26 +4231,47 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", + "auto_impl", + "bytes", +] + +[[package]] +name = "fastrlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" +dependencies = [ + "arrayvec 0.7.6", "auto_impl", "bytes", ] [[package]] name = "ff" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "rand_core 0.6.4", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] name = "fiat-crypto" -version = "0.2.6" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "file-guard" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" +checksum = "21ef72acf95ec3d7dbf61275be556299490a245f017cf084bd23b4f68cf9407c" +dependencies = [ + "libc", + "winapi", +] [[package]] name = "file-per-thread-logger" @@ -4231,21 +4285,21 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.23" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", - "windows-sys 0.52.0", + "libredox", + "windows-sys 0.59.0", ] [[package]] name = "finality-grandpa" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" +checksum = "b4f8f43dc520133541781ec03a8cab158ae8b7f7169cdf22e9050aa6cf0fbdfc" dependencies = [ "either", "futures", @@ -4264,22 +4318,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] [[package]] name = "fixedbitset" -version = "0.4.2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.0.28" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" dependencies = [ "crc32fast", "miniz_oxide", @@ -4300,6 +4354,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foreign-types" version = "0.3.2" @@ -4335,15 +4395,15 @@ dependencies = [ [[package]] name = "fragile" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" +checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" -version = "38.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01bdd47c2d541b38bd892da647d1e972c9d85b4ecd7094ad64f7600175da54d" +checksum = "8c221b23f5cc5990830c4010bc01eac1cf401327e2bec362b0d28cb261809958" dependencies = [ "frame-support", "frame-support-procedural", @@ -4355,49 +4415,63 @@ dependencies = [ "scale-info", "serde", "sp-api", - "sp-application-crypto 38.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-runtime-interface 28.0.0", - "sp-storage 21.0.0", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface", + "sp-storage", "static_assertions", ] +[[package]] +name = "frame-decode" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6027a409bac4fe95b4d107f965fcdbc252fc89d884a360d076b3070b6128c094" +dependencies = [ + "frame-metadata 17.0.0", + "parity-scale-codec", + "scale-decode 0.14.0", + "scale-info", + "scale-type-resolver", + "sp-crypto-hashing", +] + [[package]] name = "frame-election-provider-solution-type" version = "14.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8156f209055d352994ecd49e19658c6b469d7c6de923bd79868957d0dcfb6f71" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "frame-election-provider-support" -version = "38.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c36f5116192c63d39f1b4556fa30ac7db5a6a52575fa241b045f7dfa82ecc2be" +checksum = "3d62cba64438e4f6f8b78c8c7ec1953ba3c3f4933245412b44501b31df0f87ef" dependencies = [ "frame-election-provider-solution-type", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", + "sp-arithmetic", + "sp-core", "sp-npos-elections", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "frame-executive" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c365bf3879de25bbee28e9584096955a02fbe8d7e7624e10675800317f1cee5b" +checksum = "e71d2a46f2dfabd97d597de29b69c331fc3ca5602848aa0a235823e675fd0678" dependencies = [ "aquamarine", "frame-support", @@ -4406,28 +4480,29 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-tracing 17.0.1", + "sp-core", + "sp-io", + "sp-runtime", + "sp-tracing", ] [[package]] name = "frame-metadata" -version = "15.1.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878babb0b136e731cc77ec2fd883ff02745ff21e6fb662729953d44923df009c" +checksum = "701bac17e9b55e0f95067c428ebcb46496587f08e8cf4ccc0fe5903bea10dbb8" dependencies = [ "cfg-if", "parity-scale-codec", "scale-info", + "serde", ] [[package]] name = "frame-metadata" -version = "16.0.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" +checksum = "daaf440c68eb2c3d88e5760fe8c7af3f9fee9181fab6c2f2c4e7cc48dcc40bb8" dependencies = [ "cfg-if", "parity-scale-codec", @@ -4437,37 +4512,38 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ac71dbd97039c49fdd69f416a4dd5d8da3652fdcafc3738b45772ad79eb4ec" +checksum = "014915e6982d15be6eedd8034daf020e62a057577f99d71e33ad2002367a35dc" dependencies = [ "array-bytes", + "const-hex", "docify", "frame-support", "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "frame-remote-externalities" -version = "0.46.0" +version = "0.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a946c33c9bd653f464bb158e020a9e85bd9d6746f39d702a84973bd6a4cde0" +checksum = "df247674538da2e8fa44df29bf1b6c3c5c2bd154825e92450ccfc4eef7ddba67" dependencies = [ "futures", "indicatif", - "jsonrpsee 0.24.7", + "jsonrpsee", "log", "parity-scale-codec", "serde", - "sp-core 34.0.0", + "sp-core", "sp-crypto-hashing", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-state-machine 0.43.0", + "sp-io", + "sp-runtime", + "sp-state-machine", "spinners", "substrate-rpc-client", "tokio", @@ -4476,16 +4552,17 @@ dependencies = [ [[package]] name = "frame-support" -version = "38.2.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7dd8b9f161a8289e3b9fe6c1068519358dbff2270d38097a923d3d1b4459dca" +checksum = "3aba77ba276576c4dbd1b2e5e3dc7d95346787cccee610c846dd0e5292add9e2" dependencies = [ "aquamarine", "array-bytes", + "binary-merkle-tree", "bitflags 1.3.2", "docify", "environmental", - "frame-metadata 16.0.0", + "frame-metadata 18.0.0", "frame-support-procedural", "impl-trait-for-tuples", "k256", @@ -4498,29 +4575,30 @@ dependencies = [ "serde_json", "smallvec", "sp-api", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", + "sp-arithmetic", + "sp-core", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-genesis-builder", "sp-inherents", - "sp-io 38.0.0", + "sp-io", "sp-metadata-ir", - "sp-runtime 39.0.5", - "sp-staking 36.0.0", - "sp-state-machine 0.43.0", + "sp-runtime", + "sp-staking", + "sp-state-machine", "sp-std", - "sp-tracing 17.0.1", - "sp-weights 31.0.0", + "sp-tracing", + "sp-trie", + "sp-weights", "static_assertions", "tt-call", ] [[package]] name = "frame-support-procedural" -version = "30.0.6" +version = "31.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da784d943f2a945be923ab081a7c0837355b38045c50945d7ec1a138e2f3c52" +checksum = "4ad7560a3fb472e43f45e404af919c955badcc64269114de0ce22445ab043119" dependencies = [ "Inflector", "cfg-expr", @@ -4530,24 +4608,24 @@ dependencies = [ "frame-support-procedural-tools", "itertools 0.11.0", "macro_magic", - "proc-macro-warning 1.0.0", + "proc-macro-warning 1.84.1", "proc-macro2", "quote", "sp-crypto-hashing", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "frame-support-procedural-tools" -version = "13.0.0" +version = "13.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bead15a320be1764cdd50458c4cfacb23e0cee65f64f500f8e34136a94c7eeca" +checksum = "81a088fd6fda5f53ff0c17fc7551ce8bd0ead14ba742228443c8196296a7369b" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -4558,14 +4636,14 @@ checksum = "ed971c6435503a099bdac99fe4c5bea08981709e5b5a0a8535a1856f48561191" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "frame-system" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c7fa02f8c305496d2ae52edaecdb9d165f11afa965e05686d7d7dd1ce93611" +checksum = "b97b74455a72cc924b8b8e8a1dee05de90d3714d1723b0ff54b9e6976aa009ac" dependencies = [ "cfg-if", "docify", @@ -4574,34 +4652,34 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "sp-version", - "sp-weights 31.0.0", + "sp-weights", ] [[package]] name = "frame-system-benchmarking" -version = "38.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9693b2a736beb076e673520e1e8dee4fc128b8d35b020ef3e8a4b1b5ad63d9f2" +checksum = "50f737d2b4dbde43635fed849cc3fb97e8f89c5d3046c207ef1829673f096989" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", ] [[package]] name = "frame-system-rpc-runtime-api" -version = "34.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "475c4f8604ba7e4f05cd2c881ba71105093e638b9591ec71a8db14a64b3b4ec3" +checksum = "9756d979251b162f1c9821a944b95e5fdd4d6c7aab8854a33b5820ce02a77af5" dependencies = [ "docify", "parity-scale-codec", @@ -4610,14 +4688,14 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.44.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c811a5a1f5429c7fb5ebbf6cf9502d8f9b673fd395c12cf46c44a30a7daf0e" +checksum = "2224250e66348e71a952060f50b75bf02b7114241818602ccc46e0f905331193" dependencies = [ "frame-support", "parity-scale-codec", "sp-api", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] @@ -4637,9 +4715,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -4660,11 +4738,21 @@ dependencies = [ "futures-util", ] +[[package]] +name = "futures-bounded" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91f328e7fb845fc832912fb6a34f40cf6d1888c92f974d1893a54e97b5ff542e" +dependencies = [ + "futures-timer", + "futures-util", +] + [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -4672,15 +4760,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -4690,32 +4778,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.1.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ "fastrand", "futures-core", "futures-io", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -4725,20 +4813,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35bd3cf68c183738046838e300353e4716c674dc5e56890de4826801a6622a28" dependencies = [ "futures-io", - "rustls 0.21.10", + "rustls 0.21.12", ] [[package]] -name = "futures-sink" -version = "0.3.30" +name = "futures-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" +dependencies = [ + "futures-io", + "rustls 0.23.25", + "rustls-pki-types", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -4748,9 +4847,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -4759,7 +4858,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite", "pin-utils", "slab", ] @@ -4795,13 +4894,29 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", ] [[package]] @@ -4810,17 +4925,17 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ - "rand", + "rand 0.8.5", "rand_core 0.6.4", ] [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "polyval", ] @@ -4845,6 +4960,18 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "glob-match" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985c9503b412198aa4197559e9a318524ebc4519c229bfa05a535828c950b9d" + [[package]] name = "glutton-kusama-runtime" version = "1.0.0" @@ -4868,14 +4995,13 @@ dependencies = [ "serde_json", "sp-api", "sp-block-builder", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-std", - "sp-storage 21.0.0", + "sp-storage", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -4894,22 +5020,22 @@ checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", "rand_core 0.6.4", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] name = "h2" -version = "0.3.22" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", "futures-core", "futures-sink", "futures-util", - "http 0.2.11", - "indexmap 2.2.6", + "http 0.2.12", + "indexmap 2.8.0", "slab", "tokio", "tokio-util", @@ -4918,17 +5044,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.2.6", + "http 1.3.1", + "indexmap 2.8.0", "slab", "tokio", "tokio-util", @@ -4955,9 +5081,6 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.8", -] [[package]] name = "hashbrown" @@ -4965,27 +5088,38 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.8", + "ahash", ] [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.8", + "ahash", "allocator-api2", "serde", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + [[package]] name = "hashlink" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -5002,9 +5136,21 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + +[[package]] +name = "hermit-abi" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e" [[package]] name = "hex" @@ -5018,12 +5164,67 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" +[[package]] +name = "hex-conservative" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +dependencies = [ + "arrayvec 0.7.6", +] + [[package]] name = "hex-literal" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "hickory-proto" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.6.1", + "futures-channel", + "futures-io", + "futures-util", + "idna 1.0.3", + "ipnet", + "once_cell", + "rand 0.8.5", + "socket2 0.5.9", + "thiserror 1.0.69", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "hickory-resolver" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" +dependencies = [ + "cfg-if", + "futures-util", + "hickory-proto", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot 0.12.3", + "rand 0.8.5", + "resolv-conf", + "smallvec", + "thiserror 1.0.69", + "tokio", + "tracing", +] + [[package]] name = "hkdf" version = "0.12.4" @@ -5065,29 +5266,29 @@ dependencies = [ [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "hostname" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" dependencies = [ + "cfg-if", "libc", - "match_cfg", - "winapi", + "windows 0.52.0", ] [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -5096,9 +5297,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -5107,13 +5308,13 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http 0.2.11", - "pin-project-lite 0.2.13", + "http 0.2.12", + "pin-project-lite", ] [[package]] @@ -5123,20 +5324,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.3.1", ] [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", - "http 1.1.0", + "futures-core", + "http 1.3.1", "http-body 1.0.1", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] @@ -5147,9 +5348,9 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "httparse" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -5159,28 +5360,28 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", - "h2 0.3.22", - "http 0.2.11", - "http-body 0.4.5", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.13", - "socket2 0.4.10", + "pin-project-lite", + "socket2 0.5.9", "tokio", "tower-service", "tracing", @@ -5189,19 +5390,20 @@ dependencies = [ [[package]] name = "hyper" -version = "1.4.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.5", - "http 1.1.0", + "h2 0.4.8", + "http 1.3.1", "http-body 1.0.1", "httparse", + "httpdate", "itoa", - "pin-project-lite 0.2.13", + "pin-project-lite", "smallvec", "tokio", "want", @@ -5214,10 +5416,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http 0.2.11", - "hyper 0.14.27", + "http 0.2.12", + "hyper 0.14.32", "log", - "rustls 0.21.10", + "rustls 0.21.12", "rustls-native-certs 0.6.3", "tokio", "tokio-rustls 0.24.1", @@ -5225,19 +5427,19 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.2" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.4.1", + "http 1.3.1", + "hyper 1.6.0", "hyper-util", "log", - "rustls 0.23.11", + "rustls 0.23.25", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.2", "tower-service", ] @@ -5247,57 +5449,61 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper 0.14.27", - "pin-project-lite 0.2.13", + "hyper 0.14.32", + "pin-project-lite", "tokio", "tokio-io-timeout", ] [[package]] name = "hyper-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", - "hyper 0.14.27", + "http-body-util", + "hyper 1.6.0", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", ] [[package]] name = "hyper-util" -version = "0.1.6" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" +checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", - "hyper 1.4.1", - "pin-project-lite 0.2.13", - "socket2 0.5.7", + "hyper 1.6.0", + "libc", + "pin-project-lite", + "socket2 0.5.9", "tokio", - "tower", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", - "windows-core", + "windows-core 0.61.0", ] [[package]] @@ -5309,6 +5515,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -5338,12 +5662,23 @@ dependencies = [ [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -5358,21 +5693,25 @@ dependencies = [ [[package]] name = "if-watch" -version = "3.2.0" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" +checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38" dependencies = [ "async-io", - "core-foundation", + "core-foundation 0.9.4", "fnv", "futures", "if-addrs", "ipnet", "log", + "netlink-packet-core", + "netlink-packet-route", + "netlink-proto", + "netlink-sys", "rtnetlink", "system-configuration", "tokio", - "windows", + "windows 0.53.0", ] [[package]] @@ -5385,10 +5724,10 @@ dependencies = [ "attohttpc", "bytes", "futures", - "http 0.2.11", - "hyper 0.14.27", + "http 0.2.12", + "hyper 0.14.32", "log", - "rand", + "rand 0.8.5", "tokio", "url", "xmltree", @@ -5403,6 +5742,15 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "impl-codec" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d40b9d5e17727407e55028eafc22b2dc68781786e6d7eb8a21103f5058e3a14" +dependencies = [ + "parity-scale-codec", +] + [[package]] name = "impl-num-traits" version = "0.1.2" @@ -5411,52 +5759,63 @@ checksum = "951641f13f873bff03d4bf19ae8bec531935ac0ac2cc775f84d7edfdcfed3f17" dependencies = [ "integer-sqrt", "num-traits", - "uint", + "uint 0.9.5", +] + +[[package]] +name = "impl-num-traits" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "803d15461ab0dcc56706adf266158acbc44ccf719bf7d0af30705f58b90a4b8c" +dependencies = [ + "integer-sqrt", + "num-traits", + "uint 0.10.0", ] [[package]] name = "impl-rlp" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +checksum = "54ed8ad1f3877f7e775b8cbf30ed1bd3209a95401817f19a0eb4402d13f8cf90" dependencies = [ - "rlp", + "rlp 0.6.1", ] [[package]] name = "impl-serde" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +checksum = "4a143eada6a1ec4aefa5049037a26a6d597bfd64f8c026d07b77133e02b7dd0b" dependencies = [ "serde", ] [[package]] name = "impl-trait-for-tuples" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "include_dir" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" dependencies = [ "include_dir_macros", ] [[package]] name = "include_dir_macros" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" dependencies = [ "proc-macro2", "quote", @@ -5475,12 +5834,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.15.2", ] [[package]] @@ -5491,31 +5850,31 @@ checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" [[package]] name = "indicatif" -version = "0.17.7" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ "console", - "instant", "number_prefix", "portable-atomic", "unicode-width", + "web-time", ] [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "generic-array 0.14.7", ] [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] @@ -5549,7 +5908,7 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", "libc", "windows-sys 0.48.0", ] @@ -5566,7 +5925,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.7", + "socket2 0.5.9", "widestring", "windows-sys 0.48.0", "winreg", @@ -5574,21 +5933,27 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ - "hermit-abi", - "rustix 0.38.31", - "windows-sys 0.48.0", + "hermit-abi 0.5.0", + "libc", + "windows-sys 0.59.0", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.10.5" @@ -5617,23 +5982,43 @@ dependencies = [ ] [[package]] -name = "itoa" -version = "1.0.10" +name = "itertools" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] [[package]] -name = "jni" -version = "0.19.0" +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jni" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if", "combine", "jni-sys", "log", - "thiserror", + "thiserror 1.0.69", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -5644,19 +6029,21 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.2", "libc", ] [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -5668,7 +6055,7 @@ checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" dependencies = [ "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5681,74 +6068,42 @@ dependencies = [ "pest_derive", "regex", "serde_json", - "thiserror", -] - -[[package]] -name = "jsonrpsee" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" -dependencies = [ - "jsonrpsee-client-transport 0.22.5", - "jsonrpsee-core 0.22.5", - "jsonrpsee-http-client 0.22.5", - "jsonrpsee-types 0.22.5", + "thiserror 1.0.69", ] [[package]] name = "jsonrpsee" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5c71d8c1a731cc4227c2f698d377e7848ca12c8a48866fc5e6951c43a4db843" +checksum = "37b26c20e2178756451cfeb0661fb74c47dd5988cb7e3939de7e9241fd604d42" dependencies = [ - "jsonrpsee-core 0.24.7", - "jsonrpsee-http-client 0.24.7", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-http-client", "jsonrpsee-proc-macros", - "jsonrpsee-types 0.24.7", + "jsonrpsee-types", "jsonrpsee-ws-client", "tracing", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" -dependencies = [ - "futures-util", - "http 0.2.11", - "jsonrpsee-core 0.22.5", - "pin-project", - "rustls-native-certs 0.7.0", - "rustls-pki-types", - "soketto 0.7.1", - "thiserror", - "tokio", - "tokio-rustls 0.25.0", - "tokio-util", - "tracing", - "url", -] - -[[package]] -name = "jsonrpsee-client-transport" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "548125b159ba1314104f5bb5f38519e03a41862786aa3925cf349aae9cdd546e" +checksum = "bacb85abf4117092455e1573625e21b8f8ef4dec8aff13361140b2dc266cdff2" dependencies = [ "base64 0.22.1", "futures-util", - "http 1.1.0", - "jsonrpsee-core 0.24.7", + "http 1.3.1", + "jsonrpsee-core", "pin-project", - "rustls 0.23.11", + "rustls 0.23.25", "rustls-pki-types", "rustls-platform-verifier", - "soketto 0.8.0", - "thiserror", + "soketto", + "thiserror 1.0.69", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.2", "tokio-util", "tracing", "url", @@ -5756,48 +6111,25 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" -dependencies = [ - "anyhow", - "async-trait", - "beef", - "futures-timer", - "futures-util", - "hyper 0.14.27", - "jsonrpsee-types 0.22.5", - "pin-project", - "rustc-hash 1.1.0", - "serde", - "serde_json", - "thiserror", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "jsonrpsee-core" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2882f6f8acb9fdaec7cefc4fd607119a9bd709831df7d7672a1d3b644628280" +checksum = "456196007ca3a14db478346f58c7238028d55ee15c1df15115596e411ff27925" dependencies = [ "async-trait", "bytes", "futures-timer", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "jsonrpsee-types 0.24.7", + "jsonrpsee-types", "parking_lot 0.12.3", "pin-project", - "rand", - "rustc-hash 2.0.0", + "rand 0.8.5", + "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "tracing", @@ -5805,105 +6137,72 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5" -dependencies = [ - "async-trait", - "hyper 0.14.27", - "hyper-rustls 0.24.2", - "jsonrpsee-core 0.22.5", - "jsonrpsee-types 0.22.5", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower", - "tracing", - "url", -] - -[[package]] -name = "jsonrpsee-http-client" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3638bc4617f96675973253b3a45006933bde93c2fd8a6170b33c777cc389e5b" +checksum = "c872b6c9961a4ccc543e321bb5b89f6b2d2c7fe8b61906918273a3333c95400c" dependencies = [ "async-trait", "base64 0.22.1", "http-body 1.0.1", - "hyper 1.4.1", - "hyper-rustls 0.27.2", + "hyper 1.6.0", + "hyper-rustls 0.27.5", "hyper-util", - "jsonrpsee-core 0.24.7", - "jsonrpsee-types 0.24.7", - "rustls 0.23.11", + "jsonrpsee-core", + "jsonrpsee-types", + "rustls 0.23.25", "rustls-platform-verifier", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", - "tower", + "tower 0.4.13", "tracing", "url", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06c01ae0007548e73412c08e2285ffe5d723195bf268bce67b1b77c3bb2a14d" +checksum = "5e65763c942dfc9358146571911b0cd1c361c2d63e2d2305622d40d36376ca80" dependencies = [ "heck 0.5.0", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.65", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" -dependencies = [ - "anyhow", - "beef", - "serde", - "serde_json", - "thiserror", + "syn 2.0.100", ] [[package]] name = "jsonrpsee-types" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a178c60086f24cc35bb82f57c651d0d25d99c4742b4d335de04e97fa1f08a8a1" +checksum = "08a8e70baf945b6b5752fc8eb38c918a48f1234daf11355e07106d963f860089" dependencies = [ - "http 1.1.0", + "http 1.3.1", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "jsonrpsee-ws-client" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe322e0896d0955a3ebdd5bf813571c53fea29edd713bc315b76620b327e86d" +checksum = "01b3323d890aa384f12148e8d2a1fd18eb66e9e7e825f9de4fa53bcc19b93eef" dependencies = [ - "http 1.1.0", - "jsonrpsee-client-transport 0.24.7", - "jsonrpsee-core 0.24.7", - "jsonrpsee-types 0.24.7", + "http 1.3.1", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", "url", ] [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -5919,7 +6218,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edc3606fd16aca7989db2f84bb25684d0270c6d6fa1dbcd0025af7b4130523a6" dependencies = [ - "base64 0.21.6", + "base64 0.21.7", "bytes", "chrono", "serde", @@ -5929,13 +6228,23 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ "cpufeatures", ] +[[package]] +name = "keccak-hash" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e1b8590eb6148af2ea2d75f38e7d29f5ca970d5a4df456b3ef19b8b415d0264" +dependencies = [ + "primitive-types 0.13.1", + "tiny-keccak", +] + [[package]] name = "keystream" version = "1.0.0" @@ -5960,34 +6269,34 @@ version = "0.87.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "033450dfa0762130565890dadf2f8835faedf749376ca13345bcd8ecd6b5f29f" dependencies = [ - "base64 0.21.6", + "base64 0.21.7", "bytes", "chrono", "either", "futures", "home", - "http 0.2.11", - "http-body 0.4.5", - "hyper 0.14.27", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", "hyper-rustls 0.24.2", "hyper-timeout", "jsonpath-rust", "k8s-openapi", "kube-core", - "pem 3.0.4", + "pem 3.0.5", "pin-project", - "rand", - "rustls 0.21.10", + "rand 0.8.5", + "rustls 0.21.12", "rustls-pemfile 1.0.4", - "secrecy", + "secrecy 0.8.0", "serde", "serde_json", "serde_yaml", - "thiserror", + "thiserror 1.0.69", "tokio", - "tokio-tungstenite", + "tokio-tungstenite 0.20.1", "tokio-util", - "tower", + "tower 0.4.13", "tower-http", "tracing", ] @@ -6000,13 +6309,13 @@ checksum = "b5bba93d054786eba7994d03ce522f368ef7d48c88a1826faa28478d85fb63ae" dependencies = [ "chrono", "form_urlencoded", - "http 0.2.11", + "http 0.2.12", "json-patch", "k8s-openapi", "once_cell", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -6015,12 +6324,12 @@ version = "0.87.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d8893eb18fbf6bb6c80ef6ee7dd11ec32b1dc3c034c988ac1b3a84d46a230ae" dependencies = [ - "ahash 0.8.8", + "ahash", "async-trait", "backoff", "derivative", "futures", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "json-patch", "k8s-openapi", "kube-client", @@ -6029,7 +6338,7 @@ dependencies = [ "serde", "serde_json", "smallvec", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-util", "tracing", @@ -6042,12 +6351,12 @@ dependencies = [ "emulated-integration-tests-common", "kusama-runtime-constants", "parachains-common", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "sc-consensus-grandpa", "sp-authority-discovery", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 34.0.0", + "sp-core", "staging-kusama-runtime", ] @@ -6072,14 +6381,14 @@ dependencies = [ "frame-support", "pallet-remote-proxy", "parity-scale-codec", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-common", "scale-info", "smallvec", - "sp-core 34.0.0", - "sp-runtime 39.0.5", - "sp-trie 37.0.0", - "sp-weights 31.0.0", + "sp-core", + "sp-runtime", + "sp-trie", + "sp-weights", "staging-xcm-builder", ] @@ -6107,21 +6416,21 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.170" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libp2p" @@ -6133,31 +6442,58 @@ dependencies = [ "either", "futures", "futures-timer", - "getrandom", + "getrandom 0.2.15", "instant", - "libp2p-allow-block-list", - "libp2p-connection-limits", - "libp2p-core", - "libp2p-dns", + "libp2p-allow-block-list 0.2.0", + "libp2p-connection-limits 0.2.1", + "libp2p-core 0.40.1", + "libp2p-dns 0.40.1", "libp2p-identify", "libp2p-identity", - "libp2p-kad", - "libp2p-mdns", + "libp2p-kad 0.44.6", + "libp2p-mdns 0.44.0", "libp2p-metrics", "libp2p-noise", "libp2p-ping", - "libp2p-quic", + "libp2p-quic 0.9.3", "libp2p-request-response", - "libp2p-swarm", - "libp2p-tcp", - "libp2p-upnp", - "libp2p-wasm-ext", - "libp2p-websocket", + "libp2p-swarm 0.43.7", + "libp2p-tcp 0.40.1", + "libp2p-upnp 0.1.1", + "libp2p-websocket 0.42.2", "libp2p-yamux", - "multiaddr 0.18.1", + "multiaddr 0.18.2", + "pin-project", + "rw-stream-sink", + "thiserror 1.0.69", +] + +[[package]] +name = "libp2p" +version = "0.54.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbe80f9c7e00526cd6b838075b9c171919404a4732cb2fa8ece0a093223bfc4" +dependencies = [ + "bytes", + "either", + "futures", + "futures-timer", + "getrandom 0.2.15", + "libp2p-allow-block-list 0.4.0", + "libp2p-connection-limits 0.4.0", + "libp2p-core 0.42.0", + "libp2p-dns 0.42.0", + "libp2p-identity", + "libp2p-mdns 0.46.0", + "libp2p-quic 0.11.1", + "libp2p-swarm 0.45.1", + "libp2p-tcp 0.42.0", + "libp2p-upnp 0.3.0", + "libp2p-websocket 0.44.0", + "multiaddr 0.18.2", "pin-project", "rw-stream-sink", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -6166,9 +6502,21 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55b46558c5c0bf99d3e2a1a38fd54ff5476ca66dd1737b12466a1824dd219311" dependencies = [ - "libp2p-core", + "libp2p-core 0.40.1", + "libp2p-identity", + "libp2p-swarm 0.43.7", + "void", +] + +[[package]] +name = "libp2p-allow-block-list" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1027ccf8d70320ed77e984f273bc8ce952f623762cb9bf2d126df73caef8041" +dependencies = [ + "libp2p-core 0.42.0", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.45.1", "void", ] @@ -6178,9 +6526,21 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f5107ad45cb20b2f6c3628c7b6014b996fcb13a88053f4569c872c6e30abf58" dependencies = [ - "libp2p-core", + "libp2p-core 0.40.1", + "libp2p-identity", + "libp2p-swarm 0.43.7", + "void", +] + +[[package]] +name = "libp2p-connection-limits" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d003540ee8baef0d254f7b6bfd79bac3ddf774662ca0abf69186d517ef82ad8" +dependencies = [ + "libp2p-core 0.42.0", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.45.1", "void", ] @@ -6197,21 +6557,49 @@ dependencies = [ "instant", "libp2p-identity", "log", - "multiaddr 0.18.1", - "multihash 0.19.1", + "multiaddr 0.18.2", + "multihash 0.19.3", "multistream-select", "once_cell", "parking_lot 0.12.3", "pin-project", "quick-protobuf", - "rand", + "rand 0.8.5", "rw-stream-sink", "smallvec", - "thiserror", + "thiserror 1.0.69", "unsigned-varint 0.7.2", "void", ] +[[package]] +name = "libp2p-core" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a61f26c83ed111104cd820fe9bc3aaabbac5f1652a1d213ed6e900b7918a1298" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "libp2p-identity", + "multiaddr 0.18.2", + "multihash 0.19.3", + "multistream-select", + "once_cell", + "parking_lot 0.12.3", + "pin-project", + "quick-protobuf", + "rand 0.8.5", + "rw-stream-sink", + "smallvec", + "thiserror 1.0.69", + "tracing", + "unsigned-varint 0.8.0", + "void", + "web-time", +] + [[package]] name = "libp2p-dns" version = "0.40.1" @@ -6220,7 +6608,7 @@ checksum = "e6a18db73084b4da2871438f6239fef35190b05023de7656e877c18a00541a3b" dependencies = [ "async-trait", "futures", - "libp2p-core", + "libp2p-core 0.40.1", "libp2p-identity", "log", "parking_lot 0.12.3", @@ -6228,43 +6616,59 @@ dependencies = [ "trust-dns-resolver", ] +[[package]] +name = "libp2p-dns" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97f37f30d5c7275db282ecd86e54f29dd2176bd3ac656f06abf43bedb21eb8bd" +dependencies = [ + "async-trait", + "futures", + "hickory-resolver", + "libp2p-core 0.42.0", + "libp2p-identity", + "parking_lot 0.12.3", + "smallvec", + "tracing", +] + [[package]] name = "libp2p-identify" version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45a96638a0a176bec0a4bcaebc1afa8cf909b114477209d7456ade52c61cd9cd" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.6.2", "either", "futures", - "futures-bounded", + "futures-bounded 0.1.0", "futures-timer", - "libp2p-core", + "libp2p-core 0.40.1", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.43.7", "log", - "lru 0.12.3", + "lru", "quick-protobuf", - "quick-protobuf-codec", + "quick-protobuf-codec 0.2.0", "smallvec", - "thiserror", + "thiserror 1.0.69", "void", ] [[package]] name = "libp2p-identity" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8" +checksum = "257b5621d159b32282eac446bed6670c39c7dc68a200a992d8f056afa0066f6d" dependencies = [ - "bs58 0.5.1", + "bs58", "ed25519-dalek", "hkdf", - "multihash 0.19.1", + "multihash 0.19.3", "quick-protobuf", - "rand", + "rand 0.8.5", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", "tracing", "zeroize", ] @@ -6275,29 +6679,58 @@ version = "0.44.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16ea178dabba6dde6ffc260a8e0452ccdc8f79becf544946692fff9d412fc29d" dependencies = [ - "arrayvec 0.7.4", - "asynchronous-codec", + "arrayvec 0.7.6", + "asynchronous-codec 0.6.2", "bytes", "either", "fnv", "futures", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.40.1", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.43.7", "log", "quick-protobuf", - "quick-protobuf-codec", - "rand", + "quick-protobuf-codec 0.2.0", + "rand 0.8.5", "sha2 0.10.8", "smallvec", - "thiserror", - "uint", + "thiserror 1.0.69", + "uint 0.9.5", "unsigned-varint 0.7.2", "void", ] +[[package]] +name = "libp2p-kad" +version = "0.46.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced237d0bd84bbebb7c2cad4c073160dacb4fe40534963c32ed6d4c6bb7702a3" +dependencies = [ + "arrayvec 0.7.6", + "asynchronous-codec 0.7.0", + "bytes", + "either", + "fnv", + "futures", + "futures-bounded 0.2.4", + "futures-timer", + "libp2p-core 0.42.0", + "libp2p-identity", + "libp2p-swarm 0.45.1", + "quick-protobuf", + "quick-protobuf-codec 0.3.1", + "rand 0.8.5", + "sha2 0.10.8", + "smallvec", + "thiserror 1.0.69", + "tracing", + "uint 0.9.5", + "void", + "web-time", +] + [[package]] name = "libp2p-mdns" version = "0.44.0" @@ -6307,18 +6740,39 @@ dependencies = [ "data-encoding", "futures", "if-watch", - "libp2p-core", + "libp2p-core 0.40.1", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.43.7", "log", - "rand", + "rand 0.8.5", "smallvec", - "socket2 0.5.7", + "socket2 0.5.9", "tokio", "trust-dns-proto 0.22.0", "void", ] +[[package]] +name = "libp2p-mdns" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b8546b6644032565eb29046b42744aee1e9f261ed99671b2c93fb140dba417" +dependencies = [ + "data-encoding", + "futures", + "hickory-proto", + "if-watch", + "libp2p-core 0.42.0", + "libp2p-identity", + "libp2p-swarm 0.45.1", + "rand 0.8.5", + "smallvec", + "socket2 0.5.9", + "tokio", + "tracing", + "void", +] + [[package]] name = "libp2p-metrics" version = "0.13.1" @@ -6326,12 +6780,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "239ba7d28f8d0b5d77760dc6619c05c7e88e74ec8fbbe97f856f20a56745e620" dependencies = [ "instant", - "libp2p-core", + "libp2p-core 0.40.1", "libp2p-identify", "libp2p-identity", - "libp2p-kad", + "libp2p-kad 0.44.6", "libp2p-ping", - "libp2p-swarm", + "libp2p-swarm 0.43.7", "once_cell", "prometheus-client", ] @@ -6343,20 +6797,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2eeec39ad3ad0677551907dd304b2f13f17208ccebe333bef194076cd2e8921" dependencies = [ "bytes", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "futures", - "libp2p-core", + "libp2p-core 0.40.1", "libp2p-identity", "log", - "multiaddr 0.18.1", - "multihash 0.19.1", + "multiaddr 0.18.2", + "multihash 0.19.3", "once_cell", "quick-protobuf", - "rand", + "rand 0.8.5", "sha2 0.10.8", "snow", "static_assertions", - "thiserror", + "thiserror 1.0.69", "x25519-dalek", "zeroize", ] @@ -6371,11 +6825,11 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.40.1", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.43.7", "log", - "rand", + "rand 0.8.5", "void", ] @@ -6389,18 +6843,42 @@ dependencies = [ "futures", "futures-timer", "if-watch", - "libp2p-core", + "libp2p-core 0.40.1", "libp2p-identity", - "libp2p-tls", + "libp2p-tls 0.2.1", "log", "parking_lot 0.12.3", "quinn 0.10.2", - "rand", + "rand 0.8.5", "ring 0.16.20", - "rustls 0.21.10", - "socket2 0.5.7", - "thiserror", + "rustls 0.21.12", + "socket2 0.5.9", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "libp2p-quic" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46352ac5cd040c70e88e7ff8257a2ae2f891a4076abad2c439584a31c15fd24e" +dependencies = [ + "bytes", + "futures", + "futures-timer", + "if-watch", + "libp2p-core 0.42.0", + "libp2p-identity", + "libp2p-tls 0.5.0", + "parking_lot 0.12.3", + "quinn 0.11.7", + "rand 0.8.5", + "ring 0.17.14", + "rustls 0.23.25", + "socket2 0.5.9", + "thiserror 1.0.69", "tokio", + "tracing", ] [[package]] @@ -6412,11 +6890,11 @@ dependencies = [ "async-trait", "futures", "instant", - "libp2p-core", + "libp2p-core 0.40.1", "libp2p-identity", - "libp2p-swarm", + "libp2p-swarm 0.43.7", "log", - "rand", + "rand 0.8.5", "smallvec", "void", ] @@ -6432,16 +6910,39 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.40.1", "libp2p-identity", "libp2p-swarm-derive", "log", "multistream-select", "once_cell", - "rand", + "rand 0.8.5", + "smallvec", + "tokio", + "void", +] + +[[package]] +name = "libp2p-swarm" +version = "0.45.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7dd6741793d2c1fb2088f67f82cf07261f25272ebe3c0b0c311e0c6b50e851a" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "libp2p-core 0.42.0", + "libp2p-identity", + "lru", + "multistream-select", + "once_cell", + "rand 0.8.5", "smallvec", "tokio", + "tracing", "void", + "web-time", ] [[package]] @@ -6454,7 +6955,7 @@ dependencies = [ "proc-macro-warning 0.4.2", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -6467,11 +6968,28 @@ dependencies = [ "futures-timer", "if-watch", "libc", - "libp2p-core", + "libp2p-core 0.40.1", "libp2p-identity", "log", - "socket2 0.5.7", + "socket2 0.5.9", + "tokio", +] + +[[package]] +name = "libp2p-tcp" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad964f312c59dcfcac840acd8c555de8403e295d39edf96f5240048b5fcaa314" +dependencies = [ + "futures", + "futures-timer", + "if-watch", + "libc", + "libp2p-core 0.42.0", + "libp2p-identity", + "socket2 0.5.9", "tokio", + "tracing", ] [[package]] @@ -6481,18 +6999,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8218d1d5482b122ccae396bbf38abdcb283ecc96fa54760e1dfd251f0546ac61" dependencies = [ "futures", - "futures-rustls", - "libp2p-core", + "futures-rustls 0.24.0", + "libp2p-core 0.40.1", "libp2p-identity", - "rcgen", + "rcgen 0.10.0", "ring 0.16.20", - "rustls 0.21.10", + "rustls 0.21.12", "rustls-webpki 0.101.7", - "thiserror", + "thiserror 1.0.69", "x509-parser 0.15.1", "yasna", ] +[[package]] +name = "libp2p-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b23dddc2b9c355f73c1e36eb0c3ae86f7dc964a3715f0731cfad352db4d847" +dependencies = [ + "futures", + "futures-rustls 0.26.0", + "libp2p-core 0.42.0", + "libp2p-identity", + "rcgen 0.11.3", + "ring 0.17.14", + "rustls 0.23.25", + "rustls-webpki 0.101.7", + "thiserror 1.0.69", + "x509-parser 0.16.0", + "yasna", +] + [[package]] name = "libp2p-upnp" version = "0.1.1" @@ -6502,45 +7039,69 @@ dependencies = [ "futures", "futures-timer", "igd-next", - "libp2p-core", - "libp2p-swarm", + "libp2p-core 0.40.1", + "libp2p-swarm 0.43.7", "log", "tokio", "void", ] [[package]] -name = "libp2p-wasm-ext" -version = "0.40.0" +name = "libp2p-upnp" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e5d8e3a9e07da0ef5b55a9f26c009c8fb3c725d492d8bb4b431715786eea79c" +checksum = "01bf2d1b772bd3abca049214a3304615e6a36fa6ffc742bdd1ba774486200b8f" dependencies = [ "futures", - "js-sys", - "libp2p-core", - "send_wrapper", - "wasm-bindgen", - "wasm-bindgen-futures", + "futures-timer", + "igd-next", + "libp2p-core 0.42.0", + "libp2p-swarm 0.45.1", + "tokio", + "tracing", + "void", ] [[package]] name = "libp2p-websocket" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3facf0691bab65f571bc97c6c65ffa836248ca631d631b7691ac91deb7fceb5f" +checksum = "004ee9c4a4631435169aee6aad2f62e3984dc031c43b6d29731e8e82a016c538" dependencies = [ "either", "futures", - "futures-rustls", - "libp2p-core", + "futures-rustls 0.24.0", + "libp2p-core 0.40.1", "libp2p-identity", "log", "parking_lot 0.12.3", - "quicksink", + "pin-project-lite", "rw-stream-sink", - "soketto 0.7.1", + "soketto", + "thiserror 1.0.69", "url", - "webpki-roots 0.25.4", + "webpki-roots", +] + +[[package]] +name = "libp2p-websocket" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "888b2ff2e5d8dcef97283daab35ad1043d18952b65e05279eecbe02af4c6e347" +dependencies = [ + "either", + "futures", + "futures-rustls 0.26.0", + "libp2p-core 0.42.0", + "libp2p-identity", + "parking_lot 0.12.3", + "pin-project-lite", + "rw-stream-sink", + "soketto", + "thiserror 1.0.69", + "tracing", + "url", + "webpki-roots", ] [[package]] @@ -6550,37 +7111,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eedcb62824c4300efb9cfd4e2a6edaf3ca097b9e68b36dabe45a44469fd6a85" dependencies = [ "futures", - "libp2p-core", + "libp2p-core 0.40.1", "log", - "thiserror", - "yamux", + "thiserror 1.0.69", + "yamux 0.12.1", ] [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.10", ] [[package]] name = "libsecp256k1" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" dependencies = [ "arrayref", - "base64 0.13.1", + "base64 0.22.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand", + "rand 0.8.5", "serde", "sha2 0.9.9", "typenum", @@ -6594,7 +7155,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -6617,9 +7178,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +checksum = "4a6f6da007f968f9def0d65a05b187e2960183de70c160204ecfccf0ee330212" dependencies = [ "cc", ] @@ -6632,18 +7193,18 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linked_hash_set" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +checksum = "bae85b5be22d9843c80e5fc80e9b64c8a3b1f98f867c709956eca3efff4e92e2" dependencies = [ "linked-hash-map", ] [[package]] name = "linregress" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2" +checksum = "a9eda9dcf4f2a99787827661f312ac3219292549c2ee992bf9a6248ffb066bf7" dependencies = [ "nalgebra", ] @@ -6656,9 +7217,15 @@ checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" [[package]] name = "lioness" @@ -6672,34 +7239,39 @@ dependencies = [ "keystream", ] +[[package]] +name = "litemap" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" + [[package]] name = "litep2p" -version = "0.6.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f46c51c205264b834ceed95c8b195026e700494bc3991aaba3b4ea9e20626d9" +checksum = "fa3aa5628ae2b2283aa01dfa58947f1926aedba0160dd25041e2cd4bc71534c9" dependencies = [ "async-trait", - "bs58 0.4.0", + "bs58", "bytes", "cid 0.10.1", "ed25519-dalek", "futures", "futures-timer", "hex-literal", - "indexmap 2.2.6", + "hickory-resolver", + "indexmap 2.8.0", "libc", - "mockall 0.12.1", + "mockall 0.13.1", "multiaddr 0.17.1", "multihash 0.17.0", "network-interface", - "nohash-hasher", "parking_lot 0.12.3", "pin-project", "prost 0.12.6", - "prost-build 0.11.9", - "quinn 0.9.4", - "rand", - "rcgen", + "prost-build", + "rand 0.8.5", + "rcgen 0.10.0", "ring 0.16.20", "rustls 0.20.9", "serde", @@ -6707,31 +7279,28 @@ dependencies = [ "simple-dns", "smallvec", "snow", - "socket2 0.5.7", - "static_assertions", - "str0m", - "thiserror", + "socket2 0.5.9", + "thiserror 2.0.12", "tokio", "tokio-stream", - "tokio-tungstenite", + "tokio-tungstenite 0.26.2", "tokio-util", "tracing", - "trust-dns-resolver", - "uint", + "uint 0.10.0", "unsigned-varint 0.8.0", "url", - "webpki", "x25519-dalek", - "x509-parser 0.16.0", + "x509-parser 0.17.0", + "yamux 0.13.4", "yasna", "zeroize", ] [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -6739,26 +7308,17 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "lru" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" -dependencies = [ - "hashbrown 0.12.3", -] +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "lru" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.14.3", + "hashbrown 0.15.2", ] [[package]] @@ -6788,7 +7348,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -6802,7 +7362,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -6813,7 +7373,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -6824,7 +7384,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -6833,21 +7393,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" -[[package]] -name = "match_cfg" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" - -[[package]] -name = "matchers" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" -dependencies = [ - "regex-automata 0.1.10", -] - [[package]] name = "matchers" version = "0.1.0" @@ -6865,9 +7410,9 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matrixmultiply" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" +checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" dependencies = [ "autocfg", "rawpointer", @@ -6875,9 +7420,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memfd" @@ -6885,14 +7430,14 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.44", ] [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -6917,15 +7462,15 @@ dependencies = [ [[package]] name = "merkleized-metadata" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f313fcff1d2a4bcaa2deeaa00bf7530d77d5f7bd0467a117dde2e29a75a7a17a" +checksum = "38c592efaf1b3250df14c8f3c2d952233f0302bb81d3586db2f303666c1cd607" dependencies = [ "array-bytes", "blake3", - "frame-metadata 16.0.0", + "frame-metadata 18.0.0", "parity-scale-codec", - "scale-decode 0.13.0", + "scale-decode 0.13.1", "scale-info", ] @@ -6955,22 +7500,22 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ - "adler", + "adler2", ] [[package]] name = "mio" -version = "0.8.10" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", - "wasi", - "windows-sys 0.48.0", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", ] [[package]] @@ -6980,21 +7525,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daa3eb39495d8e2e2947a1d862852c90cc6a4a8845f8b41c8829cb9fcc047f4a" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bitflags 1.3.2", "blake2 0.10.6", "c2-chacha", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "either", "hashlink", "lioness", "log", "parking_lot 0.12.3", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "rand_distr", - "subtle 2.5.0", - "thiserror", + "subtle 2.6.1", + "thiserror 1.0.69", "zeroize", ] @@ -7015,16 +7560,15 @@ dependencies = [ [[package]] name = "mockall" -version = "0.12.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" +checksum = "39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2" dependencies = [ "cfg-if", "downcast", "fragile", - "lazy_static", - "mockall_derive 0.12.1", - "predicates 3.1.0", + "mockall_derive 0.13.1", + "predicates 3.1.3", "predicates-tree", ] @@ -7042,16 +7586,22 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.12.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" +checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] +[[package]] +name = "multi-stash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685a9ac4b61f4e728e1d2c6a7844609c16527aeb5e6c865915c08e619c16410f" + [[package]] name = "multiaddr" version = "0.17.1" @@ -7073,20 +7623,20 @@ dependencies = [ [[package]] name = "multiaddr" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b852bc02a2da5feed68cd14fa50d0774b92790a5bdbfa932a813926c8472070" +checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" dependencies = [ "arrayref", "byteorder", "data-encoding", "libp2p-identity", "multibase", - "multihash 0.19.1", + "multihash 0.19.3", "percent-encoding", "serde", "static_assertions", - "unsigned-varint 0.7.2", + "unsigned-varint 0.8.0", "url", ] @@ -7137,21 +7687,21 @@ dependencies = [ [[package]] name = "multihash" -version = "0.19.1" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" dependencies = [ "core2", - "unsigned-varint 0.7.2", + "unsigned-varint 0.8.0", ] [[package]] name = "multihash-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 1.1.3", "proc-macro-error", "proc-macro2", "quote", @@ -7161,9 +7711,9 @@ dependencies = [ [[package]] name = "multimap" -version = "0.8.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" [[package]] name = "multistream-select" @@ -7181,13 +7731,12 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.32.3" +version = "0.33.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" +checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" dependencies = [ "approx", "matrixmultiply", - "nalgebra-macros", "num-complex", "num-rational", "num-traits", @@ -7195,52 +7744,39 @@ dependencies = [ "typenum", ] -[[package]] -name = "nalgebra-macros" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "native-tls" -version = "0.2.11" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ - "lazy_static", "libc", "log", "openssl", "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] [[package]] name = "netlink-packet-core" -version = "0.4.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297" +checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" dependencies = [ "anyhow", "byteorder", - "libc", "netlink-packet-utils", ] [[package]] name = "netlink-packet-route" -version = "0.12.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" +checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -7259,29 +7795,28 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "netlink-proto" -version = "0.10.0" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" +checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" dependencies = [ "bytes", "futures", "log", "netlink-packet-core", "netlink-sys", - "thiserror", - "tokio", + "thiserror 2.0.12", ] [[package]] name = "netlink-sys" -version = "0.8.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" +checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" dependencies = [ "bytes", "futures", @@ -7298,15 +7833,15 @@ checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1" dependencies = [ "cc", "libc", - "thiserror", + "thiserror 1.0.69", "winapi", ] [[package]] name = "nix" -version = "0.24.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ "bitflags 1.3.2", "cfg-if", @@ -7315,21 +7850,16 @@ dependencies = [ [[package]] name = "nix" -version = "0.27.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cfg-if", + "cfg_aliases", "libc", ] -[[package]] -name = "no-std-net" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" - [[package]] name = "nodrop" version = "0.1.14" @@ -7370,20 +7900,19 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", ] [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] @@ -7394,33 +7923,42 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "num-format" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "itoa", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-bigint", "num-integer", "num-traits", @@ -7428,9 +7966,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", "libm", @@ -7442,7 +7980,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", "libc", ] @@ -7473,6 +8011,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + [[package]] name = "oid-registry" version = "0.6.1" @@ -7484,18 +8031,27 @@ dependencies = [ [[package]] name = "oid-registry" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" dependencies = [ - "asn1-rs 0.6.1", + "asn1-rs 0.6.2", +] + +[[package]] +name = "oid-registry" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" +dependencies = [ + "asn1-rs 0.7.1", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "opaque-debug" @@ -7505,17 +8061,17 @@ checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cfg-if", "foreign-types", "libc", @@ -7532,33 +8088,23 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-src" -version = "300.3.1+3.3.1" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91" -dependencies = [ - "cc", -] +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" dependencies = [ "cc", "libc", - "openssl-src", "pkg-config", "vcpkg", ] @@ -7580,9 +8126,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-alliance" -version = "37.0.0" +version = "38.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59378a648a0aa279a4b10650366c3389cd0a1239b1876f74bfecd268eecb086b" +checksum = "898ae5f666f0aabb3b7c5f63c2c47048b5d77fd5d24a44827eba493ab376c5d8" dependencies = [ "array-bytes", "frame-benchmarking", @@ -7593,17 +8139,17 @@ dependencies = [ "pallet-identity", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", + "sp-core", "sp-crypto-hashing", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-asset-conversion" -version = "20.0.0" +version = "21.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33f0078659ae95efe6a1bf138ab5250bc41ab98f22ff3651d0208684f08ae797" +checksum = "d8c998ef1f516a6757e9de964809a446792f3ade1546c98268c8f26b90c4ea42" dependencies = [ "frame-benchmarking", "frame-support", @@ -7612,47 +8158,48 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-asset-conversion-tx-payment" -version = "20.0.0" +version = "21.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab66c4c22ac0f20e620a954ce7ba050118d6d8011e2d02df599309502064e98" +checksum = "a01d264c710e3aa881be9cea4b380d08b17089837971319834db0fd115af5aca" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "pallet-asset-conversion", "pallet-transaction-payment", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-asset-rate" -version = "17.0.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71b2149aa741bc39466bbcc92d9d0ab6e9adcf39d2790443a735ad573b3191e7" +checksum = "bd25c010a008eaadfa018a4abe95c2c01912746220174e126e1e5764c8d2b1dc" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", ] [[package]] name = "pallet-asset-tx-payment" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406a486466d15acc48c99420191f96f1af018f3381fde829c467aba489030f18" +checksum = "97c245ee49906b3f33e53286c44aac4aa94d2afb889d6c18025e07ae7d1d9442" dependencies = [ "frame-benchmarking", "frame-support", @@ -7661,16 +8208,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-assets" -version = "40.0.0" +version = "41.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f45f4eb6027fc34c4650e0ed6a7e57ed3335cc364be74b4531f714237676bcee" +checksum = "c2e7b9ed5bbcd0c66e4a1915fcdc0df9fbc75447a216a405db687398d5d8769b" dependencies = [ "frame-benchmarking", "frame-support", @@ -7679,15 +8226,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", ] [[package]] name = "pallet-aura" -version = "37.0.0" +version = "38.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b31da6e794d655d1f9c4da6557a57399538d75905a7862a2ed3f7e5fb711d7e4" +checksum = "6800ab8ee55d7f5682b99bf2f0b5847ff1596b79dad59b0e9fc5e883f7a29740" dependencies = [ "frame-support", "frame-system", @@ -7695,46 +8242,46 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 38.0.0", + "sp-application-crypto", "sp-consensus-aura", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-authority-discovery" -version = "38.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb0208f0538d58dcb78ce1ff5e6e8641c5f37b23b20b05587e51da30ab13541" +checksum = "6b3126c515a5da73738d58fc005522d0c2dc36049f8486ff36adf1bab288dbdb" dependencies = [ "frame-support", "frame-system", "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto 38.0.0", + "sp-application-crypto", "sp-authority-discovery", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-authorship" -version = "38.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625d47577cabbe1318ccec5d612e2379002d1b6af1ab6edcef3243c66ec246df" +checksum = "452584dcccd8412609dea0d9e63e4b36564b66793e637420624b9f61aa1cf2e9" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-babe" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee096c0def13832475b340d00121025e0225de29604d44bc6dfcaa294c995b4" +checksum = "c48669a23111d26a9408872faab3a7a5c61a9259af85930fe8343095891f29fc" dependencies = [ "frame-benchmarking", "frame-support", @@ -7745,20 +8292,20 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 38.0.0", + "sp-application-crypto", "sp-consensus-babe", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "sp-session", - "sp-staking 36.0.0", + "sp-staking", ] [[package]] name = "pallet-bags-list" -version = "37.0.0" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fd23a6f94ba9c1e57c8a7f8a41327d132903a79c55c0c83f36cbae19946cf10" +checksum = "5177afdf203ef4aec11a356d343fcab43bee85a25fe216f06bfba8199e86d96a" dependencies = [ "aquamarine", "docify", @@ -7770,17 +8317,17 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-tracing 17.0.1", + "sp-core", + "sp-io", + "sp-runtime", + "sp-tracing", ] [[package]] name = "pallet-balances" -version = "39.0.1" +version = "40.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcb1f72d7048fbd11e884b4693f7d438b8202340ff252e2a402e04c638fe2d02" +checksum = "3fbabdd4c43723e94a6f806853d19a2db5cac45152bc67ab1ae7327eedca0971" dependencies = [ "docify", "frame-benchmarking", @@ -7789,14 +8336,14 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-beefy" -version = "39.0.0" +version = "40.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "014d177a3aba19ac144fc6b2b5eb94930b9874734b91fd014902b6706288bb5f" +checksum = "7c163fa041eb848fb68900ba0cea3c213f34282241959f327bbe10c93d5aa124" dependencies = [ "frame-support", "frame-system", @@ -7807,16 +8354,16 @@ dependencies = [ "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-staking 36.0.0", + "sp-staking", ] [[package]] name = "pallet-beefy-mmr" -version = "39.0.0" +version = "40.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c64f536e7f04cf3a0a17fdf20870ddb3d63a7690419c40f75cfd2f72b6e6d22" +checksum = "e375871dc66c2ea8d6a5cad568389d7d2ea0745e3be65ebb35c43b82612bc909" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -7832,17 +8379,17 @@ dependencies = [ "serde", "sp-api", "sp-consensus-beefy", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-state-machine 0.43.0", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", ] [[package]] name = "pallet-bounties" -version = "37.0.2" +version = "38.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59f3d032f78624b12238a31b6e80ab3e112381a7bc222df152650e33bb2ce190" +checksum = "d972c8e8a7a899ee4925a5516e92ffbfc7aad61cb097511ec3a1953d306c3aef" dependencies = [ "frame-benchmarking", "frame-support", @@ -7851,16 +8398,16 @@ dependencies = [ "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-bridge-grandpa" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d825fbed9fb68bc5d344311653dc0f69caeabe647365abf79a539310b2245f6" +checksum = "976a6a3e45daa0ffa590891690c5207eba2fc998c9f6fa784428830ee05b04d1" dependencies = [ "bp-header-chain", "bp-runtime", @@ -7872,15 +8419,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-consensus-grandpa", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-bridge-messages" -version = "0.18.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1decdc9fb885e46eb17f850aa14f8cf39e17f31574aa6a5fa1a9e603cc526a2" +checksum = "a1ce3922d7edee1fe3dd449a8190bab8644029a59f3bfac8086dda7e5302fbef" dependencies = [ "bp-header-chain", "bp-messages", @@ -7891,16 +8438,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", - "sp-trie 37.0.0", + "sp-trie", ] [[package]] name = "pallet-bridge-parachains" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41450a8d214f20eaff57aeca8e647b20c0df7d66871ee2262609b90824bd4cca" +checksum = "c9bcf08e5dbc514f6bc537729a3258707660dd991da4b84cba49b77e6b33e1f2" dependencies = [ "bp-header-chain", "bp-parachains", @@ -7913,15 +8460,15 @@ dependencies = [ "pallet-bridge-grandpa", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-bridge-relayers" -version = "0.18.2" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe3be7077b7ddee7178b1b12e9171435da73778d093788e10b1bdfad1e10962" +checksum = "5fc4875c6445c6d4d2c66f3a6eea65149daa63ba286ad7b2af6a85d6f03a2317" dependencies = [ "bp-header-chain", "bp-messages", @@ -7937,16 +8484,16 @@ dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-broker" -version = "0.17.2" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "018b477d7d464c451b1d09a4ce9e792c3c65b15fd764b23da38ff9980e786065" +checksum = "eab9d48cedbe3abe3d50133249f8fb2f84431ac71702b77ee096e8f976d58cff" dependencies = [ "bitvec", "frame-benchmarking", @@ -7956,16 +8503,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-core", + "sp-runtime", ] [[package]] name = "pallet-child-bounties" -version = "37.0.0" +version = "38.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f3bc38ae6584b5f57e4de3e49e5184bfc0f20692829530ae1465ffe04e09e7" +checksum = "76af9ba22843a88c57edf9abfa2376b94a835f62864294d420399c44deb68e5b" dependencies = [ "frame-benchmarking", "frame-support", @@ -7975,16 +8522,16 @@ dependencies = [ "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-collator-selection" -version = "19.0.0" +version = "20.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658798d70c9054165169f6a6a96cfa9d6a5e7d24a524bc19825bf17fcbc5cc5a" +checksum = "36241982116c08ab1bd4230b26419792b388fc131cf37fc19afc75e1368b3b9d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7994,34 +8541,35 @@ dependencies = [ "pallet-balances", "pallet-session", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", - "sp-runtime 39.0.5", - "sp-staking 36.0.0", + "sp-runtime", + "sp-staking", ] [[package]] name = "pallet-collective" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e149f1aefd444c9a1da6ec5a94bc8a7671d7a33078f85dd19ae5b06e3438e60" +checksum = "e22260456f669083feec3fb2de3432feeea88623286f6dea45e51c8f8f2f9aa3" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-conviction-voting" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "999c242491b74395b8c5409ef644e782fe426d87ae36ad92240ffbf21ff0a76e" +checksum = "eef3dfc63a89280ca3836c756d1ac5c00fe6c74aef8b20b44f4dad00386d4c61" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8030,15 +8578,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-core-fellowship" -version = "22.2.0" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93052dd8d5910e1b939441541cec416e629b2c0ab92680124c2e5a137e12c285" +checksum = "5bd7209d4c2632f5df7f9c80b84d195f02bd2508e3c2e590e6e3c4672fcb8b25" dependencies = [ "frame-benchmarking", "frame-support", @@ -8047,33 +8595,33 @@ dependencies = [ "pallet-ranked-collective", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-delegated-staking" -version = "5.0.1" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8502ef7c76f4c0613b4f6bd70413caba7068eeed6fc5fd2ac84fd61afc07d559" +checksum = "22acb93169434d361d30de846ee8f38b637234710bf1d789332639bc4422b67e" dependencies = [ "frame-support", "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-staking 36.0.0", + "sp-io", + "sp-runtime", + "sp-staking", ] [[package]] name = "pallet-election-provider-multi-phase" -version = "37.0.0" +version = "38.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f9ad5ae0c13ba3727183dadf1825b6b7b0b0598ed5c366f8697e13fd540f7d" +checksum = "7b93092065f6b31fbf6e5788a889d712859cf5402cc5d487fe6a241f102bcac6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8082,35 +8630,35 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", + "sp-arithmetic", + "sp-core", + "sp-io", "sp-npos-elections", - "sp-runtime 39.0.5", + "sp-runtime", "strum 0.26.3", ] [[package]] name = "pallet-election-provider-support-benchmarking" -version = "37.0.0" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4111d0d27545c260c9dd0d6fc504961db59c1ec4b42e1bcdc28ebd478895c22" +checksum = "3b088389136786a84eacbbeefb66ec19deca9d279b9c5c3a6391e39294c876cf" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-system", "parity-scale-codec", "sp-npos-elections", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-encointer-balances" -version = "14.2.0" +version = "15.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e340c46f76c8d0c3d88868f817ee3f82e738b125fd6089af402c44af445803" +checksum = "0e65124d77b888743422c91ccb059c5ac8549f1ed5289e5265d0d7899698d4a5" dependencies = [ "approx", "encointer-primitives", @@ -8122,15 +8670,15 @@ dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-encointer-bazaar" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8119cf4debfaa60ee94b6a57868c6a5e8491a1aa5e129c51d9093852e90907b2" +checksum = "bd864dae5d0ca1365670d62dae8c701e2155b936ae6536e07d476031d025ecbe" dependencies = [ "encointer-primitives", "frame-benchmarking", @@ -8140,15 +8688,15 @@ dependencies = [ "pallet-encointer-communities", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", + "sp-core", "sp-std", ] [[package]] name = "pallet-encointer-bazaar-rpc-runtime-api" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e298ebe7c5b8f36ae47d470c6065bfa7b8aec1953c93358ab11004d1e0988632" +checksum = "abae5ec12c2d8a7754ad1a5b312a6093b9fdc41da03052309961ea0ed4600048" dependencies = [ "encointer-primitives", "frame-support", @@ -8159,9 +8707,9 @@ dependencies = [ [[package]] name = "pallet-encointer-ceremonies" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee2cee62c5c2a816f5a5604f51c69d3db5818f47dbe9c98a6275f30fa8e2cb3" +checksum = "71280f517c0a033b1263826b0e855858702970a5ca60bd116a4295b5ffedfd51" dependencies = [ "encointer-ceremonies-assignment", "encointer-meetup-validation", @@ -8176,18 +8724,18 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 38.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-encointer-ceremonies-rpc-runtime-api" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a1d61b552aab2114b3635c8c950c8dcf8f2af585477a43d06b3316fb238742d" +checksum = "c4944f5eb678e4c9deda8afdce157e7b3afdf7bfb58d2da1982b548dca2ef265" dependencies = [ "encointer-primitives", "frame-support", @@ -8198,9 +8746,9 @@ dependencies = [ [[package]] name = "pallet-encointer-communities" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f4fdd122abdd8d046adbb23699c305885a6cb2142bc4297cd801fc0cb8179f3" +checksum = "e4d9ff3d68c1811ab9efb1aa86b8de85b789639b60858b59d9096a94c198d2da" dependencies = [ "encointer-primitives", "frame-benchmarking", @@ -8211,16 +8759,16 @@ dependencies = [ "pallet-encointer-scheduler", "parity-scale-codec", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-encointer-communities-rpc-runtime-api" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3485d8ecd6899a3c9d2e29ad9fcf404eea3c21b6a3c59fe62b767b4e1d7e61b" +checksum = "5f08524e7a79745b905f061e767758b73f6d43f3d3baf26e0ec56a5d9610c2c2" dependencies = [ "encointer-primitives", "parity-scale-codec", @@ -8230,9 +8778,9 @@ dependencies = [ [[package]] name = "pallet-encointer-democracy" -version = "14.4.0" +version = "15.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199fb9312215f58acc26f63089e0d803327991c0fc4be66d97ac8c641fa9c465" +checksum = "2f6938bc3674a7e1f4e552260a4e9a0f9f73057044590d8de8be00c627e7ed8b" dependencies = [ "encointer-primitives", "frame-benchmarking", @@ -8247,18 +8795,18 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 38.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-encointer-faucet" -version = "14.2.0" +version = "15.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55868ee5af69fbda4c9e846b7fb1d1b5818a70aeb378ca7b8859694c65e36cf5" +checksum = "b189165fb13b5fe55940634429b6836e85b427107dd962b588537dd1d8d01d77" dependencies = [ "approx", "encointer-primitives", @@ -8270,16 +8818,16 @@ dependencies = [ "pallet-encointer-reputation-commitments", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-encointer-reputation-commitments" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf93d7e68eedbd6a9bac69cfdf6d7ade00fbd1d08523361f0733b7b2441241d" +checksum = "df3ae0cd7798bf96b247fdaed7c7276f0b7c91fbb3d543bad37464e126bdb2ed" dependencies = [ "approx", "encointer-primitives", @@ -8293,16 +8841,16 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-encointer-scheduler" -version = "14.1.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1db5f74ee0a201eb39f08d769b1c9578fd6d68c619cf41f6acf927f765b6072" +checksum = "68769892cbb3b875545b7a2bcaf752c4453af4eb6b3618f72105bdbd8a38a0f9" dependencies = [ "encointer-primitives", "frame-benchmarking", @@ -8313,15 +8861,15 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-encointer-treasuries" -version = "14.4.1" +version = "15.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f402c461d1c79f74fc1e10cddc0599788767bb587c9ba536a84b595d095c33" +checksum = "a3a3e7feea4632b17122350429b7bc038c800eff43eb1fa9befad028dfe01c7a" dependencies = [ "approx", "encointer-primitives", @@ -8335,16 +8883,16 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-encointer-treasuries-rpc-runtime-api" -version = "14.3.0" +version = "15.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928962dcd8404a9bc6bfbca33f4fe5799f299455033efd44c75eb7c0f44b80f1" +checksum = "3b0884630ee2d35150bfdc494d4324cb5ca8f73dde6e765f74ccede037d8201a" dependencies = [ "encointer-primitives", "frame-support", @@ -8356,9 +8904,9 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" -version = "37.0.0" +version = "38.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ee60e8ef10b3936f2700bd61fa45dcc190c61124becc63bed787addcfa0d20" +checksum = "a5ad110e2847980c236202f03e7b6666e3ea20e0ae792d4d716f0c8d66b9e79a" dependencies = [ "docify", "frame-benchmarking", @@ -8368,16 +8916,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-staking 36.0.0", + "sp-io", + "sp-runtime", + "sp-staking", ] [[package]] name = "pallet-glutton" -version = "24.0.0" +version = "25.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1c79ab340890f6ab088a638c350ac1173a1b2a79c18004787523032025582b4" +checksum = "56a3960282278a05f537d356effa3a28a9f85dc02d95e06d6a6dd2af9151e14f" dependencies = [ "blake2 0.10.6", "frame-benchmarking", @@ -8386,17 +8934,17 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", + "sp-core", "sp-inherents", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-grandpa" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d3a570a4aac3173ea46b600408183ca2bcfdaadc077f802f11e6055963e2449" +checksum = "a0866ee03b547b77db4478e68ca6eea7952ad76e5db7b72668d67b82ac8d5e5c" dependencies = [ "frame-benchmarking", "frame-support", @@ -8406,20 +8954,20 @@ dependencies = [ "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto 38.0.0", + "sp-application-crypto", "sp-consensus-grandpa", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "sp-session", - "sp-staking 36.0.0", + "sp-staking", ] [[package]] name = "pallet-identity" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a4288548de9a755e39fcb82ffb9024b6bb1ba0f582464a44423038dd7a892e" +checksum = "1fa509350de9fd586a1a4ba1b23f9d451c4385abdab050959aa7be892334d1ac" dependencies = [ "enumflags2", "frame-benchmarking", @@ -8428,15 +8976,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-im-online" -version = "37.0.0" +version = "38.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fd95270cf029d16cb40fe6bd9f8ab9c78cd966666dccbca4d8bfec35c5bba5" +checksum = "5ce7abda5e52278c92daefb651add5b6c4b3a6d3038b709efe36625e3561234c" dependencies = [ "frame-benchmarking", "frame-support", @@ -8445,49 +8993,49 @@ dependencies = [ "pallet-authorship", "parity-scale-codec", "scale-info", - "sp-application-crypto 38.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-staking 36.0.0", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", ] [[package]] name = "pallet-indices" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e4b97de630427a39d50c01c9e81ab8f029a00e56321823958b39b438f7b940" +checksum = "ec9f9603ab6ec2242355ad428b39e77935b254d519ba07f731f631bb3134fb43" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", + "sp-core", + "sp-io", "sp-keyring", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-insecure-randomness-collective-flip" -version = "26.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce7ad80675d78bd38a7a66ecbbf2d218dd32955e97f8e301d0afe6c87b0f251" +checksum = "4e01483a723c48e3dfa67fdce3f8ac8cc46e82f92a19624bd4b93ffe120a5cdd" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", "safe-mix", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-membership" -version = "38.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868b5dca4bbfd1f4a222cbb80735a5197020712a71577b496bbb7e19aaa5394" +checksum = "e780320e411960bc8784861099bf5d18a59162b3c8499bccb5814fd85c4790e1" dependencies = [ "frame-benchmarking", "frame-support", @@ -8495,16 +9043,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-message-queue" -version = "41.0.2" +version = "42.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983f7d1be18e9a089a3e23670918f5085705b4403acd3fdde31878d57b76a1a8" +checksum = "0f3a6c335db0939272a1b703ab9e156e5ff6dff6fb392726872af1de6812f586" dependencies = [ "environmental", "frame-benchmarking", @@ -8513,36 +9061,37 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-weights 31.0.0", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-weights", ] [[package]] -name = "pallet-mmr" -version = "38.0.0" +name = "pallet-migrations" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6932dfb85f77a57c2d1fdc28a7b3a59ffe23efd8d5bb02dc3039d91347e4a3b" +checksum = "29562636a51560b0478cbef3524f32c45bdf2e7496e21e61af4bd5e66ef899dd" dependencies = [ + "cfg-if", + "docify", "frame-benchmarking", "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-mmr-primitives", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", ] [[package]] -name = "pallet-multisig" -version = "38.0.0" +name = "pallet-mmr" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e5099c9a4442efcc1568d88ca1d22d624e81ab96358f99f616c67fbd82532d2" +checksum = "609c54592356fbddf8550ae1f466012295422b4c1aafb429f63aa512000cc7c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -8550,15 +9099,29 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-mmr-primitives", + "sp-runtime", +] + +[[package]] +name = "pallet-multisig" +version = "39.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0cc99d268440cfea88aa04d79a68f7364792f7941b07614d9fe31afbf25889" +dependencies = [ + "log", + "parity-scale-codec", + "polkadot-sdk-frame", + "scale-info", ] [[package]] name = "pallet-nft-fractionalization" -version = "21.0.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168792cf95a32fa3baf9b874efec82a45124da0a79cee1ae3c98a823e6841959" +checksum = "51eedcf87705fe6087abe9d8cd1dc38c0a5de3c7900ab035b078987955739c41" dependencies = [ "frame-benchmarking", "frame-support", @@ -8568,14 +9131,14 @@ dependencies = [ "pallet-nfts", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-nfts" -version = "32.0.0" +version = "33.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e2aad461a0849d7f0471576eeb1fe3151795bcf2ec9e15eca5cca5b9d743b2" +checksum = "9d377a26cb4d3a501fd5db1cc15387b36e5d749421033f9f7ddac9a58f163061" dependencies = [ "enumflags2", "frame-benchmarking", @@ -8584,16 +9147,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-nfts-runtime-api" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a1f50c217e19dc50ff586a71eb5915df6a05bc0b25564ea20674c8cd182c1f" +checksum = "889be9a359ba319bede86c029e787e35d3560fe4c105d0d3caf382149e889d03" dependencies = [ "pallet-nfts", "parity-scale-codec", @@ -8602,25 +9165,25 @@ dependencies = [ [[package]] name = "pallet-nis" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ac349e119880b7df1a7c4c36d919b33a498d0e9548af3c237365c654ae0c73d" +checksum = "9e4a28437034bb062d23b63a4aa9cc0af3471cc380a3af349fe8f14452100e28" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-core", + "sp-runtime", ] [[package]] name = "pallet-nomination-pools" -version = "35.0.3" +version = "37.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f3b3eb893cd3da58c86db519d8d5f2f1c014ff08942b087cb475e789cd45cf" +checksum = "4e8dc7d47b8233a3b4579e1400b0f032bf54d09af90037e6b71221d7858c3adf" dependencies = [ "frame-support", "frame-system", @@ -8628,18 +9191,18 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-staking 36.0.0", - "sp-tracing 17.0.1", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-tracing", ] [[package]] name = "pallet-nomination-pools-benchmarking" -version = "36.0.0" +version = "37.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d2eaca0349bcda923343226b8b64d25a80b67e0a1ebaaa5b0ab1e1b3b225bc" +checksum = "ba2f9001d0cf43cf7df98eee013bfb89f722f06305486efc4fb2e87f71c9bcc7" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8651,16 +9214,16 @@ dependencies = [ "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", - "sp-runtime-interface 28.0.0", - "sp-staking 36.0.0", + "sp-runtime", + "sp-runtime-interface", + "sp-staking", ] [[package]] name = "pallet-nomination-pools-runtime-api" -version = "33.0.2" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03eea431eba0658ca763a078bd849e0622c37c85eddd011b8e886460b50c0827" +checksum = "a40136a17d80af5acf0efd78caad3529beb8a50a4fbad442e528ea9a60ff719e" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -8669,9 +9232,9 @@ dependencies = [ [[package]] name = "pallet-offences" -version = "37.0.0" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c4379cf853465696c1c5c03e7e8ce80aeaca0a6139d698abe9ecb3223fd732a" +checksum = "b8c07d61db5ac381577acfaae375b17486d562f68e8cc3e365bcbf5ceee89476" dependencies = [ "frame-support", "frame-system", @@ -8680,15 +9243,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-runtime 39.0.5", - "sp-staking 36.0.0", + "sp-runtime", + "sp-staking", ] [[package]] name = "pallet-offences-benchmarking" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69aa1b24cdffc3fa8c89cdea32c83f1bf9c1c82a87fa00e57ae4be8e85f5e24f" +checksum = "f332bfa1a4298a19d5b61f22e726f197a65e5d91e349a459c4d261a4327c3f24" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8704,15 +9267,15 @@ dependencies = [ "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", - "sp-staking 36.0.0", + "sp-runtime", + "sp-staking", ] [[package]] name = "pallet-parameters" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9aba424d55e17b2a2bec766a41586eab878137704d4803c04bebd6a4743db7b" +checksum = "ac4a943c96cbaed9646f81009f28951ed28fc2db79e583353060bcf47ea72099" dependencies = [ "docify", "frame-benchmarking", @@ -8722,15 +9285,15 @@ dependencies = [ "paste", "scale-info", "serde", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", ] [[package]] name = "pallet-preimage" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "407828bc48c6193ac076fdf909b2fadcaaecd65f42b0b0a04afe22fe8e563834" +checksum = "20ec2a4d010514ad9d90c638f1b0270173d08d69b8f455ae8ab29c39aa9e2a21" dependencies = [ "frame-benchmarking", "frame-support", @@ -8738,31 +9301,27 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-proxy" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d39df395f0dbcf07dafe842916adea3266a87ce36ed87b5132184b6bcd746393" +checksum = "8e077eff581cc0561c7a26366ef1c07a9164ee644f6dc48640773821a710e139" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", ] [[package]] name = "pallet-ranked-collective" -version = "38.2.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15a640e732164203eb5298823cc8c29cfc563763c43c9114e76153b3166b8b9d" +checksum = "e6d4acea40defbd7b79e75939e158fb3b70ef60d5d53b269999c1470156d2b69" dependencies = [ "frame-benchmarking", "frame-support", @@ -8771,32 +9330,32 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-recovery" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406a116aa6d05f88f3c10d79ff89cf577323680a48abd8e5550efb47317e67fa" +checksum = "62240994c9009065e83f3a6eff9619ab73a153b3a4841cc022136bb42e11bc8b" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-referenda" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3008c20531d1730c9b457ae77ecf0e3c9b07aaf8c4f5d798d61ef6f0b9e2d4b" +checksum = "cf7e29cbddff53bf7e6083be3bca25bd3ab7c36fcb3b49ac4aacd14c2d57b8aa" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8806,9 +9365,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 26.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-io", + "sp-runtime", ] [[package]] @@ -8825,18 +9384,18 @@ dependencies = [ "pallet-utility", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-state-machine 0.43.0", - "sp-trie 37.0.0", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-trie", ] [[package]] name = "pallet-salary" -version = "23.2.0" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3af2d92b1fef1c379c0692113b505c108c186e09c25c72b38e879b6e0f172ebe" +checksum = "42dc4b0757ca3d6e1200534cee209e83ccbae637908bd654749357f67f8412da" dependencies = [ "frame-benchmarking", "frame-support", @@ -8845,17 +9404,17 @@ dependencies = [ "pallet-ranked-collective", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-scheduler" -version = "39.0.0" +version = "40.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26899a331e7ab5f7d5966cbf203e1cf5bd99cd110356d7ddcaa7597087cdc0b5" +checksum = "6efb66648d83ce14caaa5cb062fa54021222e964dc58c7326aee44f27db96b46" dependencies = [ "docify", "frame-benchmarking", @@ -8864,16 +9423,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-weights 31.0.0", + "sp-io", + "sp-runtime", + "sp-weights", ] [[package]] name = "pallet-session" -version = "38.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8474b62b6b7622f891e83d922a589e2ad5be5471f5ca47d45831a797dba0b3f4" +checksum = "e69f96c09d4ae772ee095f1392ef33a8d46f5dfa5be8a217935e9effd2979c39" dependencies = [ "frame-support", "frame-system", @@ -8882,20 +9441,20 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "sp-session", - "sp-staking 36.0.0", - "sp-state-machine 0.43.0", - "sp-trie 37.0.0", + "sp-staking", + "sp-state-machine", + "sp-trie", ] [[package]] name = "pallet-session-benchmarking" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aadce7df0fee981721983795919642648b846dab5ab9096f82c2cea781007d0" +checksum = "23c47810ba93b2f19b974c09d0c1c78bbf3494c1c09b57c04ba53db28806c441" dependencies = [ "frame-benchmarking", "frame-support", @@ -8903,34 +9462,34 @@ dependencies = [ "pallet-session", "pallet-staking", "parity-scale-codec", - "rand", - "sp-runtime 39.0.5", + "rand 0.8.5", + "sp-runtime", "sp-session", ] [[package]] name = "pallet-society" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1dc69fea8a8de343e71691f009d5fece6ae302ed82b7bb357882b2ea6454143" +checksum = "d2cd5187e7f7023edee928e707996cd8434a0f06b048f8310ed8da2440e3d575" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "parity-scale-codec", - "rand_chacha", + "rand_chacha 0.3.1", "scale-info", - "sp-arithmetic 26.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-staking" -version = "38.0.1" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8efdbfe23385add01c734e6ddd7967e11a04fad0da7e4e42e6ae2501d1e12016" +checksum = "290aa3882b94bbee21ff8ea189ebbe71d427793024cdbbf539e6383729b0dd71" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8940,13 +9499,13 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", - "rand_chacha", + "rand_chacha 0.3.1", "scale-info", "serde", - "sp-application-crypto 38.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-staking 36.0.0", + "sp-application-crypto", + "sp-io", + "sp-runtime", + "sp-staking", ] [[package]] @@ -8955,10 +9514,10 @@ version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db5e6b1d8ee9d3f6894c5abd8c3e17737ed738c9854f87bfd16239741b7f4d5d" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -8968,25 +9527,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "988a7ebeacc84d4bdb0b12409681e956ffe35438447d8f8bc78db547cffb6ebc" dependencies = [ "log", - "sp-arithmetic 26.0.0", + "sp-arithmetic", ] [[package]] name = "pallet-staking-runtime-api" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7298559ef3a6b2f5dfbe9a3b8f3d22f2ff9b073c97f4c4853d2b316d973e72d" +checksum = "de1e238e23c94fd8bc089e87dfbcd3e7448b32c89f65743d2693508977402510" dependencies = [ "parity-scale-codec", "sp-api", - "sp-staking 36.0.0", + "sp-staking", ] [[package]] name = "pallet-state-trie-migration" -version = "40.0.0" +version = "43.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138c15b4200b9dc4c3e031def6a865a235cdc76ff91ee96fba19ca1787c9dda6" +checksum = "82a4575b790e51c5bae0079ee5cae7afaa3a7c9cfc37549ae0a845a17a7f6ed4" dependencies = [ "frame-benchmarking", "frame-support", @@ -8994,16 +9553,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-sudo" -version = "38.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1574fe2aed3d52db4a389b77b53d8c9758257b121e3e7bbe24c4904e11681e0e" +checksum = "97b935eaaa5fac451003c3c78c217950df9f057af460ffc5bfb1c26c8a955afd" dependencies = [ "docify", "frame-benchmarking", @@ -9011,15 +9570,15 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-timestamp" -version = "37.0.0" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9ba9b71bbfd33ae672f23ba7efaeed2755fdac37b8f946cb7474fc37841b7e1" +checksum = "5dcb0a659187a3b9364a1754fb30cc962109be0753e9689d92fe01e47c747a71" dependencies = [ "docify", "frame-benchmarking", @@ -9029,65 +9588,67 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-inherents", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-storage 21.0.0", + "sp-io", + "sp-runtime", + "sp-storage", "sp-timestamp", ] [[package]] name = "pallet-transaction-payment" -version = "38.0.2" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cdb86580c72b58145f9cddba21a0c1814742ca56abc9caac3c1ac72f6bde649" +checksum = "ec542f9f25723838a843029278d6a16e96b539d8a8593e7b00d0e14c76b7dcb5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "38.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49fdf5ab71e9dbcadcf7139736b6ea6bac8ec4a83985d46cbd130e1eec770e41" +checksum = "2d3071434d642dd7bc44e7cec297849c7b33c7faaf0f67ebefdc336d9cd07939" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "sp-api", - "sp-runtime 39.0.5", - "sp-weights 31.0.0", + "sp-runtime", + "sp-weights", ] [[package]] name = "pallet-treasury" -version = "37.0.0" +version = "38.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98bfdd3bb9b58fb010bcd419ff5bf940817a8e404cdbf7886a53ac730f5dda2b" +checksum = "58278ce6cb5f7a1a0a4602e1854b1f9bf6a41d93bf3079b8dcb712bdf9e4ac06" dependencies = [ "docify", "frame-benchmarking", "frame-support", "frame-system", "impl-trait-for-tuples", + "log", "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", ] [[package]] name = "pallet-uniques" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2b13cdaedf2d5bd913a5f6e637cb52b5973d8ed4b8d45e56d921bc4d627006f" +checksum = "f596f04b054dba5b9a201d2a3da8cde47229b6bbceef2d43b4b654827d8c03d6" dependencies = [ "frame-benchmarking", "frame-support", @@ -9095,30 +9656,30 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-utility" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fdcade6efc0b66fc7fc4138964802c02d0ffb7380d894e26b9dd5073727d2b3" +checksum = "f2edbaec3296bc377dce78d9c639513d0d6f3b8a56484ee61cfb36fb0a027498" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-vesting" -version = "38.0.0" +version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "807df2ef13ab6bf940879352c3013bfa00b670458b4c125c2f60e5753f68e3d5" +checksum = "57a93212a0d5c483389f8a7e40adcb2b27ebc261c489b721f85dc6e8b5e05d56" dependencies = [ "frame-benchmarking", "frame-support", @@ -9126,14 +9687,14 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-whitelist" -version = "37.0.0" +version = "38.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ef17df925290865cf37096dd0cb76f787df11805bba01b1d0ca3e106d06280b" +checksum = "b87ecc0c43bc8237767d738c2d4b66e0ccbf1aae21d0d75c1c0488861d13e93e" dependencies = [ "frame-benchmarking", "frame-support", @@ -9141,27 +9702,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "pallet-xcm" -version = "17.0.2" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8893d5736d085729ed6d698a727a1511dd2b787b48ad0dc2d86136f142cc3e" +checksum = "ee1d95aa6954c1ac5ecac000a3d9d3203399498c3a79ec508cdb81acecacd77f" dependencies = [ "bounded-collections", "frame-benchmarking", "frame-support", "frame-system", - "log", "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -9171,9 +9731,9 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "17.0.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da423463933b42f4a4c74175f9e9295a439de26719579b894ce533926665e4a" +checksum = "811d2f680cc5794ba90e16d2514665c19c697ddd59f7acd386b015a6ff57d3f8" dependencies = [ "frame-benchmarking", "frame-support", @@ -9181,8 +9741,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -9190,9 +9750,9 @@ dependencies = [ [[package]] name = "pallet-xcm-bridge-hub" -version = "0.13.3" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdb76fff08633830063a4cb36664f0cf2f926ac0da02ee439d4f521763e26b7" +checksum = "b5bd00ad5cff288bfdf216dba30efdc0e2a7d19d53dfd307864428ee1cc12d04" dependencies = [ "bp-messages", "bp-runtime", @@ -9203,8 +9763,8 @@ dependencies = [ "pallet-bridge-messages", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -9213,9 +9773,9 @@ dependencies = [ [[package]] name = "pallet-xcm-bridge-hub-router" -version = "0.15.3" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabf1fdcf451ac79995f11cb9b6a0761924c57bb79442c2d91b3bbefe4dfa081" +checksum = "91e88b2e2bbb9e0278656eba855f597c0dbed9cdba1eab283090fb9e30b7e9aa" dependencies = [ "bp-xcm-bridge-hub-router", "frame-benchmarking", @@ -9224,8 +9784,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -9233,9 +9793,9 @@ dependencies = [ [[package]] name = "parachains-common" -version = "18.0.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9460a69f409be27c62161d8b4d36ffc32735d09a4f9097f9c789db0cca7196c" +checksum = "b803351a2554a114b19df3decf8bb351dea332798b0ab21491557bfe86987207" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -9250,12 +9810,12 @@ dependencies = [ "pallet-message-queue", "pallet-xcm", "parity-scale-codec", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "scale-info", "sp-consensus-aura", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "staging-parachain-info", "staging-xcm", "staging-xcm-executor", @@ -9264,9 +9824,9 @@ dependencies = [ [[package]] name = "parachains-runtimes-test-utils" -version = "19.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37c6a0fe791b244282e445c7ae2534217b05781a7e47ef9e391860cf3412210" +checksum = "bc0f4bee34575de7d012b11e64156103cf9f17096ef2c235417d28d56b26a098" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-pallet-xcmp-queue", @@ -9284,10 +9844,10 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives", "sp-consensus-aura", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-tracing 17.0.1", + "sp-core", + "sp-io", + "sp-runtime", + "sp-tracing", "staging-parachain-info", "staging-xcm", "staging-xcm-executor", @@ -9302,7 +9862,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" dependencies = [ "bitcoin_hashes 0.13.0", - "rand", + "rand 0.8.5", "rand_core 0.6.4", "serde", "unicode-normalization", @@ -9316,58 +9876,31 @@ checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67" [[package]] name = "parity-scale-codec" -version = "3.6.12" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +checksum = "c9fde3d0718baf5bc92f577d652001da0f8d54cd03a7974e118d04fc888dc23d" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bitvec", "byte-slice-cast", "bytes", + "const_format", "impl-trait-for-tuples", "parity-scale-codec-derive", + "rustversion", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "3.6.12" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +checksum = "581c837bb6b9541ce7faa9377c20616e4fb7650f6b0f68bc93c827ee504fb7b3" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 1.0.109", -] - -[[package]] -name = "parity-util-mem" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d32c34f4f5ca7f9196001c0aba5a1f9a5a12382c8944b8b0f90233282d1e8f8" -dependencies = [ - "cfg-if", - "ethereum-types", - "hashbrown 0.12.3", - "impl-trait-for-tuples", - "lru 0.8.1", - "parity-util-mem-derive", - "parking_lot 0.12.3", - "primitive-types", - "smallvec", - "winapi", -] - -[[package]] -name = "parity-util-mem-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" -dependencies = [ - "proc-macro2", - "syn 1.0.109", - "synstructure 0.12.6", + "syn 2.0.100", ] [[package]] @@ -9378,9 +9911,9 @@ checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" @@ -9400,7 +9933,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.9", + "parking_lot_core 0.9.10", ] [[package]] @@ -9419,15 +9952,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.10", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -9444,7 +9977,7 @@ checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" dependencies = [ "base64ct", "rand_core 0.6.4", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -9460,6 +9993,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", + "hmac 0.12.1", "password-hash", ] @@ -9474,9 +10008,9 @@ dependencies = [ [[package]] name = "pem" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ "base64 0.22.1", "serde", @@ -9493,15 +10027,16 @@ dependencies = [ "parachains-common", "penpal-runtime", "polkadot-emulated-chain", - "sp-core 34.0.0", + "sp-core", + "sp-keyring", "staging-xcm", ] [[package]] name = "penpal-runtime" -version = "0.25.1" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "789912e0dd53f9f52a71aa4aa0570e3564066558797cc8912ee7f16213abb4d1" +checksum = "8890e263559b5b6c492cf0e832bc43938b0d493d44bb298a73558bba9a5d0c3b" dependencies = [ "assets-common", "cumulus-pallet-aura-ext", @@ -9537,21 +10072,22 @@ dependencies = [ "parachains-common", "parity-scale-codec", "polkadot-parachain-primitives", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-common", - "primitive-types", + "primitive-types 0.12.2", "scale-info", "smallvec", + "snowbridge-router-primitives", "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-storage 21.0.0", + "sp-storage", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -9573,7 +10109,7 @@ dependencies = [ "kusama-runtime-constants", "parachains-common", "people-kusama-runtime", - "sp-core 34.0.0", + "sp-core", ] [[package]] @@ -9595,7 +10131,7 @@ dependencies = [ "parity-scale-codec", "people-kusama-runtime", "polkadot-runtime-common", - "sp-runtime 39.0.5", + "sp-runtime", "staging-kusama-runtime", "staging-xcm", "staging-xcm-executor", @@ -9632,6 +10168,7 @@ dependencies = [ "pallet-collator-selection", "pallet-identity", "pallet-message-queue", + "pallet-migrations", "pallet-multisig", "pallet-proxy", "pallet-session", @@ -9645,7 +10182,7 @@ dependencies = [ "parachains-runtimes-test-utils", "parity-scale-codec", "polkadot-parachain-primitives", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-common", "scale-info", "serde", @@ -9653,14 +10190,13 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-std", - "sp-storage 21.0.0", + "sp-storage", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -9683,7 +10219,7 @@ dependencies = [ "people-polkadot-runtime", "polkadot-emulated-chain", "polkadot-runtime-constants", - "sp-core 34.0.0", + "sp-core", ] [[package]] @@ -9706,7 +10242,7 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-constants", "polkadot-system-emulated-network", - "sp-runtime 39.0.5", + "sp-runtime", "staging-xcm", "staging-xcm-executor", "xcm-runtime-apis", @@ -9741,6 +10277,7 @@ dependencies = [ "pallet-collator-selection", "pallet-identity", "pallet-message-queue", + "pallet-migrations", "pallet-multisig", "pallet-proxy", "pallet-session", @@ -9762,14 +10299,13 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 34.0.0", + "sp-core", "sp-genesis-builder", "sp-inherents", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-std", - "sp-storage 21.0.0", + "sp-storage", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -9789,20 +10325,20 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.7" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" +checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" dependencies = [ "memchr", - "thiserror", + "thiserror 2.0.12", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.7" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" +checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5" dependencies = [ "pest", "pest_generator", @@ -9810,22 +10346,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.7" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" +checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "pest_meta" -version = "2.7.7" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" +checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" dependencies = [ "once_cell", "pest", @@ -9834,45 +10370,39 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.4" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "indexmap 2.2.6", + "indexmap 2.8.0", ] [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "pin-project-lite" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" - -[[package]] -name = "pin-project-lite" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -9882,9 +10412,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", "fastrand", @@ -9903,9 +10433,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.28" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "polkadot-ckb-merkle-mountain-range" @@ -9919,14 +10449,14 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "15.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2900d3b857e34c480101618a950c3a4fbcddc8c0d50573d48553376185908b8" +checksum = "fe728468f0519d4ae802cae85b21a50072730fb93ad47bedb34fbc01fa62f125" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", ] [[package]] @@ -9936,66 +10466,39 @@ dependencies = [ "emulated-integration-tests-common", "pallet-staking", "parachains-common", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime", "polkadot-runtime-constants", "sc-consensus-grandpa", "sp-authority-discovery", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", ] [[package]] name = "polkadot-parachain-primitives" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52b5648a2e8ce1f9a0f8c41c38def670cefd91932cd793468e1a5b0b0b4e4af1" -dependencies = [ - "bounded-collections", - "derive_more", - "parity-scale-codec", - "polkadot-core-primitives", - "scale-info", - "serde", - "sp-core 34.0.0", - "sp-runtime 39.0.5", - "sp-weights 31.0.0", -] - -[[package]] -name = "polkadot-primitives" version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b57bc055fa389372ec5fc0001b99aeffd50f3fd379280ce572d935189bb58dd8" +checksum = "1d10a3da595ecd419e526a9cfcc013cd00bcd9a2c962991d6efb312df8307eaf" dependencies = [ - "bitvec", - "hex-literal", - "log", + "bounded-collections", + "derive_more 0.99.19", "parity-scale-codec", "polkadot-core-primitives", - "polkadot-parachain-primitives", "scale-info", "serde", - "sp-api", - "sp-application-crypto 38.0.0", - "sp-arithmetic 26.0.0", - "sp-authority-discovery", - "sp-consensus-slots", - "sp-core 34.0.0", - "sp-inherents", - "sp-io 38.0.0", - "sp-keystore 0.40.0", - "sp-runtime 39.0.5", - "sp-staking 34.0.0", + "sp-core", + "sp-runtime", + "sp-weights", ] [[package]] name = "polkadot-primitives" -version = "16.0.0" +version = "17.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb20b75d33212150242d39890d7ededab55f1084160c337f15d0eb8ca8c3ad4" +checksum = "c9347b7397a9b74277c427b4a07eda27e172fafcca28ca96d226c3ef4e279fbb" dependencies = [ "bitvec", "hex-literal", @@ -10006,16 +10509,18 @@ dependencies = [ "scale-info", "serde", "sp-api", - "sp-application-crypto 38.0.0", - "sp-arithmetic 26.0.0", + "sp-application-crypto", + "sp-arithmetic", "sp-authority-discovery", "sp-consensus-slots", - "sp-core 34.0.0", + "sp-core", "sp-inherents", - "sp-io 38.0.0", - "sp-keystore 0.40.0", - "sp-runtime 39.0.5", - "sp-staking 36.0.0", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-staking", + "sp-std", + "thiserror 1.0.69", ] [[package]] @@ -10084,7 +10589,7 @@ dependencies = [ "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-parachain-primitives", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-constants", "polkadot-runtime-parachains", @@ -10093,28 +10598,27 @@ dependencies = [ "separator", "serde_json", "sp-api", - "sp-application-crypto 38.0.0", - "sp-arithmetic 26.0.0", + "sp-application-crypto", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 34.0.0", + "sp-core", "sp-debug-derive", "sp-genesis-builder", "sp-inherents", - "sp-io 38.0.0", + "sp-io", "sp-keyring", "sp-npos-elections", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-staking 36.0.0", - "sp-std", - "sp-storage 21.0.0", - "sp-tracing 17.0.1", + "sp-staking", + "sp-storage", + "sp-tracing", "sp-transaction-pool", - "sp-trie 37.0.0", + "sp-trie", "sp-version", "ss58-registry", "staging-xcm", @@ -10127,9 +10631,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "17.0.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc15154ba5ca55d323fcf7af0f5dcd39d58dcb4dfac3d9b30404840a6d8bbde4" +checksum = "58b37de6a742c9e1a91c5caea1b0f6892f4c6de9a0816098a0e95cf4f64cea8c" dependencies = [ "bitvec", "frame-benchmarking", @@ -10155,7 +10659,7 @@ dependencies = [ "pallet-treasury", "pallet-vesting", "parity-scale-codec", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-parachains", "rustc-hex", "scale-info", @@ -10163,13 +10667,14 @@ dependencies = [ "serde_derive", "slot-range-helper", "sp-api", - "sp-core 34.0.0", + "sp-core", "sp-inherents", - "sp-io 38.0.0", + "sp-io", + "sp-keyring", "sp-npos-elections", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-staking 36.0.0", + "sp-staking", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -10183,39 +10688,39 @@ dependencies = [ "frame-support", "pallet-remote-proxy", "parity-scale-codec", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-common", "scale-info", "smallvec", - "sp-core 34.0.0", - "sp-runtime 39.0.5", - "sp-trie 37.0.0", - "sp-weights 31.0.0", + "sp-core", + "sp-runtime", + "sp-trie", + "sp-weights", "staging-xcm-builder", ] [[package]] name = "polkadot-runtime-metrics" -version = "17.0.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c306f1ace7644a24de860479f92cf8d6467393bb0c9b0777c57e2d42c9d452a" +checksum = "317eefe8eb7fc0d87e283a03567f4c59462f0a7edbee847d1c9f4134eb0993b6" dependencies = [ - "bs58 0.5.1", + "bs58", "frame-benchmarking", "parity-scale-codec", - "polkadot-primitives 16.0.0", - "sp-tracing 17.0.1", + "polkadot-primitives", + "sp-tracing", ] [[package]] name = "polkadot-runtime-parachains" -version = "17.0.2" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d4cdf181c2419b35c2cbde813da2d8ee777b69b4a6fa346b962d144e3521976" +checksum = "658783ec1451ae0b967446c54e5cda6adf19f4bad3ed43dbc4b962537d9a75f1" dependencies = [ "bitflags 1.3.2", "bitvec", - "derive_more", + "derive_more 0.99.19", "frame-benchmarking", "frame-support", "frame-system", @@ -10235,29 +10740,73 @@ dependencies = [ "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain-primitives", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-metrics", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "scale-info", "serde", "sp-api", - "sp-application-crypto 38.0.0", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", "sp-inherents", - "sp-io 38.0.0", - "sp-keystore 0.40.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-keystore", + "sp-runtime", "sp-session", - "sp-staking 36.0.0", + "sp-staking", "sp-std", - "sp-tracing 17.0.1", + "sp-tracing", "staging-xcm", "staging-xcm-executor", "static_assertions", ] +[[package]] +name = "polkadot-sdk" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb819108697967452fa6d8d96ab4c0d48cbaa423b3156499dcb24f1cf95d6775" +dependencies = [ + "sp-crypto-hashing", +] + +[[package]] +name = "polkadot-sdk-frame" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b917fb6161d99d784acd517409f97c9a09d134d7e316abe86559898bc496c83" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "log", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-arithmetic", + "sp-block-builder", + "sp-consensus-aura", + "sp-consensus-grandpa", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-keyring", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-storage", + "sp-transaction-pool", + "sp-version", +] + [[package]] name = "polkadot-system-emulated-network" version = "1.0.0" @@ -10294,12 +10843,6 @@ dependencies = [ "log", ] -[[package]] -name = "polkavm-common" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92c99f7eee94e7be43ba37eef65ad0ee8cbaf89b7c00001c3f6d2be985cb1817" - [[package]] name = "polkavm-common" version = "0.9.0" @@ -10310,13 +10853,10 @@ dependencies = [ ] [[package]] -name = "polkavm-derive" -version = "0.8.0" +name = "polkavm-common" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79fa916f7962348bd1bb1a65a83401675e6fc86c51a0fdbcf92a3108e58e6125" -dependencies = [ - "polkavm-derive-impl-macro 0.8.0", -] +checksum = "31ff33982a807d8567645d4784b9b5d7ab87bcb494f534a57cadd9012688e102" [[package]] name = "polkavm-derive" @@ -10328,15 +10868,12 @@ dependencies = [ ] [[package]] -name = "polkavm-derive-impl" -version = "0.8.0" +name = "polkavm-derive" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c10b2654a8a10a83c260bfb93e97b262cf0017494ab94a65d389e0eda6de6c9c" +checksum = "c2eb703f3b6404c13228402e98a5eae063fd16b8f58afe334073ec105ee4117e" dependencies = [ - "polkavm-common 0.8.0", - "proc-macro2", - "quote", - "syn 2.0.65", + "polkavm-derive-impl-macro 0.18.0", ] [[package]] @@ -10348,17 +10885,19 @@ dependencies = [ "polkavm-common 0.9.0", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] -name = "polkavm-derive-impl-macro" -version = "0.8.0" +name = "polkavm-derive-impl" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e85319a0d5129dc9f021c62607e0804f5fb777a05cdda44d750ac0732def66" +checksum = "2f2116a92e6e96220a398930f4c8a6cda1264206f3e2034fc9982bfd93f261f7" dependencies = [ - "polkavm-derive-impl 0.8.0", - "syn 2.0.65", + "polkavm-common 0.18.0", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] @@ -10368,7 +10907,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" dependencies = [ "polkavm-derive-impl 0.9.0", - "syn 2.0.65", + "syn 2.0.100", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c16669ddc7433e34c1007d31080b80901e3e8e523cb9d4b441c3910cf9294b" +dependencies = [ + "polkavm-derive-impl 0.18.1", + "syn 2.0.100", ] [[package]] @@ -10378,7 +10927,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c7be503e60cf56c0eb785f90aaba4b583b36bff00e93997d93fef97f9553c39" dependencies = [ "gimli 0.28.1", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "log", "object 0.32.2", "polkavm-common 0.9.0", @@ -10394,16 +10943,17 @@ checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120" [[package]] name = "polling" -version = "3.5.0" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", - "pin-project-lite 0.2.13", - "rustix 0.38.31", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix 0.38.44", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -10413,27 +10963,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] [[package]] name = "portable-atomic" -version = "1.6.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "powerfmt" @@ -10443,9 +10993,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy 0.8.24", +] [[package]] name = "predicates" @@ -10463,9 +11016,9 @@ dependencies = [ [[package]] name = "predicates" -version = "3.1.0" +version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" +checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" dependencies = [ "anstyle", "predicates-core", @@ -10473,15 +11026,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" +checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" dependencies = [ "predicates-core", "termtree", @@ -10489,56 +11042,59 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.1.25" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" dependencies = [ "proc-macro2", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] -name = "prettyplease" -version = "0.2.16" +name = "primitive-types" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ - "proc-macro2", - "syn 2.0.65", + "fixed-hash", + "impl-codec 0.6.0", + "impl-num-traits 0.1.2", + "scale-info", + "uint 0.9.5", ] [[package]] name = "primitive-types" -version = "0.12.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" dependencies = [ "fixed-hash", - "impl-codec", - "impl-num-traits", + "impl-codec 0.7.1", + "impl-num-traits 0.2.0", "impl-rlp", "impl-serde", "scale-info", - "uint", + "uint 0.10.0", ] [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "thiserror 1.0.69", + "toml 0.5.11", ] [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "toml_edit 0.21.0", + "toml_edit", ] [[package]] @@ -10565,6 +11121,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "proc-macro-warning" version = "0.4.2" @@ -10573,41 +11151,41 @@ checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "proc-macro-warning" -version = "1.0.0" +version = "1.84.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c" +checksum = "75eea531cfcd120e0851a3f8aed42c4841f78c889eefafd96339c72677ae42c3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "proc-macro2" -version = "1.0.82" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] [[package]] name = "prometheus" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ "cfg-if", "fnv", "lazy_static", "memchr", "parking_lot 0.12.3", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -10630,39 +11208,29 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "proptest" -version = "1.4.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags 2.9.0", "lazy_static", "num-traits", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "rand_xorshift", - "regex-syntax 0.8.2", + "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", ] -[[package]] -name = "prost" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" -dependencies = [ - "bytes", - "prost-derive 0.11.9", -] - [[package]] name = "prost" version = "0.12.6" @@ -10674,97 +11242,75 @@ dependencies = [ ] [[package]] -name = "prost-build" -version = "0.11.9" +name = "prost" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" dependencies = [ "bytes", - "heck 0.4.1", - "itertools 0.10.5", - "lazy_static", - "log", - "multimap", - "petgraph", - "prettyplease 0.1.25", - "prost 0.11.9", - "prost-types 0.11.9", - "regex", - "syn 1.0.109", - "tempfile", - "which", + "prost-derive 0.13.5", ] [[package]] name = "prost-build" -version = "0.12.6" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "bytes", "heck 0.5.0", - "itertools 0.12.1", + "itertools 0.14.0", "log", "multimap", "once_cell", "petgraph", - "prettyplease 0.2.16", - "prost 0.12.6", - "prost-types 0.12.6", + "prettyplease", + "prost 0.13.5", + "prost-types", "regex", - "syn 2.0.65", + "syn 2.0.100", "tempfile", ] [[package]] name = "prost-derive" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.12.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "prost-derive" -version = "0.12.6" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.65", -] - -[[package]] -name = "prost-types" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" -dependencies = [ - "prost 0.11.9", + "syn 2.0.100", ] [[package]] name = "prost-types" -version = "0.12.6" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" dependencies = [ - "prost 0.12.6", + "prost 0.13.5", ] [[package]] name = "psm" -version = "0.1.21" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "f58e5423e24c18cc840e1c98370b3993c6649cd1678b4d24318bcf0a083cbe88" dependencies = [ "cc", ] @@ -10790,130 +11336,144 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ededb1cd78531627244d51dd0c7139fbe736c7d57af0092a76f0ffb2f56e98" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.6.2", "bytes", "quick-protobuf", - "thiserror", + "thiserror 1.0.69", "unsigned-varint 0.7.2", ] [[package]] -name = "quicksink" -version = "0.1.2" +name = "quick-protobuf-codec" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" +checksum = "15a0580ab32b169745d7a39db2ba969226ca16738931be152a3209b409de2474" dependencies = [ - "futures-core", - "futures-sink", - "pin-project-lite 0.1.12", + "asynchronous-codec 0.7.0", + "bytes", + "quick-protobuf", + "thiserror 1.0.69", + "unsigned-varint 0.8.0", ] [[package]] name = "quinn" -version = "0.9.4" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e" +checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" dependencies = [ "bytes", - "pin-project-lite 0.2.13", - "quinn-proto 0.9.6", - "quinn-udp 0.3.2", + "futures-io", + "pin-project-lite", + "quinn-proto 0.10.6", + "quinn-udp 0.4.1", "rustc-hash 1.1.0", - "rustls 0.20.9", - "thiserror", + "rustls 0.21.12", + "thiserror 1.0.69", "tokio", "tracing", - "webpki", ] [[package]] name = "quinn" -version = "0.10.2" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" +checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" dependencies = [ "bytes", + "cfg_aliases", "futures-io", - "pin-project-lite 0.2.13", - "quinn-proto 0.10.6", - "quinn-udp 0.4.1", - "rustc-hash 1.1.0", - "rustls 0.21.10", - "thiserror", + "pin-project-lite", + "quinn-proto 0.11.10", + "quinn-udp 0.5.11", + "rustc-hash 2.1.1", + "rustls 0.23.25", + "socket2 0.5.9", + "thiserror 2.0.12", "tokio", "tracing", + "web-time", ] [[package]] name = "quinn-proto" -version = "0.9.6" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" +checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" dependencies = [ "bytes", - "rand", + "rand 0.8.5", "ring 0.16.20", "rustc-hash 1.1.0", - "rustls 0.20.9", + "rustls 0.21.12", "slab", - "thiserror", + "thiserror 1.0.69", "tinyvec", "tracing", - "webpki", ] [[package]] name = "quinn-proto" -version = "0.10.6" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" +checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc" dependencies = [ "bytes", - "rand", - "ring 0.16.20", - "rustc-hash 1.1.0", - "rustls 0.21.10", + "getrandom 0.3.2", + "rand 0.9.0", + "ring 0.17.14", + "rustc-hash 2.1.1", + "rustls 0.23.25", + "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.12", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.3.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4" +checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" dependencies = [ + "bytes", "libc", - "quinn-proto 0.9.6", - "socket2 0.4.10", + "socket2 0.5.9", "tracing", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] name = "quinn-udp" -version = "0.4.1" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" +checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5" dependencies = [ - "bytes", + "cfg_aliases", "libc", - "socket2 0.5.7", + "once_cell", + "socket2 0.5.9", "tracing", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "radium" version = "0.7.0" @@ -10927,10 +11487,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", + "rand_chacha 0.3.1", "rand_core 0.6.4", ] +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "zerocopy 0.8.24", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -10942,10 +11513,14 @@ dependencies = [ ] [[package]] -name = "rand_core" -version = "0.5.1" +name = "rand_chacha" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] [[package]] name = "rand_core" @@ -10953,7 +11528,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.2", ] [[package]] @@ -10963,7 +11547,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -10983,9 +11567,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -10993,9 +11577,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -11013,6 +11597,18 @@ dependencies = [ "yasna", ] +[[package]] +name = "rcgen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6" +dependencies = [ + "pem 3.0.5", + "ring 0.16.20", + "time", + "yasna", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -11024,42 +11620,42 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.0", ] [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom", + "getrandom 0.2.15", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "ref-cast" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -11089,14 +11685,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.4" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.6", - "regex-syntax 0.8.2", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -11110,13 +11706,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.5", ] [[package]] @@ -11127,9 +11723,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "relay-common" @@ -11137,28 +11733,31 @@ version = "1.0.0" dependencies = [ "pallet-staking-reward-fn", "parity-scale-codec", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "scale-info", "sp-api", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "reqwest" -version = "0.11.27" +version = "0.12.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" dependencies = [ - "base64 0.21.6", + "base64 0.22.1", "bytes", "encoding_rs", "futures-core", "futures-util", - "h2 0.3.22", - "http 0.2.11", - "http-body 0.4.5", - "hyper 0.14.27", + "h2 0.4.8", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-rustls 0.27.5", "hyper-tls", + "hyper-util", "ipnet", "js-sys", "log", @@ -11166,8 +11765,8 @@ dependencies = [ "native-tls", "once_cell", "percent-encoding", - "pin-project-lite 0.2.13", - "rustls-pemfile 1.0.4", + "pin-project-lite", + "rustls-pemfile 2.2.0", "serde", "serde_json", "serde_urlencoded", @@ -11175,22 +11774,22 @@ dependencies = [ "system-configuration", "tokio", "tokio-native-tls", + "tower 0.5.2", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg", + "windows-registry", ] [[package]] name = "resolv-conf" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +checksum = "48375394603e3dd4b2d64371f7148fd8c7baa2680e28741f2cb8d23b59e3d4c4" dependencies = [ "hostname", - "quick-error", ] [[package]] @@ -11200,7 +11799,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ "hmac 0.12.1", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -11220,16 +11819,16 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.7" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", - "getrandom", + "cfg-if", + "getrandom 0.2.15", "libc", - "spin 0.9.8", "untrusted 0.9.0", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -11242,39 +11841,55 @@ dependencies = [ "rustc-hex", ] +[[package]] +name = "rlp" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" +dependencies = [ + "bytes", + "rustc-hex", +] + [[package]] name = "rtnetlink" -version = "0.10.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" +checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" dependencies = [ "futures", "log", + "netlink-packet-core", "netlink-packet-route", + "netlink-packet-utils", "netlink-proto", - "nix 0.24.3", - "thiserror", + "netlink-sys", + "nix 0.26.4", + "thiserror 1.0.69", "tokio", ] [[package]] name = "ruint" -version = "1.12.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b1d9521f889713d1221270fdd63370feca7e5c71a18745343402fa86e4f04f" +checksum = "78a46eb779843b2c4f21fac5773e25d6d5b7c8f0922876c91541790d2ca27eef" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", - "fastrlp", + "fastrlp 0.3.1", + "fastrlp 0.4.0", "num-bigint", + "num-integer", "num-traits", "parity-scale-codec", - "primitive-types", + "primitive-types 0.12.2", "proptest", - "rand", - "rlp", + "rand 0.8.5", + "rand 0.9.0", + "rlp 0.5.2", "ruint-macro", "serde", "valuable", @@ -11283,15 +11898,15 @@ dependencies = [ [[package]] name = "ruint-macro" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f86854cf50259291520509879a5c294c3c9a4c334e9ff65071c51e42ef1e2343" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -11301,9 +11916,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc-hex" @@ -11331,11 +11946,11 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.18", + "semver 1.0.26", ] [[package]] @@ -11363,15 +11978,28 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.4.12", - "windows-sys 0.52.0", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys 0.9.3", + "windows-sys 0.59.0", ] [[package]] @@ -11387,42 +12015,28 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.10" +version = "0.21.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring 0.17.7", + "ring 0.17.14", "rustls-webpki 0.101.7", "sct", ] [[package]] name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring 0.17.7", - "rustls-pki-types", - "rustls-webpki 0.102.5", - "subtle 2.5.0", - "zeroize", -] - -[[package]] -name = "rustls" -version = "0.23.11" +version = "0.23.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" +checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" dependencies = [ "log", "once_cell", - "ring 0.17.7", + "ring 0.17.14", "rustls-pki-types", - "rustls-webpki 0.102.5", - "subtle 2.5.0", + "rustls-webpki 0.103.1", + "subtle 2.6.1", "zeroize", ] @@ -11435,20 +12049,19 @@ dependencies = [ "openssl-probe", "rustls-pemfile 1.0.4", "schannel", - "security-framework", + "security-framework 2.11.1", ] [[package]] name = "rustls-native-certs" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.2", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.2.0", ] [[package]] @@ -11457,51 +12070,53 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.6", + "base64 0.21.7", ] [[package]] name = "rustls-pemfile" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.7.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +dependencies = [ + "web-time", +] [[package]] name = "rustls-platform-verifier" -version = "0.3.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e3beb939bcd33c269f4bf946cc829fcd336370267c4a927ac0399c84a3151a1" +checksum = "4a5467026f437b4cb2a533865eaa73eb840019a0916f4b9ec563c6e617e086c9" dependencies = [ - "core-foundation", + "core-foundation 0.10.0", "core-foundation-sys", "jni", "log", "once_cell", - "rustls 0.23.11", - "rustls-native-certs 0.7.0", + "rustls 0.23.25", + "rustls-native-certs 0.8.1", "rustls-platform-verifier-android", - "rustls-webpki 0.102.5", - "security-framework", + "rustls-webpki 0.103.1", + "security-framework 3.2.0", "security-framework-sys", - "webpki-roots 0.26.3", - "winapi", + "webpki-root-certs", + "windows-sys 0.59.0", ] [[package]] name = "rustls-platform-verifier-android" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84e217e7fdc8466b5b35d30f8c0a30febd29173df4a3a0c2115d306b9c4117ad" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" @@ -11509,26 +12124,26 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.7", + "ring 0.17.14", "untrusted 0.9.0", ] [[package]] name = "rustls-webpki" -version = "0.102.5" +version = "0.103.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a6fccd794a42c2c105b513a2f62bc3fd8f3ba57a4593677ceb0bd035164d78" +checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" dependencies = [ - "ring 0.17.7", + "ring 0.17.14", "rustls-pki-types", "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "rusty-fork" @@ -11544,13 +12159,12 @@ dependencies = [ [[package]] name = "ruzstd" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d" +checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b" dependencies = [ "byteorder", - "derive_more", - "twox-hash", + "derive_more 0.99.19", ] [[package]] @@ -11566,9 +12180,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "safe-mix" @@ -11581,13 +12195,22 @@ dependencies = [ [[package]] name = "safe_arch" -version = "0.7.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" dependencies = [ "bytemuck", ] +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher 0.4.4", +] + [[package]] name = "same-file" version = "1.0.6" @@ -11599,37 +12222,37 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "29.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b975ee3a95eaacb611e7b415737a7fa2db4d8ad7b880cc1b97371b04e95c7903" +checksum = "5a63e577eb150187ddd444a0a6f01e1ece0a5cfc592aacb4204d9f79bdc5265d" dependencies = [ "log", - "sp-core 34.0.0", - "sp-wasm-interface 21.0.1", - "thiserror", + "sp-core", + "sp-wasm-interface", + "thiserror 1.0.69", ] [[package]] name = "sc-block-builder" -version = "0.42.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f666f8ff11f96bf6d90676739eb7ccb6a156a4507634b7af83b94f0aa8195a50" +checksum = "fa58cf10d78568fa19d3cd723984bc864c19113fa83f2f252020c91f925b8480" dependencies = [ "parity-scale-codec", "sp-api", "sp-block-builder", "sp-blockchain", - "sp-core 34.0.0", + "sp-core", "sp-inherents", - "sp-runtime 39.0.5", - "sp-trie 37.0.0", + "sp-runtime", + "sp-trie", ] [[package]] name = "sc-chain-spec" -version = "38.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3534c5dc910e6c9e0f25871948e7bb683852d1aef44b8b7753062feef4235e7c" +checksum = "f193a962c3bea44d03d6ec61ef3b54cc3d629a8058a25bcb181d06f1ac7b3a79" dependencies = [ "array-bytes", "docify", @@ -11644,13 +12267,13 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 34.0.0", + "sp-core", "sp-crypto-hashing", "sp-genesis-builder", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-state-machine 0.43.0", - "sp-tracing 17.0.1", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-tracing", ] [[package]] @@ -11659,17 +12282,17 @@ version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b18cef11d2c69703e0d7c3528202ef4ed1cd2b47a6f063e9e17cad8255b1fa94" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "sc-client-api" -version = "37.0.0" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e73f1673cdfe658c4be6ffd5113b71c0de74616717e604455dcfd29e15781729" +checksum = "c89717374ec68c01c2493d65f7e1854814c371ed9e8f9826a160ee9d0d473824" dependencies = [ "fnv", "futures", @@ -11682,22 +12305,22 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-consensus", - "sp-core 34.0.0", + "sp-core", "sp-database", - "sp-externalities 0.29.0", - "sp-runtime 39.0.5", - "sp-state-machine 0.43.0", + "sp-externalities", + "sp-runtime", + "sp-state-machine", "sp-statement-store", - "sp-storage 21.0.0", - "sp-trie 37.0.0", + "sp-storage", + "sp-trie", "substrate-prometheus-endpoint", ] [[package]] name = "sc-consensus" -version = "0.44.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64e538ab9edefbf0ddc105ff5b088344c88bc86f21650a2d2020be04a957730" +checksum = "82287d29c4f569b7d6b0589ddb60a0cd5e41c82242b582f347d89a8f28bc305f" dependencies = [ "async-trait", "futures", @@ -11711,20 +12334,20 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-consensus", - "sp-core 34.0.0", - "sp-runtime 39.0.5", - "sp-state-machine 0.43.0", + "sp-core", + "sp-runtime", + "sp-state-machine", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "sc-consensus-grandpa" -version = "0.30.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3aaab70cf6f93ceea829ef0a4980ce95d84d5c7f4b5419b29bbed17fa04e1a6" +checksum = "621e14ebfe294c5e822a69eb12a8d960fa82528830ef09688a9caf1cf8b39d3f" dependencies = [ - "ahash 0.8.8", + "ahash", "array-bytes", "async-trait", "dyn-clone", @@ -11735,7 +12358,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -11750,24 +12373,24 @@ dependencies = [ "sc-utils", "serde_json", "sp-api", - "sp-application-crypto 38.0.0", - "sp-arithmetic 26.0.0", + "sp-application-crypto", + "sp-arithmetic", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 34.0.0", + "sp-core", "sp-crypto-hashing", - "sp-keystore 0.40.0", - "sp-runtime 39.0.5", + "sp-keystore", + "sp-runtime", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "sc-executor" -version = "0.40.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f0cc0a3728fd033589183460c5a49b2e7545d09dc89a098216ef9e9aadcd9dc" +checksum = "2b450573fc0ca024bdcb6d508d61c104f862519ca7f78c416bd8042c9db32975" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -11776,48 +12399,48 @@ dependencies = [ "sc-executor-wasmtime", "schnellru", "sp-api", - "sp-core 34.0.0", - "sp-externalities 0.29.0", - "sp-io 38.0.0", + "sp-core", + "sp-externalities", + "sp-io", "sp-panic-handler", - "sp-runtime-interface 28.0.0", - "sp-trie 37.0.0", + "sp-runtime-interface", + "sp-trie", "sp-version", - "sp-wasm-interface 21.0.1", + "sp-wasm-interface", "tracing", ] [[package]] name = "sc-executor-common" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3b703a33dcb7cddf19176fdf12294b9a6408125836b0f4afee3e6969e7f190" +checksum = "27f5d872331b68ed4601488100f22e8aa16331de006b51d4c69353930c568a16" dependencies = [ "polkavm", "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface 21.0.1", - "thiserror", + "sp-wasm-interface", + "thiserror 1.0.69", "wasm-instrument", ] [[package]] name = "sc-executor-polkavm" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fe58d9cacfab73e5595fa84b80f7bd03efebe54a0574daaeb221a1d1f7ab80" +checksum = "16c4b3532c0f6dae1fcbe85f4582618042aefb9c8e2a03f855d298f56362daaa" dependencies = [ "log", "polkavm", "sc-executor-common", - "sp-wasm-interface 21.0.1", + "sp-wasm-interface", ] [[package]] name = "sc-executor-wasmtime" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd498f2f77ec1f861c30804f5bfd796d4afcc8ce44ea1f11bfbe2847551d161" +checksum = "1d04b8d98a96a83b56eeb1061cd4a7a1949b7c2c147d572d309c4e4d5c0d870f" dependencies = [ "anyhow", "cfg-if", @@ -11827,26 +12450,26 @@ dependencies = [ "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 28.0.0", - "sp-wasm-interface 21.0.1", + "sp-runtime-interface", + "sp-wasm-interface", "wasmtime", ] [[package]] name = "sc-mixnet" -version = "0.15.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "781a1ffd953074e060a5f9e253f7a029bedd935fe9621bb7483cc2d442a6b1d1" +checksum = "9465af602a26f73d129f70a6b979c44f4c6bd28c2fdfc018315df2125d179d60" dependencies = [ "array-bytes", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "blake2 0.10.6", "bytes", "futures", "futures-timer", "log", "mixnet", - "multiaddr 0.18.1", + "multiaddr 0.18.2", "parity-scale-codec", "parking_lot 0.12.3", "sc-client-api", @@ -11855,23 +12478,23 @@ dependencies = [ "sc-transaction-pool-api", "sp-api", "sp-consensus", - "sp-core 34.0.0", - "sp-keystore 0.40.0", + "sp-core", + "sp-keystore", "sp-mixnet", - "sp-runtime 39.0.5", - "thiserror", + "sp-runtime", + "thiserror 1.0.69", ] [[package]] name = "sc-network" -version = "0.45.6" +version = "0.48.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51392c871f3c8867481e2b1d3426fa997fe14d3c739ae20e48c676aa92b9af08" +checksum = "1b3e6927803b73e7f88fd36d428d3238e4e430c3c963fde0857338c768fe0fad" dependencies = [ "array-bytes", "async-channel 1.9.0", "async-trait", - "asynchronous-codec", + "asynchronous-codec 0.6.2", "bytes", "cid 0.9.0", "either", @@ -11879,7 +12502,7 @@ dependencies = [ "futures", "futures-timer", "ip_network", - "libp2p", + "libp2p 0.52.4", "linked_hash_set", "litep2p", "log", @@ -11890,8 +12513,8 @@ dependencies = [ "partial_sort", "pin-project", "prost 0.12.6", - "prost-build 0.12.6", - "rand", + "prost-build", + "rand 0.8.5", "sc-client-api", "sc-network-common", "sc-network-types", @@ -11900,12 +12523,12 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-arithmetic 26.0.0", + "sp-arithmetic", "sp-blockchain", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "unsigned-varint 0.7.2", @@ -11916,30 +12539,30 @@ dependencies = [ [[package]] name = "sc-network-common" -version = "0.44.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff059c0ca497757f633cfa13625fbaa3028f23a77a9696e94e700008f8dd5a" +checksum = "425b88da9cc89a85ddb6d693d93aee2a708ad9c230b73f8aa638dbad0c63b535" dependencies = [ "async-trait", "bitflags 1.3.2", "futures", "libp2p-identity", "parity-scale-codec", - "prost-build 0.12.6", + "prost-build", "sc-consensus", "sc-network-types", "sp-consensus", "sp-consensus-grandpa", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "sc-network-gossip" -version = "0.45.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4086f4ac6b94ff2efd24f1776280c580454c5990b8665aa9f293fcd33c80630" +checksum = "42289d36ebdd9de6c40b48f555bce7546f5d926211335f8d6ad27aa819c43aca" dependencies = [ - "ahash 0.8.8", + "ahash", "futures", "futures-timer", "log", @@ -11948,16 +12571,16 @@ dependencies = [ "sc-network-sync", "sc-network-types", "schnellru", - "sp-runtime 39.0.5", + "sp-runtime", "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "sc-network-sync" -version = "0.44.1" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82cb3b9939d57083495b3ed1304094b939c99ebdc651fb779ab6d2c83428679e" +checksum = "59ce6a2562c9d4710bc56e0c2841653fd7596ef9708530b7e45e1444222b979b" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -11965,12 +12588,11 @@ dependencies = [ "fork-tree", "futures", "futures-timer", - "libp2p", "log", "mockall 0.11.4", "parity-scale-codec", "prost 0.12.6", - "prost-build 0.12.6", + "prost-build", "sc-client-api", "sc-consensus", "sc-network", @@ -11979,43 +12601,45 @@ dependencies = [ "sc-utils", "schnellru", "smallvec", - "sp-arithmetic 26.0.0", + "sp-arithmetic", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", ] [[package]] name = "sc-network-types" -version = "0.12.1" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c372dbda66644a1df0daa8c0d99c36b6f74db7dca213d2416cd84f507125224" +checksum = "7ff910b7a20f14b1a77b2616de21d509cf51ce1a006e30b2d1f293a8fae72555" dependencies = [ - "bs58 0.5.1", + "bs58", + "bytes", "ed25519-dalek", "libp2p-identity", + "libp2p-kad 0.46.2", "litep2p", "log", - "multiaddr 0.18.1", - "multihash 0.19.1", - "rand", - "thiserror", + "multiaddr 0.18.2", + "multihash 0.19.3", + "rand 0.8.5", + "thiserror 1.0.69", "zeroize", ] [[package]] name = "sc-rpc-api" -version = "0.44.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147274633577e55db73dbdc64168c25b54cca6cac4fcde118bd9946cf7b24838" +checksum = "a5a45ebf7365e369bea319018dd2706929d4d8d8807829a1989dfaf3f1c7125d" dependencies = [ - "jsonrpsee 0.24.7", + "jsonrpsee", "parity-scale-codec", "sc-chain-spec", "sc-mixnet", @@ -12023,39 +12647,38 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core 34.0.0", + "sp-core", "sp-rpc", - "sp-runtime 39.0.5", + "sp-runtime", "sp-version", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "sc-telemetry" -version = "25.0.0" +version = "28.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e28cab12625bcdb8828f9a1177b8d061972f90fda89a70c10763da50e0aaa5" +checksum = "5d751fd77c6a8d1a5bca8cb5df9d9c57f77b4b15e84eab07925b0f76ddee3e74" dependencies = [ "chrono", "futures", - "libp2p", + "libp2p 0.54.1", "log", "parking_lot 0.12.3", "pin-project", - "rand", - "sc-network", + "rand 0.8.5", "sc-utils", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "wasm-timer", ] [[package]] name = "sc-transaction-pool-api" -version = "37.0.0" +version = "38.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f02936289a079360935685eee5400311994b25e9edb2420a3c4247d419a77f46" +checksum = "894984d3ba3c6f51573dc395bcdeed02aaeb96d88c403a13c726852ed70a8584" dependencies = [ "async-trait", "futures", @@ -12063,37 +12686,24 @@ dependencies = [ "parity-scale-codec", "serde", "sp-blockchain", - "sp-core 34.0.0", - "sp-runtime 39.0.5", - "thiserror", + "sp-core", + "sp-runtime", + "thiserror 1.0.69", ] [[package]] name = "sc-utils" -version = "17.0.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf1bad736c230f16beb1cf48af9e69564df23b13aca9e5751a61266340b4bb5" +checksum = "f63860daa5455a5f3689bec3e94aad823746bac0f4166761786435043ab01a27" dependencies = [ "async-channel 1.9.0", "futures", "futures-timer", - "lazy_static", "log", "parking_lot 0.12.3", "prometheus", - "sp-arithmetic 26.0.0", -] - -[[package]] -name = "scale-bits" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662d10dcd57b1c2a3c41c9cf68f71fb09747ada1ea932ad961aca7e2ca28315f" -dependencies = [ - "parity-scale-codec", - "scale-info", - "scale-type-resolver 0.1.1", - "serde", + "sp-arithmetic", ] [[package]] @@ -12103,86 +12713,88 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54" dependencies = [ "parity-scale-codec", - "scale-type-resolver 0.2.0", + "scale-info", + "scale-type-resolver", + "serde", ] [[package]] name = "scale-decode" -version = "0.11.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc79ba56a1c742f5aeeed1f1801f3edf51f7e818f0a54582cac6f131364ea7b" +checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" dependencies = [ - "derive_more", + "derive_more 0.99.19", "parity-scale-codec", - "primitive-types", - "scale-bits 0.5.0", - "scale-decode-derive", - "scale-type-resolver 0.1.1", + "scale-bits", + "scale-type-resolver", "smallvec", ] [[package]] name = "scale-decode" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b12ebca36cec2a3f983c46295b282b35e5f8496346fb859a8776dad5389e5389" +checksum = "f8ae9cc099ae85ff28820210732b00f019546f36f33225f509fe25d5816864a0" dependencies = [ - "derive_more", + "derive_more 1.0.0", "parity-scale-codec", - "scale-bits 0.6.0", - "scale-type-resolver 0.2.0", + "primitive-types 0.13.1", + "scale-bits", + "scale-decode-derive", + "scale-type-resolver", "smallvec", ] [[package]] name = "scale-decode-derive" -version = "0.11.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5398fdb3c7bea3cb419bac4983aadacae93fe1a7b5f693f4ebd98c3821aad7a5" +checksum = "5ed9401effa946b493f9f84dc03714cca98119b230497df6f3df6b84a2b03648" dependencies = [ - "darling 0.14.4", + "darling", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "scale-encode" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628800925a33794fb5387781b883b5e14d130fece9af5a63613867b8de07c5c7" +checksum = "5f9271284d05d0749c40771c46180ce89905fd95aa72a2a2fddb4b7c0aa424db" dependencies = [ - "derive_more", + "derive_more 1.0.0", "parity-scale-codec", - "primitive-types", - "scale-bits 0.5.0", + "primitive-types 0.13.1", + "scale-bits", "scale-encode-derive", - "scale-type-resolver 0.1.1", + "scale-type-resolver", "smallvec", ] [[package]] name = "scale-encode-derive" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a304e1af7cdfbe7a24e08b012721456cc8cecdedadc14b3d10513eada63233c" +checksum = "102fbc6236de6c53906c0b262f12c7aa69c2bdc604862c12728f5f4d370bc137" dependencies = [ - "darling 0.14.4", - "proc-macro-crate 1.3.1", + "darling", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "scale-info" -version = "2.11.3" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" dependencies = [ "bitvec", "cfg-if", - "derive_more", + "derive_more 1.0.0", "parity-scale-codec", "scale-info-derive", "serde", @@ -12190,82 +12802,75 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.11.3" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "scale-type-resolver" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b800069bfd43374e0f96f653e0d46882a2cb16d6d961ac43bea80f26c76843" +checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" dependencies = [ "scale-info", "smallvec", ] -[[package]] -name = "scale-type-resolver" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" - [[package]] name = "scale-typegen" -version = "0.2.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d470fa75e71b12b3244a4113adc4bc49891f3daba2054703cacd06256066397e" +checksum = "0dc4c70c7fea2eef1740f0081d3fe385d8bee1eef11e9272d3bec7dc8e5438e0" dependencies = [ "proc-macro2", "quote", "scale-info", - "syn 2.0.65", - "thiserror", + "syn 2.0.100", + "thiserror 1.0.69", ] [[package]] name = "scale-value" -version = "0.14.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c07ccfee963104335c971aaf8b7b0e749be8569116322df23f1f75c4ca9e4a28" +checksum = "f5e0ef2a0ee1e02a69ada37feb87ea1616ce9808aca072befe2d3131bf28576e" dependencies = [ "base58", "blake2 0.10.6", - "derive_more", + "derive_more 1.0.0", "either", - "frame-metadata 15.1.0", "parity-scale-codec", - "scale-bits 0.5.0", - "scale-decode 0.11.1", + "scale-bits", + "scale-decode 0.14.0", "scale-encode", "scale-info", - "scale-type-resolver 0.1.1", + "scale-type-resolver", "serde", "yap", ] [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] name = "schnellru" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" +checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" dependencies = [ - "ahash 0.8.8", + "ahash", "cfg-if", "hashbrown 0.13.2", ] @@ -12278,14 +12883,14 @@ checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ "aead", "arrayref", - "arrayvec 0.7.4", - "curve25519-dalek 4.1.3", + "arrayvec 0.7.6", + "curve25519-dalek", "getrandom_or_panic", "merlin", "rand_core 0.6.4", "serde_bytes", "sha2 0.10.8", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] @@ -12297,33 +12902,30 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scratch" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" +checksum = "9f6280af86e5f559536da57a45ebc84948833b3bee313a7dd25232e09c878a52" [[package]] -name = "sct" -version = "0.7.1" +name = "scrypt" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" dependencies = [ - "ring 0.17.7", - "untrusted 0.9.0", + "password-hash", + "pbkdf2", + "salsa20", + "sha2 0.10.8", ] [[package]] -name = "sctp-proto" -version = "0.2.2" +name = "sct" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6220f78bb44c15f326b0596113305f6101097a18755d53727a575c97e09fb24" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "bytes", - "crc", - "fxhash", - "log", - "rand", - "slab", - "thiserror", + "ring 0.17.14", + "untrusted 0.9.0", ] [[package]] @@ -12337,7 +12939,7 @@ dependencies = [ "generic-array 0.14.7", "pkcs8", "serdect", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] @@ -12347,7 +12949,18 @@ version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ - "secp256k1-sys", + "secp256k1-sys 0.9.2", +] + +[[package]] +name = "secp256k1" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" +dependencies = [ + "bitcoin_hashes 0.14.0", + "rand 0.8.5", + "secp256k1-sys 0.10.1", ] [[package]] @@ -12359,6 +12972,15 @@ dependencies = [ "cc", ] +[[package]] +name = "secp256k1-sys" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" +dependencies = [ + "cc", +] + [[package]] name = "secrecy" version = "0.8.0" @@ -12369,25 +12991,46 @@ dependencies = [ "zeroize", ] +[[package]] +name = "secrecy" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a" +dependencies = [ + "zeroize", +] + [[package]] name = "security-framework" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", - "core-foundation", + "bitflags 2.9.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.10.0", "core-foundation-sys", "libc", - "num-bigint", "security-framework-sys", ] [[package]] name = "security-framework-sys" -version = "2.11.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -12417,14 +13060,14 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser 0.10.2", + "semver-parser 0.10.3", ] [[package]] name = "semver" -version = "1.0.18" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" dependencies = [ "serde", ] @@ -12437,19 +13080,13 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "semver-parser" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" dependencies = [ "pest", ] -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - [[package]] name = "separator" version = "0.4.1" @@ -12458,9 +13095,9 @@ checksum = "f97841a747eef040fcd2e7b3b9a220a7205926e60488e673d9e4926d27772ce5" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] @@ -12486,29 +13123,29 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.14" +version = "0.11.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "serde_json" -version = "1.0.131" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67d42a0bd4ac281beff598909bb56a86acaf979b84483e1c79c10dcaf98f8cf3" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", "memchr", @@ -12518,9 +13155,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.5" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -12543,7 +13180,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.8.0", "itoa", "ryu", "serde", @@ -12560,31 +13197,6 @@ dependencies = [ "serde", ] -[[package]] -name = "sha-1" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.0", -] - -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", - "sha1-asm", -] - [[package]] name = "sha1" version = "0.10.6" @@ -12596,15 +13208,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha1-asm" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "286acebaf8b67c1130aedffad26f594eff0c1292389158135327d2e23aed582b" -dependencies = [ - "cc", -] - [[package]] name = "sha2" version = "0.9.9" @@ -12615,7 +13218,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] @@ -12648,11 +13251,17 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -12669,9 +13278,9 @@ dependencies = [ [[package]] name = "simba" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +checksum = "b3a386a501cd104797982c15ae17aafe8b9261315b5d07e3ec803f2ea26be0fa" dependencies = [ "approx", "num-complex", @@ -12682,11 +13291,11 @@ dependencies = [ [[package]] name = "simple-dns" -version = "0.5.7" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694" +checksum = "dee851d0e5e7af3721faea1843e8015e820a234f81fda3dea9247e15bac9a86a" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", ] [[package]] @@ -12718,33 +13327,33 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "15.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e34f1146a457a5c554dedeae6c7273aa54c3b031f3e9eb0abd037b5511e2ce9" +checksum = "d8199911b47dabecb84931829526c605766aab92065e6a170a17e00a2ca06ff5" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "smallvec" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" [[package]] name = "smol" -version = "2.0.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e635339259e51ef85ac7aa29a1cd991b957047507288697a690e80ab97d07cad" +checksum = "a33bd3e260892199c3ccfc487c88b2da2265080acb316cd920da72fdfd7c599f" dependencies = [ - "async-channel 2.3.0", + "async-channel 2.3.1", "async-executor", "async-fs", "async-io", - "async-lock 3.2.0", + "async-lock", "async-net", "async-process", "blocking", @@ -12753,34 +13362,33 @@ dependencies = [ [[package]] name = "smoldot" -version = "0.16.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d1eaa97d77be4d026a1e7ffad1bb3b78448763b357ea6f8188d3e6f736a9b9" +checksum = "966e72d77a3b2171bb7461d0cb91f43670c63558c62d7cf42809cae6c8b6b818" dependencies = [ - "arrayvec 0.7.4", - "async-lock 3.2.0", + "arrayvec 0.7.6", + "async-lock", "atomic-take", - "base64 0.21.6", + "base64 0.22.1", "bip39", "blake2-rfc", - "bs58 0.5.1", + "bs58", "chacha20", "crossbeam-queue", - "derive_more", - "ed25519-zebra 4.0.3", + "derive_more 0.99.19", + "ed25519-zebra", "either", - "event-listener 4.0.0", + "event-listener 5.4.0", "fnv", "futures-lite", "futures-util", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", "hmac 0.12.1", - "itertools 0.12.1", + "itertools 0.13.0", "libm", "libsecp256k1", "merlin", - "no-std-net", "nom", "num-bigint", "num-rational", @@ -12788,8 +13396,8 @@ dependencies = [ "pbkdf2", "pin-project", "poly1305", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "ruzstd", "schnorrkel", "serde", @@ -12799,7 +13407,7 @@ dependencies = [ "siphasher", "slab", "smallvec", - "soketto 0.7.1", + "soketto", "twox-hash", "wasmi", "x25519-dalek", @@ -12808,31 +13416,31 @@ dependencies = [ [[package]] name = "smoldot-light" -version = "0.14.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5496f2d116b7019a526b1039ec2247dd172b8670633b1a64a614c9ea12c9d8c7" +checksum = "2a33b06891f687909632ce6a4e3fd7677b24df930365af3d0bcb078310129f3f" dependencies = [ - "async-channel 2.3.0", - "async-lock 3.2.0", - "base64 0.21.6", + "async-channel 2.3.1", + "async-lock", + "base64 0.22.1", "blake2-rfc", - "derive_more", + "bs58", + "derive_more 0.99.19", "either", - "event-listener 4.0.0", + "event-listener 5.4.0", "fnv", "futures-channel", "futures-lite", "futures-util", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", - "itertools 0.12.1", + "itertools 0.13.0", "log", - "lru 0.12.3", - "no-std-net", + "lru", "parking_lot 0.12.3", "pin-project", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "serde_json", "siphasher", @@ -12844,19 +13452,19 @@ dependencies = [ [[package]] name = "snow" -version = "0.9.4" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58021967fd0a5eeeb23b08df6cc244a4d4a5b4aec1d27c9e02fad1a58b4cd74e" +checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" dependencies = [ "aes-gcm", "blake2 0.10.6", "chacha20poly1305", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "rand_core 0.6.4", - "ring 0.17.7", - "rustc_version 0.4.0", + "ring 0.17.14", + "rustc_version 0.4.1", "sha2 0.10.8", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -12871,22 +13479,22 @@ dependencies = [ [[package]] name = "snowbridge-beacon-primitives" -version = "0.10.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25492622eb3e9e8f4e1c8abdfc4253b71735ea2dd8f571c5054292849b1a31cd" +checksum = "6f4b3add1688e9fadceef23580f6ae811a0063181f20aeb6206c9d42ee957928" dependencies = [ "byte-slice-cast", "frame-support", "hex", "parity-scale-codec", - "rlp", + "rlp 0.6.1", "scale-info", "serde", "snowbridge-ethereum", "snowbridge-milagro-bls", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "ssz_rs", "ssz_rs_derive", @@ -12894,9 +13502,9 @@ dependencies = [ [[package]] name = "snowbridge-core" -version = "0.10.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6be61e4db95d1e253a1d5e722953b2d2f6605e5f9761f0a919e5d3fbdbff9da9" +checksum = "e07532aa025be78022c70c54fdefa7df87495d11661d2bcb09533a2a68a99d1a" dependencies = [ "ethabi-decode", "frame-support", @@ -12907,10 +13515,10 @@ dependencies = [ "scale-info", "serde", "snowbridge-beacon-primitives", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -12918,9 +13526,9 @@ dependencies = [ [[package]] name = "snowbridge-ethereum" -version = "0.9.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc3d6d549c57df27cf89ec852f932fa4008eea877a6911a87e03e8002104eabd" +checksum = "510ced138ecff55bba6699d44a5f117a6baafe11717a54e67cd83d9aa2a76c77" dependencies = [ "ethabi-decode", "ethbloom", @@ -12928,12 +13536,12 @@ dependencies = [ "hex-literal", "parity-bytes", "parity-scale-codec", - "rlp", + "rlp 0.6.1", "scale-info", "serde", "serde-big-array", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", "sp-std", ] @@ -12946,7 +13554,7 @@ dependencies = [ "hex", "lazy_static", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "snowbridge-amcl", "zeroize", @@ -12954,21 +13562,21 @@ dependencies = [ [[package]] name = "snowbridge-outbound-queue-merkle-tree" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74c6a9b65fa61711b704f0c6afb3663c6288288e8822ddae5cc1146fe3ad9ce8" +checksum = "0355a80f66bc620f2493a0564443b8772ed6ed176b5330551440ca174239b420" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", ] [[package]] name = "snowbridge-outbound-queue-runtime-api" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d27b8d9cb8022637a5ce4f52692520fa75874f393e04ef5cd75bd8795087f6" +checksum = "c96bb258b003105c3df371ddfacdfcd5d11dd72016e42ba5cf54ceb3248078f4" dependencies = [ "frame-support", "parity-scale-codec", @@ -12980,9 +13588,9 @@ dependencies = [ [[package]] name = "snowbridge-pallet-ethereum-client" -version = "0.10.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65826ed8585a614c0818e5e8da5a57bb0da36ba3e540e193672ac66d2f131d6c" +checksum = "9c0c8393fcc75886d6d32013862b10d9ed84b0cd7d41c176003a7fde2c4f4100" dependencies = [ "frame-benchmarking", "frame-support", @@ -12997,31 +13605,31 @@ dependencies = [ "snowbridge-core", "snowbridge-ethereum", "snowbridge-pallet-ethereum-client-fixtures", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "static_assertions", ] [[package]] name = "snowbridge-pallet-ethereum-client-fixtures" -version = "0.18.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3984b98465af1d862d4e87ba783e1731f2a3f851b148d6cb98d526cebd351185" +checksum = "477077f4537b7e8e27fd0971eb6c167374c802ebde8aba5a47c4d69590937d08" dependencies = [ "hex-literal", "snowbridge-beacon-primitives", "snowbridge-core", - "sp-core 34.0.0", + "sp-core", "sp-std", ] [[package]] name = "snowbridge-pallet-inbound-queue" -version = "0.10.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a21efb385a4ec84476b1eb3d850905d77a395e5e477047752981daaadcdca7" +checksum = "cb6727d85733a5e5d905e4e7eb216bbab5cf99c8d7ba94be6337c03490ef551f" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -13038,9 +13646,9 @@ dependencies = [ "snowbridge-core", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-router-primitives", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-executor", @@ -13048,22 +13656,22 @@ dependencies = [ [[package]] name = "snowbridge-pallet-inbound-queue-fixtures" -version = "0.18.1" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f251e579b3d3d93cf833c8e503122808742dee33e7ea53b0f292a76c024d66" +checksum = "dccf0ecc5bbd79614714fcfbd0a0a7ebb7758079646ab3c053ced4a4d0e87772" dependencies = [ "hex-literal", "snowbridge-beacon-primitives", "snowbridge-core", - "sp-core 34.0.0", + "sp-core", "sp-std", ] [[package]] name = "snowbridge-pallet-outbound-queue" -version = "0.10.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d49478041b6512c710d0d4655675d146fe00a8e0c1624e5d8a1d6c161d490f" +checksum = "6a809d2dc330a85afc3ab1d03210bae61253521bbe58ef0042566ac11711b602" dependencies = [ "bridge-hub-common", "ethabi-decode", @@ -13075,18 +13683,18 @@ dependencies = [ "serde", "snowbridge-core", "snowbridge-outbound-queue-merkle-tree", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] [[package]] name = "snowbridge-pallet-system" -version = "0.10.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "674db59b3c8013382e5c07243ad9439b64d81d2e8b3c4f08d752b55aa5de697e" +checksum = "1b16a6ad39d1ecd4ead3009e40ac30497c1113b62572180edd61c6d3ff0e2036" dependencies = [ "frame-benchmarking", "frame-support", @@ -13095,9 +13703,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "snowbridge-core", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-executor", @@ -13105,9 +13713,9 @@ dependencies = [ [[package]] name = "snowbridge-router-primitives" -version = "0.16.1" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aefe74eafeac92e1d9e46b7bb76ec297f6182b4a023f7e7eb7eb8be193f93bef" +checksum = "a60256450bffe3659c1b8d6496382409082a4dc2f3d5ce8c6503186052da3281" dependencies = [ "frame-support", "hex-literal", @@ -13115,9 +13723,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "snowbridge-core", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", "staging-xcm", "staging-xcm-executor", @@ -13125,15 +13733,15 @@ dependencies = [ [[package]] name = "snowbridge-runtime-common" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6093f0e73d6cfdd2eea8712155d1d75b5063fc9b1d854d2665b097b4bb29570d" +checksum = "e3ce15a05d2bd874c4268dea3c4c60bd1aade90fdbc22509d876d242c6e55e33" dependencies = [ "frame-support", "log", "parity-scale-codec", "snowbridge-core", - "sp-arithmetic 26.0.0", + "sp-arithmetic", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -13142,9 +13750,9 @@ dependencies = [ [[package]] name = "snowbridge-runtime-test-common" -version = "0.12.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "242ad550a31ebd8e29a17beb89f1e5ddf4e657ebdf667fb9e4c0660428de4e9b" +checksum = "bcc150b67ad7231141e1f7baf6bcdff7b26e067192d1fa4bd422fe95bfbf81c0" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -13163,10 +13771,10 @@ dependencies = [ "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", - "sp-core 34.0.0", - "sp-io 38.0.0", + "sp-core", + "sp-io", "sp-keyring", - "sp-runtime 39.0.5", + "sp-runtime", "staging-parachain-info", "staging-xcm", "staging-xcm-executor", @@ -13174,9 +13782,9 @@ dependencies = [ [[package]] name = "snowbridge-system-runtime-api" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b8b83b3db781c49844312a23965073e4d93341739a35eafe526c53b578d3b7" +checksum = "b08cd0060937f9ebe2ea76c009b90628f6a28941c92e7a75ddaf69163cef2d4d" dependencies = [ "parity-scale-codec", "snowbridge-core", @@ -13197,9 +13805,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", "windows-sys 0.52.0", @@ -13207,39 +13815,24 @@ dependencies = [ [[package]] name = "soketto" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" -dependencies = [ - "base64 0.13.1", - "bytes", - "futures", - "httparse", - "log", - "rand", - "sha-1 0.9.8", -] - -[[package]] -name = "soketto" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" +checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" dependencies = [ "base64 0.22.1", "bytes", "futures", "httparse", "log", - "rand", + "rand 0.8.5", "sha1", ] [[package]] name = "sp-api" -version = "34.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbce492e0482134128b7729ea36f5ef1a9f9b4de2d48ff8dde7b5e464e28ce75" +checksum = "7538a61120585b0e1e89d9de57448732ea4d3f9d175cab882b3c86e9809612a0" dependencies = [ "docify", "hash-db", @@ -13247,79 +13840,50 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api-proc-macro", - "sp-core 34.0.0", - "sp-externalities 0.29.0", + "sp-core", + "sp-externalities", "sp-metadata-ir", - "sp-runtime 39.0.5", - "sp-runtime-interface 28.0.0", - "sp-state-machine 0.43.0", - "sp-trie 37.0.0", + "sp-runtime", + "sp-runtime-interface", + "sp-state-machine", + "sp-trie", "sp-version", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "sp-api-proc-macro" -version = "20.0.0" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9aadf9e97e694f0e343978aa632938c5de309cbcc8afed4136cb71596737278" +checksum = "37f8b9621cfa68a45d6f9c124e672b8f6780839a6c95279a7877d244fef8d1dc" dependencies = [ "Inflector", "blake2 0.10.6", "expander", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.65", -] - -[[package]] -name = "sp-application-crypto" -version = "33.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13ca6121c22c8bd3d1dce1f05c479101fd0d7b159bef2a3e8c834138d839c75c" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 31.0.0", - "sp-io 33.0.0", - "sp-std", + "syn 2.0.100", ] [[package]] name = "sp-application-crypto" -version = "38.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8133012faa5f75b2f0b1619d9f720c1424ac477152c143e5f7dbde2fe1a958" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 34.0.0", - "sp-io 38.0.0", -] - -[[package]] -name = "sp-arithmetic" -version = "25.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "910c07fa263b20bf7271fdd4adcb5d3217dfdac14270592e0780223542e7e114" +checksum = "0f6850bd745fe9c0a200a8e729a82c8036250e1ad1ef24ed7498b2289935c974" dependencies = [ - "integer-sqrt", - "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std", - "static_assertions", + "sp-core", + "sp-io", ] [[package]] name = "sp-arithmetic" -version = "26.0.0" +version = "26.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46d0d0a4c591c421d3231ddd5e27d828618c24456d51445d21a1f79fcee97c23" +checksum = "9971b30935cea3858664965039dabd80f67aca74cc6cc6dd42ff1ab14547bc53" dependencies = [ "docify", "integer-sqrt", @@ -13327,39 +13891,38 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std", "static_assertions", ] [[package]] name = "sp-authority-discovery" -version = "34.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "519c33af0e25ba2dd2eb3790dc404d634b6e4ce0801bcc8fa3574e07c365e734" +checksum = "39fd73846f3998b60183622a55ae02a506cc7f165ebef8b4c66919e12fc74ef2" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-application-crypto 38.0.0", - "sp-runtime 39.0.5", + "sp-application-crypto", + "sp-runtime", ] [[package]] name = "sp-block-builder" -version = "34.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74738809461e3d4bd707b5b94e0e0c064a623a74a6a8fe5c98514417a02858dd" +checksum = "d5d66b12f19243bac666aa84c1df18f12989b924b467377973b349ff4913c3e6" dependencies = [ "sp-api", "sp-inherents", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "sp-blockchain" -version = "37.0.1" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a309eecd6b5689f57e67181deaa628d9c8951db1ba0d26f07c69e14dffdc4765" +checksum = "10c9a1cd459bac54920bac5e467609dadfdac3e3503be0a864539aeb11071b70" dependencies = [ "futures", "parity-scale-codec", @@ -13367,93 +13930,92 @@ dependencies = [ "schnellru", "sp-api", "sp-consensus", - "sp-core 34.0.0", + "sp-core", "sp-database", - "sp-runtime 39.0.5", - "sp-state-machine 0.43.0", - "thiserror", + "sp-runtime", + "sp-state-machine", + "thiserror 1.0.69", "tracing", ] [[package]] name = "sp-consensus" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce75efd1e164be667a53c20182c45b4c2abe325abcbd21fc292b82be5b9240f7" +checksum = "068254c448b84efac1c4a5b15f650851ef24ba77bda21802da34f73410096c09" dependencies = [ "async-trait", "futures", "log", - "sp-core 34.0.0", + "sp-core", "sp-inherents", - "sp-runtime 39.0.5", - "sp-state-machine 0.43.0", - "thiserror", + "sp-runtime", + "sp-state-machine", + "thiserror 1.0.69", ] [[package]] name = "sp-consensus-aura" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a8faaa05bbcb9c41f0cc535c4c1315abf6df472b53eae018678d1b4d811ac47" +checksum = "b2174e77fed7a92c90f3d3e3603a0b4580ea311b2df8343aa62112c9597e2a97" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "sp-api", - "sp-application-crypto 38.0.0", + "sp-application-crypto", "sp-consensus-slots", "sp-inherents", - "sp-runtime 39.0.5", + "sp-runtime", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36ee95e17ee8dcd14db7d584b899a426565ca9abe5a266ab82277977fc547f86" +checksum = "e1633fab9075508861b82999305a3d3d35f35a780feaf4e81f9d59aa6d62e5f7" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "serde", "sp-api", - "sp-application-crypto 38.0.0", + "sp-application-crypto", "sp-consensus-slots", - "sp-core 34.0.0", + "sp-core", "sp-inherents", - "sp-runtime 39.0.5", + "sp-runtime", "sp-timestamp", ] [[package]] name = "sp-consensus-beefy" -version = "22.1.0" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d97e8cd75d85d15cda6f1923cf3834e848f80d5a6de1cf4edbbc5f0ad607eb" +checksum = "4e256e4df174286b738ae83bd7234850c8b3242f0e59b12e26c5561ed917da04" dependencies = [ - "lazy_static", "parity-scale-codec", "scale-info", "serde", "sp-api", - "sp-application-crypto 38.0.0", - "sp-core 34.0.0", + "sp-application-crypto", + "sp-core", "sp-crypto-hashing", - "sp-io 38.0.0", - "sp-keystore 0.40.0", + "sp-io", + "sp-keystore", "sp-mmr-primitives", - "sp-runtime 39.0.5", - "sp-weights 31.0.0", + "sp-runtime", + "sp-weights", "strum 0.26.3", ] [[package]] name = "sp-consensus-grandpa" -version = "21.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "587b791efe6c5f18e09dbbaf1ece0ee7b5fe51602c233e7151a3676b0de0260b" +checksum = "fee1b89de331df0c7b1502d626540d455a058eb86fa49f58cef0364d1a02abda" dependencies = [ "finality-grandpa", "log", @@ -13461,17 +14023,17 @@ dependencies = [ "scale-info", "serde", "sp-api", - "sp-application-crypto 38.0.0", - "sp-core 34.0.0", - "sp-keystore 0.40.0", - "sp-runtime 39.0.5", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "sp-runtime", ] [[package]] name = "sp-consensus-slots" -version = "0.40.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbafb7ed44f51c22fa277fb39b33dc601fa426133a8e2b53f3f46b10f07fba43" +checksum = "6d79170cc0a66b22d29adee140017a16c01257d61b5d713bbe47224eb7c3dd45" dependencies = [ "parity-scale-codec", "scale-info", @@ -13481,64 +14043,17 @@ dependencies = [ [[package]] name = "sp-core" -version = "31.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d7a0fd8f16dcc3761198fc83be12872f823b37b749bc72a3a6a1f702509366" -dependencies = [ - "array-bytes", - "bitflags 1.3.2", - "blake2 0.10.6", - "bounded-collections", - "bs58 0.5.1", - "dyn-clonable", - "ed25519-zebra 3.1.0", - "futures", - "hash-db", - "hash256-std-hasher", - "impl-serde", - "itertools 0.10.5", - "k256", - "libsecp256k1", - "log", - "merlin", - "parity-bip39", - "parity-scale-codec", - "parking_lot 0.12.3", - "paste", - "primitive-types", - "rand", - "scale-info", - "schnorrkel", - "secp256k1", - "secrecy", - "serde", - "sp-crypto-hashing", - "sp-debug-derive", - "sp-externalities 0.27.0", - "sp-runtime-interface 26.0.0", - "sp-std", - "sp-storage 20.0.0", - "ss58-registry", - "substrate-bip39 0.5.0", - "thiserror", - "tracing", - "w3f-bls", - "zeroize", -] - -[[package]] -name = "sp-core" -version = "34.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c961a5e33fb2962fa775c044ceba43df9c6f917e2c35d63bfe23738468fa76a7" +checksum = "4532774405a712a366a98080cbb4daa28c38ddff0ec595902ad6ee6a78a809f8" dependencies = [ "array-bytes", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", - "bs58 0.5.1", + "bs58", "dyn-clonable", - "ed25519-zebra 4.0.3", + "ed25519-zebra", "futures", "hash-db", "hash256-std-hasher", @@ -13552,22 +14067,22 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "paste", - "primitive-types", - "rand", + "primitive-types 0.13.1", + "rand 0.8.5", "scale-info", "schnorrkel", - "secp256k1", - "secrecy", + "secp256k1 0.28.2", + "secrecy 0.8.0", "serde", "sp-crypto-hashing", "sp-debug-derive", - "sp-externalities 0.29.0", - "sp-runtime-interface 28.0.0", + "sp-externalities", + "sp-runtime-interface", "sp-std", - "sp-storage 21.0.0", + "sp-storage", "ss58-registry", - "substrate-bip39 0.6.0", - "thiserror", + "substrate-bip39", + "thiserror 1.0.69", "tracing", "w3f-bls", "zeroize", @@ -13595,7 +14110,7 @@ checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" dependencies = [ "quote", "sp-crypto-hashing", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -13616,91 +14131,52 @@ checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "sp-externalities" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d6a4572eadd4a63cff92509a210bf425501a0c5e76574b30a366ac77653787" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-std", - "sp-storage 20.0.0", -] - -[[package]] -name = "sp-externalities" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a904407d61cb94228c71b55a9d3708e9d6558991f9e83bd42bd91df37a159d30" +checksum = "30cbf059dce180a8bf8b6c8b08b6290fa3d1c7f069a60f1df038ab5dd5fc0ba6" dependencies = [ "environmental", "parity-scale-codec", - "sp-storage 21.0.0", + "sp-storage", ] [[package]] name = "sp-genesis-builder" -version = "0.15.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a646ed222fd86d5680faa4a8967980eb32f644cae6c8523e1c689a6deda3e8" +checksum = "d4bd990146f77cdeff46e2a85b160718de021832a3c805c4a44c81f4ebba7999" dependencies = [ "parity-scale-codec", "scale-info", "serde_json", "sp-api", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "sp-inherents" -version = "34.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afffbddc380d99a90c459ba1554bbbc01d62e892de9f1485af6940b89c4c0d57" +checksum = "575142ee4947deb9e5b731efbbfd432b1d28fc26f130f4cfdd3660e851907298" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", - "thiserror", -] - -[[package]] -name = "sp-io" -version = "33.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e09bba780b55bd9e67979cd8f654a31e4a6cf45426ff371394a65953d2177f2" -dependencies = [ - "bytes", - "ed25519-dalek", - "libsecp256k1", - "log", - "parity-scale-codec", - "polkavm-derive 0.9.1", - "rustversion", - "secp256k1", - "sp-core 31.0.0", - "sp-crypto-hashing", - "sp-externalities 0.27.0", - "sp-keystore 0.37.0", - "sp-runtime-interface 26.0.0", - "sp-state-machine 0.38.0", - "sp-std", - "sp-tracing 16.0.0", - "sp-trie 32.0.0", - "tracing", - "tracing-core", + "sp-runtime", + "thiserror 1.0.69", ] [[package]] name = "sp-io" -version = "38.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ef7eb561bb4839cc8424ce58c5ea236cbcca83f26fcc0426d8decfe8aa97d4" +checksum = "86554fd101635b388e41ce83c28754ee30078e6a93480e1310914b4b09a67130" dependencies = [ "bytes", "docify", @@ -13710,52 +14186,40 @@ dependencies = [ "parity-scale-codec", "polkavm-derive 0.9.1", "rustversion", - "secp256k1", - "sp-core 34.0.0", + "secp256k1 0.28.2", + "sp-core", "sp-crypto-hashing", - "sp-externalities 0.29.0", - "sp-keystore 0.40.0", - "sp-runtime-interface 28.0.0", - "sp-state-machine 0.43.0", - "sp-tracing 17.0.1", - "sp-trie 37.0.0", + "sp-externalities", + "sp-keystore", + "sp-runtime-interface", + "sp-state-machine", + "sp-tracing", + "sp-trie", "tracing", "tracing-core", ] [[package]] name = "sp-keyring" -version = "39.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c0e20624277f578b27f44ecfbe2ebc2e908488511ee2c900c5281599f700ab3" +checksum = "3ca46ebad50bd836bb2ea8951c9436149b5610299ff538087dd7989174d8f831" dependencies = [ - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", "strum 0.26.3", ] [[package]] name = "sp-keystore" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdbab8b61bd61d5f8625a0c75753b5d5a23be55d3445419acd42caf59cf6236b" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 31.0.0", - "sp-externalities 0.27.0", -] - -[[package]] -name = "sp-keystore" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0248b4d784cb4a01472276928977121fa39d977a5bb24793b6b15e64b046df42" +checksum = "c1d41475fcdf253f9f0da839564c1b7f8a95c6a293ddfffd6e48e3671e76f33b" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 34.0.0", - "sp-externalities 0.29.0", + "sp-core", + "sp-externalities", ] [[package]] @@ -13764,38 +14228,38 @@ version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0c768c11afbe698a090386876911da4236af199cd38a5866748df4d8628aeff" dependencies = [ - "thiserror", + "thiserror 1.0.69", "zstd 0.12.4", ] [[package]] name = "sp-metadata-ir" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a616fa51350b35326682a472ee8e6ba742fdacb18babac38ecd46b3e05ead869" +checksum = "427be4e8e6a33cb8ffc8c91f8834b9c6f563daf246e8f0da16e9e0db3db55f5a" dependencies = [ - "frame-metadata 16.0.0", + "frame-metadata 18.0.0", "parity-scale-codec", "scale-info", ] [[package]] name = "sp-mixnet" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0b017dd54823b6e62f9f7171a1df350972e5c6d0bf17e0c2f78680b5c31942" +checksum = "506bf9fd887c786d0e954543827b126ee78426e9c58e53cc868c65edd1201ff5" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-application-crypto 38.0.0", + "sp-application-crypto", ] [[package]] name = "sp-mmr-primitives" -version = "34.1.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a12dd76e368f1e48144a84b4735218b712f84b3f976970e2f25a29b30440e10" +checksum = "e1463108fd4527b54802e8cc1310401752aeae2e3b1bf5100a2672bd4e2eae7c" dependencies = [ "log", "parity-scale-codec", @@ -13803,42 +14267,42 @@ dependencies = [ "scale-info", "serde", "sp-api", - "sp-core 34.0.0", + "sp-core", "sp-debug-derive", - "sp-runtime 39.0.5", - "thiserror", + "sp-runtime", + "thiserror 1.0.69", ] [[package]] name = "sp-npos-elections" -version = "34.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af922f112c7c1ed199eabe14f12a82ceb75e1adf0804870eccfbcf3399492847" +checksum = "6df43d267689ec0e10e61eff57543af326f769481215cd43022e791c32ce30a3" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-arithmetic", + "sp-core", + "sp-runtime", ] [[package]] name = "sp-offchain" -version = "34.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d9de237d72ecffd07f90826eef18360208b16d8de939d54e61591fac0fcbf99" +checksum = "c18f168775c2e88cab262fd2c8c002a19eeac2ed804b03bd5b7c7c7b190b7061" dependencies = [ "sp-api", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-runtime", ] [[package]] name = "sp-panic-handler" -version = "13.0.1" +version = "13.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81478b3740b357fa0ea10fcdc1ee02ebae7734e50f80342c4743476d9f78eeea" +checksum = "c8b52e69a577cbfdea62bfaf16f59eb884422ce98f78b5cd8d9bf668776bced1" dependencies = [ "backtrace", "regex", @@ -13846,46 +14310,22 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "32.0.0" +version = "33.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45458f0955870a92b3969098d4f1f4e9b55b4282d9f1dc112a51bb5bb6584900" +checksum = "eeb69b45312efd9aeb87a6763aba24b1cb4d177b7a205a18905d1edd792c974f" dependencies = [ "rustc-hash 1.1.0", "serde", - "sp-core 34.0.0", -] - -[[package]] -name = "sp-runtime" -version = "34.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3cb126971e7db2f0fcf8053dce740684c438c7180cfca1959598230f342c58" -dependencies = [ - "docify", - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "paste", - "rand", - "scale-info", - "serde", - "simple-mermaid", - "sp-application-crypto 33.0.0", - "sp-arithmetic 25.0.0", - "sp-core 31.0.0", - "sp-io 33.0.0", - "sp-std", - "sp-weights 30.0.0", + "sp-core", ] [[package]] name = "sp-runtime" -version = "39.0.5" +version = "40.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e00503b83cf48fffe48746b91b9b832d6785d4e2eeb0941558371eac6baac6" +checksum = "8d1356c519f12de28847f57638490b298b0bb35d7df032c6b2948c8a9a168abe" dependencies = [ + "binary-merkle-tree", "docify", "either", "hash256-std-hasher", @@ -13894,56 +14334,38 @@ dependencies = [ "num-traits", "parity-scale-codec", "paste", - "rand", + "rand 0.8.5", "scale-info", "serde", "simple-mermaid", - "sp-application-crypto 38.0.0", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-io", "sp-std", - "sp-weights 31.0.0", + "sp-trie", + "sp-weights", "tracing", + "tuplex", ] [[package]] name = "sp-runtime-interface" -version = "26.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a675ea4858333d4d755899ed5ed780174aa34fec15953428d516af5452295" -dependencies = [ - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec", - "polkavm-derive 0.8.0", - "primitive-types", - "sp-externalities 0.27.0", - "sp-runtime-interface-proc-macro", - "sp-std", - "sp-storage 20.0.0", - "sp-tracing 16.0.0", - "sp-wasm-interface 20.0.0", - "static_assertions", -] - -[[package]] -name = "sp-runtime-interface" -version = "28.0.0" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "985eb981f40c689c6a0012c937b68ed58dabb4341d06f2dfe4dfd5ed72fa4017" +checksum = "e99db36a7aff44c335f5d5b36c182a3e0cac61de2fefbe2eeac6af5fb13f63bf" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "polkavm-derive 0.9.1", - "primitive-types", - "sp-externalities 0.29.0", + "polkavm-derive 0.18.0", + "primitive-types 0.13.1", + "sp-externalities", "sp-runtime-interface-proc-macro", "sp-std", - "sp-storage 21.0.0", - "sp-tracing 17.0.1", - "sp-wasm-interface 21.0.1", + "sp-storage", + "sp-tracing", + "sp-wasm-interface", "static_assertions", ] @@ -13955,120 +14377,84 @@ checksum = "0195f32c628fee3ce1dfbbf2e7e52a30ea85f3589da9fe62a8b816d70fc06294" dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "sp-session" -version = "36.0.0" +version = "37.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00a3a307fedc423fb8cd2a7726a3bbb99014f1b4b52f26153993e2aae3338fe6" +checksum = "8c9d8923ce9b19389c4a8d00059a3cf9f5c4014095edf0dec0fe32f6a60e02b5" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-core 34.0.0", - "sp-keystore 0.40.0", - "sp-runtime 39.0.5", - "sp-staking 36.0.0", -] - -[[package]] -name = "sp-staking" -version = "34.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143a764cacbab58347d8b2fd4c8909031fb0888d7b02a0ec9fa44f81f780d732" -dependencies = [ - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 34.0.0", - "sp-runtime 39.0.5", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-staking", ] [[package]] name = "sp-staking" -version = "36.0.0" +version = "37.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a73eedb4b85f4cd420d31764827546aa22f82ce1646d0fd258993d051de7a90" +checksum = "e16f953bf2c6702430f3374366b172ab024ee5e9fef5cccf29fa73a29161c2b0" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core 34.0.0", - "sp-runtime 39.0.5", -] - -[[package]] -name = "sp-state-machine" -version = "0.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1eae0eac8034ba14437e772366336f579398a46d101de13dbb781ab1e35e67c5" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand", - "smallvec", - "sp-core 31.0.0", - "sp-externalities 0.27.0", - "sp-panic-handler", - "sp-std", - "sp-trie 32.0.0", - "thiserror", - "tracing", - "trie-db 0.28.0", + "sp-core", + "sp-runtime", ] [[package]] name = "sp-state-machine" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "930104d6ae882626e8880d9b1578da9300655d337a3ffb45e130c608b6c89660" +checksum = "bce4ee5ee6c614994077e6e317270eab6fde2bc346b028290286cbf9d0011b7e" dependencies = [ "hash-db", "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "smallvec", - "sp-core 34.0.0", - "sp-externalities 0.29.0", + "sp-core", + "sp-externalities", "sp-panic-handler", - "sp-trie 37.0.0", - "thiserror", + "sp-trie", + "thiserror 1.0.69", "tracing", - "trie-db 0.29.1", + "trie-db", ] [[package]] name = "sp-statement-store" -version = "18.0.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c219bc34ef4d1f9835f3ed881f965643c32034fcc030eb33b759dadbc802c1c2" +checksum = "8c8959bbd46dca069b4b9cf9880e1534406b2bb9c09ac45b8367652db50f3eda" dependencies = [ "aes-gcm", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "ed25519-dalek", "hkdf", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sha2 0.10.8", "sp-api", - "sp-application-crypto 38.0.0", - "sp-core 34.0.0", + "sp-application-crypto", + "sp-core", "sp-crypto-hashing", - "sp-externalities 0.29.0", - "sp-runtime 39.0.5", - "sp-runtime-interface 28.0.0", - "thiserror", + "sp-externalities", + "sp-runtime", + "sp-runtime-interface", + "thiserror 1.0.69", "x25519-dalek", ] @@ -14080,23 +14466,9 @@ checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" [[package]] name = "sp-storage" -version = "20.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dba5791cb3978e95daf99dad919ecb3ec35565604e88cd38d805d9d4981e8bd" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive", - "sp-std", -] - -[[package]] -name = "sp-storage" -version = "21.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99c82989b3a4979a7e1ad848aad9f5d0b4388f1f454cc131766526601ab9e8f8" +checksum = "ee3b70ca340e41cde9d2e069d354508a6e37a6573d66f7cc38f11549002f64ec" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14107,106 +14479,67 @@ dependencies = [ [[package]] name = "sp-timestamp" -version = "34.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a1cb4df653d62ccc0dbce1db45d1c9443ec60247ee9576962d24da4c9c6f07" +checksum = "595d392536ab1d212749f1d937692df157a0debf9a8b96a5ff78d38485dd6ac5" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents", - "sp-runtime 39.0.5", - "thiserror", -] - -[[package]] -name = "sp-tracing" -version = "16.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0351810b9d074df71c4514c5228ed05c250607cba131c1c9d1526760ab69c05c" -dependencies = [ - "parity-scale-codec", - "sp-std", - "tracing", - "tracing-core", - "tracing-subscriber 0.2.25", + "sp-runtime", + "thiserror 1.0.69", ] [[package]] name = "sp-tracing" -version = "17.0.1" +version = "17.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf641a1d17268c8fcfdb8e0fa51a79c2d4222f4cfda5f3944dbdbc384dced8d5" +checksum = "6147a5b8c98b9ed4bf99dc033fab97a468b4645515460974c8784daeb7c35433" dependencies = [ "parity-scale-codec", "tracing", "tracing-core", - "tracing-subscriber 0.3.18", + "tracing-subscriber", ] [[package]] name = "sp-transaction-pool" -version = "34.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4bf251059485a7dd38fe4afeda8792983511cc47f342ff4695e2dcae6b5247" +checksum = "88a18b6735f4a24245afd32850bac08ba113bb1a228146d5093b4db9baeb2f6a" dependencies = [ "sp-api", - "sp-runtime 39.0.5", -] - -[[package]] -name = "sp-trie" -version = "32.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1aa91ad26c62b93d73e65f9ce7ebd04459c4bad086599348846a81988d6faa4" -dependencies = [ - "ahash 0.8.8", - "hash-db", - "lazy_static", - "memory-db", - "nohash-hasher", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand", - "scale-info", - "schnellru", - "sp-core 31.0.0", - "sp-externalities 0.27.0", - "sp-std", - "thiserror", - "tracing", - "trie-db 0.28.0", - "trie-root", + "sp-runtime", ] [[package]] name = "sp-trie" -version = "37.0.0" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6282aef9f4b6ecd95a67a45bcdb67a71f4a4155c09a53c10add4ffe823db18cd" +checksum = "1851c4929ae88932c6bcdb9e60f4063e478ca612012af3b6d365c7dc9c591f7f" dependencies = [ - "ahash 0.8.8", + "ahash", "hash-db", - "lazy_static", "memory-db", "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "scale-info", "schnellru", - "sp-core 34.0.0", - "sp-externalities 0.29.0", - "thiserror", + "sp-core", + "sp-externalities", + "thiserror 1.0.69", "tracing", - "trie-db 0.29.1", + "trie-db", "trie-root", ] [[package]] name = "sp-version" -version = "37.0.0" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d521a405707b5be561367cd3d442ff67588993de24062ce3adefcf8437ee9fe1" +checksum = "9b7561e88742bc47b2f5fbdcab77a1cd98cf04117a3e163c1aadd58b9a592a18" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14214,36 +14547,23 @@ dependencies = [ "scale-info", "serde", "sp-crypto-hashing-proc-macro", - "sp-runtime 39.0.5", + "sp-runtime", "sp-std", "sp-version-proc-macro", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "sp-version-proc-macro" -version = "14.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aee8f6730641a65fcf0c8f9b1e448af4b3bb083d08058b47528188bccc7b7a7" +checksum = "54cabc8279e835cd9c608d70cb00e693bddec94fe8478e9f3104dad1da5f93ca" dependencies = [ "parity-scale-codec", + "proc-macro-warning 1.84.1", "proc-macro2", "quote", - "syn 2.0.65", -] - -[[package]] -name = "sp-wasm-interface" -version = "20.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef97172c42eb4c6c26506f325f48463e9bc29b2034a587f1b9e48c751229bee" -dependencies = [ - "anyhow", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "sp-std", - "wasmtime", + "syn 2.0.100", ] [[package]] @@ -14261,32 +14581,16 @@ dependencies = [ [[package]] name = "sp-weights" -version = "30.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9af6c661fe3066b29f9e1d258000f402ff5cc2529a9191972d214e5871d0ba87" -dependencies = [ - "bounded-collections", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 25.0.0", - "sp-debug-derive", - "sp-std", -] - -[[package]] -name = "sp-weights" -version = "31.0.0" +version = "31.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93cdaf72a1dad537bbb130ba4d47307ebe5170405280ed1aa31fa712718a400e" +checksum = "515aa194eabac059041df2dbee75b059b99981213ec680e9de85b45b6988346a" dependencies = [ "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic 26.0.0", + "sp-arithmetic", "sp-debug-derive", ] @@ -14325,9 +14629,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.47.0" +version = "1.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" +checksum = "19409f13998e55816d1c728395af0b52ec066206341d939e22e7766df9b494b8" dependencies = [ "Inflector", "num-format", @@ -14433,7 +14737,7 @@ dependencies = [ "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", "relay-common", @@ -14441,28 +14745,27 @@ dependencies = [ "separator", "serde_json", "sp-api", - "sp-application-crypto 38.0.0", - "sp-arithmetic 26.0.0", + "sp-application-crypto", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 34.0.0", + "sp-core", "sp-debug-derive", "sp-genesis-builder", "sp-inherents", - "sp-io 38.0.0", + "sp-io", "sp-keyring", "sp-npos-elections", "sp-offchain", - "sp-runtime 39.0.5", + "sp-runtime", "sp-session", - "sp-staking 36.0.0", - "sp-std", - "sp-storage 21.0.0", - "sp-tracing 17.0.1", + "sp-staking", + "sp-storage", + "sp-tracing", "sp-transaction-pool", - "sp-trie 37.0.0", + "sp-trie", "sp-version", "ss58-registry", "staging-xcm", @@ -14475,43 +14778,45 @@ dependencies = [ [[package]] name = "staging-parachain-info" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d28266dfddbfff721d70ad2f873380845b569adfab32f257cf97d9cedd894b68" +checksum = "ae19a552b2010c485e0159060e339e80bcc03e26d9d4e5df70b4a33526f21959" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] name = "staging-xcm" -version = "14.2.1" +version = "15.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "250c5290c308d1f462403dc4e7926976727917e98a196de1ea4a49c86341f21c" +checksum = "b570c175519cb507fd7c16d69c43f77e87853cc7cc0d88bf4aabca028775363b" dependencies = [ "array-bytes", "bounded-collections", "derivative", "environmental", + "frame-support", + "hex-literal", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", "serde", - "sp-runtime 39.0.5", - "sp-weights 31.0.0", + "sp-runtime", + "sp-weights", "xcm-procedural", ] [[package]] name = "staging-xcm-builder" -version = "17.0.4" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1693870a07e3fd8115c02b44e1223ce149b6cfa0b60f59a1c0fbc26637766a5" +checksum = "a294dac930786c5d2b4c2113dc8891dd5095bf0e04537e0262206e09726b0ff1" dependencies = [ "frame-support", "frame-system", @@ -14522,19 +14827,19 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives", "scale-info", - "sp-arithmetic 26.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-weights 31.0.0", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-weights", "staging-xcm", "staging-xcm-executor", ] [[package]] name = "staging-xcm-executor" -version = "17.0.1" +version = "18.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c89045f495097293ce29df1f3f459e9ccc991ff2ee88a4a91e8110a6886d2c8" +checksum = "c901632fd40c746e0607335d7d720949eb46f2d08800404f19ab5be2cdcff410" dependencies = [ "environmental", "frame-benchmarking", @@ -14542,11 +14847,11 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", - "sp-io 38.0.0", - "sp-runtime 39.0.5", - "sp-weights 31.0.0", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-weights", "staging-xcm", "tracing", ] @@ -14558,36 +14863,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] -name = "str0m" -version = "0.5.1" +name = "string-interner" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6706347e49b13373f7ddfafad47df7583ed52083d6fc8a594eb2c80497ef959d" +checksum = "1c6a0d765f5807e98a091107bae0a56ea3799f66a5de47b2c84c94a39c09974e" dependencies = [ - "combine", - "crc", - "fastrand", - "hmac 0.12.1", - "once_cell", - "openssl", - "openssl-sys", - "sctp-proto", - "serde", - "sha-1 0.10.1", - "thiserror", - "tracing", + "cfg-if", + "hashbrown 0.14.5", ] [[package]] name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" @@ -14630,20 +14919,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.65", -] - -[[package]] -name = "substrate-bip39" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b564c293e6194e8b222e52436bcb99f60de72043c7f845cf6c4406db4df121" -dependencies = [ - "hmac 0.12.1", - "pbkdf2", - "schnorrkel", - "sha2 0.10.8", - "zeroize", + "syn 2.0.100", ] [[package]] @@ -14684,29 +14960,31 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.17.0" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8fe06b03b8a291c09507c42f92a2c2c10dd3d62975d02c7f64a92d87bfe09b" +checksum = "fe1fee79cb0bf260bb84b4fa885fae887646894a971abddae3d9ac4921531540" dependencies = [ - "hyper 0.14.27", + "http-body-util", + "hyper 1.6.0", + "hyper-util", "log", "prometheus", - "thiserror", + "thiserror 1.0.69", "tokio", ] [[package]] name = "substrate-rpc-client" -version = "0.44.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5939d2b2a0b556714512dffb08ae3df3fc245039d9b08ee5b0df4e403007ee3a" +checksum = "d8e8fa9327866f34d30bb4142c1b96315efbd52ebb4eaaf55900fe1f4c1a22e9" dependencies = [ "async-trait", - "jsonrpsee 0.24.7", + "jsonrpsee", "log", "sc-rpc-api", "serde", - "sp-runtime 39.0.5", + "sp-runtime", ] [[package]] @@ -14721,30 +14999,31 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "24.0.1" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf035ffe7335fb24053edfe4d0a5780250eda772082a1b80ae25835dd4c09265" +checksum = "cfebe406eca8d18abd10bb29d7c6af2d656fa60b5d4a8033afd80b97795b9efb" dependencies = [ "array-bytes", "build-helper", "cargo_metadata", "console", "filetime", - "frame-metadata 16.0.0", + "frame-metadata 18.0.0", "jobserver", "merkleized-metadata", "parity-scale-codec", "parity-wasm", "polkavm-linker", "sc-executor", - "sp-core 34.0.0", - "sp-io 38.0.0", + "shlex", + "sp-core", + "sp-io", "sp-maybe-compressed-blob", - "sp-tracing 17.0.1", + "sp-tracing", "sp-version", "strum 0.26.3", "tempfile", - "toml 0.8.12", + "toml 0.8.20", "walkdir", "wasm-opt", ] @@ -14757,81 +15036,105 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "subxt" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd68bef23f4de5e513ab4c29af69053e232b098f9c87ab552d7ea153b4a1fbc5" +checksum = "1c17d7ec2359d33133b63c97e28c8b7cd3f0a5bc6ce567ae3aef9d9e85be3433" dependencies = [ "async-trait", - "base58", - "blake2 0.10.6", - "derivative", + "derive-where", "either", - "frame-metadata 16.0.0", + "frame-metadata 17.0.0", "futures", "hex", "impl-serde", - "instant", - "jsonrpsee 0.22.5", + "jsonrpsee", "parity-scale-codec", - "primitive-types", - "scale-bits 0.5.0", - "scale-decode 0.11.1", + "polkadot-sdk", + "primitive-types 0.13.1", + "scale-bits", + "scale-decode 0.14.0", "scale-encode", "scale-info", "scale-value", "serde", "serde_json", - "sp-core 31.0.0", - "sp-crypto-hashing", - "sp-runtime 34.0.0", + "subxt-core", "subxt-lightclient", "subxt-macro", "subxt-metadata", - "thiserror", + "thiserror 1.0.69", + "tokio", "tokio-util", "tracing", "url", + "wasm-bindgen-futures", + "web-time", ] [[package]] name = "subxt-codegen" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d9e2b256b71d31a2629e44eb9cbfd944eb7d577c9e0c8e9802cc3c3943af2d9" +checksum = "6550ef451c77db6e3bc7c56fb6fe1dca9398a2c8fc774b127f6a396a769b9c5b" dependencies = [ - "frame-metadata 16.0.0", - "heck 0.4.1", - "hex", - "jsonrpsee 0.22.5", + "heck 0.5.0", "parity-scale-codec", "proc-macro2", "quote", "scale-info", "scale-typegen", "subxt-metadata", - "syn 2.0.65", - "thiserror", - "tokio", + "syn 2.0.100", + "thiserror 1.0.69", +] + +[[package]] +name = "subxt-core" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7a1bc6c9c1724971636a66e3225a7253cdb35bb6efb81524a6c71c04f08c59" +dependencies = [ + "base58", + "blake2 0.10.6", + "derive-where", + "frame-decode", + "frame-metadata 17.0.0", + "hashbrown 0.14.5", + "hex", + "impl-serde", + "keccak-hash", + "parity-scale-codec", + "polkadot-sdk", + "primitive-types 0.13.1", + "scale-bits", + "scale-decode 0.14.0", + "scale-encode", + "scale-info", + "scale-value", + "serde", + "serde_json", + "subxt-metadata", + "tracing", ] [[package]] name = "subxt-lightclient" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d51f1ac12e3be7aafea4d037730a57da4f22f2e9c73955666081ffa2697c6f1" +checksum = "89ebc9131da4d0ba1f7814495b8cc79698798ccd52cacd7bcefe451e415bd945" dependencies = [ "futures", "futures-util", "serde", "serde_json", "smoldot-light", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "tracing", @@ -14839,56 +15142,72 @@ dependencies = [ [[package]] name = "subxt-macro" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98dc84d7e6a0abd7ed407cce0bf60d7d58004f699460cffb979640717d1ab506" +checksum = "7819c5e09aae0319981ee853869f2fcd1fac4db8babd0d004c17161297aadc05" dependencies = [ - "darling 0.20.8", + "darling", "parity-scale-codec", - "proc-macro-error", + "proc-macro-error2", "quote", "scale-typegen", "subxt-codegen", - "syn 2.0.65", + "subxt-utils-fetchmetadata", + "syn 2.0.100", ] [[package]] name = "subxt-metadata" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc10c54028d079a9f1be65188707cd29e5ffd8d0031a2b1346a0941d57b7ab7e" +checksum = "aacd4e7484fef58deaa2dcb32d94753a864b208a668c0dd0c28be1d8abeeadb2" dependencies = [ - "derive_more", - "frame-metadata 16.0.0", - "hashbrown 0.14.3", + "frame-decode", + "frame-metadata 17.0.0", + "hashbrown 0.14.5", "parity-scale-codec", + "polkadot-sdk", "scale-info", - "sp-crypto-hashing", ] [[package]] name = "subxt-signer" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ccb59a38fe357fab55247756174435e8626b93929864e8a498635a15e779df8" +checksum = "d680352d04665b1e4eb6f9d2a54b800c4d8e1b20478e69be1b7d975b08d9fc34" dependencies = [ + "base64 0.22.1", "bip39", "cfg-if", - "derive_more", + "crypto_secretbox", "hex", "hmac 0.12.1", "parity-scale-codec", "pbkdf2", + "polkadot-sdk", "regex", "schnorrkel", - "secp256k1", - "secrecy", + "scrypt", + "secp256k1 0.30.0", + "secrecy 0.10.3", + "serde", + "serde_json", "sha2 0.10.8", - "sp-crypto-hashing", - "subxt", + "subxt-core", "zeroize", ] +[[package]] +name = "subxt-utils-fetchmetadata" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3c53bc3eeaacc143a2f29ace4082edd2edaccab37b69ad20befba9fb00fdb3d" +dependencies = [ + "hex", + "parity-scale-codec", + "thiserror 1.0.69", +] + [[package]] name = "syn" version = "1.0.109" @@ -14902,9 +15221,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.65" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -14920,14 +15239,17 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "sync_wrapper" -version = "0.1.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -14949,25 +15271,25 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "system-configuration" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 1.3.2", - "core-foundation", + "bitflags 2.9.0", + "core-foundation 0.9.4", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" dependencies = [ "core-foundation-sys", "libc", @@ -14981,12 +15303,11 @@ dependencies = [ "kusama-runtime-constants", "parachains-common", "polkadot-core-primitives", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-constants", "smallvec", - "sp-core 34.0.0", - "sp-runtime 39.0.5", - "sp-std", + "sp-core", + "sp-runtime", "staging-xcm", ] @@ -14998,9 +15319,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.40" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" dependencies = [ "filetime", "libc", @@ -15009,73 +15330,93 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.12" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.8.1" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" dependencies = [ - "cfg-if", "fastrand", - "redox_syscall 0.4.1", - "rustix 0.38.31", - "windows-sys 0.48.0", + "getrandom 0.3.2", + "once_cell", + "rustix 1.0.5", + "windows-sys 0.59.0", ] [[package]] name = "termcolor" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] [[package]] name = "termtree" -version = "0.4.1" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" + +[[package]] +name = "thiserror" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] [[package]] name = "thiserror" -version = "1.0.62" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.12", ] [[package]] name = "thiserror-impl" -version = "1.0.62" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] -name = "thread_local" -version = "1.1.7" +name = "thiserror-impl" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ - "cfg-if", - "once_cell", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", ] [[package]] name = "time" -version = "0.3.36" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", @@ -15088,15 +15429,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ "num-conv", "time-core", @@ -15111,11 +15452,21 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -15128,21 +15479,20 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "parking_lot 0.12.3", - "pin-project-lite 0.2.13", + "pin-project-lite", "signal-hook-registry", - "socket2 0.5.7", + "socket2 0.5.9", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -15151,19 +15501,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ - "pin-project-lite 0.2.13", + "pin-project-lite", "tokio", ] [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] @@ -15183,7 +15533,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" dependencies = [ "pin-project", - "rand", + "rand 0.8.5", "tokio", ] @@ -15193,69 +15543,70 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.10", + "rustls 0.21.12", "tokio", ] [[package]] name = "tokio-rustls" -version = "0.25.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.22.4", - "rustls-pki-types", + "rustls 0.23.25", "tokio", ] [[package]] -name = "tokio-rustls" -version = "0.26.0" +name = "tokio-stream" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ - "rustls 0.23.11", - "rustls-pki-types", + "futures-core", + "pin-project-lite", "tokio", ] [[package]] -name = "tokio-stream" -version = "0.1.14" +name = "tokio-tungstenite" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" dependencies = [ - "futures-core", - "pin-project-lite 0.2.13", + "futures-util", + "log", "tokio", + "tungstenite 0.20.1", ] [[package]] name = "tokio-tungstenite" -version = "0.20.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", - "rustls 0.21.10", - "rustls-native-certs 0.6.3", + "rustls 0.23.25", + "rustls-native-certs 0.8.1", + "rustls-pki-types", "tokio", - "tokio-rustls 0.24.1", - "tungstenite", + "tokio-rustls 0.26.2", + "tungstenite 0.26.2", ] [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.13", + "pin-project-lite", "slab", "tokio", ] @@ -15271,72 +15622,36 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.19.15", -] - -[[package]] -name = "toml" -version = "0.8.12" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.12", + "toml_edit", ] [[package]] name = "toml_datetime" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ - "indexmap 2.2.6", "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.5.33", -] - -[[package]] -name = "toml_edit" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" -dependencies = [ - "indexmap 2.2.6", - "toml_datetime", - "winnow 0.5.33", ] [[package]] name = "toml_edit" -version = "0.22.12" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.8.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.0", + "winnow", ] [[package]] @@ -15348,7 +15663,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project", - "pin-project-lite 0.2.13", + "pin-project-lite", "tokio", "tokio-util", "tower-layer", @@ -15356,22 +15671,37 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-http" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "base64 0.21.6", - "bitflags 2.6.0", + "base64 0.21.7", + "bitflags 2.9.0", "bytes", "futures-core", "futures-util", - "http 0.2.11", - "http-body 0.4.5", + "http 0.2.12", + "http-body 0.4.6", "http-range-header", "mime", - "pin-project-lite 0.2.13", + "pin-project-lite", "tower-layer", "tower-service", "tracing", @@ -15379,60 +15709,49 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", - "pin-project-lite 0.2.13", + "pin-project-lite", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", ] -[[package]] -name = "tracing-log" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -15444,45 +15763,13 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde", - "tracing-core", -] - [[package]] name = "tracing-subscriber" -version = "0.2.25" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ - "ansi_term", - "chrono", - "lazy_static", - "matchers 0.0.1", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log 0.1.4", - "tracing-serde", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" -dependencies = [ - "matchers 0.1.0", + "matchers", "nu-ansi-term", "once_cell", "regex", @@ -15492,20 +15779,7 @@ dependencies = [ "time", "tracing", "tracing-core", - "tracing-log 0.2.0", -] - -[[package]] -name = "trie-db" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" -dependencies = [ - "hash-db", - "hashbrown 0.13.2", - "log", - "rustc-hex", - "smallvec", + "tracing-log", ] [[package]] @@ -15545,10 +15819,10 @@ dependencies = [ "idna 0.2.3", "ipnet", "lazy_static", - "rand", + "rand 0.8.5", "smallvec", "socket2 0.4.10", - "thiserror", + "thiserror 1.0.69", "tinyvec", "tokio", "tracing", @@ -15564,16 +15838,16 @@ dependencies = [ "async-trait", "cfg-if", "data-encoding", - "enum-as-inner 0.6.0", + "enum-as-inner 0.6.1", "futures-channel", "futures-io", "futures-util", "idna 0.4.0", "ipnet", "once_cell", - "rand", + "rand 0.8.5", "smallvec", - "thiserror", + "thiserror 1.0.69", "tinyvec", "tokio", "tracing", @@ -15592,10 +15866,10 @@ dependencies = [ "lru-cache", "once_cell", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "resolv-conf", "smallvec", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "trust-dns-proto 0.23.2", @@ -15603,9 +15877,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tt-call" @@ -15622,13 +15896,32 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 0.2.11", + "http 0.2.12", "httparse", "log", - "rand", - "rustls 0.21.10", + "rand 0.8.5", "sha1", - "thiserror", + "thiserror 1.0.69", + "url", + "utf-8", +] + +[[package]] +name = "tungstenite" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" +dependencies = [ + "bytes", + "data-encoding", + "http 1.3.1", + "httparse", + "log", + "rand 0.9.0", + "rustls 0.23.25", + "rustls-pki-types", + "sha1", + "thiserror 2.0.12", "url", "utf-8", ] @@ -15647,21 +15940,21 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand", + "rand 0.8.5", "static_assertions", ] [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -15675,6 +15968,18 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "uint" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "909988d098b2f738727b161a106cfc7cab00c539c2687a8836f8e565976fb53e" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + [[package]] name = "unarray" version = "0.1.4" @@ -15683,15 +15988,15 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-bidi" -version = "0.3.14" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-normalization" @@ -15704,15 +16009,15 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -15721,7 +16026,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -15736,7 +16041,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.6.2", "bytes", "futures-io", "futures-util", @@ -15766,12 +16071,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna 1.0.3", "percent-encoding", "serde", ] @@ -15782,26 +16087,38 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.8.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ - "getrandom", + "getrandom 0.3.2", ] [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -15811,9 +16128,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "void" @@ -15823,9 +16140,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "w3f-bls" -version = "0.1.3" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7335e4c132c28cc43caef6adb339789e599e39adbe78da0c4d547fad48cbc331" +checksum = "70a3028804c8bbae2a97a15b71ffc0e308c4b01a520994aafa77d56e94e19024" dependencies = [ "ark-bls12-377", "ark-bls12-381", @@ -15836,20 +16153,20 @@ dependencies = [ "arrayref", "constcat", "digest 0.10.7", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "rand_core 0.6.4", "sha2 0.10.8", "sha3", - "thiserror", + "thiserror 1.0.69", "zeroize", ] [[package]] name = "wait-timeout" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" dependencies = [ "libc", ] @@ -15879,48 +16196,59 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -15928,22 +16256,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-instrument" @@ -15956,16 +16287,16 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.116.0" +version = "0.116.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc942673e7684671f0c5708fc18993569d184265fd5223bb51fc8e5b9b6cfd52" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" dependencies = [ "anyhow", "libc", "strum 0.24.1", "strum_macros 0.24.3", "tempfile", - "thiserror", + "thiserror 1.0.69", "wasm-opt-cxx-sys", "wasm-opt-sys", ] @@ -16011,28 +16342,37 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.31.2" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7" +checksum = "50386c99b9c32bd2ed71a55b6dd4040af2580530fae8bdb9a6576571a80d0cca" dependencies = [ + "arrayvec 0.7.6", + "multi-stash", + "num-derive", + "num-traits", "smallvec", "spin 0.9.8", - "wasmi_arena", + "wasmi_collections", "wasmi_core", "wasmparser-nostd", ] [[package]] -name = "wasmi_arena" -version = "0.4.1" +name = "wasmi_collections" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" +checksum = "9c128c039340ffd50d4195c3f8ce31aac357f06804cfc494c8b9508d4b30dca4" +dependencies = [ + "ahash", + "hashbrown 0.14.5", + "string-interner", +] [[package]] name = "wasmi_core" -version = "0.13.0" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a" +checksum = "a23b3a7f6c8c3ceeec6b83531ee61f0013c56e51cbf2b14b0f213548b23a4b41" dependencies = [ "downcast-rs", "libm", @@ -16103,7 +16443,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" dependencies = [ "anyhow", - "base64 0.21.6", + "base64 0.21.7", "bincode", "directories-next", "file-per-thread-logger", @@ -16132,7 +16472,7 @@ dependencies = [ "log", "object 0.30.4", "target-lexicon", - "thiserror", + "thiserror 1.0.69", "wasmparser", "wasmtime-cranelift-shared", "wasmtime-environ", @@ -16167,7 +16507,7 @@ dependencies = [ "object 0.30.4", "serde", "target-lexicon", - "thiserror", + "thiserror 1.0.69", "wasmparser", "wasmtime-types", ] @@ -16234,7 +16574,7 @@ dependencies = [ "memfd", "memoffset", "paste", - "rand", + "rand 0.8.5", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -16250,15 +16590,25 @@ checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" dependencies = [ "cranelift-entity", "serde", - "thiserror", + "thiserror 1.0.69", "wasmparser", ] [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -16270,42 +16620,30 @@ version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring 0.17.7", + "ring 0.17.14", "untrusted 0.9.0", ] [[package]] -name = "webpki-roots" -version = "0.25.4" +name = "webpki-root-certs" +version = "0.26.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webpki-roots" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "09aed61f5e8d2c18344b3faa33a4c837855fe56642757754775548fee21386c4" dependencies = [ "rustls-pki-types", ] [[package]] -name = "which" -version = "4.4.2" +name = "webpki-roots" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.31", -] +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "wide" -version = "0.7.13" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242" +checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22" dependencies = [ "bytemuck", "safe_arch", @@ -16313,9 +16651,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.0.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" [[package]] name = "winapi" @@ -16335,11 +16673,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -16350,36 +16688,129 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-core", - "windows-targets 0.48.5", + "windows-core 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538" +dependencies = [ + "windows-core 0.53.0", + "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] -name = "windows-sys" -version = "0.42.0" +name = "windows-core" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result 0.3.2", + "windows-strings 0.4.0", +] + +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "windows-link" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" + +[[package]] +name = "windows-registry" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" +dependencies = [ + "windows-result 0.3.2", + "windows-strings 0.3.1", + "windows-targets 0.53.0", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +dependencies = [ + "windows-link", ] [[package]] @@ -16406,7 +16837,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -16441,17 +16881,34 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -16468,9 +16925,15 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" [[package]] name = "windows_aarch64_msvc" @@ -16486,9 +16949,15 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" [[package]] name = "windows_i686_gnu" @@ -16504,9 +16973,27 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" [[package]] name = "windows_i686_msvc" @@ -16522,9 +17009,15 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" [[package]] name = "windows_x86_64_gnu" @@ -16540,9 +17033,15 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" [[package]] name = "windows_x86_64_gnullvm" @@ -16558,9 +17057,15 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" [[package]] name = "windows_x86_64_msvc" @@ -16576,24 +17081,21 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "winnow" -version = "0.5.33" +name = "windows_x86_64_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7520bbdec7211caa7c4e682eb1fbe07abe20cee6756b6e00f537c82c11816aa" -dependencies = [ - "memchr", -] +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.6.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1dbce9e90e5404c5a52ed82b1d13fc8cfbdad85033b6f57546ffd1265f8451" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" dependencies = [ "memchr", ] @@ -16608,6 +17110,27 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.0", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "wyz" version = "0.5.1" @@ -16619,11 +17142,11 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ - "curve25519-dalek 4.1.3", + "curve25519-dalek", "rand_core 0.6.4", "serde", "zeroize", @@ -16642,7 +17165,7 @@ dependencies = [ "nom", "oid-registry 0.6.1", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -16652,33 +17175,49 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" dependencies = [ - "asn1-rs 0.6.1", + "asn1-rs 0.6.2", "data-encoding", "der-parser 9.0.0", "lazy_static", "nom", - "oid-registry 0.7.0", + "oid-registry 0.7.1", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", + "time", +] + +[[package]] +name = "x509-parser" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4569f339c0c402346d4a75a9e39cf8dad310e287eef1ff56d4c68e5067f53460" +dependencies = [ + "asn1-rs 0.7.1", + "data-encoding", + "der-parser 10.0.0", + "lazy_static", + "nom", + "oid-registry 0.8.1", + "rusticata-macros", + "thiserror 2.0.12", "time", ] [[package]] name = "xattr" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" dependencies = [ "libc", - "linux-raw-sys 0.4.12", - "rustix 0.38.31", + "rustix 1.0.5", ] [[package]] name = "xcm-emulator" -version = "0.16.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e9ca0239660dd0303f2aa492e297d0be5051fc39e792c840580e05c522fecaa" +checksum = "071417f8c2ff55d4ca434220aec564c20a3fee10dd31d3cfae1e1807c3040e94" dependencies = [ "array-bytes", "cumulus-pallet-parachain-system", @@ -16689,7 +17228,6 @@ dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", - "lazy_static", "log", "pallet-balances", "pallet-message-queue", @@ -16697,51 +17235,51 @@ dependencies = [ "parity-scale-codec", "paste", "polkadot-parachain-primitives", - "polkadot-primitives 16.0.0", + "polkadot-primitives", "polkadot-runtime-parachains", - "sp-arithmetic 26.0.0", - "sp-core 34.0.0", + "sp-arithmetic", + "sp-core", "sp-crypto-hashing", - "sp-io 38.0.0", - "sp-runtime 39.0.5", + "sp-io", + "sp-runtime", "sp-std", - "sp-tracing 17.0.1", + "sp-tracing", "staging-xcm", "staging-xcm-executor", ] [[package]] name = "xcm-procedural" -version = "10.1.0" +version = "11.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fb4f14094d65c500a59bcf540cf42b99ee82c706edd6226a92e769ad60563e" +checksum = "9d3d21c65cbf847ae0b1a8e6411b614d269d3108c6c649b039bffcf225e89aa4" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", ] [[package]] name = "xcm-runtime-apis" -version = "0.4.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9820d596ca59a981951d2d01924ba0d45b0ab5671fd24dacf68415dbe1fe1053" +checksum = "ffd97b4d476b2444e55b40ac29474011138d9d891c8ffe480eadaf93e6778794" dependencies = [ "frame-support", "parity-scale-codec", "scale-info", "sp-api", - "sp-weights 31.0.0", + "sp-weights", "staging-xcm", "staging-xcm-executor", ] [[package]] name = "xml-rs" -version = "0.8.20" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" +checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" [[package]] name = "xmltree" @@ -16763,10 +17301,26 @@ dependencies = [ "nohash-hasher", "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", "static_assertions", ] +[[package]] +name = "yamux" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17610762a1207ee816c6fadc29220904753648aba0a9ed61c7b8336e80a559c4" +dependencies = [ + "futures", + "log", + "nohash-hasher", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "static_assertions", + "web-time", +] + [[package]] name = "yap" version = "0.11.0" @@ -16782,24 +17336,89 @@ dependencies = [ "time", ] +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "synstructure 0.13.1", +] + [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" dependencies = [ - "zerocopy-derive", + "zerocopy-derive 0.8.24", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "synstructure 0.13.1", ] [[package]] @@ -16819,46 +17438,76 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.100", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] name = "zombienet-configuration" -version = "0.2.6" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd24a5c580ce4d871a4f3291144a731f0cfc633fedd681b99e73825f38181b6" +checksum = "f23f5abe2a83faf76fe4d6c2243c495bd7fd75c3b1a66657e99db173b7418839" dependencies = [ "anyhow", "lazy_static", - "multiaddr 0.18.1", + "multiaddr 0.18.2", "regex", + "reqwest", "serde", "serde_json", - "thiserror", - "toml 0.7.8", + "thiserror 1.0.69", + "tokio", + "toml 0.8.20", + "tracing", "url", "zombienet-support", ] [[package]] name = "zombienet-orchestrator" -version = "0.2.5" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2d240dea2272d66138cd510a39d580b6227966185bf63d7ec23eac14533c9c" +checksum = "6b882fa555eddda618be464ea2ce47de4e4e9142581eced19de4b12d0ace3198" dependencies = [ "anyhow", + "async-trait", "futures", + "glob-match", "hex", - "libp2p", - "multiaddr 0.18.1", - "rand", + "libp2p 0.54.1", + "libsecp256k1", + "multiaddr 0.18.2", + "rand 0.8.5", + "regex", "reqwest", + "serde", "serde_json", "sha2 0.10.8", - "sp-core 31.0.0", + "sp-core", "subxt", "subxt-signer", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "uuid", @@ -16870,20 +17519,20 @@ dependencies = [ [[package]] name = "zombienet-prom-metrics-parser" -version = "0.2.6" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80ed716ba0901e603cbd3b5e3ddc59e3df20d69cd58109ef12bbea6097ffd325" +checksum = "9ca98a24687ebd7fc06872ef872f1be8c003bd0d20f285091f45c24e9bec9973" dependencies = [ "pest", "pest_derive", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "zombienet-provider" -version = "0.2.6" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7522089152c02622ac27f30f95652ff5b9e3d193ef7eafee41603e9d7cc785" +checksum = "8c65a3e3e07ab327e54be1668272ef2575a9c54aa4beb0d1e453df5046073772" dependencies = [ "anyhow", "async-trait", @@ -16892,7 +17541,7 @@ dependencies = [ "hex", "k8s-openapi", "kube", - "nix 0.27.1", + "nix 0.29.0", "regex", "reqwest", "serde", @@ -16900,7 +17549,7 @@ dependencies = [ "serde_yaml", "sha2 0.10.8", "tar", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-util", "tracing", @@ -16912,14 +17561,15 @@ dependencies = [ [[package]] name = "zombienet-sdk" -version = "0.2.5" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d629add7e175261c047c9dc038b4b23fefb174edaf2868f858c5ff1b682f6541" +checksum = "a8ece725021717cc70b7f35c9f95819d03fd7818a596560c4d02dda8731f25e3" dependencies = [ "async-trait", "futures", "lazy_static", "subxt", + "subxt-signer", "tokio", "zombienet-configuration", "zombienet-orchestrator", @@ -16935,24 +17585,24 @@ dependencies = [ "log", "subxt", "tokio", - "tracing-subscriber 0.3.18", + "tracing-subscriber", "zombienet-sdk", ] [[package]] name = "zombienet-support" -version = "0.2.6" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6026607084432996fd590d4beb9d4fb15937bce4f3bd6bddd7e8c0ead1bbc141" +checksum = "e42dcf18237dbd576d7696e331085222c144e89ebe71b462f616a9147f8162bb" dependencies = [ "anyhow", "async-trait", "futures", - "nix 0.27.1", - "rand", + "nix 0.29.0", + "rand 0.8.5", "regex", "reqwest", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "uuid", @@ -16998,9 +17648,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.15+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 666bf38cd8..f24f85de7b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,32 +12,32 @@ asset-hub-kusama-emulated-chain = { path = "integration-tests/emulated/chains/pa asset-hub-kusama-runtime = { path = "system-parachains/asset-hubs/asset-hub-kusama" } asset-hub-polkadot-emulated-chain = { path = "integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot" } asset-hub-polkadot-runtime = { path = "system-parachains/asset-hubs/asset-hub-polkadot" } -asset-test-utils = { version = "20.0.0" } -assets-common = { version = "0.18.3", default-features = false } -authority-discovery-primitives = { version = "34.0.0", default-features = false, package = "sp-authority-discovery" } -babe-primitives = { version = "0.40.0", default-features = false, package = "sp-consensus-babe" } -beefy-primitives = { version = "22.1.0", default-features = false, package = "sp-consensus-beefy" } -binary-merkle-tree = { version = "15.0.1", default-features = false } +asset-test-utils = { version = "21.0.2" } +assets-common = { version = "0.19.1", default-features = false } +authority-discovery-primitives = { version = "35.0.0", default-features = false, package = "sp-authority-discovery" } +babe-primitives = { version = "0.41.0", default-features = false, package = "sp-consensus-babe" } +beefy-primitives = { version = "23.0.0", default-features = false, package = "sp-consensus-beefy" } +binary-merkle-tree = { version = "16.0.0", default-features = false } bp-asset-hub-kusama = { path = "system-parachains/asset-hubs/asset-hub-kusama/primitives", default-features = false } bp-asset-hub-polkadot = { path = "system-parachains/asset-hubs/asset-hub-polkadot/primitives", default-features = false } -bp-bridge-hub-cumulus = { version = "0.18.0", default-features = false } +bp-bridge-hub-cumulus = { version = "0.19.0", default-features = false } bp-bridge-hub-kusama = { path = "system-parachains/bridge-hubs/bridge-hub-kusama/primitives", default-features = false } bp-bridge-hub-polkadot = { path = "system-parachains/bridge-hubs/bridge-hub-polkadot/primitives", default-features = false } -bp-header-chain = { version = "0.18.1", default-features = false } -bp-messages = { version = "0.18.0", default-features = false } -bp-parachains = { version = "0.18.0", default-features = false } -bp-polkadot-core = { version = "0.18.0", default-features = false } -bp-relayers = { version = "0.18.0", default-features = false } -bp-runtime = { version = "0.18.0", default-features = false } -bp-xcm-bridge-hub = { version = "0.4.2", default-features = false } -bp-xcm-bridge-hub-router = { version = "0.14.1", default-features = false } -bridge-hub-common = { version = "0.10.0", default-features = false } +bp-header-chain = { version = "0.19.0", default-features = false } +bp-messages = { version = "0.19.0", default-features = false } +bp-parachains = { version = "0.19.0", default-features = false } +bp-polkadot-core = { version = "0.19.0", default-features = false } +bp-relayers = { version = "0.19.0", default-features = false } +bp-runtime = { version = "0.19.1", default-features = false } +bp-xcm-bridge-hub = { version = "0.5.0", default-features = false } +bp-xcm-bridge-hub-router = { version = "0.15.0", default-features = false } +bridge-hub-common = { version = "0.12.0", default-features = false } bridge-hub-kusama-emulated-chain = { path = "integration-tests/emulated/chains/parachains/bridges/bridge-hub-kusama" } bridge-hub-kusama-runtime = { path = "system-parachains/bridge-hubs/bridge-hub-kusama" } bridge-hub-polkadot-emulated-chain = { path = "integration-tests/emulated/chains/parachains/bridges/bridge-hub-polkadot" } bridge-hub-polkadot-runtime = { path = "system-parachains/bridge-hubs/bridge-hub-polkadot" } -bridge-hub-test-utils = { version = "0.20.1" } -bridge-runtime-common = { version = "0.18.3", default-features = false } +bridge-hub-test-utils = { version = "0.21.1" } +bridge-runtime-common = { version = "0.19.2", default-features = false } clap = { version = "4.5.0" } codec = { package = "parity-scale-codec", version = "3.6.9", default-features = false } collectives-polkadot-emulated-chain = { path = "integration-tests/emulated/chains/parachains/collectives/collectives-polkadot" } @@ -47,30 +47,30 @@ coretime-kusama-emulated-chain = { path = "integration-tests/emulated/chains/par coretime-kusama-runtime = { path = "system-parachains/coretime/coretime-kusama" } coretime-polkadot-emulated-chain = { path = "integration-tests/emulated/chains/parachains/coretime/coretime-polkadot" } coretime-polkadot-runtime = { path = "system-parachains/coretime/coretime-polkadot" } -cumulus-pallet-aura-ext = { version = "0.17.0", default-features = false } -cumulus-pallet-parachain-system = { version = "0.17.1", default-features = false } -cumulus-pallet-session-benchmarking = { version = "19.0.0", default-features = false } -cumulus-pallet-xcm = { version = "0.17.0", default-features = false } -cumulus-pallet-xcmp-queue = { version = "0.17.2", default-features = false } -cumulus-primitives-aura = { version = "0.15.0", default-features = false } -cumulus-primitives-core = { version = "0.16.0", default-features = false } -cumulus-primitives-utility = { version = "0.17.0", default-features = false } -emulated-integration-tests-common = { version = "16.0.1" } -encointer-balances-tx-payment = { version = "~14.1.0", default-features = false } -encointer-balances-tx-payment-rpc-runtime-api = { version = "~14.1.0", default-features = false } +cumulus-pallet-aura-ext = { version = "0.18.0", default-features = false } +cumulus-pallet-parachain-system = { version = "0.18.1", default-features = false } +cumulus-pallet-session-benchmarking = { version = "20.0.0", default-features = false } +cumulus-pallet-xcm = { version = "0.18.0", default-features = false } +cumulus-pallet-xcmp-queue = { version = "0.18.2", default-features = false } +cumulus-primitives-aura = { version = "0.16.0", default-features = false } +cumulus-primitives-core = { version = "0.17.0", default-features = false } +cumulus-primitives-utility = { version = "0.18.1", default-features = false } +emulated-integration-tests-common = { version = "19.0.2" } +encointer-balances-tx-payment = { version = "~15.1.0", default-features = false } +encointer-balances-tx-payment-rpc-runtime-api = { version = "~15.1.0", default-features = false } encointer-kusama-runtime = { path = "system-parachains/encointer" } -encointer-primitives = { version = "~14.4.0", default-features = false } +encointer-primitives = { version = "~15.4.0", default-features = false } enumflags2 = { version = "0.7.7" } -frame-benchmarking = { version = "38.0.0", default-features = false } -frame-election-provider-support = { version = "38.0.0", default-features = false } -frame-executive = { version = "38.0.0", default-features = false } -frame-support = { version = "38.2.0", default-features = false } -frame-system = { version = "38.0.0", default-features = false } -frame-system-benchmarking = { version = "38.0.0", default-features = false } -frame-system-rpc-runtime-api = { version = "34.0.0", default-features = false } -frame-try-runtime = { version = "0.44.0", default-features = false } +frame-benchmarking = { version = "39.0.0", default-features = false } +frame-election-provider-support = { version = "39.0.0", default-features = false } +frame-executive = { version = "39.1.0", default-features = false } +frame-support = { version = "39.1.0", default-features = false } +frame-system = { version = "39.1.0", default-features = false } +frame-system-benchmarking = { version = "39.0.0", default-features = false } +frame-system-rpc-runtime-api = { version = "35.0.0", default-features = false } +frame-try-runtime = { version = "0.45.0", default-features = false } glutton-kusama-runtime = { path = "system-parachains/gluttons/glutton-kusama" } -grandpa = { version = "0.30.0", package = "sc-consensus-grandpa" } +grandpa = { version = "0.33.0", package = "sc-consensus-grandpa" } hex-literal = { version = "0.4.1" } integration-tests-helpers = { path = "integration-tests/emulated/helpers" } kusama-emulated-chain = { path = "integration-tests/emulated/chains/relays/kusama" } @@ -79,174 +79,175 @@ kusama-runtime = { path = "relay/kusama", package = "staging-kusama-runtime" } kusama-runtime-constants = { path = "relay/kusama/constants", default-features = false } kusama-system-emulated-network = { path = "integration-tests/emulated/networks/kusama-system" } log = { version = "0.4.21", default-features = false } -pallet-alliance = { version = "37.0.0", default-features = false } -pallet-asset-conversion = { version = "20.0.0", default-features = false } -pallet-asset-conversion-tx-payment = { version = "20.0.0", default-features = false } -pallet-asset-rate = { version = "17.0.0", default-features = false } -pallet-asset-tx-payment = { version = "38.0.0", default-features = false } -pallet-assets = { version = "40.0.0", default-features = false } -pallet-aura = { version = "37.0.0", default-features = false } -pallet-authority-discovery = { version = "38.0.0", default-features = false } -pallet-authorship = { version = "38.0.0", default-features = false } -pallet-babe = { version = "38.0.0", default-features = false } -pallet-bags-list = { version = "37.0.0", default-features = false } -pallet-balances = { version = "39.0.1", default-features = false } -pallet-beefy = { version = "39.0.0", default-features = false } -pallet-beefy-mmr = { version = "39.0.0", default-features = false } -pallet-bounties = { version = "37.0.2", default-features = false } -pallet-bridge-grandpa = { version = "0.18.0", default-features = false } -pallet-bridge-messages = { version = "0.18.0", default-features = false } -pallet-bridge-parachains = { version = "0.18.0", default-features = false } -pallet-bridge-relayers = { version = "0.18.2", default-features = false } -pallet-broker = { version = "0.17.2", default-features = false } -pallet-child-bounties = { version = "37.0.0", default-features = false } -pallet-collator-selection = { version = "19.0.0", default-features = false } -pallet-collective = { version = "38.0.0", default-features = false } -pallet-conviction-voting = { version = "38.0.0", default-features = false } -pallet-core-fellowship = { version = "22.2.0", default-features = false } -pallet-election-provider-multi-phase = { version = "37.0.0", default-features = false } -pallet-election-provider-support-benchmarking = { version = "37.0.0", default-features = false } -pallet-encointer-balances = { version = "~14.2.0", default-features = false } -pallet-encointer-bazaar = { version = "~14.1.0", default-features = false } -pallet-encointer-bazaar-rpc-runtime-api = { version = "~14.1.0", default-features = false } -pallet-encointer-ceremonies = { version = "~14.1.0", default-features = false } -pallet-encointer-ceremonies-rpc-runtime-api = { version = "~14.1.0", default-features = false } -pallet-encointer-communities = { version = "~14.1.0", default-features = false } -pallet-encointer-communities-rpc-runtime-api = { version = "~14.1.0", default-features = false } -pallet-encointer-democracy = { version = "~14.4.0", default-features = false } -pallet-encointer-faucet = { version = "~14.2.0", default-features = false } -pallet-encointer-reputation-commitments = { version = "~14.1.0", default-features = false } -pallet-encointer-scheduler = { version = "~14.1.0", default-features = false } -pallet-encointer-treasuries = { version = "~14.4.1", default-features = false } -pallet-encointer-treasuries-rpc-runtime-api = { version = "~14.3.0", default-features = false } -pallet-fast-unstake = { version = "37.0.0", default-features = false } -pallet-glutton = { version = "24.0.0", default-features = false } -pallet-grandpa = { version = "38.0.0", default-features = false } -pallet-identity = { version = "38.0.0", default-features = false } -pallet-indices = { version = "38.0.0", default-features = false } -pallet-insecure-randomness-collective-flip = { version = "26.0.0", default-features = false } -pallet-membership = { version = "38.0.0", default-features = false } -pallet-message-queue = { version = "41.0.2", default-features = false } -pallet-mmr = { version = "38.0.0", default-features = false } -pallet-multisig = { version = "38.0.0", default-features = false } -pallet-nft-fractionalization = { version = "21.0.0", default-features = false } -pallet-nfts = { version = "32.0.0", default-features = false } -pallet-nfts-runtime-api = { version = "24.0.0", default-features = false } -pallet-nis = { version = "38.0.0", default-features = false } -pallet-nomination-pools = { version = "35.0.3", default-features = false } -pallet-nomination-pools-benchmarking = { version = "36.0.0", default-features = false } -pallet-nomination-pools-runtime-api = { version = "33.0.2", default-features = false } -pallet-offences = { version = "37.0.0", default-features = false } -pallet-offences-benchmarking = { version = "38.0.0", default-features = false } -pallet-parameters = { version = "0.9.0", default-features = false } -pallet-preimage = { version = "38.0.0", default-features = false } -pallet-proxy = { version = "38.0.0", default-features = false } -pallet-ranked-collective = { version = "38.2.0", default-features = false } -pallet-recovery = { version = "38.0.0", default-features = false } -pallet-referenda = { version = "38.0.0", default-features = false } +pallet-alliance = { version = "38.1.0", default-features = false } +pallet-asset-conversion = { version = "21.1.0", default-features = false } +pallet-asset-conversion-tx-payment = { version = "21.1.0", default-features = false } +pallet-asset-rate = { version = "18.1.0", default-features = false } +pallet-asset-tx-payment = { version = "39.1.0", default-features = false } +pallet-assets = { version = "41.1.0", default-features = false } +pallet-aura = { version = "38.1.0", default-features = false } +pallet-authority-discovery = { version = "39.0.0", default-features = false } +pallet-authorship = { version = "39.0.0", default-features = false } +pallet-babe = { version = "39.1.0", default-features = false } +pallet-bags-list = { version = "38.0.0", default-features = false } +pallet-balances = { version = "40.1.0", default-features = false } +pallet-beefy = { version = "40.1.0", default-features = false } +pallet-beefy-mmr = { version = "40.1.0", default-features = false } +pallet-bounties = { version = "38.1.0", default-features = false } +pallet-bridge-grandpa = { version = "0.19.0", default-features = false } +pallet-bridge-messages = { version = "0.19.1", default-features = false } +pallet-bridge-parachains = { version = "0.19.0", default-features = false } +pallet-bridge-relayers = { version = "0.19.1", default-features = false } +pallet-broker = { version = "0.18.0", default-features = false } +pallet-child-bounties = { version = "38.1.0", default-features = false } +pallet-collator-selection = { version = "20.1.0", default-features = false } +pallet-collective = { version = "39.1.0", default-features = false } +pallet-conviction-voting = { version = "39.1.0", default-features = false } +pallet-core-fellowship = { version = "23.0.0", default-features = false } +pallet-election-provider-multi-phase = { version = "38.1.0", default-features = false } +pallet-election-provider-support-benchmarking = { version = "38.0.0", default-features = false } +pallet-encointer-balances = { version = "~15.2.0", default-features = false } +pallet-encointer-bazaar = { version = "~15.1.0", default-features = false } +pallet-encointer-bazaar-rpc-runtime-api = { version = "~15.1.0", default-features = false } +pallet-encointer-ceremonies = { version = "~15.1.0", default-features = false } +pallet-encointer-ceremonies-rpc-runtime-api = { version = "~15.1.0", default-features = false } +pallet-encointer-communities = { version = "~15.1.0", default-features = false } +pallet-encointer-communities-rpc-runtime-api = { version = "~15.1.0", default-features = false } +pallet-encointer-democracy = { version = "~15.4.0", default-features = false } +pallet-encointer-faucet = { version = "~15.2.0", default-features = false } +pallet-encointer-reputation-commitments = { version = "~15.1.0", default-features = false } +pallet-encointer-scheduler = { version = "~15.1.0", default-features = false } +pallet-encointer-treasuries = { version = "~15.4.1", default-features = false } +pallet-encointer-treasuries-rpc-runtime-api = { version = "~15.3.0", default-features = false } +pallet-fast-unstake = { version = "38.1.0", default-features = false } +pallet-glutton = { version = "25.1.0", default-features = false } +pallet-grandpa = { version = "39.1.0", default-features = false } +pallet-identity = { version = "39.1.0", default-features = false } +pallet-indices = { version = "39.1.0", default-features = false } +pallet-insecure-randomness-collective-flip = { version = "27.0.0", default-features = false } +pallet-membership = { version = "39.0.0", default-features = false } +pallet-message-queue = { version = "42.0.0", default-features = false } +pallet-mmr = { version = "39.0.0", default-features = false } +pallet-multisig = { version = "39.1.0", default-features = false } +pallet-nft-fractionalization = { version = "22.1.0", default-features = false } +pallet-nfts = { version = "33.1.0", default-features = false } +pallet-nfts-runtime-api = { version = "25.0.0", default-features = false } +pallet-nis = { version = "39.1.0", default-features = false } +pallet-migrations = { version = "9.1.0", default-features = false } +pallet-nomination-pools = { version = "37.0.1", default-features = false } +pallet-nomination-pools-benchmarking = { version = "37.1.0", default-features = false } +pallet-nomination-pools-runtime-api = { version = "35.0.0", default-features = false } +pallet-offences = { version = "38.0.0", default-features = false } +pallet-offences-benchmarking = { version = "39.1.0", default-features = false } +pallet-parameters = { version = "0.10.1", default-features = false } +pallet-preimage = { version = "39.1.0", default-features = false } +pallet-proxy = { version = "39.1.0", default-features = false } +pallet-ranked-collective = { version = "39.0.0", default-features = false } +pallet-recovery = { version = "39.1.0", default-features = false } +pallet-referenda = { version = "39.1.0", default-features = false } pallet-remote-proxy = { path = "pallets/remote-proxy", default-features = false } -pallet-salary = { version = "23.2.0", default-features = false } -pallet-scheduler = { version = "39.0.0", default-features = false } -pallet-session = { version = "38.0.0", default-features = false } -pallet-session-benchmarking = { version = "38.0.0", default-features = false } -pallet-society = { version = "38.0.0", default-features = false } -pallet-staking = { version = "38.0.1", default-features = false } -pallet-delegated-staking = { version = "5.0.1", default-features = false } +pallet-salary = { version = "24.0.0", default-features = false } +pallet-scheduler = { version = "40.1.0", default-features = false } +pallet-session = { version = "39.0.0", default-features = false } +pallet-session-benchmarking = { version = "39.1.0", default-features = false } +pallet-society = { version = "39.1.0", default-features = false } +pallet-staking = { version = "39.1.0", default-features = false } +pallet-delegated-staking = { version = "6.1.0", default-features = false } pallet-staking-reward-curve = { version = "12.0.0" } pallet-staking-reward-fn = { version = "22.0.0", default-features = false } -pallet-staking-runtime-api = { version = "24.0.0", default-features = false } -pallet-state-trie-migration = { version = "40.0.0", default-features = false } -pallet-sudo = { version = "38.0.0", default-features = false } -pallet-timestamp = { version = "37.0.0", default-features = false } -pallet-transaction-payment = { version = "38.0.2", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { version = "38.0.0", default-features = false } -pallet-treasury = { version = "37.0.0", default-features = false } -pallet-uniques = { version = "38.0.0", default-features = false } -pallet-utility = { version = "38.0.0", default-features = false } -pallet-vesting = { version = "38.0.0", default-features = false } -pallet-whitelist = { version = "37.0.0", default-features = false } -pallet-xcm = { version = "17.0.2", default-features = false } -pallet-xcm-benchmarks = { version = "17.0.0", default-features = false } -pallet-xcm-bridge-hub = { version = "0.13.3", default-features = false } -pallet-xcm-bridge-hub-router = { version = "0.15.3", default-features = false } -parachain-info = { version = "0.17.0", default-features = false, package = "staging-parachain-info" } -parachains-common = { version = "18.0.0", default-features = false } -parachains-runtimes-test-utils = { version = "19.0.0" } +pallet-staking-runtime-api = { version = "25.0.0", default-features = false } +pallet-state-trie-migration = { version = "43.1.0", default-features = false } +pallet-sudo = { version = "39.0.0", default-features = false } +pallet-timestamp = { version = "38.0.0", default-features = false } +pallet-transaction-payment = { version = "39.1.0", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { version = "39.0.0", default-features = false } +pallet-treasury = { version = "38.1.0", default-features = false } +pallet-uniques = { version = "39.1.0", default-features = false } +pallet-utility = { version = "39.1.0", default-features = false } +pallet-vesting = { version = "39.1.0", default-features = false } +pallet-whitelist = { version = "38.1.0", default-features = false } +pallet-xcm = { version = "18.1.0", default-features = false } +pallet-xcm-benchmarks = { version = "18.1.0", default-features = false } +pallet-xcm-bridge-hub = { version = "0.14.2", default-features = false } +pallet-xcm-bridge-hub-router = { version = "0.16.0", default-features = false } +parachain-info = { version = "0.18.0", default-features = false, package = "staging-parachain-info" } +parachains-common = { version = "19.0.0", default-features = false } +parachains-runtimes-test-utils = { version = "20.0.2" } paste = { version = "1.0.14" } penpal-emulated-chain = { path = "integration-tests/emulated/chains/parachains/testing/penpal" } -penpal-runtime = { version = "0.25.1" } +penpal-runtime = { version = "0.27.1" } people-kusama-emulated-chain = { path = "integration-tests/emulated/chains/parachains/people/people-kusama" } people-kusama-runtime = { path = "system-parachains/people/people-kusama" } people-polkadot-emulated-chain = { path = "integration-tests/emulated/chains/parachains/people/people-polkadot" } people-polkadot-runtime = { path = "system-parachains/people/people-polkadot" } -polkadot-core-primitives = { version = "15.0.0", default-features = false } +polkadot-core-primitives = { version = "16.0.0", default-features = false } polkadot-emulated-chain = { path = "integration-tests/emulated/chains/relays/polkadot" } -polkadot-parachain-primitives = { version = "14.0.0", default-features = false } -polkadot-primitives = { version = "16.0.0", default-features = false } +polkadot-parachain-primitives = { version = "15.0.0", default-features = false } +polkadot-primitives = { version = "17.1.0", default-features = false } polkadot-runtime = { path = "relay/polkadot" } -polkadot-runtime-common = { version = "17.0.0", default-features = false } +polkadot-runtime-common = { version = "18.1.0", default-features = false } polkadot-runtime-constants = { path = "relay/polkadot/constants", default-features = false } polkadot-system-emulated-network = { path = "integration-tests/emulated/networks/polkadot-system" } primitive-types = { version = "0.12.2", default-features = false } -frame-metadata-hash-extension = { version = "0.6.0", default-features = false } -remote-externalities = { version = "0.46.0", package = "frame-remote-externalities" } -runtime-parachains = { version = "17.0.2", default-features = false, package = "polkadot-runtime-parachains" } -sc-chain-spec = { version = "38.0.0" } -sc-network = { version = "0.45.6" } +frame-metadata-hash-extension = { version = "0.7.0", default-features = false } +remote-externalities = { version = "0.49.0", package = "frame-remote-externalities" } +runtime-parachains = { version = "18.1.0", default-features = false, package = "polkadot-runtime-parachains" } +sc-chain-spec = { version = "41.0.0" } +sc-network = { version = "0.48.3" } scale-info = { version = "2.10.0", default-features = false } separator = { version = "0.4.1" } serde = { version = "1.0.196" } serde_json = { version = "1.0.113", default-features = false } smallvec = { version = "1.13.1" } -snowbridge-beacon-primitives = { version = "0.10.1", default-features = false } -snowbridge-core = { version = "0.10.0", default-features = false } -snowbridge-outbound-queue-runtime-api = { version = "0.10.0", default-features = false } -snowbridge-pallet-ethereum-client = { version = "0.10.1", default-features = false } -snowbridge-pallet-inbound-queue = { version = "0.10.1", default-features = false } -snowbridge-pallet-inbound-queue-fixtures = { version = "0.18.1" } -snowbridge-pallet-ethereum-client-fixtures = { version = "0.18.0" } -snowbridge-pallet-outbound-queue = { version = "0.10.0", default-features = false } -snowbridge-pallet-system = { version = "0.10.0", default-features = false } -snowbridge-router-primitives = { version = "0.16.1", default-features = false } -snowbridge-runtime-common = { version = "0.10.0", default-features = false } -snowbridge-runtime-test-common = { version = "0.12.0" } -snowbridge-system-runtime-api = { version = "0.10.0", default-features = false } -sp-api = { version = "34.0.0", default-features = false } -sp-application-crypto = { version = "38.0.0", default-features = false } +snowbridge-beacon-primitives = { version = "0.12.1", default-features = false } +snowbridge-core = { version = "0.12.1", default-features = false } +snowbridge-outbound-queue-runtime-api = { version = "0.12.0", default-features = false } +snowbridge-pallet-ethereum-client = { version = "0.12.1", default-features = false } +snowbridge-pallet-inbound-queue = { version = "0.12.1", default-features = false } +snowbridge-pallet-inbound-queue-fixtures = { version = "0.20.1" } +snowbridge-pallet-ethereum-client-fixtures = { version = "0.20.0" } +snowbridge-pallet-outbound-queue = { version = "0.12.1", default-features = false } +snowbridge-pallet-system = { version = "0.12.1", default-features = false } +snowbridge-router-primitives = { version = "0.18.1", default-features = false } +snowbridge-runtime-common = { version = "0.12.0", default-features = false } +snowbridge-runtime-test-common = { version = "0.14.0" } +snowbridge-system-runtime-api = { version = "0.12.0", default-features = false } +sp-api = { version = "35.0.0", default-features = false } +sp-application-crypto = { version = "39.0.0", default-features = false } sp-arithmetic = { version = "26.0.0", default-features = false } -sp-block-builder = { version = "34.0.0", default-features = false } -sp-consensus-aura = { version = "0.40.0", default-features = false } -sp-core = { version = "34.0.0", default-features = false } +sp-block-builder = { version = "35.0.0", default-features = false } +sp-consensus-aura = { version = "0.41.0", default-features = false } +sp-core = { version = "35.0.0", default-features = false } sp-debug-derive = { version = "14.0.0", default-features = false } -sp-genesis-builder = { version = "0.15.1", default-features = false } -sp-inherents = { version = "34.0.0", default-features = false } -sp-io = { version = "38.0.0", default-features = false } -sp-keyring = { version = "39.0.0" } -sp-npos-elections = { version = "34.0.0", default-features = false } -sp-offchain = { version = "34.0.0", default-features = false } -sp-runtime = { version = "39.0.5", default-features = false } -sp-session = { version = "36.0.0", default-features = false } -sp-staking = { version = "36.0.0", default-features = false } -sp-state-machine = { version = "0.43.0", default-features = false } +sp-genesis-builder = { version = "0.16.0", default-features = false } +sp-inherents = { version = "35.0.0", default-features = false } +sp-io = { version = "39.0.0", default-features = false } +sp-keyring = { version = "40.0.0" } +sp-npos-elections = { version = "35.0.0", default-features = false } +sp-offchain = { version = "35.0.0", default-features = false } +sp-runtime = { version = "40.1.0", default-features = false } +sp-session = { version = "37.0.0", default-features = false } +sp-staking = { version = "37.0.0", default-features = false } sp-std = { version = "14.0.0", default-features = false } -sp-storage = { version = "21.0.0", default-features = false } +sp-state-machine = { version = "0.44.0", default-features = false } +sp-storage = { version = "22.0.0", default-features = false } sp-tracing = { version = "17.0.1", default-features = false } -sp-transaction-pool = { version = "34.0.0", default-features = false } -sp-trie = { version = "37.0.0", default-features = false } -sp-version = { version = "37.0.0", default-features = false } +sp-transaction-pool = { version = "35.0.0", default-features = false } +sp-trie = { version = "38.0.0", default-features = false } +sp-version = { version = "38.0.0", default-features = false } sp-weights = { version = "31.0.0", default-features = false } -substrate-wasm-builder = { version = "24.0.1" } +substrate-wasm-builder = { version = "25.0.0" } system-parachains-constants = { path = "system-parachains/constants", default-features = false } tokio = { version = "1.36.0" } -xcm = { version = "14.2.1", default-features = false, package = "staging-xcm" } -xcm-builder = { version = "17.0.4", default-features = false, package = "staging-xcm-builder" } -xcm-emulator = { version = "0.16.0" } -xcm-executor = { version = "17.0.1", default-features = false, package = "staging-xcm-executor" } -xcm-runtime-apis = { version = "0.4.3", default-features = false } +xcm = { version = "15.0.3", default-features = false, package = "staging-xcm" } +xcm-builder = { version = "18.1.0", default-features = false, package = "staging-xcm-builder" } +xcm-emulator = { version = "0.17.1" } +xcm-executor = { version = "18.0.2", default-features = false, package = "staging-xcm-executor" } +xcm-runtime-apis = { version = "0.5.1", default-features = false } anyhow = { version = "1.0.82" } -subxt = { version = "0.35.0", default-features = false } +subxt = { version = "0.38.1" } tracing-subscriber = { version = "0.3.18" } -zombienet-sdk = { version = "0.2.4" } +zombienet-sdk = { version = "0.2.30" } tuplex = { version = "0.1.0", default-features = false } relay-common = { path = "relay/common", default-features = false } ss58-registry = { version = "1.47.0" } diff --git a/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/Cargo.toml b/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/Cargo.toml index a14a2362bd..d7ca5f37ae 100644 --- a/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/Cargo.toml +++ b/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/Cargo.toml @@ -11,6 +11,7 @@ publish = false # Substrate sp-core = { workspace = true, default-features = true } +sp-keyring = { workspace = true } frame-support = { workspace = true, default-features = true } # Cumulus @@ -24,3 +25,14 @@ polkadot-parachain-primitives = { workspace = true } asset-hub-kusama-runtime = { workspace = true } kusama-emulated-chain = { workspace = true } penpal-emulated-chain = { workspace = true } + +[features] +runtime-benchmarks = [ + "asset-hub-kusama-runtime/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "kusama-emulated-chain/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "penpal-emulated-chain/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", +] diff --git a/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/src/genesis.rs b/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/src/genesis.rs index 94cf5eeb07..1542d0978a 100644 --- a/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/src/genesis.rs @@ -14,35 +14,33 @@ // limitations under the License. // Substrate -use sp_core::{sr25519, storage::Storage}; +use sp_keyring::Sr25519Keyring as Keyring; // Cumulus use emulated_integration_tests_common::{ - accounts, build_genesis_storage, collators, get_account_id_from_seed, RESERVABLE_ASSET_ID, - SAFE_XCM_VERSION, + accounts, build_genesis_storage, collators, RESERVABLE_ASSET_ID, SAFE_XCM_VERSION, }; use frame_support::sp_runtime::traits::AccountIdConversion; use parachains_common::{AccountId, Balance}; use polkadot_parachain_primitives::primitives::Sibling; -use xcm::prelude::*; pub const PARA_ID: u32 = 1000; pub const ED: Balance = asset_hub_kusama_runtime::ExistentialDeposit::get(); pub const USDT_ID: u32 = 1984; frame_support::parameter_types! { - pub AssetHubKusamaAssetOwner: AccountId = get_account_id_from_seed::("Alice"); - pub PenpalATeleportableAssetLocation: Location - = Location::new(1, [ - Junction::Parachain(penpal_emulated_chain::PARA_ID_A), - Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID), - Junction::GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()), + pub AssetHubKusamaAssetOwner: AccountId = Keyring::Alice.to_account_id(); + pub PenpalATeleportableAssetLocation: xcm::v4::Location + = xcm::v4::Location::new(1, [ + xcm::v4::Junction::Parachain(penpal_emulated_chain::PARA_ID_A), + xcm::v4::Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()), ] ); pub PenpalASiblingSovereignAccount: AccountId = Sibling::from(penpal_emulated_chain::PARA_ID_A).into_account_truncating(); } -pub fn genesis() -> Storage { +pub fn genesis() -> sp_core::storage::Storage { let genesis_config = asset_hub_kusama_runtime::RuntimeGenesisConfig { system: asset_hub_kusama_runtime::SystemConfig::default(), balances: asset_hub_kusama_runtime::BalancesConfig { diff --git a/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/Cargo.toml b/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/Cargo.toml index 4b217ac017..781f5a7b9d 100644 --- a/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/Cargo.toml +++ b/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/Cargo.toml @@ -11,6 +11,7 @@ publish = false # Substrate sp-core = { workspace = true, default-features = true } +sp-keyring = { workspace = true } frame-support = { workspace = true, default-features = true } # Cumulus @@ -24,3 +25,14 @@ polkadot-parachain-primitives = { workspace = true } asset-hub-polkadot-runtime = { workspace = true } polkadot-emulated-chain = { workspace = true } penpal-emulated-chain = { workspace = true } + +[features] +runtime-benchmarks = [ + "asset-hub-polkadot-runtime/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "penpal-emulated-chain/runtime-benchmarks", + "polkadot-emulated-chain/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", +] diff --git a/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/src/genesis.rs b/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/src/genesis.rs index 8f1ee3a5c1..9c9e201946 100644 --- a/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/src/genesis.rs @@ -14,57 +14,55 @@ // limitations under the License. // Substrate -use sp_core::storage::Storage; +use sp_keyring::{Ed25519Keyring, Sr25519Keyring}; // Cumulus use emulated_integration_tests_common::{ - accounts, build_genesis_storage, get_account_id_from_seed, get_from_seed, RESERVABLE_ASSET_ID, - SAFE_XCM_VERSION, + accounts, build_genesis_storage, RESERVABLE_ASSET_ID, SAFE_XCM_VERSION, }; use frame_support::sp_runtime::traits::AccountIdConversion; -use parachains_common::{AccountId, AssetHubPolkadotAuraId, Balance}; +use parachains_common::{AccountId, Balance}; use polkadot_parachain_primitives::primitives::Sibling; -use sp_core::sr25519; -use xcm::prelude::*; pub const PARA_ID: u32 = 1000; pub const ED: Balance = asset_hub_polkadot_runtime::ExistentialDeposit::get(); pub const USDT_ID: u32 = 1984; frame_support::parameter_types! { - pub AssetHubPolkadotAssetOwner: AccountId = get_account_id_from_seed::("Alice"); - pub PenpalATeleportableAssetLocation: Location - = Location::new(1, [ - Junction::Parachain(penpal_emulated_chain::PARA_ID_A), - Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID), - Junction::GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()), + pub AssetHubPolkadotAssetOwner: AccountId = Sr25519Keyring::Alice.to_account_id(); + pub PenpalATeleportableAssetLocation: xcm::v4::Location + = xcm::v4::Location::new(1, [ + xcm::v4::Junction::Parachain(penpal_emulated_chain::PARA_ID_A), + xcm::v4::Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()), ] ); - pub PenpalBTeleportableAssetLocation: Location - = Location::new(1, [ - Junction::Parachain(penpal_emulated_chain::PARA_ID_B), - Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID), - Junction::GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()), + pub PenpalBTeleportableAssetLocation: xcm::v4::Location + = xcm::v4::Location::new(1, [ + xcm::v4::Junction::Parachain(penpal_emulated_chain::PARA_ID_B), + xcm::v4::Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID), + xcm::v4::Junction::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(); } -fn invulnerables_asset_hub_polkadot() -> Vec<(AccountId, AssetHubPolkadotAuraId)> { - vec![ - ( - get_account_id_from_seed::("Alice"), - get_from_seed::("Alice"), - ), - ( - get_account_id_from_seed::("Bob"), - get_from_seed::("Bob"), - ), - ] +pub mod collators { + use super::*; + + pub use emulated_integration_tests_common::collators::invulnerables; + use parachains_common::AssetHubPolkadotAuraId; + + pub fn session_keys() -> Vec<(AccountId, AssetHubPolkadotAuraId)> { + vec![ + (Sr25519Keyring::Alice.to_account_id(), Ed25519Keyring::Alice.public().into()), + (Sr25519Keyring::Bob.to_account_id(), Ed25519Keyring::Bob.public().into()), + ] + } } -pub fn genesis() -> Storage { +pub fn genesis() -> sp_core::storage::Storage { let genesis_config = asset_hub_polkadot_runtime::RuntimeGenesisConfig { system: asset_hub_polkadot_runtime::SystemConfig::default(), balances: asset_hub_polkadot_runtime::BalancesConfig { @@ -79,16 +77,12 @@ pub fn genesis() -> Storage { ..Default::default() }, collator_selection: asset_hub_polkadot_runtime::CollatorSelectionConfig { - invulnerables: invulnerables_asset_hub_polkadot() - .iter() - .cloned() - .map(|(acc, _)| acc) - .collect(), + invulnerables: collators::invulnerables().iter().cloned().map(|(acc, _)| acc).collect(), candidacy_bond: ED * 16, ..Default::default() }, session: asset_hub_polkadot_runtime::SessionConfig { - keys: invulnerables_asset_hub_polkadot() + keys: collators::session_keys() .into_iter() .map(|(acc, aura)| { ( diff --git a/integration-tests/emulated/chains/parachains/bridges/bridge-hub-kusama/Cargo.toml b/integration-tests/emulated/chains/parachains/bridges/bridge-hub-kusama/Cargo.toml index a56869a1d2..54c5f86a31 100644 --- a/integration-tests/emulated/chains/parachains/bridges/bridge-hub-kusama/Cargo.toml +++ b/integration-tests/emulated/chains/parachains/bridges/bridge-hub-kusama/Cargo.toml @@ -11,6 +11,7 @@ publish = false # Substrate sp-core = { workspace = true, default-features = true } +sp-keyring = { workspace = true } frame-support = { workspace = true, default-features = true } # Bridges @@ -24,3 +25,11 @@ emulated-integration-tests-common = { workspace = true } # Runtimes bridge-hub-kusama-runtime = { workspace = true } + +[features] +runtime-benchmarks = [ + "bridge-hub-common/runtime-benchmarks", + "bridge-hub-kusama-runtime/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "parachains-common/runtime-benchmarks", +] diff --git a/integration-tests/emulated/chains/parachains/bridges/bridge-hub-kusama/src/genesis.rs b/integration-tests/emulated/chains/parachains/bridges/bridge-hub-kusama/src/genesis.rs index 11c614d0a1..6e58814491 100644 --- a/integration-tests/emulated/chains/parachains/bridges/bridge-hub-kusama/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/bridges/bridge-hub-kusama/src/genesis.rs @@ -14,11 +14,11 @@ // limitations under the License. // Substrate -use sp_core::{sr25519, storage::Storage}; +use sp_keyring::Sr25519Keyring as Keyring; // Cumulus use emulated_integration_tests_common::{ - accounts, build_genesis_storage, collators, get_account_id_from_seed, SAFE_XCM_VERSION, + accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, }; use parachains_common::Balance; use xcm::latest::prelude::*; @@ -27,7 +27,7 @@ pub const ASSET_HUB_PARA_ID: u32 = 1000; pub const PARA_ID: u32 = 1002; pub const ED: Balance = bridge_hub_kusama_runtime::ExistentialDeposit::get(); -pub fn genesis() -> Storage { +pub fn genesis() -> sp_core::storage::Storage { let genesis_config = bridge_hub_kusama_runtime::RuntimeGenesisConfig { system: bridge_hub_kusama_runtime::SystemConfig::default(), balances: bridge_hub_kusama_runtime::BalancesConfig { @@ -60,11 +60,11 @@ pub fn genesis() -> Storage { ..Default::default() }, bridge_polkadot_grandpa: bridge_hub_kusama_runtime::BridgePolkadotGrandpaConfig { - owner: Some(get_account_id_from_seed::(accounts::BOB)), + owner: Some(Keyring::Bob.to_account_id()), ..Default::default() }, bridge_polkadot_messages: bridge_hub_kusama_runtime::BridgePolkadotMessagesConfig { - owner: Some(get_account_id_from_seed::(accounts::BOB)), + owner: Some(Keyring::Bob.to_account_id()), ..Default::default() }, xcm_over_bridge_hub_polkadot: bridge_hub_kusama_runtime::XcmOverBridgeHubPolkadotConfig { diff --git a/integration-tests/emulated/chains/parachains/bridges/bridge-hub-polkadot/Cargo.toml b/integration-tests/emulated/chains/parachains/bridges/bridge-hub-polkadot/Cargo.toml index 28715623c2..62500b2aa2 100644 --- a/integration-tests/emulated/chains/parachains/bridges/bridge-hub-polkadot/Cargo.toml +++ b/integration-tests/emulated/chains/parachains/bridges/bridge-hub-polkadot/Cargo.toml @@ -11,6 +11,7 @@ publish = false # Substrate sp-core = { workspace = true, default-features = true } +sp-keyring = { workspace = true } frame-support = { workspace = true, default-features = true } # Bridges @@ -24,3 +25,11 @@ emulated-integration-tests-common = { workspace = true } # Runtimes bridge-hub-polkadot-runtime = { workspace = true } + +[features] +runtime-benchmarks = [ + "bridge-hub-common/runtime-benchmarks", + "bridge-hub-polkadot-runtime/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "parachains-common/runtime-benchmarks", +] diff --git a/integration-tests/emulated/chains/parachains/bridges/bridge-hub-polkadot/src/genesis.rs b/integration-tests/emulated/chains/parachains/bridges/bridge-hub-polkadot/src/genesis.rs index 19141625fe..1db3e52698 100644 --- a/integration-tests/emulated/chains/parachains/bridges/bridge-hub-polkadot/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/bridges/bridge-hub-polkadot/src/genesis.rs @@ -14,11 +14,11 @@ // limitations under the License. // Substrate -use sp_core::{sr25519, storage::Storage}; +use sp_keyring::Sr25519Keyring as Keyring; // Cumulus use emulated_integration_tests_common::{ - accounts, build_genesis_storage, collators, get_account_id_from_seed, SAFE_XCM_VERSION, + accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, }; use parachains_common::Balance; use xcm::latest::prelude::*; @@ -27,7 +27,7 @@ pub const ASSET_HUB_PARA_ID: u32 = 1000; pub const PARA_ID: u32 = 1002; pub const ED: Balance = bridge_hub_polkadot_runtime::ExistentialDeposit::get(); -pub fn genesis() -> Storage { +pub fn genesis() -> sp_core::storage::Storage { let genesis_config = bridge_hub_polkadot_runtime::RuntimeGenesisConfig { system: bridge_hub_polkadot_runtime::SystemConfig::default(), balances: bridge_hub_polkadot_runtime::BalancesConfig { @@ -60,11 +60,11 @@ pub fn genesis() -> Storage { ..Default::default() }, bridge_kusama_grandpa: bridge_hub_polkadot_runtime::BridgeKusamaGrandpaConfig { - owner: Some(get_account_id_from_seed::(accounts::BOB)), + owner: Some(Keyring::Bob.to_account_id()), ..Default::default() }, bridge_kusama_messages: bridge_hub_polkadot_runtime::BridgeKusamaMessagesConfig { - owner: Some(get_account_id_from_seed::(accounts::BOB)), + owner: Some(Keyring::Bob.to_account_id()), ..Default::default() }, ethereum_system: bridge_hub_polkadot_runtime::EthereumSystemConfig { diff --git a/integration-tests/emulated/chains/parachains/collectives/collectives-polkadot/Cargo.toml b/integration-tests/emulated/chains/parachains/collectives/collectives-polkadot/Cargo.toml index ffd5689c64..3fdcd790e4 100644 --- a/integration-tests/emulated/chains/parachains/collectives/collectives-polkadot/Cargo.toml +++ b/integration-tests/emulated/chains/parachains/collectives/collectives-polkadot/Cargo.toml @@ -20,3 +20,11 @@ emulated-integration-tests-common = { workspace = true } # Runtimes collectives-polkadot-runtime = { workspace = true } + +[features] +runtime-benchmarks = [ + "collectives-polkadot-runtime/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "parachains-common/runtime-benchmarks", +] diff --git a/integration-tests/emulated/chains/parachains/coretime/coretime-kusama/Cargo.toml b/integration-tests/emulated/chains/parachains/coretime/coretime-kusama/Cargo.toml index dbf6e7138e..2298c3defa 100644 --- a/integration-tests/emulated/chains/parachains/coretime/coretime-kusama/Cargo.toml +++ b/integration-tests/emulated/chains/parachains/coretime/coretime-kusama/Cargo.toml @@ -20,3 +20,11 @@ emulated-integration-tests-common = { workspace = true } # Runtimes coretime-kusama-runtime = { workspace = true } + +[features] +runtime-benchmarks = [ + "coretime-kusama-runtime/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "parachains-common/runtime-benchmarks", +] diff --git a/integration-tests/emulated/chains/parachains/coretime/coretime-polkadot/Cargo.toml b/integration-tests/emulated/chains/parachains/coretime/coretime-polkadot/Cargo.toml index 10d9e8d946..c074b0b876 100644 --- a/integration-tests/emulated/chains/parachains/coretime/coretime-polkadot/Cargo.toml +++ b/integration-tests/emulated/chains/parachains/coretime/coretime-polkadot/Cargo.toml @@ -20,3 +20,11 @@ emulated-integration-tests-common = { workspace = true } # Runtimes coretime-polkadot-runtime = { workspace = true } + +[features] +runtime-benchmarks = [ + "coretime-polkadot-runtime/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "parachains-common/runtime-benchmarks", +] diff --git a/integration-tests/emulated/chains/parachains/people/people-kusama/Cargo.toml b/integration-tests/emulated/chains/parachains/people/people-kusama/Cargo.toml index f6bb6403ee..10c75730f1 100644 --- a/integration-tests/emulated/chains/parachains/people/people-kusama/Cargo.toml +++ b/integration-tests/emulated/chains/parachains/people/people-kusama/Cargo.toml @@ -24,3 +24,13 @@ kusama-runtime-constants = { workspace = true, default-features = true } # Local people-kusama-runtime = { workspace = true } kusama-emulated-chain = { workspace = true } + +[features] +runtime-benchmarks = [ + "cumulus-primitives-core/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "kusama-emulated-chain/runtime-benchmarks", + "kusama-runtime-constants/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "people-kusama-runtime/runtime-benchmarks", +] diff --git a/integration-tests/emulated/chains/parachains/people/people-polkadot/Cargo.toml b/integration-tests/emulated/chains/parachains/people/people-polkadot/Cargo.toml index 6414084696..49c69d0334 100644 --- a/integration-tests/emulated/chains/parachains/people/people-polkadot/Cargo.toml +++ b/integration-tests/emulated/chains/parachains/people/people-polkadot/Cargo.toml @@ -24,3 +24,13 @@ polkadot-runtime-constants = { workspace = true, default-features = true } # Local people-polkadot-runtime = { workspace = true } polkadot-emulated-chain = { workspace = true } + +[features] +runtime-benchmarks = [ + "cumulus-primitives-core/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "people-polkadot-runtime/runtime-benchmarks", + "polkadot-emulated-chain/runtime-benchmarks", + "polkadot-runtime-constants/runtime-benchmarks", +] diff --git a/integration-tests/emulated/chains/parachains/testing/penpal/Cargo.toml b/integration-tests/emulated/chains/parachains/testing/penpal/Cargo.toml index b31580dd63..318a51d7b4 100644 --- a/integration-tests/emulated/chains/parachains/testing/penpal/Cargo.toml +++ b/integration-tests/emulated/chains/parachains/testing/penpal/Cargo.toml @@ -11,6 +11,7 @@ publish = false # Substrate sp-core = { workspace = true, default-features = true } +sp-keyring = { workspace = true } frame-support = { workspace = true, default-features = true } # Cumulus @@ -28,6 +29,8 @@ polkadot-emulated-chain = { workspace = true } runtime-benchmarks = [ "cumulus-primitives-core/runtime-benchmarks", "frame-support/runtime-benchmarks", + "kusama-emulated-chain/runtime-benchmarks", "parachains-common/runtime-benchmarks", "penpal-runtime/runtime-benchmarks", + "polkadot-emulated-chain/runtime-benchmarks", ] diff --git a/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs b/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs index c5ba18a90a..b0e401370a 100644 --- a/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs @@ -15,11 +15,11 @@ // Substrate use frame_support::parameter_types; -use sp_core::{sr25519, storage::Storage}; +use sp_keyring::Sr25519Keyring as Keyring; // Cumulus use emulated_integration_tests_common::{ - accounts, build_genesis_storage, collators, get_account_id_from_seed, SAFE_XCM_VERSION, + accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, }; use parachains_common::{AccountId, Balance}; use penpal_runtime::xcm_config::{LocalReservableFromAssetHub, RelayLocation, UsdtFromAssetHub}; @@ -31,11 +31,11 @@ pub const ED: Balance = penpal_runtime::ExistentialDeposit::get(); pub const USDT_ED: Balance = 70_000; parameter_types! { - pub PenpalSudoAccount: AccountId = get_account_id_from_seed::("Alice"); + pub PenpalSudoAccount: AccountId = Keyring::Alice.to_account_id(); pub PenpalAssetOwner: AccountId = PenpalSudoAccount::get(); } -pub fn genesis(para_id: u32) -> Storage { +pub fn genesis(para_id: u32) -> sp_core::storage::Storage { let genesis_config = penpal_runtime::RuntimeGenesisConfig { system: penpal_runtime::SystemConfig::default(), balances: penpal_runtime::BalancesConfig { diff --git a/integration-tests/emulated/chains/relays/kusama/Cargo.toml b/integration-tests/emulated/chains/relays/kusama/Cargo.toml index 504c79e1eb..31e95ab96a 100644 --- a/integration-tests/emulated/chains/relays/kusama/Cargo.toml +++ b/integration-tests/emulated/chains/relays/kusama/Cargo.toml @@ -26,3 +26,11 @@ emulated-integration-tests-common = { workspace = true } # Runtimes kusama-runtime-constants = { workspace = true, default-features = true } kusama-runtime = { workspace = true } + +[features] +runtime-benchmarks = [ + "kusama-runtime-constants/runtime-benchmarks", + "kusama-runtime/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-primitives/runtime-benchmarks", +] diff --git a/integration-tests/emulated/chains/relays/kusama/src/genesis.rs b/integration-tests/emulated/chains/relays/kusama/src/genesis.rs index de368cae62..26dc44eaba 100644 --- a/integration-tests/emulated/chains/relays/kusama/src/genesis.rs +++ b/integration-tests/emulated/chains/relays/kusama/src/genesis.rs @@ -18,14 +18,13 @@ use authority_discovery_primitives::AuthorityId as AuthorityDiscoveryId; use babe_primitives::AuthorityId as BabeId; use beefy_primitives::ecdsa_crypto::AuthorityId as BeefyId; use grandpa::AuthorityId as GrandpaId; -use sp_core::{sr25519, storage::Storage}; // Polkadot use polkadot_primitives::{AssignmentId, ValidatorId}; // Cumulus use emulated_integration_tests_common::{ - accounts, build_genesis_storage, get_account_id_from_seed, get_from_seed, get_host_config, + accounts, build_genesis_storage, get_host_config, validators, }; use kusama_runtime_constants::currency::UNITS as KSM; use parachains_common::Balance; @@ -33,35 +32,6 @@ use parachains_common::Balance; pub const ED: Balance = kusama_runtime::ExistentialDeposit::get(); const ENDOWMENT: u128 = 1_000_000 * KSM; -mod validators { - use super::*; - use parachains_common::AccountId; - - #[allow(clippy::type_complexity)] - pub fn initial_authorities() -> Vec<( - AccountId, - AccountId, - BabeId, - GrandpaId, - ValidatorId, - AssignmentId, - AuthorityDiscoveryId, - BeefyId, - )> { - let seed = "Alice"; - vec![( - get_account_id_from_seed::(&format!("{}//stash", seed)), - get_account_id_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - )] - } -} - fn session_keys( babe: BabeId, grandpa: GrandpaId, @@ -80,7 +50,7 @@ fn session_keys( } } -pub fn genesis() -> Storage { +pub fn genesis() -> sp_core::storage::Storage { let genesis_config = kusama_runtime::RuntimeGenesisConfig { system: kusama_runtime::SystemConfig::default(), balances: kusama_runtime::BalancesConfig { diff --git a/integration-tests/emulated/chains/relays/kusama/src/lib.rs b/integration-tests/emulated/chains/relays/kusama/src/lib.rs index ec65fffb83..b6b8c445dd 100644 --- a/integration-tests/emulated/chains/relays/kusama/src/lib.rs +++ b/integration-tests/emulated/chains/relays/kusama/src/lib.rs @@ -24,7 +24,7 @@ use emulated_integration_tests_common::{ // Kusama declaration decl_test_relay_chains! { - #[api_version(11)] + #[api_version(12)] pub struct Kusama { genesis = genesis::genesis(), on_init = (), diff --git a/integration-tests/emulated/chains/relays/polkadot/Cargo.toml b/integration-tests/emulated/chains/relays/polkadot/Cargo.toml index 8c6e2c2a15..39240e223b 100644 --- a/integration-tests/emulated/chains/relays/polkadot/Cargo.toml +++ b/integration-tests/emulated/chains/relays/polkadot/Cargo.toml @@ -28,3 +28,13 @@ emulated-integration-tests-common = { workspace = true } # Runtimes polkadot-runtime-constants = { workspace = true, default-features = true } polkadot-runtime = { workspace = true } + +[features] +runtime-benchmarks = [ + "pallet-staking/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-primitives/runtime-benchmarks", + "polkadot-runtime-constants/runtime-benchmarks", + "polkadot-runtime/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", +] diff --git a/integration-tests/emulated/chains/relays/polkadot/src/genesis.rs b/integration-tests/emulated/chains/relays/polkadot/src/genesis.rs index 51bbfcb71c..787a4b18d8 100644 --- a/integration-tests/emulated/chains/relays/polkadot/src/genesis.rs +++ b/integration-tests/emulated/chains/relays/polkadot/src/genesis.rs @@ -17,17 +17,15 @@ use authority_discovery_primitives::AuthorityId as AuthorityDiscoveryId; use babe_primitives::AuthorityId as BabeId; use beefy_primitives::ecdsa_crypto::AuthorityId as BeefyId; +use emulated_integration_tests_common::validators; use grandpa::AuthorityId as GrandpaId; -use sp_core::{sr25519, storage::Storage}; use sp_runtime::Perbill; // Polkadot use polkadot_primitives::{AssignmentId, ValidatorId}; // Cumulus -use emulated_integration_tests_common::{ - accounts, build_genesis_storage, get_account_id_from_seed, get_from_seed, get_host_config, -}; +use emulated_integration_tests_common::{accounts, build_genesis_storage, get_host_config}; use parachains_common::Balance; use polkadot_runtime_constants::currency::UNITS as DOT; @@ -35,35 +33,6 @@ pub const ED: Balance = polkadot_runtime::ExistentialDeposit::get(); const ENDOWMENT: u128 = 1_000_000 * DOT; const STASH: u128 = 100 * DOT; -mod validators { - use super::*; - use parachains_common::AccountId; - - #[allow(clippy::type_complexity)] - pub fn initial_authorities() -> Vec<( - AccountId, - AccountId, - BabeId, - GrandpaId, - ValidatorId, - AssignmentId, - AuthorityDiscoveryId, - BeefyId, - )> { - let seed = "Alice"; - vec![( - get_account_id_from_seed::(&format!("{}//stash", seed)), - get_account_id_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - )] - } -} - fn session_keys( babe: BabeId, grandpa: GrandpaId, @@ -82,7 +51,7 @@ fn session_keys( } } -pub fn genesis() -> Storage { +pub fn genesis() -> sp_core::storage::Storage { let genesis_config = polkadot_runtime::RuntimeGenesisConfig { system: polkadot_runtime::SystemConfig::default(), balances: polkadot_runtime::BalancesConfig { diff --git a/integration-tests/emulated/chains/relays/polkadot/src/lib.rs b/integration-tests/emulated/chains/relays/polkadot/src/lib.rs index 3093c3f3bb..6522f6487d 100644 --- a/integration-tests/emulated/chains/relays/polkadot/src/lib.rs +++ b/integration-tests/emulated/chains/relays/polkadot/src/lib.rs @@ -24,7 +24,7 @@ use emulated_integration_tests_common::{ // Polkadot declaration decl_test_relay_chains! { - #[api_version(11)] + #[api_version(12)] pub struct Polkadot { genesis = genesis::genesis(), on_init = (), diff --git a/integration-tests/emulated/helpers/Cargo.toml b/integration-tests/emulated/helpers/Cargo.toml index b5c6401bf9..633965ed8b 100644 --- a/integration-tests/emulated/helpers/Cargo.toml +++ b/integration-tests/emulated/helpers/Cargo.toml @@ -22,3 +22,11 @@ pallet-xcm = { workspace = true, default-features = true } xcm-emulator = { workspace = true } cumulus-pallet-xcmp-queue = { workspace = true, default-features = true } asset-test-utils = { workspace = true } + +[features] +runtime-benchmarks = [ + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", +] diff --git a/integration-tests/emulated/networks/kusama-polkadot-system/Cargo.toml b/integration-tests/emulated/networks/kusama-polkadot-system/Cargo.toml index 04781b34cd..df7ba37fd5 100644 --- a/integration-tests/emulated/networks/kusama-polkadot-system/Cargo.toml +++ b/integration-tests/emulated/networks/kusama-polkadot-system/Cargo.toml @@ -20,3 +20,14 @@ bridge-hub-polkadot-emulated-chain = { workspace = true } kusama-emulated-chain = { workspace = true } penpal-emulated-chain = { workspace = true } polkadot-emulated-chain = { workspace = true } + +[features] +runtime-benchmarks = [ + "asset-hub-kusama-emulated-chain/runtime-benchmarks", + "asset-hub-polkadot-emulated-chain/runtime-benchmarks", + "bridge-hub-kusama-emulated-chain/runtime-benchmarks", + "bridge-hub-polkadot-emulated-chain/runtime-benchmarks", + "kusama-emulated-chain/runtime-benchmarks", + "penpal-emulated-chain/runtime-benchmarks", + "polkadot-emulated-chain/runtime-benchmarks", +] diff --git a/integration-tests/emulated/networks/kusama-system/Cargo.toml b/integration-tests/emulated/networks/kusama-system/Cargo.toml index 4f8c90bded..fa8b096873 100644 --- a/integration-tests/emulated/networks/kusama-system/Cargo.toml +++ b/integration-tests/emulated/networks/kusama-system/Cargo.toml @@ -19,3 +19,13 @@ kusama-emulated-chain = { workspace = true } penpal-emulated-chain = { workspace = true } people-kusama-emulated-chain = { workspace = true } coretime-kusama-emulated-chain = { workspace = true } + +[features] +runtime-benchmarks = [ + "asset-hub-kusama-emulated-chain/runtime-benchmarks", + "bridge-hub-kusama-emulated-chain/runtime-benchmarks", + "coretime-kusama-emulated-chain/runtime-benchmarks", + "kusama-emulated-chain/runtime-benchmarks", + "penpal-emulated-chain/runtime-benchmarks", + "people-kusama-emulated-chain/runtime-benchmarks", +] diff --git a/integration-tests/emulated/networks/polkadot-system/Cargo.toml b/integration-tests/emulated/networks/polkadot-system/Cargo.toml index 592aad9520..99291896dd 100644 --- a/integration-tests/emulated/networks/polkadot-system/Cargo.toml +++ b/integration-tests/emulated/networks/polkadot-system/Cargo.toml @@ -20,3 +20,14 @@ coretime-polkadot-emulated-chain = { workspace = true } penpal-emulated-chain = { workspace = true } polkadot-emulated-chain = { workspace = true } people-polkadot-emulated-chain = { workspace = true } + +[features] +runtime-benchmarks = [ + "asset-hub-polkadot-emulated-chain/runtime-benchmarks", + "bridge-hub-polkadot-emulated-chain/runtime-benchmarks", + "collectives-polkadot-emulated-chain/runtime-benchmarks", + "coretime-polkadot-emulated-chain/runtime-benchmarks", + "penpal-emulated-chain/runtime-benchmarks", + "people-polkadot-emulated-chain/runtime-benchmarks", + "polkadot-emulated-chain/runtime-benchmarks", +] diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/Cargo.toml b/integration-tests/emulated/tests/assets/asset-hub-kusama/Cargo.toml index 461c279945..31d28b8eed 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/Cargo.toml +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/Cargo.toml @@ -41,3 +41,27 @@ kusama-runtime = { workspace = true } kusama-system-emulated-network = { workspace = true } system-parachains-constants = { workspace = true, default-features = true } kusama-runtime-constants = { workspace = true, default-features = true } + +[features] +runtime-benchmarks = [ + "asset-hub-kusama-runtime/runtime-benchmarks", + "cumulus-pallet-parachain-system/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "integration-tests-helpers/runtime-benchmarks", + "kusama-runtime-constants/runtime-benchmarks", + "kusama-runtime/runtime-benchmarks", + "kusama-system-emulated-network/runtime-benchmarks", + "pallet-asset-conversion/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-treasury/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "system-parachains-constants/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", + "xcm-runtime-apis/runtime-benchmarks", +] diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/lib.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/lib.rs index af4c48a3d0..22ba53d483 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/lib.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/lib.rs @@ -28,7 +28,7 @@ pub use sp_runtime::traits::Dispatchable; // Polkadot pub use xcm::{ prelude::{AccountId32 as AccountId32Junction, *}, - v4::{self, Error, NetworkId::Kusama as KusamaId}, + v5::{self, Error, NetworkId::Kusama as KusamaId}, }; pub use xcm_executor::traits::TransferType; @@ -41,7 +41,7 @@ pub use emulated_integration_tests_common::{ RelayChain as Relay, Test, TestArgs, TestContext, TestExt, }, xcm_helpers::{xcm_transact_paid_execution, xcm_transact_unpaid_execution}, - PROOF_SIZE_THRESHOLD, REF_TIME_THRESHOLD, RESERVABLE_ASSET_ID, XCM_V4, + PROOF_SIZE_THRESHOLD, REF_TIME_THRESHOLD, RESERVABLE_ASSET_ID, XCM_V5, }; pub use integration_tests_helpers::{ test_parachain_is_trusted_teleporter_for_relay, test_relay_is_trusted_teleporter, diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/hybrid_transfers.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/hybrid_transfers.rs index 30926bb422..f2b52ecda6 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/hybrid_transfers.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/hybrid_transfers.rs @@ -165,7 +165,10 @@ fn transfer_foreign_assets_from_asset_hub_to_para() { let assets_owner = PenpalAssetOwner::get(); // Foreign asset used: bridged DOT let foreign_amount_to_send = ASSET_HUB_KUSAMA_ED * 10_000_000; - let dot_at_kusama_parachains = Location::new(2, [GlobalConsensus(Polkadot)]); + let dot_at_kusama_parachains = xcm::v4::Location::new( + 2, + [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)], + ); // Configure destination chain to trust AH as reserve of DOT PenpalA::execute_with(|| { @@ -178,7 +181,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() { )); }); PenpalA::force_create_foreign_asset( - dot_at_kusama_parachains.clone(), + dot_at_kusama_parachains.clone().try_into().unwrap(), assets_owner.clone(), false, ASSET_MIN_BALANCE, @@ -198,10 +201,12 @@ fn transfer_foreign_assets_from_asset_hub_to_para() { foreign_amount_to_send * 2, ); + let dot_at_kusama_parachains_latest: Location = + dot_at_kusama_parachains.clone().try_into().unwrap(); // Assets to send let assets: Vec = vec![ (Parent, native_amount_to_send).into(), - (dot_at_kusama_parachains.clone(), foreign_amount_to_send).into(), + (dot_at_kusama_parachains_latest, foreign_amount_to_send).into(), ]; let fee_asset_id = AssetId(Parent.into()); let fee_asset_item = assets.iter().position(|a| a.id == fee_asset_id).unwrap() as u32; @@ -233,7 +238,10 @@ fn transfer_foreign_assets_from_asset_hub_to_para() { }); let receiver_dots_before = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_kusama_parachains.clone(), &receiver) + >::balance( + dot_at_kusama_parachains.clone().try_into().unwrap(), + &receiver, + ) }); // Set assertions and dispatchables @@ -254,7 +262,10 @@ fn transfer_foreign_assets_from_asset_hub_to_para() { }); let receiver_dots_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_kusama_parachains, &receiver) + >::balance( + dot_at_kusama_parachains.try_into().unwrap(), + &receiver, + ) }); // Sender's balance is reduced by amount sent plus delivery fees @@ -288,7 +299,10 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { // Foreign asset used: bridged DOT let foreign_amount_to_send = ASSET_HUB_KUSAMA_ED * 10_000_000; - let dot_at_kusama_parachains = Location::new(2, [GlobalConsensus(Polkadot)]); + let dot_at_kusama_parachains = xcm::v4::Location::new( + 2, + [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)], + ); // Configure destination chain to trust AH as reserve of DOT PenpalA::execute_with(|| { @@ -301,7 +315,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { )); }); PenpalA::force_create_foreign_asset( - dot_at_kusama_parachains.clone(), + dot_at_kusama_parachains.clone().try_into().unwrap(), assets_owner.clone(), false, ASSET_MIN_BALANCE, @@ -324,7 +338,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { ); PenpalA::mint_foreign_asset( ::RuntimeOrigin::signed(assets_owner.clone()), - dot_at_kusama_parachains.clone(), + dot_at_kusama_parachains.clone().try_into().unwrap(), sender.clone(), foreign_amount_to_send * 2, ); @@ -343,10 +357,12 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { foreign_amount_to_send * 2, ); + let dot_at_kusama_parachains_latest: Location = + dot_at_kusama_parachains.clone().try_into().unwrap(); // Assets to send let assets: Vec = vec![ (Parent, native_amount_to_send).into(), - (dot_at_kusama_parachains.clone(), foreign_amount_to_send).into(), + (dot_at_kusama_parachains_latest.clone(), foreign_amount_to_send).into(), ]; let fee_asset_id = AssetId(Parent.into()); let fee_asset_item = assets.iter().position(|a| a.id == fee_asset_id).unwrap() as u32; @@ -373,7 +389,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { }); let sender_dots_before = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_kusama_parachains.clone(), &sender) + >::balance(dot_at_kusama_parachains_latest.clone(), &sender) }); let receiver_native_before = test.receiver.balance; let receiver_dots_before = AssetHubKusama::execute_with(|| { @@ -394,7 +410,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { }); let sender_dots_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_kusama_parachains.clone(), &sender) + >::balance(dot_at_kusama_parachains_latest.clone(), &sender) }); let receiver_native_after = test.receiver.balance; let receiver_dots_after = AssetHubKusama::execute_with(|| { @@ -456,7 +472,10 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { }); // Register DOT as foreign asset and transfer it around the Kusama ecosystem - let dot_at_kusama_parachains = Location::new(2, [GlobalConsensus(Polkadot)]); + let dot_at_kusama_parachains = xcm::v4::Location::new( + 2, + [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)], + ); AssetHubKusama::force_create_foreign_asset( dot_at_kusama_parachains.clone(), assets_owner.clone(), @@ -465,14 +484,14 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { vec![], ); PenpalA::force_create_foreign_asset( - dot_at_kusama_parachains.clone(), + dot_at_kusama_parachains.clone().try_into().unwrap(), assets_owner.clone(), false, ASSET_MIN_BALANCE, vec![], ); PenpalB::force_create_foreign_asset( - dot_at_kusama_parachains.clone(), + dot_at_kusama_parachains.clone().try_into().unwrap(), assets_owner.clone(), false, ASSET_MIN_BALANCE, @@ -488,7 +507,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { ); PenpalA::mint_foreign_asset( ::RuntimeOrigin::signed(assets_owner.clone()), - dot_at_kusama_parachains.clone(), + dot_at_kusama_parachains.clone().try_into().unwrap(), sender.clone(), dot_to_send * 2, ); @@ -504,10 +523,12 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { // Init values for Parachain Destination let receiver = PenpalBReceiver::get(); + let dot_at_kusama_parachains_latest: Location = + dot_at_kusama_parachains.clone().try_into().unwrap(); // Assets to send let assets: Vec = vec![ (ksm_location.clone(), ksm_to_send).into(), - (dot_at_kusama_parachains.clone(), dot_to_send).into(), + (dot_at_kusama_parachains_latest.clone(), dot_to_send).into(), ]; let fee_asset_id: AssetId = ksm_location.clone().into(); let fee_asset_item = assets.iter().position(|a| a.id == fee_asset_id).unwrap() as u32; @@ -534,7 +555,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { }); let sender_dots_before = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_kusama_parachains.clone(), &sender) + >::balance(dot_at_kusama_parachains_latest.clone(), &sender) }); let ksms_in_sender_reserve_on_ahk_before = ::account_data_of(sov_of_sender_on_ah.clone()).free; @@ -554,7 +575,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { }); let receiver_dots_before = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_kusama_parachains.clone(), &receiver) + >::balance(dot_at_kusama_parachains_latest.clone(), &receiver) }); // Set assertions and dispatchables @@ -571,7 +592,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { }); let sender_dots_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_kusama_parachains.clone(), &sender) + >::balance(dot_at_kusama_parachains_latest.clone(), &sender) }); let dots_in_sender_reserve_on_ahk_after = AssetHubKusama::execute_with(|| { type Assets = ::ForeignAssets; @@ -591,7 +612,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { }); let receiver_dots_after = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_kusama_parachains, &receiver) + >::balance(dot_at_kusama_parachains_latest, &receiver) }); // Sender's balance is reduced by amount sent plus delivery fees @@ -806,11 +827,18 @@ fn usdt_only_transfer_from_para_to_para_through_asset_hub() { let sov_penpal_on_ah = AssetHubKusama::sovereign_account_id_of(penpal_a_as_seen_by_ah); let receiver = PenpalBReceiver::get(); let fee_asset_item = 0; - let usdt_location: Location = - (Parent, Parachain(1000), PalletInstance(50), GeneralIndex(1984)).into(); - let usdt_location_ah: Location = (PalletInstance(50), GeneralIndex(1984)).into(); + let usdt_location: xcm::v4::Location = ( + xcm::v4::Parent, + xcm::v4::Junction::Parachain(1000), + xcm::v4::Junction::PalletInstance(50), + xcm::v4::Junction::GeneralIndex(1984), + ) + .into(); + let usdt_location_ah: xcm::v4::Location = + (xcm::v4::Junction::PalletInstance(50), xcm::v4::Junction::GeneralIndex(1984)).into(); let ksm_location = Location::parent(); - let assets: Vec = vec![(usdt_location.clone(), amount_to_send).into()]; + let usdt_location_latest: Location = usdt_location.clone().try_into().unwrap(); + let assets: Vec = vec![(usdt_location_latest.clone(), amount_to_send).into()]; // Sender needs some ksm to pay for delivery fees. PenpalA::mint_foreign_asset( @@ -832,7 +860,7 @@ fn usdt_only_transfer_from_para_to_para_through_asset_hub() { // Mint USDT to sender to be able to transfer. PenpalA::mint_foreign_asset( ::RuntimeOrigin::signed(PenpalAssetOwner::get()), - usdt_location.clone(), + usdt_location_latest.clone(), sender.clone(), 10_000_000_000_000, ); diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/mod.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/mod.rs index 81b77b9687..e2a7fbdbf0 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/mod.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/mod.rs @@ -29,7 +29,7 @@ macro_rules! foreign_balance_on { emulated_integration_tests_common::impls::paste::paste! { <$chain>::execute_with(|| { type ForeignAssets = <$chain as [<$chain Pallet>]>::ForeignAssets; - >::balance($id, $who) + >::balance($id.try_into().unwrap(), $who) }) } }; @@ -43,17 +43,18 @@ macro_rules! create_pool_with_ksm_on { type RuntimeEvent = <$chain as Chain>::RuntimeEvent; let owner = $asset_owner; let signed_owner = <$chain as Chain>::RuntimeOrigin::signed(owner.clone()); - let ksm_location: Location = Parent.into(); + // AssetHubKusama has v4 asset ids but penpal has v5 asset ids. + let ksm_location: xcm::v4::Location = xcm::v4::Parent.into(); if $is_foreign { assert_ok!(<$chain as [<$chain Pallet>]>::ForeignAssets::mint( signed_owner.clone(), - $asset_id.clone().into(), + $asset_id.clone().try_into().unwrap(), owner.clone().into(), 10_000_000_000_000, // For it to have more than enough. )); } else { let asset_id = match $asset_id.interior.last() { - Some(GeneralIndex(id)) => *id as u32, + Some(xcm::v4::Junction::GeneralIndex(id)) => *id as u32, _ => unreachable!(), }; assert_ok!(<$chain as [<$chain Pallet>]>::Assets::mint( @@ -66,8 +67,8 @@ macro_rules! create_pool_with_ksm_on { assert_ok!(<$chain as [<$chain Pallet>]>::AssetConversion::create_pool( signed_owner.clone(), - Box::new(ksm_location.clone()), - Box::new($asset_id.clone()), + Box::new(ksm_location.clone().try_into().unwrap()), + Box::new($asset_id.clone().try_into().unwrap()), )); assert_expected_events!( @@ -79,8 +80,8 @@ macro_rules! create_pool_with_ksm_on { assert_ok!(<$chain as [<$chain Pallet>]>::AssetConversion::add_liquidity( signed_owner, - Box::new(ksm_location), - Box::new($asset_id), + Box::new(ksm_location.try_into().unwrap()), + Box::new($asset_id.try_into().unwrap()), 1_000_000_000_000, 2_000_000_000_000, // $asset_id is worth half of ksm 0, diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/reserve_transfer.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/reserve_transfer.rs index e3f9b2af88..e3b88814f2 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/reserve_transfer.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/reserve_transfer.rs @@ -1104,7 +1104,7 @@ fn reserve_withdraw_from_untrusted_reserve_fails() { ]); let result = ::PolkadotXcm::execute( signed_origin, - bx!(xcm::VersionedXcm::V4(xcm)), + bx!(xcm::VersionedXcm::V5(xcm)), Weight::MAX, ); assert!(result.is_err()); diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/send.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/send.rs index d5a24ed0f2..dbc8735c25 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/send.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/send.rs @@ -24,7 +24,7 @@ fn send_transact_as_superuser_from_relay_to_asset_hub_works() { ASSET_MIN_BALANCE, true, AssetHubKusamaSender::get(), - Some(Weight::from_parts(1_019_445_000, 200_000)), + Some(Weight::from_parts(177_260_000, 3_675)), ) } @@ -36,15 +36,15 @@ fn send_xcm_from_para_to_asset_hub_paying_fee_with_system_asset() { let para_sovereign_account = AssetHubKusama::sovereign_account_id_of( AssetHubKusama::sibling_location_of(PenpalA::para_id()), ); - let asset_location_on_penpal = v4::Location::new( + let asset_location_on_penpal = xcm::v4::Location::new( 0, [ - v4::Junction::PalletInstance(ASSETS_PALLET_ID), - v4::Junction::GeneralIndex(ASSET_ID.into()), + xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(ASSET_ID.into()), ], ); let foreign_asset_at_asset_hub = - v4::Location::new(1, [v4::Junction::Parachain(PenpalA::para_id().into())]) + xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(PenpalA::para_id().into())]) .appended_with(asset_location_on_penpal) .unwrap(); @@ -124,7 +124,7 @@ fn send_xcm_from_para_to_asset_hub_paying_fee_with_sufficient_asset() { ASSET_MIN_BALANCE, true, para_sovereign_account.clone(), - Some(Weight::from_parts(1_019_445_000, 200_000)), + Some(Weight::from_parts(177_260_000, 3_675)), ASSET_MIN_BALANCE * 1000000000, ); diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/set_xcm_versions.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/set_xcm_versions.rs index b621c7c2b7..e07e421057 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/set_xcm_versions.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/set_xcm_versions.rs @@ -26,7 +26,7 @@ fn relay_sets_system_para_xcm_supported_version() { assert_ok!(::XcmPallet::force_xcm_version( sudo_origin, bx!(system_para_destination.clone()), - XCM_V4 + XCM_V5 )); type RuntimeEvent = ::RuntimeEvent; @@ -36,7 +36,7 @@ fn relay_sets_system_para_xcm_supported_version() { vec![ RuntimeEvent::XcmPallet(pallet_xcm::Event::SupportedVersionChanged { location, - version: XCM_V4 + version: XCM_V5 }) => { location: *location == system_para_destination, }, ] ); @@ -52,7 +52,7 @@ fn system_para_sets_relay_xcm_supported_version() { ::Runtime, >::force_xcm_version { location: bx!(parent_location.clone()), - version: XCM_V4, + version: XCM_V5, }) .encode() .into(); @@ -67,14 +67,14 @@ fn system_para_sets_relay_xcm_supported_version() { AssetHubKusama::execute_with(|| { type RuntimeEvent = ::RuntimeEvent; - AssetHubKusama::assert_dmp_queue_complete(Some(Weight::from_parts(1_019_210_000, 200_000))); + AssetHubKusama::assert_dmp_queue_complete(Some(Weight::from_parts(120_650_000, 0))); assert_expected_events!( AssetHubKusama, vec![ RuntimeEvent::PolkadotXcm(pallet_xcm::Event::SupportedVersionChanged { location, - version: XCM_V4 + version: XCM_V5 }) => { location: *location == parent_location, }, ] ); diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/swap.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/swap.rs index e31b1b6426..c9d67694aa 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/swap.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/swap.rs @@ -20,12 +20,12 @@ use system_parachains_constants::kusama::currency::SYSTEM_PARA_EXISTENTIAL_DEPOS #[test] fn swap_locally_on_chain_using_local_assets() { - let asset_native = Box::new(asset_hub_kusama_runtime::xcm_config::KsmLocation::get()); - let asset_one = Box::new(v4::Location::new( + let asset_native = Box::new(asset_hub_kusama_runtime::xcm_config::KsmLocationV4::get()); + let asset_one = Box::new(xcm::v4::Location::new( 0, [ - v4::Junction::PalletInstance(ASSETS_PALLET_ID), - v4::Junction::GeneralIndex(ASSET_ID.into()), + xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(ASSET_ID.into()), ], )); @@ -116,10 +116,11 @@ fn swap_locally_on_chain_using_local_assets() { #[test] fn swap_locally_on_chain_using_foreign_assets() { - let asset_native = Box::new(asset_hub_kusama_runtime::xcm_config::KsmLocation::get()); - let asset_location_on_penpal = PenpalLocalTeleportableToAssetHub::get(); + let asset_native = Box::new(asset_hub_kusama_runtime::xcm_config::KsmLocationV4::get()); + let asset_location_on_penpal: xcm::v4::Location = + PenpalLocalTeleportableToAssetHub::get().try_into().unwrap(); let foreign_asset_at_asset_hub_kusama = - v4::Location::new(1, [v4::Junction::Parachain(PenpalA::para_id().into())]) + xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(PenpalA::para_id().into())]) .appended_with(asset_location_on_penpal) .unwrap(); @@ -230,9 +231,9 @@ fn swap_locally_on_chain_using_foreign_assets() { #[test] fn cannot_create_pool_from_pool_assets() { - let asset_native = asset_hub_kusama_runtime::xcm_config::KsmLocation::get(); - let asset_one = asset_hub_kusama_runtime::xcm_config::PoolAssetsPalletLocation::get() - .appended_with(GeneralIndex(ASSET_ID.into())) + let asset_native = asset_hub_kusama_runtime::xcm_config::KsmLocationV4::get(); + let asset_one = asset_hub_kusama_runtime::xcm_config::PoolAssetsPalletLocationV4::get() + .appended_with(xcm::v4::Junction::GeneralIndex(ASSET_ID.into())) .expect("valid location"); AssetHubKusama::execute_with(|| { @@ -266,7 +267,8 @@ fn cannot_create_pool_from_pool_assets() { #[test] fn pay_xcm_fee_with_some_asset_swapped_for_native() { - let asset_native: xcm::v4::Location = asset_hub_kusama_runtime::xcm_config::KsmLocation::get(); + let asset_native: xcm::v4::Location = + asset_hub_kusama_runtime::xcm_config::KsmLocationV4::get(); let asset_one = xcm::v4::Location { parents: 0, interior: [ diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/teleport.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/teleport.rs index cd96e6c278..4474c6a4d6 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/teleport.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/teleport.rs @@ -84,8 +84,10 @@ fn penpal_to_ah_foreign_assets_receiver_assertions(t: ParaToSystemParaTest) { let sov_penpal_on_ahk = AssetHubKusama::sovereign_account_id_of( AssetHubKusama::sibling_location_of(PenpalA::para_id()), ); - let (expected_foreign_asset_id, expected_foreign_asset_amount) = + let (expected_foreign_asset_id_latest, expected_foreign_asset_amount) = non_fee_asset(&t.args.assets, t.args.fee_asset_item as usize).unwrap(); + let expected_foreign_asset_id: xcm::v4::Location = + expected_foreign_asset_id_latest.try_into().unwrap(); AssetHubKusama::assert_xcmp_queue_success(None); assert_expected_events!( @@ -114,8 +116,10 @@ fn penpal_to_ah_foreign_assets_receiver_assertions(t: ParaToSystemParaTest) { fn ah_to_penpal_foreign_assets_sender_assertions(t: SystemParaToParaTest) { type RuntimeEvent = ::RuntimeEvent; AssetHubKusama::assert_xcm_pallet_attempted_complete(None); - let (expected_foreign_asset_id, expected_foreign_asset_amount) = + let (expected_foreign_asset_id_latest, expected_foreign_asset_amount) = non_fee_asset(&t.args.assets, t.args.fee_asset_item as usize).unwrap(); + let expected_foreign_asset_id: xcm::v4::Location = + expected_foreign_asset_id_latest.try_into().unwrap(); assert_expected_events!( AssetHubKusama, vec![ @@ -337,10 +341,12 @@ pub fn do_bidirectional_teleport_foreign_assets_between_para_and_asset_hub_using ASSET_HUB_KUSAMA_ED * 100_000_000_000, )]); + let asset_location_on_penpal_v4: xcm::v4::Location = + asset_location_on_penpal.try_into().unwrap(); // Init values for System Parachain let foreign_asset_at_asset_hub_kusama = - Location::new(1, [Junction::Parachain(PenpalA::para_id().into())]) - .appended_with(asset_location_on_penpal) + xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(PenpalA::para_id().into())]) + .appended_with(asset_location_on_penpal_v4) .unwrap(); let penpal_to_ah_beneficiary_id = AssetHubKusamaReceiver::get(); @@ -438,9 +444,11 @@ pub fn do_bidirectional_teleport_foreign_assets_between_para_and_asset_hub_using let ah_to_penpal_beneficiary_id = PenpalAReceiver::get(); let penpal_as_seen_by_ah = AssetHubKusama::sibling_location_of(PenpalA::para_id()); + let foreign_asset_at_asset_hub_kusama_latest: Location = + foreign_asset_at_asset_hub_kusama.clone().try_into().unwrap(); let ah_assets: Assets = vec![ (Parent, fee_amount_to_send).into(), - (foreign_asset_at_asset_hub_kusama.clone(), asset_amount_to_send).into(), + (foreign_asset_at_asset_hub_kusama_latest.clone(), asset_amount_to_send).into(), ] .into(); let fee_asset_index = ah_assets diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/treasury.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/treasury.rs index f060fc96e7..5e635bc9cc 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/treasury.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/treasury.rs @@ -110,7 +110,7 @@ fn spend_ksm_on_asset_hub() { let native_asset_on_asset_hub = Location::parent(); let treasury_spend_call = RuntimeCall::Treasury(pallet_treasury::Call::::spend { - asset_kind: bx!(VersionedLocatableAsset::V4 { + asset_kind: bx!(VersionedLocatableAsset::V5 { location: asset_hub_location.clone(), asset_id: native_asset_on_asset_hub.into(), }), @@ -175,13 +175,13 @@ fn create_and_claim_treasury_spend_in_usdt() { ) .unwrap(); let asset_hub_location = - v4::Location::new(0, v4::Junction::Parachain(AssetHubKusama::para_id().into())); + v5::Location::new(0, v5::Junction::Parachain(AssetHubKusama::para_id().into())); let root = ::RuntimeOrigin::root(); // asset kind to be spend from the treasury. - let asset_kind = VersionedLocatableAsset::V4 { + let asset_kind = VersionedLocatableAsset::V5 { location: asset_hub_location, - asset_id: v4::AssetId( - (v4::Junction::PalletInstance(50), v4::Junction::GeneralIndex(USDT_ID.into())).into(), + asset_id: v5::AssetId( + (v5::Junction::PalletInstance(50), v5::Junction::GeneralIndex(USDT_ID.into())).into(), ), }; // treasury spend beneficiary. diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/Cargo.toml b/integration-tests/emulated/tests/assets/asset-hub-polkadot/Cargo.toml index f212448067..42fc127f20 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/Cargo.toml +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/Cargo.toml @@ -41,3 +41,26 @@ integration-tests-helpers = { workspace = true } polkadot-runtime = { workspace = true } polkadot-system-emulated-network = { workspace = true } system-parachains-constants = { workspace = true, default-features = true } + +[features] +runtime-benchmarks = [ + "asset-hub-polkadot-runtime/runtime-benchmarks", + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "integration-tests-helpers/runtime-benchmarks", + "pallet-asset-conversion/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-treasury/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "polkadot-runtime/runtime-benchmarks", + "polkadot-system-emulated-network/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "system-parachains-constants/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", + "xcm-runtime-apis/runtime-benchmarks", +] diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/lib.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/lib.rs index e47727b67b..aea6dc6647 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/lib.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/lib.rs @@ -30,7 +30,7 @@ pub use sp_runtime::traits::Dispatchable; // Polkadot pub use xcm::{ prelude::{AccountId32 as AccountId32Junction, *}, - v4::{self, Error, NetworkId::Polkadot as PolkadotId}, + v5::{self, Error, NetworkId::Polkadot as PolkadotId}, }; pub use xcm_executor::traits::TransferType; diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/fellowship_treasury.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/fellowship_treasury.rs index e1783f63b4..e1218805d3 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/fellowship_treasury.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/fellowship_treasury.rs @@ -40,13 +40,13 @@ fn create_and_claim_treasury_spend_in_usdt() { ) .unwrap(); let asset_hub_location = - v4::Location::new(1, v4::Junction::Parachain(AssetHubPolkadot::para_id().into())); + v5::Location::new(1, v5::Junction::Parachain(AssetHubPolkadot::para_id().into())); let root = ::RuntimeOrigin::root(); // asset kind to be spent from the treasury. - let asset_kind = VersionedLocatableAsset::V4 { + let asset_kind = VersionedLocatableAsset::V5 { location: asset_hub_location, - asset_id: v4::AssetId( - (v4::Junction::PalletInstance(50), v4::Junction::GeneralIndex(USDT_ID.into())).into(), + asset_id: v5::AssetId( + (v5::Junction::PalletInstance(50), v5::Junction::GeneralIndex(USDT_ID.into())).into(), ), }; // treasury spend beneficiary. diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/hybrid_transfers.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/hybrid_transfers.rs index daf4f7a6b1..52cc456698 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/hybrid_transfers.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/hybrid_transfers.rs @@ -187,7 +187,10 @@ fn transfer_foreign_assets_from_asset_hub_to_para() { let assets_owner = PenpalAssetOwner::get(); // Foreign asset used: bridged KSM let foreign_amount_to_send = ASSET_HUB_POLKADOT_ED * 10_000_000; - let ksm_at_polkadot_parachains = Location::new(2, [GlobalConsensus(Kusama)]); + let ksm_at_polkadot_parachains = + xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Kusama)]); + let ksm_at_polkadot_parachains_latest: Location = + ksm_at_polkadot_parachains.clone().try_into().unwrap(); // Configure destination chain to trust AH as reserve of KSM PenpalB::execute_with(|| { @@ -200,7 +203,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() { )); }); PenpalB::force_create_foreign_asset( - ksm_at_polkadot_parachains.clone(), + ksm_at_polkadot_parachains_latest.clone(), assets_owner.clone(), false, ASSET_MIN_BALANCE, @@ -223,7 +226,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() { // Assets to send let assets: Vec = vec![ (Parent, native_amount_to_send).into(), - (ksm_at_polkadot_parachains.clone(), foreign_amount_to_send).into(), + (ksm_at_polkadot_parachains_latest.clone(), foreign_amount_to_send).into(), ]; let fee_asset_id = AssetId(Parent.into()); let fee_asset_item = assets.iter().position(|a| a.id == fee_asset_id).unwrap() as u32; @@ -255,7 +258,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() { }); let receiver_ksm_before = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_polkadot_parachains.clone(), &receiver) + >::balance(ksm_at_polkadot_parachains_latest.clone(), &receiver) }); // Set assertions and dispatchables @@ -276,7 +279,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() { }); let receiver_ksm_after = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_polkadot_parachains, &receiver) + >::balance(ksm_at_polkadot_parachains_latest, &receiver) }); // Sender's balance is reduced by amount sent plus delivery fees @@ -310,7 +313,10 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { // Foreign asset used: bridged KSM let foreign_amount_to_send = ASSET_HUB_POLKADOT_ED * 10_000_000; - let ksm_at_polkadot_parachains = Location::new(2, [GlobalConsensus(Kusama)]); + let ksm_at_polkadot_parachains = + xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Kusama)]); + let ksm_at_polkadot_parachains_latest: Location = + ksm_at_polkadot_parachains.clone().try_into().unwrap(); // Configure destination chain to trust AH as reserve of KSM PenpalB::execute_with(|| { @@ -323,7 +329,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { )); }); PenpalB::force_create_foreign_asset( - ksm_at_polkadot_parachains.clone(), + ksm_at_polkadot_parachains_latest.clone(), assets_owner.clone(), false, ASSET_MIN_BALANCE, @@ -346,7 +352,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { ); PenpalB::mint_foreign_asset( ::RuntimeOrigin::signed(assets_owner.clone()), - ksm_at_polkadot_parachains.clone(), + ksm_at_polkadot_parachains_latest.clone(), sender.clone(), foreign_amount_to_send * 2, ); @@ -369,7 +375,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { // Assets to send let assets: Vec = vec![ (Parent, native_amount_to_send).into(), - (ksm_at_polkadot_parachains.clone(), foreign_amount_to_send).into(), + (ksm_at_polkadot_parachains_latest.clone(), foreign_amount_to_send).into(), ]; let fee_asset_id = AssetId(Parent.into()); let fee_asset_item = assets.iter().position(|a| a.id == fee_asset_id).unwrap() as u32; @@ -396,7 +402,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { }); let sender_ksm_before = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_polkadot_parachains.clone(), &sender) + >::balance(ksm_at_polkadot_parachains_latest.clone(), &sender) }); let receiver_native_before = test.receiver.balance; let receiver_ksm_before = AssetHubPolkadot::execute_with(|| { @@ -417,7 +423,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() { }); let sender_ksm_after = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_polkadot_parachains.clone(), &sender) + >::balance(ksm_at_polkadot_parachains_latest.clone(), &sender) }); let receiver_native_after = test.receiver.balance; let receiver_ksm_after = AssetHubPolkadot::execute_with(|| { @@ -479,7 +485,10 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { }); // Register KSM as foreign asset and transfer it around the Polkadot ecosystem - let ksm_at_polkadot_parachains = Location::new(2, [GlobalConsensus(Kusama)]); + let ksm_at_polkadot_parachains = + xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Kusama)]); + let ksm_at_polkadot_parachains_latest: Location = + ksm_at_polkadot_parachains.clone().try_into().unwrap(); AssetHubPolkadot::force_create_foreign_asset( ksm_at_polkadot_parachains.clone(), assets_owner.clone(), @@ -488,14 +497,14 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { vec![], ); PenpalB::force_create_foreign_asset( - ksm_at_polkadot_parachains.clone(), + ksm_at_polkadot_parachains_latest.clone(), assets_owner.clone(), false, ASSET_MIN_BALANCE, vec![], ); PenpalA::force_create_foreign_asset( - ksm_at_polkadot_parachains.clone(), + ksm_at_polkadot_parachains_latest.clone(), assets_owner.clone(), false, ASSET_MIN_BALANCE, @@ -511,7 +520,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { ); PenpalB::mint_foreign_asset( ::RuntimeOrigin::signed(assets_owner.clone()), - ksm_at_polkadot_parachains.clone(), + ksm_at_polkadot_parachains_latest.clone(), sender.clone(), ksm_to_send * 2, ); @@ -530,7 +539,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { // Assets to send let assets: Vec = vec![ (dot_location.clone(), dot_to_send).into(), - (ksm_at_polkadot_parachains.clone(), ksm_to_send).into(), + (ksm_at_polkadot_parachains_latest.clone(), ksm_to_send).into(), ]; let fee_asset_id: AssetId = dot_location.clone().into(); let fee_asset_item = assets.iter().position(|a| a.id == fee_asset_id).unwrap() as u32; @@ -557,7 +566,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { }); let sender_ksm_before = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_polkadot_parachains.clone(), &sender) + >::balance(ksm_at_polkadot_parachains_latest.clone(), &sender) }); let dot_in_sender_reserve_on_ahp_before = ::account_data_of(sov_of_sender_on_ah.clone()).free; @@ -577,7 +586,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { }); let receiver_ksm_before = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_polkadot_parachains.clone(), &receiver) + >::balance(ksm_at_polkadot_parachains_latest.clone(), &receiver) }); // Set assertions and dispatchables @@ -594,7 +603,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { }); let sender_ksm_after = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_polkadot_parachains.clone(), &sender) + >::balance(ksm_at_polkadot_parachains_latest.clone(), &sender) }); let ksm_in_sender_reserve_on_ahp_after = AssetHubPolkadot::execute_with(|| { type Assets = ::ForeignAssets; @@ -614,7 +623,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() { }); let receiver_ksm_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_polkadot_parachains, &receiver) + >::balance(ksm_at_polkadot_parachains_latest, &receiver) }); // Sender's balance is reduced by amount sent plus delivery fees diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/mod.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/mod.rs index 5e7d4e1b4e..65bc8d1eae 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/mod.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/mod.rs @@ -44,11 +44,12 @@ macro_rules! create_pool_with_dot_on { type RuntimeEvent = <$chain as Chain>::RuntimeEvent; let owner = $asset_owner; let signed_owner = <$chain as Chain>::RuntimeOrigin::signed(owner.clone()); - let dot_location: Location = Parent.into(); + // AssetHubPolkadot has v4 asset ids, Penpal has v5 asset ids. + let dot_location: xcm::v4::Location = xcm::v4::Parent.into(); if $is_foreign { assert_ok!(<$chain as [<$chain Pallet>]>::ForeignAssets::mint( signed_owner.clone(), - $asset_id.clone().into(), + $asset_id.clone().try_into().unwrap(), owner.clone().into(), 10_000_000_000_000, // For it to have more than enough. )); @@ -67,8 +68,8 @@ macro_rules! create_pool_with_dot_on { assert_ok!(<$chain as [<$chain Pallet>]>::AssetConversion::create_pool( signed_owner.clone(), - Box::new(dot_location.clone()), - Box::new($asset_id.clone()), + Box::new(dot_location.clone().try_into().unwrap()), + Box::new($asset_id.clone().try_into().unwrap()), )); assert_expected_events!( @@ -80,8 +81,8 @@ macro_rules! create_pool_with_dot_on { assert_ok!(<$chain as [<$chain Pallet>]>::AssetConversion::add_liquidity( signed_owner, - Box::new(dot_location), - Box::new($asset_id), + Box::new(dot_location.try_into().unwrap()), + Box::new($asset_id.try_into().unwrap()), 1_000_000_000_000, 2_000_000_000_000, // $asset_id is worth half of dot 0, diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/send.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/send.rs index 23e6fe4323..40065e62a1 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/send.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/send.rs @@ -24,7 +24,7 @@ fn send_transact_as_superuser_from_relay_to_asset_hub_works() { ASSET_MIN_BALANCE, true, AssetHubPolkadotSender::get(), - Some(Weight::from_parts(1_019_445_000, 200_000)), + Some(Weight::from_parts(177_700_000, 3_675)), ) } @@ -36,15 +36,15 @@ fn send_xcm_from_para_to_asset_hub_paying_fee_with_system_asset() { let para_sovereign_account = AssetHubPolkadot::sovereign_account_id_of( AssetHubPolkadot::sibling_location_of(PenpalA::para_id()), ); - let asset_location_on_penpal = v4::Location::new( + let asset_location_on_penpal = xcm::v4::Location::new( 0, [ - v4::Junction::PalletInstance(ASSETS_PALLET_ID), - v4::Junction::GeneralIndex(ASSET_ID.into()), + xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(ASSET_ID.into()), ], ); let foreign_asset_at_asset_hub = - v4::Location::new(1, [v4::Junction::Parachain(PenpalA::para_id().into())]) + xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(PenpalA::para_id().into())]) .appended_with(asset_location_on_penpal) .unwrap(); @@ -124,7 +124,7 @@ fn send_xcm_from_para_to_asset_hub_paying_fee_with_sufficient_asset() { ASSET_MIN_BALANCE, true, para_sovereign_account.clone(), - Some(Weight::from_parts(1_019_445_000, 200_000)), + Some(Weight::from_parts(177_700_000, 3_675)), ASSET_MIN_BALANCE * 1000000000, ); diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/set_xcm_versions.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/set_xcm_versions.rs index 1835b2931c..9e7f48ea9a 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/set_xcm_versions.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/set_xcm_versions.rs @@ -68,10 +68,7 @@ fn system_para_sets_relay_xcm_supported_version() { AssetHubPolkadot::execute_with(|| { type RuntimeEvent = ::RuntimeEvent; - AssetHubPolkadot::assert_dmp_queue_complete(Some(Weight::from_parts( - 1_019_210_000, - 200_000, - ))); + AssetHubPolkadot::assert_dmp_queue_complete(Some(Weight::from_parts(121_010_000, 0))); assert_expected_events!( AssetHubPolkadot, diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/swap.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/swap.rs index c3188c67b4..a707bf471b 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/swap.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/swap.rs @@ -21,12 +21,12 @@ use system_parachains_constants::polkadot::currency::SYSTEM_PARA_EXISTENTIAL_DEP fn swap_locally_on_chain_using_local_assets() { use frame_support::traits::fungible::Mutate; - let asset_native = asset_hub_polkadot_runtime::xcm_config::DotLocation::get(); - let asset_one = v4::Location::new( + let asset_native = asset_hub_polkadot_runtime::xcm_config::DotLocationV4::get(); + let asset_one = xcm::v4::Location::new( 0, [ - v4::Junction::PalletInstance(ASSETS_PALLET_ID), - v4::Junction::GeneralIndex(ASSET_ID.into()), + xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(ASSET_ID.into()), ], ); @@ -125,10 +125,11 @@ fn swap_locally_on_chain_using_local_assets() { #[test] fn swap_locally_on_chain_using_foreign_assets() { - let asset_native = Box::new(asset_hub_polkadot_runtime::xcm_config::DotLocation::get()); - let asset_location_on_penpal = PenpalLocalTeleportableToAssetHub::get(); + let asset_native = Box::new(asset_hub_polkadot_runtime::xcm_config::DotLocationV4::get()); + let asset_location_on_penpal: xcm::v4::Location = + PenpalLocalTeleportableToAssetHub::get().try_into().unwrap(); let foreign_asset_at_asset_hub_polkadot = - v4::Location::new(1, [v4::Junction::Parachain(PenpalA::para_id().into())]) + xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(PenpalA::para_id().into())]) .appended_with(asset_location_on_penpal) .unwrap(); @@ -244,9 +245,9 @@ fn swap_locally_on_chain_using_foreign_assets() { fn cannot_create_pool_from_pool_assets() { use frame_support::traits::fungibles::{Create, Mutate}; - let asset_native = asset_hub_polkadot_runtime::xcm_config::DotLocation::get(); - let asset_one = asset_hub_polkadot_runtime::xcm_config::PoolAssetsPalletLocation::get() - .appended_with(GeneralIndex(ASSET_ID.into())) + let asset_native = asset_hub_polkadot_runtime::xcm_config::DotLocationV4::get(); + let asset_one = asset_hub_polkadot_runtime::xcm_config::PoolAssetsPalletLocationV4::get() + .appended_with(xcm::v4::Junction::GeneralIndex(ASSET_ID.into())) .expect("valid location"); AssetHubPolkadot::execute_with(|| { @@ -282,7 +283,7 @@ fn pay_xcm_fee_with_some_asset_swapped_for_native() { use frame_support::traits::fungible::Mutate; let asset_native: xcm::v4::Location = - asset_hub_polkadot_runtime::xcm_config::DotLocation::get(); + asset_hub_polkadot_runtime::xcm_config::DotLocationV4::get(); let asset_one = xcm::v4::Location { parents: 0, interior: [ diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/teleport.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/teleport.rs index 506ed270ed..fbf1526705 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/teleport.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/teleport.rs @@ -84,8 +84,10 @@ fn penpal_to_ah_foreign_assets_receiver_assertions(t: ParaToSystemParaTest) { let sov_penpal_on_ahk = AssetHubPolkadot::sovereign_account_id_of( AssetHubPolkadot::sibling_location_of(PenpalB::para_id()), ); - let (expected_foreign_asset_id, expected_foreign_asset_amount) = + let (expected_foreign_asset_id_latest, expected_foreign_asset_amount) = non_fee_asset(&t.args.assets, t.args.fee_asset_item as usize).unwrap(); + let expected_foreign_asset_id: xcm::v4::Location = + expected_foreign_asset_id_latest.try_into().unwrap(); AssetHubPolkadot::assert_xcmp_queue_success(None); assert_expected_events!( AssetHubPolkadot, @@ -113,8 +115,10 @@ fn penpal_to_ah_foreign_assets_receiver_assertions(t: ParaToSystemParaTest) { fn ah_to_penpal_foreign_assets_sender_assertions(t: SystemParaToParaTest) { type RuntimeEvent = ::RuntimeEvent; AssetHubPolkadot::assert_xcm_pallet_attempted_complete(None); - let (expected_foreign_asset_id, expected_foreign_asset_amount) = + let (expected_foreign_asset_id_latest, expected_foreign_asset_amount) = non_fee_asset(&t.args.assets, t.args.fee_asset_item as usize).unwrap(); + let expected_foreign_asset_id: xcm::v4::Location = + expected_foreign_asset_id_latest.try_into().unwrap(); assert_expected_events!( AssetHubPolkadot, vec![ @@ -337,9 +341,11 @@ pub fn do_bidirectional_teleport_foreign_assets_between_para_and_asset_hub_using )]); // Init values for System Parachain + let asset_location_on_penpal_v4: xcm::v4::Location = + asset_location_on_penpal.clone().try_into().unwrap(); let foreign_asset_at_asset_hub_polkadot = - Location::new(1, [Junction::Parachain(PenpalB::para_id().into())]) - .appended_with(asset_location_on_penpal) + xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(PenpalB::para_id().into())]) + .appended_with(asset_location_on_penpal_v4) .unwrap(); let penpal_to_ah_beneficiary_id = AssetHubPolkadotReceiver::get(); @@ -437,9 +443,11 @@ pub fn do_bidirectional_teleport_foreign_assets_between_para_and_asset_hub_using let ah_to_penpal_beneficiary_id = PenpalBReceiver::get(); let penpal_as_seen_by_ah = AssetHubPolkadot::sibling_location_of(PenpalB::para_id()); + let foreign_asset_at_asset_hub_polkadot_latest: Location = + foreign_asset_at_asset_hub_polkadot.clone().try_into().unwrap(); let ah_assets: Assets = vec![ (Parent, fee_amount_to_send).into(), - (foreign_asset_at_asset_hub_polkadot.clone(), asset_amount_to_send).into(), + (foreign_asset_at_asset_hub_polkadot_latest.clone(), asset_amount_to_send).into(), ] .into(); let fee_asset_index = ah_assets diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/treasury.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/treasury.rs index 57319bb5fe..48a518d7d0 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/treasury.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/treasury.rs @@ -32,13 +32,13 @@ fn create_and_claim_treasury_spend_in_usdt() { ) .unwrap(); let asset_hub_location = - v4::Location::new(0, v4::Junction::Parachain(AssetHubPolkadot::para_id().into())); + v5::Location::new(0, v5::Junction::Parachain(AssetHubPolkadot::para_id().into())); let root = ::RuntimeOrigin::root(); // asset kind to be spend from the treasury. - let asset_kind = VersionedLocatableAsset::V4 { + let asset_kind = VersionedLocatableAsset::V5 { location: asset_hub_location, - asset_id: v4::AssetId( - (v4::Junction::PalletInstance(50), v4::Junction::GeneralIndex(USDT_ID.into())).into(), + asset_id: v5::AssetId( + (v5::Junction::PalletInstance(50), v5::Junction::GeneralIndex(USDT_ID.into())).into(), ), }; // treasury spend beneficiary. diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/Cargo.toml b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/Cargo.toml index 2e017144eb..f26006d8f3 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/Cargo.toml +++ b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/Cargo.toml @@ -52,3 +52,31 @@ snowbridge-router-primitives = { workspace = true, default-features = true } snowbridge-pallet-system = { workspace = true, default-features = true } snowbridge-pallet-outbound-queue = { workspace = true, default-features = true } snowbridge-pallet-inbound-queue-fixtures = { workspace = true } + +[features] +runtime-benchmarks = [ + "asset-hub-kusama-runtime/runtime-benchmarks", + "bp-bridge-hub-kusama/runtime-benchmarks", + "bridge-hub-kusama-runtime/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "integration-tests-helpers/runtime-benchmarks", + "kusama-polkadot-system-emulated-network/runtime-benchmarks", + "kusama-system-emulated-network/runtime-benchmarks", + "pallet-asset-conversion/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-bridge-messages/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "snowbridge-core/runtime-benchmarks", + "snowbridge-pallet-inbound-queue-fixtures/runtime-benchmarks", + "snowbridge-pallet-outbound-queue/runtime-benchmarks", + "snowbridge-pallet-system/runtime-benchmarks", + "snowbridge-router-primitives/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "system-parachains-constants/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", + "xcm-runtime-apis/runtime-benchmarks", +] diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/lib.rs b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/lib.rs index 9bdf33e39e..9eb1aa5f49 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/lib.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/lib.rs @@ -22,7 +22,7 @@ pub use sp_runtime::{traits::Dispatchable, DispatchError}; pub use xcm::{ latest::ParentThen, prelude::{AccountId32 as AccountId32Junction, *}, - v4::{ + v5::{ self, Error, NetworkId::{Kusama as KusamaId, Polkadot as PolkadotId}, }, diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/asset_transfers.rs b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/asset_transfers.rs index a9c7cc2748..f17f9493b5 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/asset_transfers.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/asset_transfers.rs @@ -36,9 +36,13 @@ fn send_assets_over_bridge(send_fn: F) { fn set_up_ksm_for_penpal_kusama_through_kah_to_pah( sender: &AccountId, amount: u128, -) -> (Location, v4::Location) { +) -> (xcm::v4::Location, xcm::v5::Location, xcm::v4::Location, xcm::v5::Location) { let ksm_at_kusama_parachains = ksm_at_ah_kusama(); + let ksm_at_kusama_parachains_latest: Location = + ksm_at_kusama_parachains.clone().try_into().unwrap(); let ksm_at_asset_hub_polkadot = bridged_ksm_at_ah_polkadot(); + let ksm_at_asset_hub_polkadot_latest: Location = + ksm_at_asset_hub_polkadot.clone().try_into().unwrap(); create_foreign_on_ah_polkadot(ksm_at_asset_hub_polkadot.clone(), true); let penpal_location = AssetHubKusama::sibling_location_of(PenpalA::para_id()); @@ -48,11 +52,16 @@ fn set_up_ksm_for_penpal_kusama_through_kah_to_pah( // fund Penpal's sender account PenpalA::mint_foreign_asset( ::RuntimeOrigin::signed(PenpalAssetOwner::get()), - ksm_at_kusama_parachains.clone(), + ksm_at_kusama_parachains_latest.clone(), sender.clone(), amount * 2, ); - (ksm_at_kusama_parachains, ksm_at_asset_hub_polkadot) + ( + ksm_at_kusama_parachains, + ksm_at_kusama_parachains_latest, + ksm_at_asset_hub_polkadot, + ksm_at_asset_hub_polkadot_latest, + ) } fn send_assets_from_penpal_kusama_through_kusama_ah_to_polkadot_ah( @@ -131,7 +140,8 @@ fn send_ksm_from_asset_hub_kusama_to_asset_hub_polkadot() { let receiver_ksms_before = foreign_balance_on_ah_polkadot(bridged_ksm_at_ah_polkadot.clone(), &receiver); - let ksm_at_ah_kusama_latest = ksm_at_ah_kusama(); + let ksm_at_ah_kusama = ksm_at_ah_kusama(); + let ksm_at_ah_kusama_latest: Location = ksm_at_ah_kusama.clone().try_into().unwrap(); // send KSMs, use them for fees send_assets_over_bridge(|| { @@ -212,9 +222,10 @@ fn send_back_dot_usdt_and_weth_from_asset_hub_kusama_to_asset_hub_polkadot() { let receiver_dot_before = ::account_data_of(receiver.clone()).free; // send back DOTs, use them for fees + let bridged_dot_at_ah_kusama_latest: Location = bridged_dot_at_ah_kusama().try_into().unwrap(); send_assets_over_bridge(|| { let destination = asset_hub_polkadot_location(); - let assets: Assets = (bridged_dot_at_ah_kusama(), amount_to_send).into(); + let assets: Assets = (bridged_dot_at_ah_kusama_latest, amount_to_send).into(); let fee_idx = 0; assert_ok!(send_assets_from_asset_hub_kusama(destination, assets, fee_idx)); }); @@ -300,11 +311,14 @@ fn send_back_dot_usdt_and_weth_from_asset_hub_kusama_to_asset_hub_polkadot() { let receiver_weth_before = foreign_balance_on_ah_polkadot(bridged_weth_at_ah.clone(), &receiver); - let usdt_id: AssetId = bridged_usdt_at_asset_hub_kusama.into(); + let bridged_weth_at_ah_latest: Location = bridged_weth_at_ah.clone().try_into().unwrap(); + let bridged_usdt_at_asset_hub_kusama_latest: Location = + bridged_usdt_at_asset_hub_kusama.clone().try_into().unwrap(); + let usdt_id: AssetId = bridged_usdt_at_asset_hub_kusama_latest.into(); // send USDTs and wETHs let assets: Assets = vec![ (usdt_id.clone(), amount_to_send).into(), - (bridged_weth_at_ah.clone(), amount_to_send).into(), + (bridged_weth_at_ah_latest.clone(), amount_to_send).into(), ] .into(); // use USDT for fees @@ -353,7 +367,7 @@ fn send_ksm_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkadot() let sender = PenpalASender::get(); let receiver = AssetHubPolkadotReceiver::get(); let local_asset_hub = PenpalA::sibling_location_of(AssetHubKusama::para_id()); - let (ksm_at_kusama_parachains, ksm_at_asset_hub_polkadot) = + let (ksm_at_kusama_parachains, ksm_at_kusama_parachains_latest, ksm_at_asset_hub_polkadot, _) = set_up_ksm_for_penpal_kusama_through_kah_to_pah(&sender, amount); let sov_pah_on_kah = AssetHubKusama::sovereign_account_of_parachain_on_other_global_consensus( @@ -364,7 +378,7 @@ fn send_ksm_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkadot() ::account_data_of(sov_pah_on_kah.clone()).free; let sender_ksm_before = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_kusama_parachains.clone(), &sender) + >::balance(ksm_at_kusama_parachains_latest.clone(), &sender) }); let receiver_ksm_before = foreign_balance_on_ah_polkadot(ksm_at_asset_hub_polkadot.clone(), &receiver); @@ -372,9 +386,9 @@ fn send_ksm_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkadot() // Send KSMs over bridge { let destination = asset_hub_polkadot_location(); - let assets: Assets = (ksm_at_kusama_parachains.clone(), amount).into(); + let assets: Assets = (ksm_at_kusama_parachains_latest.clone(), amount).into(); let asset_transfer_type = TransferType::RemoteReserve(local_asset_hub.clone().into()); - let fees_id: AssetId = ksm_at_kusama_parachains.clone().into(); + let fees_id: AssetId = ksm_at_kusama_parachains_latest.clone().into(); let fees_transfer_type = TransferType::RemoteReserve(local_asset_hub.into()); let beneficiary: Location = AccountId32Junction { network: None, id: receiver.clone().into() }.into(); @@ -411,7 +425,7 @@ fn send_ksm_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkadot() let sender_ksm_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_kusama_parachains, &sender) + >::balance(ksm_at_kusama_parachains_latest, &sender) }); let receiver_ksm_after = foreign_balance_on_ah_polkadot(ksm_at_asset_hub_polkadot, &receiver); let ksm_in_reserve_on_kah_after = @@ -429,12 +443,14 @@ fn send_ksm_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkadot() #[test] fn send_back_dot_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkadot() { let dot_at_kusama_parachains = bridged_dot_at_ah_kusama(); + let dot_at_kusama_parachains_latest: Location = + dot_at_kusama_parachains.clone().try_into().unwrap(); let amount = ASSET_HUB_KUSAMA_ED * 10_000_000; let sender = PenpalASender::get(); let receiver = AssetHubPolkadotReceiver::get(); // set up KSMs for transfer - let (ksm_at_kusama_parachains, _) = + let (_, ksm_at_kusama_parachains_latest, _, _) = set_up_ksm_for_penpal_kusama_through_kah_to_pah(&sender, amount); // set up DOTs for transfer @@ -444,7 +460,7 @@ fn send_back_dot_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkad create_foreign_on_ah_kusama(dot_at_kusama_parachains.clone(), true, prefund_accounts); let asset_owner: AccountId = AssetHubKusama::account_id_of(ALICE); PenpalA::force_create_foreign_asset( - dot_at_kusama_parachains.clone(), + dot_at_kusama_parachains_latest.clone(), asset_owner.clone(), true, ASSET_MIN_BALANCE, @@ -456,7 +472,7 @@ fn send_back_dot_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkad ::RuntimeOrigin::root(), vec![( PenpalCustomizableAssetFromSystemAssetHub::key().to_vec(), - dot_at_kusama_parachains.encode(), + dot_at_kusama_parachains_latest.encode(), )], )); }); @@ -471,7 +487,7 @@ fn send_back_dot_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkad // balances before let sender_dot_before = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_kusama_parachains.clone(), &sender) + >::balance(dot_at_kusama_parachains_latest.clone(), &sender) }); let receiver_dot_before = ::account_data_of(receiver.clone()).free; @@ -484,7 +500,7 @@ fn send_back_dot_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkad // what happens at final destination let beneficiary = AccountId32Junction { network: None, id: receiver.clone().into() }.into(); // use DOT as fees on the final destination (PAH) - let remote_fees: Asset = (dot_at_kusama_parachains.clone(), amount).into(); + let remote_fees: Asset = (dot_at_kusama_parachains_latest.clone(), amount).into(); let remote_fees = remote_fees.reanchored(&final_destination, &context).unwrap(); // buy execution using DOTs, then deposit all remaining DOTs let xcm_on_final_dest = Xcm::<()>(vec![ @@ -497,7 +513,7 @@ fn send_back_dot_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkad let mut final_destination = final_destination.clone(); final_destination.reanchor(&intermediary_hop, &context).unwrap(); // reanchor DOTs to the view of hop (Asset Hub Kusama) - let asset: Asset = (dot_at_kusama_parachains.clone(), amount).into(); + let asset: Asset = (dot_at_kusama_parachains_latest.clone(), amount).into(); let asset = asset.reanchored(&intermediary_hop, &context).unwrap(); // on Asset Hub Kusama, forward a request to withdraw DOTs from reserve on Asset Hub // Polkadot @@ -508,12 +524,12 @@ fn send_back_dot_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkad }]); // assets to send from Penpal and how they reach the intermediary hop let assets: Assets = vec![ - (dot_at_kusama_parachains.clone(), amount).into(), - (ksm_at_kusama_parachains.clone(), amount).into(), + (dot_at_kusama_parachains_latest.clone(), amount).into(), + (ksm_at_kusama_parachains_latest.clone(), amount).into(), ] .into(); let asset_transfer_type = TransferType::DestinationReserve; - let fees_id: AssetId = ksm_at_kusama_parachains.into(); + let fees_id: AssetId = ksm_at_kusama_parachains_latest.into(); let fees_transfer_type = TransferType::DestinationReserve; // initiate the transfer @@ -543,7 +559,7 @@ fn send_back_dot_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkad let sender_dot_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_kusama_parachains, &sender) + >::balance(dot_at_kusama_parachains_latest, &sender) }); let receiver_dot_after = ::account_data_of(receiver).free; diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/mod.rs b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/mod.rs index b6edd6a076..d4f370268a 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/mod.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/mod.rs @@ -35,47 +35,55 @@ pub(crate) fn bridge_hub_polkadot_location() -> Location { } // KSM and wKSM -pub(crate) fn ksm_at_ah_kusama() -> Location { - Parent.into() +pub(crate) fn ksm_at_ah_kusama() -> xcm::v4::Location { + xcm::v4::Parent.into() } -pub(crate) fn bridged_ksm_at_ah_polkadot() -> Location { - Location::new(2, [GlobalConsensus(Kusama)]) +pub(crate) fn bridged_ksm_at_ah_polkadot() -> xcm::v4::Location { + xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Kusama)]) } // wDOT -pub(crate) fn bridged_dot_at_ah_kusama() -> Location { - Location::new(2, [GlobalConsensus(Polkadot)]) +pub(crate) fn bridged_dot_at_ah_kusama() -> xcm::v4::Location { + xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)]) } // USDT and wUSDT -pub(crate) fn usdt_at_ah_polkadot() -> Location { - Location::new(0, [PalletInstance(ASSETS_PALLET_ID), GeneralIndex(USDT_ID.into())]) +pub(crate) fn usdt_at_ah_polkadot() -> xcm::v4::Location { + xcm::v4::Location::new( + 0, + [ + xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(USDT_ID.into()), + ], + ) } -pub(crate) fn bridged_usdt_at_ah_kusama() -> Location { - Location::new( +pub(crate) fn bridged_usdt_at_ah_kusama() -> xcm::v4::Location { + xcm::v4::Location::new( 2, [ - GlobalConsensus(Polkadot), - Parachain(AssetHubPolkadot::para_id().into()), - PalletInstance(ASSETS_PALLET_ID), - GeneralIndex(USDT_ID.into()), + xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot), + xcm::v4::Junction::Parachain(AssetHubPolkadot::para_id().into()), + xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(USDT_ID.into()), ], ) } // wETH has same relative location on both Kusama and Polkadot AssetHubs -pub(crate) fn weth_at_asset_hubs() -> Location { - Location::new( +pub(crate) fn weth_at_asset_hubs() -> xcm::v4::Location { + xcm::v4::Location::new( 2, [ - GlobalConsensus(Ethereum { chain_id: snowbridge::CHAIN_ID }), - AccountKey20 { network: None, key: snowbridge::WETH }, + xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Ethereum { + chain_id: snowbridge::CHAIN_ID, + }), + xcm::v4::Junction::AccountKey20 { network: None, key: snowbridge::WETH }, ], ) } pub(crate) fn create_foreign_on_ah_kusama( - id: v4::Location, + id: xcm::v4::Location, sufficient: bool, prefund_accounts: Vec<(AccountId, u128)>, ) { @@ -84,18 +92,18 @@ pub(crate) fn create_foreign_on_ah_kusama( AssetHubKusama::force_create_foreign_asset(id, owner, sufficient, min, prefund_accounts); } -pub(crate) fn create_foreign_on_ah_polkadot(id: v4::Location, sufficient: bool) { +pub(crate) fn create_foreign_on_ah_polkadot(id: xcm::v4::Location, sufficient: bool) { let owner = AssetHubPolkadot::account_id_of(ALICE); AssetHubPolkadot::force_create_foreign_asset(id, owner, sufficient, ASSET_MIN_BALANCE, vec![]); } -pub(crate) fn foreign_balance_on_ah_kusama(id: v4::Location, who: &AccountId) -> u128 { +pub(crate) fn foreign_balance_on_ah_kusama(id: xcm::v4::Location, who: &AccountId) -> u128 { AssetHubKusama::execute_with(|| { type Assets = ::ForeignAssets; >::balance(id, who) }) } -pub(crate) fn foreign_balance_on_ah_polkadot(id: v4::Location, who: &AccountId) -> u128 { +pub(crate) fn foreign_balance_on_ah_polkadot(id: xcm::v4::Location, who: &AccountId) -> u128 { AssetHubPolkadot::execute_with(|| { type Assets = ::ForeignAssets; >::balance(id, who) @@ -103,8 +111,8 @@ pub(crate) fn foreign_balance_on_ah_polkadot(id: v4::Location, who: &AccountId) } // set up pool -pub(crate) fn set_up_pool_with_dot_on_ah_polkadot(asset: v4::Location, is_foreign: bool) { - let dot: v4::Location = v4::Parent.into(); +pub(crate) fn set_up_pool_with_dot_on_ah_polkadot(asset: xcm::v4::Location, is_foreign: bool) { + let dot: xcm::v4::Location = xcm::v4::Parent.into(); AssetHubPolkadot::execute_with(|| { type RuntimeEvent = ::RuntimeEvent; let owner = AssetHubPolkadotSender::get(); @@ -119,7 +127,7 @@ pub(crate) fn set_up_pool_with_dot_on_ah_polkadot(asset: v4::Location, is_foreig )); } else { let asset_id = match asset.interior.last() { - Some(v4::Junction::GeneralIndex(id)) => *id as u32, + Some(xcm::v4::Junction::GeneralIndex(id)) => *id as u32, _ => unreachable!(), }; assert_ok!(::Assets::mint( diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/register_bridged_assets.rs b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/register_bridged_assets.rs index 2e42fcb4f7..90d64daf6a 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/register_bridged_assets.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/register_bridged_assets.rs @@ -27,13 +27,13 @@ fn register_kusama_asset_on_pah_from_kah() { ); // Kusama Asset Hub asset when bridged to Polkadot Asset Hub. - let bridged_asset_at_pah = v4::Location::new( + let bridged_asset_at_pah = xcm::v4::Location::new( 2, [ - v4::Junction::GlobalConsensus(v4::NetworkId::Kusama), - v4::Junction::Parachain(AssetHubKusama::para_id().into()), - v4::Junction::PalletInstance(ASSETS_PALLET_ID), - v4::Junction::GeneralIndex(ASSET_ID.into()), + xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Kusama), + xcm::v4::Junction::Parachain(AssetHubKusama::para_id().into()), + xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(ASSET_ID.into()), ], ); diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/Cargo.toml b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/Cargo.toml index 34fe19ad15..14e287f8d6 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/Cargo.toml +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/Cargo.toml @@ -52,3 +52,31 @@ snowbridge-router-primitives = { workspace = true, default-features = true } snowbridge-pallet-system = { workspace = true, default-features = true } snowbridge-pallet-outbound-queue = { workspace = true, default-features = true } snowbridge-pallet-inbound-queue-fixtures = { workspace = true } + +[features] +runtime-benchmarks = [ + "asset-hub-polkadot-runtime/runtime-benchmarks", + "bp-bridge-hub-polkadot/runtime-benchmarks", + "bridge-hub-polkadot-runtime/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "integration-tests-helpers/runtime-benchmarks", + "kusama-polkadot-system-emulated-network/runtime-benchmarks", + "pallet-asset-conversion/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-bridge-messages/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-system-emulated-network/runtime-benchmarks", + "snowbridge-core/runtime-benchmarks", + "snowbridge-pallet-inbound-queue-fixtures/runtime-benchmarks", + "snowbridge-pallet-outbound-queue/runtime-benchmarks", + "snowbridge-pallet-system/runtime-benchmarks", + "snowbridge-router-primitives/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "system-parachains-constants/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", + "xcm-runtime-apis/runtime-benchmarks", +] diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/lib.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/lib.rs index 6a55e4c24c..6f18c7c989 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/lib.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/lib.rs @@ -22,7 +22,7 @@ pub use sp_runtime::DispatchError; pub use xcm::{ latest::ParentThen, prelude::{AccountId32 as AccountId32Junction, *}, - v4::{ + v5::{ self, Error, NetworkId::{Kusama as KusamaId, Polkadot as PolkadotId}, }, diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/asset_transfers.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/asset_transfers.rs index 794144a549..a11501eb20 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/asset_transfers.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/asset_transfers.rs @@ -36,9 +36,13 @@ fn send_assets_over_bridge(send_fn: F) { fn set_up_dot_for_penpal_polkadot_through_pah_to_kah( sender: &AccountId, amount: u128, -) -> (Location, v4::Location) { +) -> (xcm::v4::Location, xcm::v5::Location, xcm::v4::Location, xcm::v5::Location) { let dot_at_polkadot_parachains = dot_at_ah_polkadot(); + let dot_at_polkadot_parachains_latest: Location = + dot_at_polkadot_parachains.clone().try_into().unwrap(); let dot_at_asset_hub_kusama = bridged_dot_at_ah_kusama(); + let dot_at_asset_hub_kusama_latest: Location = + dot_at_asset_hub_kusama.clone().try_into().unwrap(); create_foreign_on_ah_kusama(dot_at_asset_hub_kusama.clone(), true); let penpal_location = AssetHubPolkadot::sibling_location_of(PenpalB::para_id()); @@ -48,11 +52,16 @@ fn set_up_dot_for_penpal_polkadot_through_pah_to_kah( // fund Penpal's sender account PenpalB::mint_foreign_asset( ::RuntimeOrigin::signed(PenpalAssetOwner::get()), - dot_at_polkadot_parachains.clone(), + dot_at_polkadot_parachains_latest.clone(), sender.clone(), amount * 2, ); - (dot_at_polkadot_parachains, dot_at_asset_hub_kusama) + ( + dot_at_polkadot_parachains, + dot_at_polkadot_parachains_latest, + dot_at_asset_hub_kusama, + dot_at_asset_hub_kusama_latest, + ) } fn send_assets_from_penpal_polkadot_through_polkadot_ah_to_kusama_ah( @@ -123,6 +132,8 @@ fn send_dot_usdt_and_weth_from_asset_hub_polkadot_to_asset_hub_kusama() { let sender = AssetHubPolkadotSender::get(); let receiver = AssetHubKusamaReceiver::get(); let dot_at_asset_hub_polkadot = dot_at_ah_polkadot(); + let dot_at_asset_hub_polkadot_latest: Location = + dot_at_asset_hub_polkadot.clone().try_into().unwrap(); let bridged_dot_at_asset_hub_kusama = bridged_dot_at_ah_kusama(); create_foreign_on_ah_kusama(bridged_dot_at_asset_hub_kusama.clone(), true); @@ -144,7 +155,7 @@ fn send_dot_usdt_and_weth_from_asset_hub_polkadot_to_asset_hub_kusama() { // send DOTs, use them for fees send_assets_over_bridge(|| { let destination = asset_hub_kusama_location(); - let assets: Assets = (dot_at_asset_hub_polkadot, amount).into(); + let assets: Assets = (dot_at_asset_hub_polkadot_latest, amount).into(); let fee_idx = 0; assert_ok!(send_assets_from_asset_hub_polkadot(destination, assets, fee_idx)); }); @@ -185,9 +196,12 @@ fn send_dot_usdt_and_weth_from_asset_hub_polkadot_to_asset_hub_kusama() { // Now let's send over USDTs + wETH (and pay fees with USDT) ///////////////////////////////////////////////////////////// let usdt_at_asset_hub_polkadot = usdt_at_ah_polkadot(); + let usdt_at_asset_hub_polkadot_latest: Location = + usdt_at_asset_hub_polkadot.clone().try_into().unwrap(); let bridged_usdt_at_asset_hub_kusama = bridged_usdt_at_ah_kusama(); // wETH has same relative location on both Polkadot and Kusama AssetHubs let bridged_weth_at_ah = weth_at_asset_hubs(); + let bridged_weth_at_ah_latest: Location = bridged_weth_at_ah.clone().try_into().unwrap(); // mint USDT in sender's account (USDT already created in genesis) AssetHubPolkadot::mint_asset( @@ -212,12 +226,12 @@ fn send_dot_usdt_and_weth_from_asset_hub_polkadot_to_asset_hub_kusama() { // send USDTs and wETHs let assets: Assets = vec![ - (usdt_at_asset_hub_polkadot.clone(), amount).into(), - (bridged_weth_at_ah.clone(), amount).into(), + (usdt_at_asset_hub_polkadot_latest.clone(), amount).into(), + (bridged_weth_at_ah_latest.clone(), amount).into(), ] .into(); // use USDT for fees - let fee: AssetId = usdt_at_asset_hub_polkadot.into(); + let fee: AssetId = usdt_at_asset_hub_polkadot_latest.into(); // use the more involved transfer extrinsic let custom_xcm_on_dest = Xcm::<()>(vec![DepositAsset { @@ -262,6 +276,8 @@ fn send_back_ksm_from_asset_hub_polkadot_to_asset_hub_kusama() { let sender = AssetHubPolkadotSender::get(); let receiver = AssetHubKusamaReceiver::get(); let bridged_ksm_at_asset_hub_polkadot = bridged_ksm_at_ah_polkadot(); + let bridged_ksm_at_asset_hub_polkadot_latest: Location = + bridged_ksm_at_asset_hub_polkadot.clone().try_into().unwrap(); let prefund_accounts = vec![(sender.clone(), prefund_amount)]; create_foreign_on_ah_polkadot( bridged_ksm_at_asset_hub_polkadot.clone(), @@ -288,7 +304,8 @@ fn send_back_ksm_from_asset_hub_polkadot_to_asset_hub_kusama() { // send back KSMs, use them for fees send_assets_over_bridge(|| { let destination = asset_hub_kusama_location(); - let assets: Assets = (bridged_ksm_at_asset_hub_polkadot.clone(), amount_to_send).into(); + let assets: Assets = + (bridged_ksm_at_asset_hub_polkadot_latest.clone(), amount_to_send).into(); let fee_idx = 0; assert_ok!(send_assets_from_asset_hub_polkadot(destination, assets, fee_idx)); }); @@ -337,7 +354,7 @@ fn send_dot_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_kusama( let sender = PenpalBSender::get(); let receiver = AssetHubKusamaReceiver::get(); let local_asset_hub = PenpalB::sibling_location_of(AssetHubPolkadot::para_id()); - let (dot_at_polkadot_parachains, dot_at_asset_hub_kusama) = + let (dot_at_polkadot_parachains, dot_at_polkadot_parachains_latest, dot_at_asset_hub_kusama, _) = set_up_dot_for_penpal_polkadot_through_pah_to_kah(&sender, amount); let sov_kah_on_pah = AssetHubPolkadot::sovereign_account_of_parachain_on_other_global_consensus( @@ -348,7 +365,7 @@ fn send_dot_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_kusama( ::account_data_of(sov_kah_on_pah.clone()).free; let sender_dot_before = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_polkadot_parachains.clone(), &sender) + >::balance(dot_at_polkadot_parachains_latest.clone(), &sender) }); let receiver_dot_before = foreign_balance_on_ah_kusama(dot_at_asset_hub_kusama.clone(), &receiver); @@ -356,9 +373,9 @@ fn send_dot_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_kusama( // Send DOTs over bridge { let destination = asset_hub_kusama_location(); - let assets: Assets = (dot_at_polkadot_parachains.clone(), amount).into(); + let assets: Assets = (dot_at_polkadot_parachains_latest.clone(), amount).into(); let asset_transfer_type = TransferType::RemoteReserve(local_asset_hub.clone().into()); - let fees_id: AssetId = dot_at_polkadot_parachains.clone().into(); + let fees_id: AssetId = dot_at_polkadot_parachains_latest.clone().into(); let fees_transfer_type = TransferType::RemoteReserve(local_asset_hub.into()); let beneficiary: Location = AccountId32Junction { network: None, id: receiver.clone().into() }.into(); @@ -395,7 +412,7 @@ fn send_dot_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_kusama( let sender_dot_after = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(dot_at_polkadot_parachains, &sender) + >::balance(dot_at_polkadot_parachains_latest, &sender) }); let receiver_dot_after = foreign_balance_on_ah_kusama(dot_at_asset_hub_kusama, &receiver); let dot_in_reserve_on_pah_after = @@ -413,12 +430,14 @@ fn send_dot_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_kusama( #[test] fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_kusama() { let ksm_at_polkadot_parachains = bridged_ksm_at_ah_polkadot(); + let ksm_at_polkadot_parachains_latest: Location = + ksm_at_polkadot_parachains.clone().try_into().unwrap(); let amount = ASSET_HUB_POLKADOT_ED * 10_000_000; let sender = PenpalBSender::get(); let receiver = AssetHubKusamaReceiver::get(); // set up DOTs for transfer - let (dot_at_polkadot_parachains, _) = + let (_, dot_at_polkadot_parachains_latest, _, _) = set_up_dot_for_penpal_polkadot_through_pah_to_kah(&sender, amount); // set up KSMs for transfer @@ -428,7 +447,7 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku create_foreign_on_ah_polkadot(ksm_at_polkadot_parachains.clone(), true, prefund_accounts); let asset_owner: AccountId = AssetHubPolkadot::account_id_of(ALICE); PenpalB::force_create_foreign_asset( - ksm_at_polkadot_parachains.clone(), + ksm_at_polkadot_parachains_latest.clone(), asset_owner.clone(), true, ASSET_MIN_BALANCE, @@ -440,7 +459,7 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku ::RuntimeOrigin::root(), vec![( PenpalCustomizableAssetFromSystemAssetHub::key().to_vec(), - ksm_at_polkadot_parachains.encode(), + ksm_at_polkadot_parachains_latest.encode(), )], )); }); @@ -455,7 +474,7 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku // balances before let sender_ksm_before = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_polkadot_parachains.clone(), &sender) + >::balance(ksm_at_polkadot_parachains_latest.clone(), &sender) }); let receiver_ksm_before = ::account_data_of(receiver.clone()).free; @@ -468,7 +487,7 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku // what happens at final destination let beneficiary = AccountId32Junction { network: None, id: receiver.clone().into() }.into(); // use KSM as fees on the final destination (PAH) - let remote_fees: Asset = (ksm_at_polkadot_parachains.clone(), amount).into(); + let remote_fees: Asset = (ksm_at_polkadot_parachains_latest.clone(), amount).into(); let remote_fees = remote_fees.reanchored(&final_destination, &context).unwrap(); // buy execution using KSMs, then deposit all remaining KSMs let xcm_on_final_dest = Xcm::<()>(vec![ @@ -481,7 +500,7 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku let mut final_destination = final_destination.clone(); final_destination.reanchor(&intermediary_hop, &context).unwrap(); // reanchor KSMs to the view of hop (Asset Hub Polkadot) - let asset: Asset = (ksm_at_polkadot_parachains.clone(), amount).into(); + let asset: Asset = (ksm_at_polkadot_parachains_latest.clone(), amount).into(); let asset = asset.reanchored(&intermediary_hop, &context).unwrap(); // on Asset Hub Polkadot, forward a request to withdraw KSMs from reserve on Asset Hub // Kusama @@ -492,12 +511,12 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku }]); // assets to send from Penpal and how they reach the intermediary hop let assets: Assets = vec![ - (ksm_at_polkadot_parachains.clone(), amount).into(), - (dot_at_polkadot_parachains.clone(), amount).into(), + (ksm_at_polkadot_parachains_latest.clone(), amount).into(), + (dot_at_polkadot_parachains_latest.clone(), amount).into(), ] .into(); let asset_transfer_type = TransferType::DestinationReserve; - let fees_id: AssetId = dot_at_polkadot_parachains.into(); + let fees_id: AssetId = dot_at_polkadot_parachains_latest.into(); let fees_transfer_type = TransferType::DestinationReserve; // initiate the transfer @@ -527,7 +546,7 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku let sender_ksm_after = PenpalB::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::balance(ksm_at_polkadot_parachains, &sender) + >::balance(ksm_at_polkadot_parachains_latest, &sender) }); let receiver_ksm_after = ::account_data_of(receiver).free; diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/mod.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/mod.rs index 82556e1885..70eef9cef3 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/mod.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/mod.rs @@ -31,52 +31,60 @@ pub(crate) fn bridge_hub_kusama_location() -> Location { } // DOT and wDOT -pub(crate) fn dot_at_ah_polkadot() -> Location { - Parent.into() +pub(crate) fn dot_at_ah_polkadot() -> xcm::v4::Location { + xcm::v4::Parent.into() } -pub(crate) fn bridged_dot_at_ah_kusama() -> Location { - Location::new(2, [GlobalConsensus(Polkadot)]) +pub(crate) fn bridged_dot_at_ah_kusama() -> xcm::v4::Location { + xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)]) } // wKSM -pub(crate) fn bridged_ksm_at_ah_polkadot() -> Location { - Location::new(2, [GlobalConsensus(Kusama)]) +pub(crate) fn bridged_ksm_at_ah_polkadot() -> xcm::v4::Location { + xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Kusama)]) } // USDT and wUSDT -pub(crate) fn usdt_at_ah_polkadot() -> Location { - Location::new(0, [PalletInstance(ASSETS_PALLET_ID), GeneralIndex(USDT_ID.into())]) +pub(crate) fn usdt_at_ah_polkadot() -> xcm::v4::Location { + xcm::v4::Location::new( + 0, + [ + xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(USDT_ID.into()), + ], + ) } -pub(crate) fn bridged_usdt_at_ah_kusama() -> Location { - Location::new( +pub(crate) fn bridged_usdt_at_ah_kusama() -> xcm::v4::Location { + xcm::v4::Location::new( 2, [ - GlobalConsensus(Polkadot), - Parachain(AssetHubPolkadot::para_id().into()), - PalletInstance(ASSETS_PALLET_ID), - GeneralIndex(USDT_ID.into()), + xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot), + xcm::v4::Junction::Parachain(AssetHubPolkadot::para_id().into()), + xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(USDT_ID.into()), ], ) } // wETH has same relative location on both Kusama and Polkadot AssetHubs -pub(crate) fn weth_at_asset_hubs() -> Location { - Location::new( +pub(crate) fn weth_at_asset_hubs() -> xcm::v4::Location { + xcm::v4::Location::new( 2, [ - GlobalConsensus(Ethereum { chain_id: snowbridge::CHAIN_ID }), - AccountKey20 { network: None, key: snowbridge::WETH }, + xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Ethereum { + chain_id: snowbridge::CHAIN_ID, + }), + xcm::v4::Junction::AccountKey20 { network: None, key: snowbridge::WETH }, ], ) } -pub(crate) fn create_foreign_on_ah_kusama(id: v4::Location, sufficient: bool) { +pub(crate) fn create_foreign_on_ah_kusama(id: xcm::v4::Location, sufficient: bool) { let owner = AssetHubKusama::account_id_of(ALICE); AssetHubKusama::force_create_foreign_asset(id, owner, sufficient, ASSET_MIN_BALANCE, vec![]); } pub(crate) fn create_foreign_on_ah_polkadot( - id: v4::Location, + id: xcm::v4::Location, sufficient: bool, prefund_accounts: Vec<(AccountId, u128)>, ) { @@ -85,13 +93,13 @@ pub(crate) fn create_foreign_on_ah_polkadot( AssetHubPolkadot::force_create_foreign_asset(id, owner, sufficient, min, prefund_accounts); } -pub(crate) fn foreign_balance_on_ah_kusama(id: v4::Location, who: &AccountId) -> u128 { +pub(crate) fn foreign_balance_on_ah_kusama(id: xcm::v4::Location, who: &AccountId) -> u128 { AssetHubKusama::execute_with(|| { type Assets = ::ForeignAssets; >::balance(id, who) }) } -pub(crate) fn foreign_balance_on_ah_polkadot(id: v4::Location, who: &AccountId) -> u128 { +pub(crate) fn foreign_balance_on_ah_polkadot(id: xcm::v4::Location, who: &AccountId) -> u128 { AssetHubPolkadot::execute_with(|| { type Assets = ::ForeignAssets; >::balance(id, who) @@ -99,8 +107,8 @@ pub(crate) fn foreign_balance_on_ah_polkadot(id: v4::Location, who: &AccountId) } // set up pool -pub(crate) fn set_up_pool_with_ksm_on_ah_kusama(asset: v4::Location, is_foreign: bool) { - let ksm: v4::Location = v4::Parent.into(); +pub(crate) fn set_up_pool_with_ksm_on_ah_kusama(asset: xcm::v4::Location, is_foreign: bool) { + let ksm: xcm::v4::Location = xcm::v4::Parent.into(); AssetHubKusama::execute_with(|| { type RuntimeEvent = ::RuntimeEvent; let owner = AssetHubKusamaSender::get(); @@ -115,7 +123,7 @@ pub(crate) fn set_up_pool_with_ksm_on_ah_kusama(asset: v4::Location, is_foreign: )); } else { let asset_id = match asset.interior.last() { - Some(v4::Junction::GeneralIndex(id)) => *id as u32, + Some(xcm::v4::Junction::GeneralIndex(id)) => *id as u32, _ => unreachable!(), }; assert_ok!(::Assets::mint( diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/register_bridged_assets.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/register_bridged_assets.rs index 928b486fd4..bbc3d0ec88 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/register_bridged_assets.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/register_bridged_assets.rs @@ -24,13 +24,13 @@ const XCM_FEE: u128 = 40_000_000_000; #[test] fn register_polkadot_asset_on_kah_from_pah() { // Polkadot Asset Hub asset when bridged to Kusama Asset Hub. - let bridged_asset_at_kah = v4::Location::new( + let bridged_asset_at_kah = xcm::v4::Location::new( 2, [ - v4::Junction::GlobalConsensus(v4::NetworkId::Polkadot), - v4::Junction::Parachain(AssetHubPolkadot::para_id().into()), - v4::Junction::PalletInstance(ASSETS_PALLET_ID), - v4::Junction::GeneralIndex(ASSET_ID.into()), + xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot), + xcm::v4::Junction::Parachain(AssetHubPolkadot::para_id().into()), + xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID), + xcm::v4::Junction::GeneralIndex(ASSET_ID.into()), ], ); // Register above asset on Kusama AH from Polkadot AH. @@ -41,18 +41,18 @@ fn register_polkadot_asset_on_kah_from_pah() { #[test] fn register_ethereum_asset_on_kah_from_pah() { // Ethereum asset when bridged to Kusama Asset Hub. - let bridged_asset_at_kah = v4::Location::new( + let bridged_asset_at_kah = xcm::v4::Location::new( 2, [ - v4::Junction::GlobalConsensus(v4::NetworkId::Ethereum { chain_id: CHAIN_ID }), - v4::Junction::AccountKey20 { network: None, key: WETH }, + xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Ethereum { chain_id: CHAIN_ID }), + xcm::v4::Junction::AccountKey20 { network: None, key: WETH }, ], ); // Register above asset on Kusama AH from Polkadot AH. register_asset_on_kah_from_pah(bridged_asset_at_kah); } -fn register_asset_on_kah_from_pah(bridged_asset_at_kah: v4::Location) { +fn register_asset_on_kah_from_pah(bridged_asset_at_kah: xcm::v4::Location) { let sa_of_pah_on_kah = AssetHubKusama::sovereign_account_of_parachain_on_other_global_consensus( Polkadot, AssetHubPolkadot::para_id(), diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge.rs index bbeb30711f..7404f7aec4 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge.rs @@ -43,7 +43,7 @@ use snowbridge_core::{ }; use snowbridge_pallet_system::PricingParametersOf; use snowbridge_router_primitives::inbound::{ - Command, Destination, GlobalConsensusEthereumConvertsFor, MessageV1, VersionedMessage, + Command, Destination, EthereumLocationsConverterFor, MessageV1, VersionedMessage, }; use sp_core::{H160, H256, U256}; use sp_runtime::{DispatchError::Token, FixedU128, TokenError::FundsUnavailable}; @@ -110,7 +110,7 @@ fn create_agent() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, DescendOrigin(Parachain(origin_para).into()), Transact { - require_weight_at_most: 3000000000.into(), + fallback_max_weight: Some(3000000000.into()), origin_kind: OriginKind::Xcm, call: create_agent_call.encode().into(), }, @@ -170,7 +170,7 @@ fn create_channel() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, DescendOrigin(Parachain(origin_para).into()), Transact { - require_weight_at_most: 3000000000.into(), + fallback_max_weight: Some(3000000000.into()), origin_kind: OriginKind::Xcm, call: create_agent_call.encode().into(), }, @@ -183,7 +183,7 @@ fn create_channel() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, DescendOrigin(Parachain(origin_para).into()), Transact { - require_weight_at_most: 3000000000.into(), + fallback_max_weight: Some(3000000000.into()), origin_kind: OriginKind::Xcm, call: create_channel_call.encode().into(), }, @@ -282,14 +282,31 @@ fn send_token_from_ethereum_to_penpal() { )); // The Weth asset location, identified by the contract address on Ethereum - let weth_asset_location: Location = - (Parent, Parent, EthereumNetwork::get(), AccountKey20 { network: None, key: WETH }).into(); + let v4_ethereum_network: xcm::v4::NetworkId = EthereumNetwork::get().into(); + let weth_asset_location: xcm::v4::Location = ( + xcm::v4::Parent, + xcm::v4::Parent, + v4_ethereum_network, + xcm::v4::Junction::AccountKey20 { network: None, key: WETH }, + ) + .into(); + let weth_asset_location_latest: Location = weth_asset_location.clone().try_into().unwrap(); // Converts the Weth asset location into an asset ID let weth_asset_id = weth_asset_location.clone(); // Fund ethereum sovereign on AssetHub AssetHubPolkadot::fund_accounts(vec![(ethereum_sovereign_account(), INITIAL_FUND)]); + PenpalB::execute_with(|| { + assert_ok!(::System::set_storage( + ::RuntimeOrigin::root(), + vec![( + PenpalCustomizableAssetFromSystemAssetHub::key().to_vec(), + Location::new(2, [GlobalConsensus(Ethereum { chain_id: CHAIN_ID })]).encode(), + )], + )); + }); + // Create asset on the Penpal parachain. PenpalB::execute_with(|| { // Set the trusted asset location from AH, in this case, Ethereum. @@ -301,14 +318,17 @@ fn send_token_from_ethereum_to_penpal() { )], )); - assert_ok!(::ForeignAssets::create( - ::RuntimeOrigin::signed(PenpalBSender::get()), - weth_asset_location.clone(), + assert_ok!(::ForeignAssets::force_create( + ::RuntimeOrigin::root(), + weth_asset_location_latest.clone(), asset_hub_sovereign.clone().into(), - 1000, + true, + 1000 )); - assert!(::ForeignAssets::asset_exists(weth_asset_location)); + assert!(::ForeignAssets::asset_exists( + weth_asset_location_latest + )); }); AssetHubPolkadot::execute_with(|| { @@ -465,8 +485,9 @@ fn send_weth_from_ethereum_to_asset_hub() { fn send_token_from_ethereum_to_asset_hub_and_back_works( token_address: H160, amount: u128, - asset_location: Location, + asset_location: xcm::v4::Location, ) { + let asset_location_latest: Location = asset_location.clone().try_into().unwrap(); let assethub_sovereign = BridgeHubPolkadot::sovereign_account_id_of( BridgeHubPolkadot::sibling_location_of(AssetHubPolkadot::para_id()), ); @@ -564,7 +585,7 @@ fn send_token_from_ethereum_to_asset_hub_and_back_works( AssetHubPolkadot::execute_with(|| { type RuntimeOrigin = ::RuntimeOrigin; - let assets = vec![Asset { id: AssetId(asset_location), fun: Fungible(amount) }]; + let assets = vec![Asset { id: AssetId(asset_location_latest), fun: Fungible(amount) }]; let versioned_assets = VersionedAssets::from(Assets::from(assets)); let destination = VersionedLocation::from(Location::new( @@ -642,7 +663,9 @@ fn send_token_from_ethereum_to_asset_hub_and_back_works( /// Tests sending Ether from Ethereum to Asset Hub and back to Ethereum #[test] fn send_eth_asset_from_asset_hub_to_ethereum() { - let ether_location: Location = (Parent, Parent, EthereumNetwork::get()).into(); + let v4_ethereum_network: xcm::v4::NetworkId = EthereumNetwork::get().into(); + let ether_location: xcm::v4::Location = + (xcm::v4::Parent, xcm::v4::Parent, v4_ethereum_network).into(); // Register Ether as foreign asset on AH. AssetHubPolkadot::execute_with(|| { @@ -682,8 +705,14 @@ fn send_weth_asset_from_asset_hub_to_ethereum() { // Register WETH on Asset Hub register_weth_token_from_ethereum_to_asset_hub(); - let weth_location: Location = - (Parent, Parent, EthereumNetwork::get(), AccountKey20 { network: None, key: WETH }).into(); + let v4_ethereum_network: xcm::v4::NetworkId = EthereumNetwork::get().into(); + let weth_location: xcm::v4::Location = ( + xcm::v4::Parent, + xcm::v4::Parent, + v4_ethereum_network, + xcm::v4::Junction::AccountKey20 { network: None, key: WETH }, + ) + .into(); // Perform a roundtrip transfer of WETH send_token_from_ethereum_to_asset_hub_and_back_works(WETH.into(), TOKEN_AMOUNT, weth_location); } @@ -759,7 +788,7 @@ fn asset_hub_foreign_assets_pallet_is_configured_correctly_in_bridge_hub() { ::Runtime, pallet_assets::Instance2, >::create { - id: v4::Location::default(), + id: xcm::v4::Location::default(), min_balance: ASSET_MIN_BALANCE, admin: assethub_sovereign.into(), }) @@ -774,7 +803,7 @@ fn asset_hub_foreign_assets_pallet_is_configured_correctly_in_bridge_hub() { fn ethereum_sovereign_account() -> AccountId { let origin_location = (Parent, Parent, EthereumNetwork::get()).into(); - GlobalConsensusEthereumConvertsFor::::convert_location(&origin_location).unwrap() + EthereumLocationsConverterFor::::convert_location(&origin_location).unwrap() } fn make_register_token_message() -> InboundQueueFixture { @@ -861,9 +890,10 @@ fn make_register_token_message() -> InboundQueueFixture { } fn send_token_from_ethereum_to_asset_hub_with_fee(account_id: [u8; 32], fee: u128) { - let weth_asset_location: Location = Location::new( + let v4_ethereum_network: xcm::v4::NetworkId = EthereumNetwork::get().into(); + let weth_asset_location = xcm::v4::Location::new( 2, - [EthereumNetwork::get().into(), AccountKey20 { network: None, key: WETH }], + [v4_ethereum_network.into(), xcm::v4::Junction::AccountKey20 { network: None, key: WETH }], ); // Fund asset hub sovereign on bridge hub let asset_hub_sovereign = BridgeHubPolkadot::sovereign_account_id_of(Location::new( @@ -1003,7 +1033,7 @@ fn transfer_relay_token() { let expected_token_id = TokenIdOf::convert_location(&expected_asset_id).unwrap(); let ethereum_sovereign: AccountId = - GlobalConsensusEthereumConvertsFor::<[u8; 32]>::convert_location(&Location::new( + EthereumLocationsConverterFor::<[u8; 32]>::convert_location(&Location::new( 2, [GlobalConsensus(EthereumNetwork::get())], )) @@ -1023,7 +1053,7 @@ fn transfer_relay_token() { assert_ok!(::EthereumSystem::register_token( RuntimeOrigin::root(), - Box::new(VersionedLocation::V4(asset_id.clone())), + Box::new(VersionedLocation::V5(asset_id.clone())), AssetMetadata { name: "wnd".as_bytes().to_vec().try_into().unwrap(), symbol: "wnd".as_bytes().to_vec().try_into().unwrap(), @@ -1049,14 +1079,14 @@ fn transfer_relay_token() { )); let assets = vec![Asset { id: AssetId(Location::parent()), fun: Fungible(TOKEN_AMOUNT) }]; - let versioned_assets = VersionedAssets::V4(Assets::from(assets)); + let versioned_assets = VersionedAssets::V5(Assets::from(assets)); - let destination = VersionedLocation::V4(Location::new( + let destination = VersionedLocation::V5(Location::new( 2, [GlobalConsensus(Ethereum { chain_id: CHAIN_ID })], )); - let beneficiary = VersionedLocation::V4(Location::new( + let beneficiary = VersionedLocation::V5(Location::new( 0, [AccountKey20 { network: None, key: ETHEREUM_DESTINATION_ADDRESS }], )); @@ -1159,7 +1189,7 @@ fn transfer_ah_token() { let ethereum_destination = Location::new(2, [GlobalConsensus(Ethereum { chain_id: CHAIN_ID })]); let ethereum_sovereign: AccountId = - GlobalConsensusEthereumConvertsFor::<[u8; 32]>::convert_location(ðereum_destination) + EthereumLocationsConverterFor::<[u8; 32]>::convert_location(ðereum_destination) .unwrap() .into(); AssetHubPolkadot::fund_accounts(vec![(ethereum_sovereign.clone(), INITIAL_FUND)]); @@ -1191,7 +1221,7 @@ fn transfer_ah_token() { assert_ok!(::EthereumSystem::register_token( RuntimeOrigin::root(), - Box::new(VersionedLocation::V4(asset_id_in_bh.clone())), + Box::new(VersionedLocation::V5(asset_id_in_bh.clone())), AssetMetadata { name: "ah_asset".as_bytes().to_vec().try_into().unwrap(), symbol: "ah_asset".as_bytes().to_vec().try_into().unwrap(), @@ -1221,9 +1251,9 @@ fn transfer_ah_token() { // Send partial of the token, will fail if send all let assets = vec![Asset { id: AssetId(asset_id.clone()), fun: Fungible(TOKEN_AMOUNT / 2) }]; - let versioned_assets = VersionedAssets::V4(Assets::from(assets)); + let versioned_assets = VersionedAssets::V5(Assets::from(assets)); - let beneficiary = VersionedLocation::V4(Location::new( + let beneficiary = VersionedLocation::V5(Location::new( 0, [AccountKey20 { network: None, key: ETHEREUM_DESTINATION_ADDRESS }], )); diff --git a/integration-tests/emulated/tests/collectives/collectives-polkadot/Cargo.toml b/integration-tests/emulated/tests/collectives/collectives-polkadot/Cargo.toml index 55c82668fb..0dcd7f9a95 100644 --- a/integration-tests/emulated/tests/collectives/collectives-polkadot/Cargo.toml +++ b/integration-tests/emulated/tests/collectives/collectives-polkadot/Cargo.toml @@ -46,3 +46,30 @@ polkadot-runtime = { workspace = true } polkadot-runtime-constants = { workspace = true, default-features = true } polkadot-system-emulated-network = { workspace = true } system-parachains-constants = { workspace = true, default-features = true } + +[features] +runtime-benchmarks = [ + "asset-hub-polkadot-runtime/runtime-benchmarks", + "collectives-polkadot-runtime/runtime-benchmarks", + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "integration-tests-helpers/runtime-benchmarks", + "pallet-asset-rate/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-treasury/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-whitelist/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "polkadot-runtime-constants/runtime-benchmarks", + "polkadot-runtime/runtime-benchmarks", + "polkadot-system-emulated-network/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "system-parachains-constants/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", + "xcm-runtime-apis/runtime-benchmarks", +] diff --git a/integration-tests/emulated/tests/collectives/collectives-polkadot/src/tests/fellowship.rs b/integration-tests/emulated/tests/collectives/collectives-polkadot/src/tests/fellowship.rs index bdee6c87b7..7dfabc06d8 100644 --- a/integration-tests/emulated/tests/collectives/collectives-polkadot/src/tests/fellowship.rs +++ b/integration-tests/emulated/tests/collectives/collectives-polkadot/src/tests/fellowship.rs @@ -36,7 +36,7 @@ fn fellows_whitelist_call() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind: OriginKind::Xcm, - require_weight_at_most: Weight::from_parts(5_000_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(5_000_000_000, 500_000)), call: PolkadotCall::Whitelist( pallet_whitelist::Call::::whitelist_call { call_hash } ) diff --git a/integration-tests/emulated/tests/collectives/collectives-polkadot/src/tests/fellowship_treasury.rs b/integration-tests/emulated/tests/collectives/collectives-polkadot/src/tests/fellowship_treasury.rs index 9671ff9a5a..e58ed87bc6 100644 --- a/integration-tests/emulated/tests/collectives/collectives-polkadot/src/tests/fellowship_treasury.rs +++ b/integration-tests/emulated/tests/collectives/collectives-polkadot/src/tests/fellowship_treasury.rs @@ -105,7 +105,7 @@ fn fellowship_treasury_spend() { let native_asset_on_asset_hub = Location::parent(); let treasury_spend_call = RuntimeCall::Treasury(pallet_treasury::Call::::spend { - asset_kind: bx!(VersionedLocatableAsset::V4 { + asset_kind: bx!(VersionedLocatableAsset::V5 { location: asset_hub_location.clone(), asset_id: native_asset_on_asset_hub.into(), }), @@ -177,12 +177,11 @@ fn fellowship_treasury_spend() { let native_asset_on_asset_hub = Location::parent(); let alice_location: Location = - [Junction::AccountId32 { network: None, id: Polkadot::account_id_of(ALICE).into() }] - .into(); + [AccountId32 { network: None, id: Polkadot::account_id_of(ALICE).into() }].into(); let fellowship_treasury_spend_call = RuntimeCall::FellowshipTreasury(pallet_treasury::Call::::spend { - asset_kind: bx!(VersionedLocatableAsset::V4 { + asset_kind: bx!(VersionedLocatableAsset::V5 { location: asset_hub_location, asset_id: native_asset_on_asset_hub.into(), }), diff --git a/integration-tests/emulated/tests/coretime/coretime-kusama/Cargo.toml b/integration-tests/emulated/tests/coretime/coretime-kusama/Cargo.toml index 8371a02754..1522f5e65a 100644 --- a/integration-tests/emulated/tests/coretime/coretime-kusama/Cargo.toml +++ b/integration-tests/emulated/tests/coretime/coretime-kusama/Cargo.toml @@ -38,3 +38,25 @@ kusama-runtime = { workspace = true } integration-tests-helpers = { workspace = true } coretime-kusama-runtime = { workspace = true } kusama-system-emulated-network = { workspace = true } + +[features] +runtime-benchmarks = [ + "coretime-kusama-runtime/runtime-benchmarks", + "cumulus-pallet-parachain-system/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "integration-tests-helpers/runtime-benchmarks", + "kusama-runtime-constants/runtime-benchmarks", + "kusama-runtime/runtime-benchmarks", + "kusama-system-emulated-network/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-broker/runtime-benchmarks", + "pallet-identity/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "runtime-parachains/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", + "xcm-runtime-apis/runtime-benchmarks", +] diff --git a/integration-tests/emulated/tests/coretime/coretime-polkadot/Cargo.toml b/integration-tests/emulated/tests/coretime/coretime-polkadot/Cargo.toml index 919afe87e8..70ce8734a4 100644 --- a/integration-tests/emulated/tests/coretime/coretime-polkadot/Cargo.toml +++ b/integration-tests/emulated/tests/coretime/coretime-polkadot/Cargo.toml @@ -37,3 +37,24 @@ polkadot-runtime = { workspace = true } integration-tests-helpers = { workspace = true } coretime-polkadot-runtime = { workspace = true } polkadot-system-emulated-network = { workspace = true } + +[features] +runtime-benchmarks = [ + "coretime-polkadot-runtime/runtime-benchmarks", + "cumulus-pallet-parachain-system/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "integration-tests-helpers/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-broker/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "polkadot-runtime-constants/runtime-benchmarks", + "polkadot-runtime/runtime-benchmarks", + "polkadot-system-emulated-network/runtime-benchmarks", + "runtime-parachains/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", + "xcm-runtime-apis/runtime-benchmarks", +] diff --git a/integration-tests/emulated/tests/people/people-kusama/Cargo.toml b/integration-tests/emulated/tests/people/people-kusama/Cargo.toml index 9de616880d..63dfa7bae4 100644 --- a/integration-tests/emulated/tests/people/people-kusama/Cargo.toml +++ b/integration-tests/emulated/tests/people/people-kusama/Cargo.toml @@ -36,3 +36,23 @@ kusama-runtime = { workspace = true } integration-tests-helpers = { workspace = true } people-kusama-runtime = { workspace = true } kusama-system-emulated-network = { workspace = true } + +[features] +runtime-benchmarks = [ + "cumulus-pallet-parachain-system/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "integration-tests-helpers/runtime-benchmarks", + "kusama-runtime-constants/runtime-benchmarks", + "kusama-runtime/runtime-benchmarks", + "kusama-system-emulated-network/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-identity/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "people-kusama-runtime/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", + "xcm-runtime-apis/runtime-benchmarks", +] diff --git a/integration-tests/emulated/tests/people/people-kusama/src/tests/governance.rs b/integration-tests/emulated/tests/people/people-kusama/src/tests/governance.rs index be3b18acf9..af10cb7c0f 100644 --- a/integration-tests/emulated/tests/people/people-kusama/src/tests/governance.rs +++ b/integration-tests/emulated/tests/people/people-kusama/src/tests/governance.rs @@ -16,7 +16,7 @@ use crate::*; use emulated_integration_tests_common::accounts::{ALICE, BOB}; -use frame_support::{sp_runtime::traits::Dispatchable, traits::ProcessMessageError}; +use frame_support::sp_runtime::traits::Dispatchable; use kusama_runtime::governance::pallet_custom_origins::Origin::GeneralAdmin as GeneralAdminOrigin; use people_kusama_runtime::people::IdentityInfo; @@ -51,7 +51,7 @@ fn relay_commands_add_registrar() { // TODO: // This and the below weight data in the XCM can be removed once XCMv5 is // used. - require_weight_at_most: Weight::from_parts(5_000_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(5_000_000_000, 500_000)), call: add_registrar_call.encode().into(), } ]))), @@ -109,7 +109,7 @@ fn relay_commands_add_registrar_wrong_origin() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind, - require_weight_at_most: Weight::from_parts(5_000_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(5_000_000_000, 500_000)), call: add_registrar_call.encode().into(), } ]))), @@ -131,7 +131,7 @@ fn relay_commands_add_registrar_wrong_origin() { assert_expected_events!( PeopleKusama, vec![ - RuntimeEvent::MessageQueue(pallet_message_queue::Event::ProcessingFailed { error: ProcessMessageError::Unsupported, .. }) => {}, + RuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: false, .. }) => {}, ] ); }); @@ -190,7 +190,7 @@ fn relay_commands_kill_identity() { // Making the weight's ref time any lower will prevent the XCM from triggering // execution of the intended extrinsic on the People chain - beware of spurious // test failure due to this. - require_weight_at_most: Weight::from_parts(11_000_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(11_000_000_000, 500_000)), call: kill_identity_call.encode().into(), } ]))), @@ -246,7 +246,7 @@ fn relay_commands_kill_identity_wrong_origin() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind, - require_weight_at_most: Weight::from_parts(11_000_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(11_000_000_000, 500_000)), call: kill_identity_call.encode().into(), } ]))), @@ -268,7 +268,7 @@ fn relay_commands_kill_identity_wrong_origin() { assert_expected_events!( PeopleKusama, vec![ - RuntimeEvent::MessageQueue(pallet_message_queue::Event::ProcessingFailed { error: ProcessMessageError::Unsupported, .. }) => {}, + RuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: false, .. }) => {}, ] ); }); @@ -280,8 +280,8 @@ fn relay_commands_add_remove_username_authority() { let people_kusama_bob = PeopleKusama::account_id_of(BOB); let origins = vec![ - (OriginKind::Xcm, GeneralAdminOrigin.into(), "generaladmin"), - (OriginKind::Superuser, ::RuntimeOrigin::root(), "rootusername"), + (OriginKind::Xcm, GeneralAdminOrigin.into(), "generaladmin.suffix1"), + (OriginKind::Superuser, ::RuntimeOrigin::root(), "rootusername.suffix1"), ]; for (origin_kind, origin, usr) in origins { // First, add a username authority. @@ -306,7 +306,7 @@ fn relay_commands_add_remove_username_authority() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind, - require_weight_at_most: Weight::from_parts(500_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(500_000_000, 500_000)), call: add_username_authority.encode().into(), } ]))), @@ -339,11 +339,14 @@ fn relay_commands_add_remove_username_authority() { PeopleKusama::execute_with(|| { type PeopleRuntimeEvent = ::RuntimeEvent; + println!("setting username {}", usr); + assert_ok!(::Identity::set_username_for( ::RuntimeOrigin::signed(people_kusama_alice.clone()), people_kusama_runtime::MultiAddress::Id(people_kusama_bob.clone()), usr.to_owned().into_bytes(), None, + false, )); assert_expected_events!( @@ -357,7 +360,7 @@ fn relay_commands_add_remove_username_authority() { // Accept the given username PeopleKusama::execute_with(|| { type PeopleRuntimeEvent = ::RuntimeEvent; - let full_username = [usr.to_owned(), ".suffix1".to_owned()].concat().into_bytes(); + let full_username = usr.to_owned().into_bytes(); assert_ok!(::Identity::accept_username( ::RuntimeOrigin::signed(people_kusama_bob.clone()), @@ -384,6 +387,7 @@ fn relay_commands_add_remove_username_authority() { PeopleRuntime, >::remove_username_authority { authority: people_kusama_runtime::MultiAddress::Id(people_kusama_alice.clone()), + suffix: b"suffix1".to_vec(), }); let remove_authority_xcm_msg = @@ -396,7 +400,7 @@ fn relay_commands_add_remove_username_authority() { // TODO: // this and all other references to `require_weight_at_most` can be // removed once XCMv5 is in use. - require_weight_at_most: Weight::from_parts(500_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(500_000_000, 500_000)), call: remove_username_authority.encode().into(), } ]))), @@ -456,7 +460,7 @@ fn relay_commands_add_remove_username_authority_wrong_origin() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind, - require_weight_at_most: Weight::from_parts(500_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(500_000_000, 500_000)), call: add_username_authority.encode().into(), } ]))), @@ -479,7 +483,7 @@ fn relay_commands_add_remove_username_authority_wrong_origin() { assert_expected_events!( PeopleKusama, vec![ - RuntimeEvent::MessageQueue(pallet_message_queue::Event::ProcessingFailed { error: ProcessMessageError::Unsupported, .. }) => {}, + RuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: false, .. }) => {}, ] ); }); @@ -497,6 +501,7 @@ fn relay_commands_add_remove_username_authority_wrong_origin() { PeopleRuntime, >::remove_username_authority { authority: people_kusama_runtime::MultiAddress::Id(people_kusama_alice.clone()), + suffix: b"suffix1".to_vec(), }); let remove_authority_xcm_msg = RuntimeCall::XcmPallet(pallet_xcm::Call::::send { @@ -505,7 +510,7 @@ fn relay_commands_add_remove_username_authority_wrong_origin() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind: OriginKind::SovereignAccount, - require_weight_at_most: Weight::from_parts(500_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(500_000_000, 500_000)), call: remove_username_authority.encode().into(), } ]))), @@ -528,7 +533,7 @@ fn relay_commands_add_remove_username_authority_wrong_origin() { assert_expected_events!( PeopleKusama, vec![ - RuntimeEvent::MessageQueue(pallet_message_queue::Event::ProcessingFailed { error: ProcessMessageError::Unsupported, .. }) => {}, + RuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: false, .. }) => {}, ] ); }); diff --git a/integration-tests/emulated/tests/people/people-polkadot/Cargo.toml b/integration-tests/emulated/tests/people/people-polkadot/Cargo.toml index 7f614a85be..9fc811bf31 100644 --- a/integration-tests/emulated/tests/people/people-polkadot/Cargo.toml +++ b/integration-tests/emulated/tests/people/people-polkadot/Cargo.toml @@ -36,3 +36,23 @@ polkadot-runtime = { workspace = true } integration-tests-helpers = { workspace = true } people-polkadot-runtime = { workspace = true } polkadot-system-emulated-network = { workspace = true } + +[features] +runtime-benchmarks = [ + "cumulus-pallet-parachain-system/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "integration-tests-helpers/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-identity/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "people-polkadot-runtime/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "polkadot-runtime-constants/runtime-benchmarks", + "polkadot-runtime/runtime-benchmarks", + "polkadot-system-emulated-network/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", + "xcm-runtime-apis/runtime-benchmarks", +] diff --git a/integration-tests/emulated/tests/people/people-polkadot/src/tests/governance.rs b/integration-tests/emulated/tests/people/people-polkadot/src/tests/governance.rs index 4c3ac649a9..95dde444f8 100644 --- a/integration-tests/emulated/tests/people/people-polkadot/src/tests/governance.rs +++ b/integration-tests/emulated/tests/people/people-polkadot/src/tests/governance.rs @@ -16,7 +16,7 @@ use crate::*; use emulated_integration_tests_common::accounts::{ALICE, BOB}; -use frame_support::{sp_runtime::traits::Dispatchable, traits::ProcessMessageError}; +use frame_support::sp_runtime::traits::Dispatchable; use people_polkadot_runtime::people::IdentityInfo; use polkadot_runtime::governance::pallet_custom_origins::Origin::GeneralAdmin as GeneralAdminOrigin; @@ -48,7 +48,7 @@ fn relay_commands_add_registrar() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind, - require_weight_at_most: Weight::from_parts(5_000_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(5_000_000_000, 500_000)), call: add_registrar_call.encode().into(), } ]))), @@ -106,7 +106,7 @@ fn relay_commands_add_registrar_wrong_origin() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind, - require_weight_at_most: Weight::from_parts(5_000_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(5_000_000_000, 500_000)), call: add_registrar_call.encode().into(), } ]))), @@ -128,7 +128,7 @@ fn relay_commands_add_registrar_wrong_origin() { assert_expected_events!( PeoplePolkadot, vec![ - RuntimeEvent::MessageQueue(pallet_message_queue::Event::ProcessingFailed { error: ProcessMessageError::Unsupported, .. }) => {}, + RuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: false, .. }) => {}, ] ); }); @@ -189,7 +189,7 @@ fn relay_commands_kill_identity() { // Making the weight's ref time any lower will prevent the XCM from triggering // execution of the intended extrinsic on the People chain - beware of spurious // test failure due to this. - require_weight_at_most: Weight::from_parts(11_000_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(11_000_000_000, 500_000)), call: kill_identity_call.encode().into(), } ]))), @@ -247,7 +247,7 @@ fn relay_commands_kill_identity_wrong_origin() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind, - require_weight_at_most: Weight::from_parts(11_000_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(11_000_000_000, 500_000)), call: kill_identity_call.encode().into(), } ]))), @@ -269,7 +269,7 @@ fn relay_commands_kill_identity_wrong_origin() { assert_expected_events!( PeoplePolkadot, vec![ - RuntimeEvent::MessageQueue(pallet_message_queue::Event::ProcessingFailed { error: ProcessMessageError::Unsupported, .. }) => {}, + RuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: false, .. }) => {}, ] ); }); @@ -281,8 +281,8 @@ fn relay_commands_add_remove_username_authority() { let people_polkadot_bob = PeoplePolkadot::account_id_of(BOB); let origins = vec![ - (OriginKind::Xcm, GeneralAdminOrigin.into(), "generaladmin"), - (OriginKind::Superuser, ::RuntimeOrigin::root(), "rootusername"), + (OriginKind::Xcm, GeneralAdminOrigin.into(), "generaladmin.suffix1"), + (OriginKind::Superuser, ::RuntimeOrigin::root(), "rootusername.suffix1"), ]; for (origin_kind, origin, usr) in origins { // First, add a username authority. @@ -307,7 +307,7 @@ fn relay_commands_add_remove_username_authority() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind, - require_weight_at_most: Weight::from_parts(500_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(500_000_000, 500_000)), call: add_username_authority.encode().into(), } ]))), @@ -345,6 +345,7 @@ fn relay_commands_add_remove_username_authority() { people_polkadot_runtime::MultiAddress::Id(people_polkadot_bob.clone()), usr.to_owned().into_bytes(), None, + false, )); assert_expected_events!( @@ -358,7 +359,7 @@ fn relay_commands_add_remove_username_authority() { // Accept the given username PeoplePolkadot::execute_with(|| { type PeopleRuntimeEvent = ::RuntimeEvent; - let full_username = [usr.to_owned(), ".suffix1".to_owned()].concat().into_bytes(); + let full_username = usr.to_owned().into_bytes(); assert_ok!(::Identity::accept_username( ::RuntimeOrigin::signed(people_polkadot_bob.clone()), @@ -385,6 +386,7 @@ fn relay_commands_add_remove_username_authority() { PeopleRuntime, >::remove_username_authority { authority: people_polkadot_runtime::MultiAddress::Id(people_polkadot_alice.clone()), + suffix: b"suffix1".to_vec(), }); let remove_authority_xcm_msg = @@ -394,7 +396,7 @@ fn relay_commands_add_remove_username_authority() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind, - require_weight_at_most: Weight::from_parts(500_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(500_000_000, 500_000)), call: remove_username_authority.encode().into(), } ]))), @@ -454,7 +456,7 @@ fn relay_commands_add_remove_username_authority_wrong_origin() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind, - require_weight_at_most: Weight::from_parts(500_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(500_000_000, 500_000)), call: add_username_authority.encode().into(), } ]))), @@ -477,7 +479,7 @@ fn relay_commands_add_remove_username_authority_wrong_origin() { assert_expected_events!( PeoplePolkadot, vec![ - RuntimeEvent::MessageQueue(pallet_message_queue::Event::ProcessingFailed { error: ProcessMessageError::Unsupported, .. }) => {}, + RuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: false, .. }) => {}, ] ); }); @@ -495,6 +497,7 @@ fn relay_commands_add_remove_username_authority_wrong_origin() { PeopleRuntime, >::remove_username_authority { authority: people_polkadot_runtime::MultiAddress::Id(people_polkadot_alice.clone()), + suffix: b"suffix1".to_vec(), }); let remove_authority_xcm_msg = RuntimeCall::XcmPallet(pallet_xcm::Call::::send { @@ -503,7 +506,7 @@ fn relay_commands_add_remove_username_authority_wrong_origin() { UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind: OriginKind::SovereignAccount, - require_weight_at_most: Weight::from_parts(500_000_000, 500_000), + fallback_max_weight: Some(Weight::from_parts(500_000_000, 500_000)), call: remove_username_authority.encode().into(), } ]))), @@ -526,7 +529,7 @@ fn relay_commands_add_remove_username_authority_wrong_origin() { assert_expected_events!( PeoplePolkadot, vec![ - RuntimeEvent::MessageQueue(pallet_message_queue::Event::ProcessingFailed { error: ProcessMessageError::Unsupported, .. }) => {}, + RuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: false, .. }) => {}, ] ); }); diff --git a/pallets/remote-proxy/src/lib.rs b/pallets/remote-proxy/src/lib.rs index 9b9ed8c0ab..fc716e5ee2 100644 --- a/pallets/remote-proxy/src/lib.rs +++ b/pallets/remote-proxy/src/lib.rs @@ -280,7 +280,7 @@ pub mod pallet { (WeightInfoOf::::remote_proxy() // AccountData for inner call origin accountdata. .saturating_add(T::DbWeight::get().reads_writes(1, 1)) - .saturating_add(di.weight), + .saturating_add(di.call_weight), di.class) })] pub fn remote_proxy( @@ -360,7 +360,7 @@ pub mod pallet { (WeightInfoOf::::remote_proxy_with_registered_proof() // AccountData for inner call origin accountdata. .saturating_add(T::DbWeight::get().reads_writes(1, 1)) - .saturating_add(di.weight), + .saturating_add(di.call_weight), di.class) })] pub fn remote_proxy_with_registered_proof( @@ -437,7 +437,7 @@ pub mod pallet { >| -> bool { x.delegate == who && - force_proxy_type.as_ref().map_or(true, |y| &x.proxy_type == y) + force_proxy_type.as_ref().is_none_or(|y| &x.proxy_type == y) }; proxy_definitions diff --git a/relay/common/Cargo.toml b/relay/common/Cargo.toml index 0b735c6645..94aea0ee87 100644 --- a/relay/common/Cargo.toml +++ b/relay/common/Cargo.toml @@ -28,3 +28,7 @@ std = [ "sp-api/std", "sp-runtime/std", ] +runtime-benchmarks = [ + "polkadot-primitives/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", +] diff --git a/relay/kusama/Cargo.toml b/relay/kusama/Cargo.toml index 05a3dc9f05..4b5dd7e7f4 100644 --- a/relay/kusama/Cargo.toml +++ b/relay/kusama/Cargo.toml @@ -22,7 +22,6 @@ kusama-runtime-constants = { workspace = true } sp-api = { workspace = true } sp-inherents = { workspace = true } sp-offchain = { workspace = true } -sp-std = { workspace = true } sp-application-crypto = { workspace = true } sp-arithmetic = { workspace = true } sp-genesis-builder = { workspace = true } @@ -208,7 +207,6 @@ std = [ "sp-runtime/std", "sp-session/std", "sp-staking/std", - "sp-std/std", "sp-storage/std", "sp-tracing/std", "sp-transaction-pool/std", @@ -260,6 +258,7 @@ runtime-benchmarks = [ "pallet-society/runtime-benchmarks", "pallet-staking/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-treasury/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-vesting/runtime-benchmarks", @@ -268,6 +267,7 @@ runtime-benchmarks = [ "pallet-xcm/runtime-benchmarks", "polkadot-primitives/runtime-benchmarks", "polkadot-runtime-common/runtime-benchmarks", + "relay-common/runtime-benchmarks", "runtime-parachains/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "sp-staking/runtime-benchmarks", diff --git a/relay/kusama/src/genesis_config_presets.rs b/relay/kusama/src/genesis_config_presets.rs index 3baaea5700..26b3477719 100644 --- a/relay/kusama/src/genesis_config_presets.rs +++ b/relay/kusama/src/genesis_config_presets.rs @@ -17,6 +17,8 @@ //! Genesis configs presets for the Kusama runtime use crate::*; +#[cfg(not(feature = "std"))] +use alloc::format; use babe_primitives::AuthorityId as BabeId; use kusama_runtime_constants::currency::UNITS as KSM; use pallet_staking::{Forcing, StakerStatus}; @@ -25,9 +27,6 @@ use runtime_parachains::configuration::HostConfiguration; use sp_core::{sr25519, Pair, Public}; use sp_genesis_builder::PresetId; use sp_runtime::{traits::IdentifyAccount, Perbill}; -#[cfg(not(feature = "std"))] -use sp_std::alloc::format; -use sp_std::vec::Vec; /// Helper function to generate a crypto pair from seed fn get_from_seed(seed: &str) -> ::Public { @@ -227,14 +226,17 @@ pub fn kusama_development_config_genesis() -> serde_json::Value { /// Provides the names of the predefined genesis configs for this runtime. pub fn preset_names() -> Vec { - vec![PresetId::from("development"), PresetId::from("local_testnet")] + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("development") => kusama_development_config_genesis(), - Ok("local_testnet") => kusama_local_testnet_genesis(), +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => kusama_development_config_genesis(), + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => kusama_local_testnet_genesis(), _ => return None, }; Some( diff --git a/relay/kusama/src/lib.rs b/relay/kusama/src/lib.rs index 219f3e7038..af8cde425b 100644 --- a/relay/kusama/src/lib.rs +++ b/relay/kusama/src/lib.rs @@ -22,7 +22,13 @@ extern crate alloc; +use alloc::{ + collections::{btree_map::BTreeMap, vec_deque::VecDeque}, + vec, + vec::Vec, +}; use codec::{Decode, Encode, MaxEncodedLen}; +use core::cmp::Ordering; use frame_support::{ dynamic_params::{dynamic_pallet_params, dynamic_params}, traits::{EnsureOrigin, EnsureOriginWithArg}, @@ -31,12 +37,13 @@ use frame_support::{ use kusama_runtime_constants::{proxy::ProxyType, system_parachain::coretime::TIMESLICE_PERIOD}; use pallet_nis::WithMaximumOf; use polkadot_primitives::{ - slashing, AccountId, AccountIndex, ApprovalVotingParams, Balance, BlockNumber, CandidateEvent, - CandidateHash, CommittedCandidateReceipt, CoreIndex, CoreState, DisputeState, ExecutorParams, - GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, InboundHrmpMessage, Moment, - NodeFeatures, Nonce, OccupiedCoreAssumption, PersistedValidationData, ScrapedOnChainVotes, - SessionInfo, Signature, ValidationCode, ValidationCodeHash, ValidatorId, ValidatorIndex, - LOWEST_PUBLIC_ID, PARACHAIN_KEY_TYPE_ID, + slashing, + vstaging::{CandidateEvent, CommittedCandidateReceiptV2, CoreState, ScrapedOnChainVotes}, + AccountId, AccountIndex, ApprovalVotingParams, Balance, BlockNumber, CandidateHash, CoreIndex, + DisputeState, ExecutorParams, GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, + InboundHrmpMessage, Moment, NodeFeatures, Nonce, OccupiedCoreAssumption, + PersistedValidationData, SessionInfo, Signature, ValidationCode, ValidationCodeHash, + ValidatorId, ValidatorIndex, LOWEST_PUBLIC_ID, PARACHAIN_KEY_TYPE_ID, }; use polkadot_runtime_common::{ auctions, claims, crowdloan, impl_runtime_weights, @@ -50,11 +57,6 @@ use polkadot_runtime_common::{ use relay_common::apis::*; use scale_info::TypeInfo; use sp_runtime::traits::Saturating; -use sp_std::{ - cmp::Ordering, - collections::{btree_map::BTreeMap, vec_deque::VecDeque}, - prelude::*, -}; use runtime_parachains::{ assigner_coretime as parachains_assigner_coretime, @@ -69,7 +71,7 @@ use runtime_parachains::{ origin as parachains_origin, paras as parachains_paras, paras_inherent as parachains_paras_inherent, reward_points as parachains_reward_points, runtime_api_impl::{ - v10 as parachains_runtime_api_impl, vstaging as parachains_vstaging_api_impl, + v11 as parachains_runtime_api_impl, vstaging as parachains_runtime_api_impl_vstaging, }, scheduler as parachains_scheduler, session_info as parachains_session_info, shared as parachains_shared, @@ -105,11 +107,10 @@ use pallet_session::historical as session_historical; use pallet_transaction_payment::{FeeDetails, FungibleAdapter, RuntimeDispatchInfo}; use sp_core::{ConstU128, OpaqueMetadata, H256}; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{ AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, - Extrinsic as ExtrinsicT, IdentityLookup, Keccak256, OpaqueKeys, SaturatedConversion, - Verify, + IdentityLookup, Keccak256, OpaqueKeys, SaturatedConversion, Verify, }, transaction_validity::{TransactionPriority, TransactionSource, TransactionValidity}, ApplyExtrinsicResult, FixedU128, KeyTypeId, OpaqueValue, Perbill, Percent, Permill, @@ -177,14 +178,14 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); /// Runtime version (Kusama). #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("kusama"), - impl_name: create_runtime_str!("parity-kusama"), + spec_name: alloc::borrow::Cow::Borrowed("kusama"), + impl_name: alloc::borrow::Cow::Borrowed("parity-kusama"), authoring_version: 2, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 26, - state_version: 1, + system_version: 1, }; /// The BABE epoch configuration at genesis. @@ -206,19 +207,19 @@ parameter_types! { } impl frame_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; type BaseCallFilter = Everything; type BlockWeights = BlockWeights; type BlockLength = BlockLength; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; + type RuntimeTask = RuntimeTask; type Nonce = Nonce; type Hash = Hash; type Hashing = BlakeTwo256; type AccountId = AccountId; type Lookup = AccountIdLookup; type Block = Block; - type RuntimeEvent = RuntimeEvent; - type RuntimeTask = RuntimeTask; type BlockHashCount = BlockHashCount; type DbWeight = RocksDbWeight; type Version = Version; @@ -227,6 +228,7 @@ impl frame_system::Config for Runtime { type OnNewAccount = (); type OnKilledAccount = (); type SystemWeightInfo = weights::frame_system::WeightInfo; + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; @@ -361,6 +363,7 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = ConstU32<8>; type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; + type DoneSlashHandler = (); } parameter_types! { @@ -458,6 +461,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } parameter_types! { @@ -834,7 +838,7 @@ impl pallet_staking::Config for Runtime { type EventListeners = (NominationPools, DelegatedStaking); type DisablingStrategy = pallet_staking::UpToLimitDisablingStrategy; type WeightInfo = weights::pallet_staking::WeightInfo; - // TODO: this will come back later (stable2412/stable25XY) + // TODO: this will come back later (stable25XY) // type Filter = pallet_nomination_pools::AllPoolMembers; fn filter(who: &AccountId) -> bool { pallet_nomination_pools::AllPoolMembers::::contains(who) @@ -934,6 +938,7 @@ impl pallet_treasury::Config for Runtime { type PayoutPeriod = PayoutSpendPeriod; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = polkadot_runtime_common::impls::benchmarks::TreasuryArguments; + type BlockNumberProvider = System; } parameter_types! { @@ -1003,18 +1008,33 @@ impl pallet_grandpa::Config for Runtime { pallet_grandpa::EquivocationReportSystem; } +impl frame_system::offchain::SigningTypes for Runtime { + type Public = ::Signer; + type Signature = Signature; +} + +impl frame_system::offchain::CreateTransactionBase for Runtime +where + RuntimeCall: From, +{ + type Extrinsic = UncheckedExtrinsic; + type RuntimeCall = RuntimeCall; +} + /// Submits transaction with the node's public and signature type. Adheres to the signed extension /// format of the chain. impl frame_system::offchain::CreateSignedTransaction for Runtime where RuntimeCall: From, { - fn create_transaction>( + fn create_signed_transaction< + C: frame_system::offchain::AppCrypto, + >( call: RuntimeCall, public: ::Signer, account: AccountId, nonce: ::Nonce, - ) -> Option<(RuntimeCall, ::SignaturePayload)> { + ) -> Option { use sp_runtime::traits::StaticLookup; // take the biggest period possible. let period = @@ -1026,7 +1046,7 @@ where // so the actual block number is `n`. .saturating_sub(1); let tip = 0; - let extra: SignedExtra = ( + let tx_ext: TxExtension = ( frame_system::CheckNonZeroSender::::new(), frame_system::CheckSpecVersion::::new(), frame_system::CheckTxVersion::::new(), @@ -1040,29 +1060,37 @@ where pallet_transaction_payment::ChargeTransactionPayment::::from(tip), frame_metadata_hash_extension::CheckMetadataHash::new(false), ); - let raw_payload = SignedPayload::new(call, extra) + let raw_payload = SignedPayload::new(call, tx_ext) .map_err(|e| { log::warn!("Unable to create signed payload: {:?}", e); }) .ok()?; let signature = raw_payload.using_encoded(|payload| C::sign(payload, public))?; - let (call, extra, _) = raw_payload.deconstruct(); + let (call, tx_ext, _) = raw_payload.deconstruct(); let address = ::Lookup::unlookup(account); - Some((call, (address, signature, extra))) + let transaction = UncheckedExtrinsic::new_signed(call, address, signature, tx_ext); + Some(transaction) } } -impl frame_system::offchain::SigningTypes for Runtime { - type Public = ::Signer; - type Signature = Signature; +impl frame_system::offchain::CreateTransaction for Runtime +where + RuntimeCall: From, +{ + type Extension = TxExtension; + + fn create_transaction(call: RuntimeCall, extension: TxExtension) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_transaction(call, extension) + } } -impl frame_system::offchain::SendTransactionTypes for Runtime +impl frame_system::offchain::CreateInherent for Runtime where - RuntimeCall: From, + RuntimeCall: From, { - type Extrinsic = UncheckedExtrinsic; - type OverarchingCall = RuntimeCall; + fn create_inherent(call: RuntimeCall) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_bare(call) + } } parameter_types! { @@ -1617,6 +1645,7 @@ impl pallet_balances::Config for Runtime { type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = (); type MaxFreezes = ConstU32<1>; + type DoneSlashHandler = (); } parameter_types! { @@ -1678,7 +1707,7 @@ impl pallet_nomination_pools::Config for Runtime { type PalletId = PoolsPalletId; type MaxPointsToBalance = MaxPointsToBalance; type AdminOrigin = EitherOf, StakingAdmin>; - // TODO: this will come back later (stable2412/stable25XY) + // TODO: this will come back later (stable25XY) // type Filter = pallet_staking::AllStakers; } @@ -1867,8 +1896,8 @@ pub type Block = generic::Block; pub type SignedBlock = generic::SignedBlock; /// `BlockId` type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The `SignedExtension` to the basic transaction logic. -pub type SignedExtra = ( +/// The `TransactionExtension` to the basic transaction logic. +pub type TxExtension = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -1890,9 +1919,19 @@ pub type Migrations = (migrations::Unreleased, migrations::Permanent); #[allow(deprecated, missing_docs)] pub mod migrations { use super::*; + use pallet_balances::WeightInfo; + + parameter_types! { + /// Weight for balance unreservations + pub BalanceTransferAllowDeath: Weight = weights::pallet_balances_native::WeightInfo::::transfer_allow_death(); + } /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = ( + parachains_shared::migration::MigrateToV1, + parachains_scheduler::migration::MigrateV2ToV3, + pallet_child_bounties::migration::MigrateV0ToV1, + ); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = (pallet_xcm::migration::MigrateToLatestXcmVersion,); @@ -1900,7 +1939,7 @@ pub mod migrations { /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -1911,7 +1950,7 @@ pub type Executive = frame_executive::Executive< Migrations, >; /// The payload being signed in the transactions. -pub type SignedPayload = generic::SignedPayload; +pub type SignedPayload = generic::SignedPayload; #[cfg(feature = "runtime-benchmarks")] mod benches { @@ -1963,7 +2002,9 @@ mod benches { [pallet_society, Society] [pallet_staking, Staking] [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [pallet_timestamp, Timestamp] + [pallet_transaction_payment, TransactionPayment] [pallet_treasury, Treasury] [pallet_utility, Utility] [pallet_vesting, Vesting] @@ -1971,7 +2012,7 @@ mod benches { [pallet_asset_rate, AssetRate] [pallet_parameters, Parameters] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] [pallet_xcm_benchmarks::fungible, pallet_xcm_benchmarks::fungible::Pallet::] [pallet_xcm_benchmarks::generic, pallet_xcm_benchmarks::generic::Pallet::] ); @@ -2034,7 +2075,8 @@ mod benches { )) } - fn set_up_complex_asset_transfer() -> Option<(Assets, u32, Location, Box)> { + fn set_up_complex_asset_transfer( + ) -> Option<(Assets, u32, Location, alloc::boxed::Box)> { // Relay supports only native token, either reserve transfer it to non-system // parachains, or teleport it to system parachain. Use the teleport case for // benchmarking as it's slightly heavier. @@ -2075,7 +2117,7 @@ mod benches { parameter_types! { pub TrustedTeleporter: Option<(Location, Asset)> = Some(( AssetHubLocation::get(), - Asset { fun: Fungible(1 * UNITS), id: AssetId(TokenLocation::get()) }, + Asset { fun: Fungible(UNITS), id: AssetId(TokenLocation::get()) }, )); pub const TrustedReserve: Option<(Location, Asset)> = None; } @@ -2088,7 +2130,12 @@ mod benches { type TrustedReserve = TrustedReserve; fn get_asset() -> Asset { - Asset { id: AssetId(TokenLocation::get()), fun: Fungible(1 * UNITS) } + // We put more than ED here for being able to keep accounts alive when transferring + // and paying the delivery fees. + Asset { + id: AssetId(TokenLocation::get()), + fun: Fungible(1_000_000 * ExistentialDeposit::get()), + } } } @@ -2155,12 +2202,14 @@ mod benches { baseline::Pallet as Baseline, BenchmarkBatch, BenchmarkError, BenchmarkList, Benchmarking, }; pub use frame_support::traits::{StorageInfoTrait, WhitelistedStorageKeys}; - pub use frame_system_benchmarking::Pallet as SystemBench; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; pub use pallet_election_provider_support_benchmarking::Pallet as ElectionProviderBench; pub use pallet_nomination_pools_benchmarking::Pallet as NominationPoolsBench; pub use pallet_offences_benchmarking::Pallet as OffencesBench; pub use pallet_session_benchmarking::Pallet as SessionBench; - pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; pub use sp_storage::TrackedStorageKey; } @@ -2231,7 +2280,7 @@ sp_api::impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -2273,7 +2322,7 @@ sp_api::impl_runtime_apis! { } } - #[api_version(11)] + #[api_version(12)] impl polkadot_primitives::runtime_api::ParachainHost for Runtime { fn validators() -> Vec { parachains_runtime_api_impl::validators::() @@ -2318,7 +2367,7 @@ sp_api::impl_runtime_apis! { parachains_runtime_api_impl::validation_code::(para_id, assumption) } - fn candidate_pending_availability(para_id: ParaId) -> Option> { + fn candidate_pending_availability(para_id: ParaId) -> Option> { #[allow(deprecated)] parachains_runtime_api_impl::candidate_pending_availability::(para_id) } @@ -2410,7 +2459,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 { parachains_runtime_api_impl::backing_state::(para_id) } @@ -2431,11 +2480,15 @@ sp_api::impl_runtime_apis! { } fn claim_queue() -> BTreeMap> { - parachains_vstaging_api_impl::claim_queue::() + parachains_runtime_api_impl::claim_queue::() + } + + fn candidates_pending_availability(para_id: ParaId) -> Vec> { + parachains_runtime_api_impl::candidates_pending_availability::(para_id) } - fn candidates_pending_availability(para_id: ParaId) -> Vec> { - parachains_vstaging_api_impl::candidates_pending_availability::(para_id) + fn validation_code_bomb_limit() -> u32 { + parachains_runtime_api_impl_vstaging::validation_code_bomb_limit::() } } @@ -2798,6 +2851,10 @@ sp_api::impl_runtime_apis! { fn pool_balance(pool_id: pallet_nomination_pools::PoolId) -> Balance { NominationPools::api_pool_balance(pool_id) } + + fn pool_accounts(pool_id: pallet_nomination_pools::PoolId) -> (AccountId, AccountId) { + NominationPools::api_pool_accounts(pool_id) + } } impl pallet_staking_runtime_api::StakingApi for Runtime { @@ -2858,14 +2915,14 @@ sp_api::impl_runtime_apis! { list_benchmarks!(list, extra); let storage_info = AllPalletsWithSystem::storage_info(); - return (list, storage_info) + (list, storage_info) } fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig ) -> Result< Vec, - sp_runtime::RuntimeString, + alloc::string::String, > { let mut whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let treasury_key = frame_system::Account::::hashed_key_for(Treasury::account_id()); @@ -2962,7 +3019,7 @@ mod multiplier_tests { let mut fees_paid = 0; frame_system::Pallet::::set_block_consumed_resources(Weight::MAX, 0); - let info = DispatchInfo { weight: Weight::MAX, ..Default::default() }; + let info = DispatchInfo { call_weight: Weight::MAX, ..Default::default() }; let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() .build_storage() diff --git a/relay/kusama/src/tests.rs b/relay/kusama/src/tests.rs index 8d00742439..ae83ea77b8 100644 --- a/relay/kusama/src/tests.rs +++ b/relay/kusama/src/tests.rs @@ -102,8 +102,9 @@ fn transfer_cost_min_multiplier() { pallet_transaction_payment::NextFeeMultiplier::::put(m); let fee = TransactionPayment::compute_fee(len, &info, 0); println!( - "weight = {:?} // multiplier = {:?} // full transfer fee = {:?}", - info.weight.ref_time().separated_string(), + "extension_weight = {:?} // call_weight = {:?} // multiplier = {:?} // full transfer fee = {:?}", + info.extension_weight.ref_time().separated_string(), + info.call_weight.ref_time().separated_string(), pallet_transaction_payment::NextFeeMultiplier::::get(), fee.separated_string(), ); diff --git a/relay/kusama/src/weights/frame_system_extensions.rs b/relay/kusama/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..3fdcf734a5 --- /dev/null +++ b/relay/kusama/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/relay/kusama/src/weights/mod.rs b/relay/kusama/src/weights/mod.rs index 872af9c7ec..8473d92043 100644 --- a/relay/kusama/src/weights/mod.rs +++ b/relay/kusama/src/weights/mod.rs @@ -17,6 +17,7 @@ pub mod frame_election_provider_support; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_asset_rate; pub mod pallet_bags_list; pub mod pallet_balances_native; @@ -43,6 +44,7 @@ pub mod pallet_session; pub mod pallet_society; pub mod pallet_staking; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_treasury; pub mod pallet_utility; pub mod pallet_vesting; diff --git a/relay/kusama/src/weights/pallet_bounties.rs b/relay/kusama/src/weights/pallet_bounties.rs index b1ec23908b..2fc848f67c 100644 --- a/relay/kusama/src/weights/pallet_bounties.rs +++ b/relay/kusama/src/weights/pallet_bounties.rs @@ -94,6 +94,21 @@ impl pallet_bounties::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyApprovals` (r:1 w:1) + /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + fn approve_bounty_with_curator() -> Weight { + // Proof Size summary in bytes: + // Measured: `302` + // Estimated: `3642` + // Minimum execution time: 17_660_000 picoseconds. + Weight::from_parts(17_950_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Bounties::Bounties` (r:1 w:1) /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:1) diff --git a/relay/kusama/src/weights/pallet_transaction_payment.rs b/relay/kusama/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/relay/kusama/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/relay/kusama/src/weights/polkadot_runtime_common_claims.rs b/relay/kusama/src/weights/polkadot_runtime_common_claims.rs index 4495981c3f..61d87e9eac 100644 --- a/relay/kusama/src/weights/polkadot_runtime_common_claims.rs +++ b/relay/kusama/src/weights/polkadot_runtime_common_claims.rs @@ -163,4 +163,22 @@ impl polkadot_runtime_common::claims::WeightInfo for We .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(7)) } + /// Storage: `Claims::Claims` (r:1 w:2) + /// Proof: `Claims::Claims` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Claims::Vesting` (r:1 w:2) + /// Proof: `Claims::Vesting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Claims::Signing` (r:1 w:2) + /// Proof: `Claims::Signing` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Claims::Preclaims` (r:1 w:1) + /// Proof: `Claims::Preclaims` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn prevalidate_attests() -> Weight { + // Proof Size summary in bytes: + // Measured: `440` + // Estimated: `3905` + // Minimum execution time: 35_501_000 picoseconds. + Weight::from_parts(37_560_000, 0) + .saturating_add(Weight::from_parts(0, 3905)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(7)) + } } diff --git a/relay/kusama/src/weights/xcm/mod.rs b/relay/kusama/src/weights/xcm/mod.rs index 0df173d545..15d580dea4 100644 --- a/relay/kusama/src/weights/xcm/mod.rs +++ b/relay/kusama/src/weights/xcm/mod.rs @@ -18,11 +18,14 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::Runtime; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; - +use alloc::vec::Vec; +use frame_election_provider_support::BoundedVec; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmBalancesWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; +use xcm::{ + latest::{prelude::*, AssetTransferFilter}, + DoubleEncoded, +}; /// Types of asset supported by the Kusama runtime. pub enum AssetTypes { @@ -65,7 +68,7 @@ impl WeighAssets for AssetFilter { // only 1 kind of fungible asset. Self::Wild(AllOf { .. } | AllOfCounted { .. }) => balances_weight, Self::Wild(AllCounted(count)) => - balances_weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + balances_weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), Self::Wild(All) => balances_weight.saturating_mul(MAX_ASSETS), } } @@ -111,7 +114,7 @@ impl XcmWeightInfo for KusamaXcmWeight { } fn transact( _origin_kind: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -265,6 +268,48 @@ impl XcmWeightInfo for KusamaXcmWeight { fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmBalancesWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmBalancesWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } #[test] diff --git a/relay/kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/relay/kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 88886709d1..ae4b0e52c6 100644 --- a/relay/kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/relay/kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -185,4 +185,23 @@ impl WeightInfo { .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/relay/kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/relay/kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 000ef4e252..7c148692cc 100644 --- a/relay/kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/relay/kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -75,6 +75,20 @@ impl WeightInfo { Weight::from_parts(1_170_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `XcmPallet::Queries` (r:1 w:0) /// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -134,6 +148,13 @@ impl WeightInfo { Weight::from_parts(1_100_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/relay/kusama/src/xcm_config.rs b/relay/kusama/src/xcm_config.rs index 04d84533a2..c9ac93c03f 100644 --- a/relay/kusama/src/xcm_config.rs +++ b/relay/kusama/src/xcm_config.rs @@ -305,45 +305,3 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = crate::weights::pallet_xcm::WeightInfo; type AdminOrigin = EnsureRoot; } - -#[test] -fn karura_liquid_staking_xcm_has_sane_weight_upper_limit() { - use codec::Decode; - use frame_support::dispatch::GetDispatchInfo; - use xcm::VersionedXcm; - use xcm_executor::traits::WeightBounds; - - // should be [WithdrawAsset, BuyExecution, Transact, RefundSurplus, DepositAsset] - let blob = hex_literal::hex!("02140004000000000700e40b540213000000000700e40b54020006010700c817a804341801000006010b00c490bf4302140d010003ffffffff000100411f"); - #[allow(deprecated)] // `xcm::v2` is deprecated - let Ok(VersionedXcm::V2(old_xcm_v2)) = VersionedXcm::::decode(&mut &blob[..]) else { - panic!("can't decode XCM blob") - }; - let old_xcm_v3: xcm::v3::Xcm = - old_xcm_v2.try_into().expect("conversion from v2 to v3 works"); - let mut xcm: Xcm = - old_xcm_v3.try_into().expect("conversion from v3 to latest works"); - let weight = ::Weigher::weight(&mut xcm) - .expect("weighing XCM failed"); - - // Test that the weigher gives us a sensible weight but don't exactly hard-code it, otherwise it - // will be out of date after each re-run. - assert!(weight.all_lte(Weight::from_parts(30_313_281_000, 72_722))); - - let Some(Transact { require_weight_at_most, call, .. }) = - xcm.inner_mut().iter_mut().find(|inst| matches!(inst, Transact { .. })) - else { - panic!("no Transact instruction found") - }; - // should be pallet_utility.as_derivative { index: 0, call: pallet_staking::bond_extra { - // max_additional: 2490000000000 } } - let message_call = call.take_decoded().expect("can't decode Transact call"); - let call_weight = message_call.get_dispatch_info().weight; - // Ensure that the Transact instruction is giving a sensible `require_weight_at_most` value - assert!( - call_weight.all_lte(*require_weight_at_most), - "call weight ({:?}) was not less than or equal to require_weight_at_most ({:?})", - call_weight, - require_weight_at_most - ); -} diff --git a/relay/kusama/tests/asset_rate.rs b/relay/kusama/tests/asset_rate.rs index 72ee7be0b0..38daa44a36 100644 --- a/relay/kusama/tests/asset_rate.rs +++ b/relay/kusama/tests/asset_rate.rs @@ -24,14 +24,22 @@ use xcm::prelude::*; #[test] fn native_asset_rate_works() { sp_io::TestExternalities::default().execute_with(|| { - // success: native asset on Asset Hub as xcm v4 location - let native = VersionedLocatableAsset::V4 { + // success: native asset on Asset Hub as xcm v5 location + let native = VersionedLocatableAsset::V5 { location: Location::new(0, [Parachain(1000)]), asset_id: Location::parent().into(), }; let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); + // success: native asset on Asset Hub as xcm v4 location + let native = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(0, [xcm::v4::Junction::Parachain(1000)]), + asset_id: xcm::v4::Location::parent().into(), + }; + let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); + assert_eq!(actual, 100); + // success: native asset on Asset Hub as xcm v3 location let native = VersionedLocatableAsset::V3 { location: xcm::v3::Location::new( @@ -43,14 +51,22 @@ fn native_asset_rate_works() { let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); - // success: native asset on People as xcm v4 location - let native = VersionedLocatableAsset::V4 { + // success: native asset on People as xcm v5 location + let native = VersionedLocatableAsset::V5 { location: Location::new(0, [Parachain(1004)]), asset_id: Location::parent().into(), }; let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); + // success: native asset on People as xcm v4 location + let native = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(0, [xcm::v4::Junction::Parachain(1004)]), + asset_id: xcm::v4::Location::parent().into(), + }; + let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); + assert_eq!(actual, 100); + // success: native asset on People as xcm v3 location let native = VersionedLocatableAsset::V3 { location: xcm::v3::Location::new( @@ -62,13 +78,20 @@ fn native_asset_rate_works() { let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); - // failure: native asset on non system chain as xcm v4 location - let native_non_system = VersionedLocatableAsset::V4 { + // failure: native asset on non system chain as xcm v5 location + let native_non_system = VersionedLocatableAsset::V5 { location: Location::new(0, [Parachain(2000)]), asset_id: Location::parent().into(), }; assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); + // failure: native asset on non system chain as xcm v4 location + let native_non_system = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(0, [xcm::v4::Junction::Parachain(2000)]), + asset_id: xcm::v4::Location::parent().into(), + }; + assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); + // failure: native asset on non system chain as xcm v3 location let native_non_system = VersionedLocatableAsset::V3 { location: xcm::v3::Location::new( @@ -79,15 +102,26 @@ fn native_asset_rate_works() { }; assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); - // failure: some asset on Asset Hub as xcm v4 location - let non_native = VersionedLocatableAsset::V4 { + // failure: some asset on Asset Hub as xcm v5 location + let non_native = VersionedLocatableAsset::V5 { location: Location::new(0, [Parachain(2000)]), asset_id: Location::new(0, [PalletInstance(50), GeneralIndex(1984)]).into(), }; assert!(AssetRateWithNative::from_asset_balance(100, non_native).is_err()); - // failure: native asset with invalid system chain location as xcm v4 location - let native_non_system = VersionedLocatableAsset::V4 { + // failure: some asset on Asset Hub as xcm v4 location + let non_native = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(0, [xcm::v4::Junction::Parachain(2000)]), + asset_id: xcm::v4::Location::new( + 0, + [xcm::v4::Junction::PalletInstance(50), xcm::v4::Junction::GeneralIndex(1984)], + ) + .into(), + }; + assert!(AssetRateWithNative::from_asset_balance(100, non_native).is_err()); + + // failure: native asset with invalid system chain location as xcm v5 location + let native_non_system = VersionedLocatableAsset::V5 { location: Location::new(1, [Parachain(1000)]), asset_id: Location::parent().into(), }; diff --git a/relay/polkadot/Cargo.toml b/relay/polkadot/Cargo.toml index 9ff7367362..9b3d1dc46d 100644 --- a/relay/polkadot/Cargo.toml +++ b/relay/polkadot/Cargo.toml @@ -24,7 +24,6 @@ sp-transaction-pool = { workspace = true } sp-arithmetic = { workspace = true } sp-api = { workspace = true } sp-genesis-builder = { workspace = true } -sp-std = { workspace = true } sp-application-crypto = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } @@ -210,7 +209,6 @@ std = [ "sp-runtime/std", "sp-session/std", "sp-staking/std", - "sp-std/std", "sp-storage/std", "sp-tracing/std", "sp-transaction-pool/std", @@ -258,6 +256,7 @@ runtime-benchmarks = [ "pallet-staking/runtime-benchmarks", "pallet-state-trie-migration/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-treasury/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-vesting/runtime-benchmarks", @@ -268,6 +267,7 @@ runtime-benchmarks = [ "polkadot-primitives/runtime-benchmarks", "polkadot-runtime-common/runtime-benchmarks", "polkadot-runtime-constants/runtime-benchmarks", + "relay-common/runtime-benchmarks", "runtime-parachains/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "sp-staking/runtime-benchmarks", diff --git a/relay/polkadot/src/coretime_migration.rs b/relay/polkadot/src/coretime_migration.rs deleted file mode 100644 index 5bf73efc42..0000000000 --- a/relay/polkadot/src/coretime_migration.rs +++ /dev/null @@ -1,315 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Coretime migration for Polkadot runtime - -use crate::{ - coretime::{Config, WeightInfo}, - parachains_assigner_coretime, - parachains_assigner_coretime::PartsOf57600, - OriginKind, -}; -use codec::{Decode, Encode}; -use core::{iter, result}; -#[cfg(feature = "try-runtime")] -use frame_support::ensure; -use frame_support::{ - traits::{OnRuntimeUpgrade, PalletInfoAccess, StorageVersion}, - weights::Weight, -}; -use frame_system::pallet_prelude::BlockNumberFor; -use pallet_broker::{CoreAssignment, CoreMask, ScheduleItem}; -use polkadot_parachain_primitives::primitives::IsSystem; -use polkadot_primitives::{Balance, BlockNumber, CoreIndex, Id as ParaId}; -use polkadot_runtime_constants::system_parachain::coretime::TIMESLICE_PERIOD; -use runtime_parachains::configuration; -#[cfg(feature = "try-runtime")] -use runtime_parachains::scheduler::common::AssignmentProvider; - -use sp_arithmetic::traits::SaturatedConversion; -use sp_core::Get; -use sp_runtime::BoundedVec; -use sp_std::{vec, vec::Vec}; -use xcm::prelude::{send_xcm, Instruction, Junction, Location, SendError, WeightLimit, Xcm}; - -/// Return information about a legacy lease of a parachain. -pub trait GetLegacyLease { - /// If parachain is a lease holding parachain, return the block at which the lease expires. - fn get_parachain_lease_in_blocks(para: ParaId) -> Option; - // All parachains holding a lease, no matter if there are gaps in the slots or not. - fn get_all_parachains_with_leases() -> Vec; -} - -#[derive(Encode, Decode)] -enum CoretimeCalls { - #[codec(index = 1)] - Reserve(pallet_broker::Schedule), - #[codec(index = 3)] - SetLease(pallet_broker::TaskId, pallet_broker::Timeslice), - #[codec(index = 19)] - NotifyCoreCount(u16), - #[codec(index = 20)] - NotifyRevenue((BlockNumber, Balance)), - #[codec(index = 99)] - SwapLeases(ParaId, ParaId), -} - -#[derive(Encode, Decode)] -enum BrokerRuntimePallets { - #[codec(index = 50)] - Broker(CoretimeCalls), -} - -/// Migrate a chain to use coretime. -/// -/// This assumes that the `Coretime` and the `AssignerCoretime` pallets are added at the same -/// time to a runtime. -pub struct MigrateToCoretime( - core::marker::PhantomData<(T, SendXcm, LegacyLease)>, -); - -impl>> - MigrateToCoretime -{ - fn already_migrated() -> bool { - // We are using the assigner coretime because the coretime pallet doesn't has any - // storage data. But both pallets are introduced at the same time, so this is fine. - let name_hash = parachains_assigner_coretime::Pallet::::name_hash(); - let mut next_key = name_hash.to_vec(); - let storage_version_key = - StorageVersion::storage_key::>(); - - loop { - match sp_io::storage::next_key(&next_key) { - // StorageVersion is initialized before, so we need to ignore it. - Some(key) if key == storage_version_key => { - next_key = key; - }, - // If there is any other key with the prefix of the pallet, - // we already have executed the migration. - Some(key) if key.starts_with(&name_hash) => { - log::info!("`MigrateToCoretime` already executed!"); - return true - }, - // Any other key/no key means that we did not yet have migrated. - None | Some(_) => return false, - } - } - } -} - -impl< - T: Config + runtime_parachains::dmp::Config, - SendXcm: xcm::v4::SendXcm, - LegacyLease: GetLegacyLease>, - > OnRuntimeUpgrade for MigrateToCoretime -{ - fn on_runtime_upgrade() -> Weight { - if Self::already_migrated() { - return Weight::zero() - } - - log::info!("Migrating existing parachains to coretime."); - migrate_to_coretime::() - } - - #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, sp_runtime::DispatchError> { - if Self::already_migrated() { - return Ok(Vec::new()) - } - - let legacy_paras = LegacyLease::get_all_parachains_with_leases(); - let config = configuration::ActiveConfig::::get(); - let total_core_count = config.scheduler_params.num_cores + legacy_paras.len() as u32; - - Ok(total_core_count.encode()) - } - - #[cfg(feature = "try-runtime")] - fn post_upgrade(state: Vec) -> Result<(), sp_runtime::DispatchError> { - if state.is_empty() { - return Ok(()) - } - - log::trace!("Running post_upgrade()"); - - let prev_core_count = ::decode(&mut &state[..]).unwrap(); - let new_core_count = parachains_assigner_coretime::Pallet::::session_core_count(); - ensure!(new_core_count == prev_core_count, "Total number of cores need to not change."); - - Ok(()) - } -} - -// Migrate to Coretime. -// -// NOTE: Also migrates `num_cores` config value in configuration::ActiveConfig. -fn migrate_to_coretime< - T: Config, - SendXcm: xcm::v4::SendXcm, - LegacyLease: GetLegacyLease>, ->() -> Weight { - let legacy_paras = LegacyLease::get_all_parachains_with_leases(); - let legacy_count = legacy_paras.len() as u32; - let now = frame_system::Pallet::::block_number(); - for (core, para_id) in legacy_paras.into_iter().enumerate() { - let r = parachains_assigner_coretime::Pallet::::assign_core( - CoreIndex(core as u32), - now, - vec![(CoreAssignment::Task(para_id.into()), PartsOf57600::FULL)], - None, - ); - if let Err(err) = r { - log::error!( - "Creating assignment for existing para failed: {:?}, error: {:?}", - para_id, - err - ); - } - } - - let config = configuration::ActiveConfig::::get(); - for on_demand in 0..config.scheduler_params.num_cores { - let core = CoreIndex(legacy_count.saturating_add(on_demand as _)); - let r = parachains_assigner_coretime::Pallet::::assign_core( - core, - now, - vec![(CoreAssignment::Pool, PartsOf57600::FULL)], - None, - ); - if let Err(err) = r { - log::error!("Creating assignment for existing on-demand core, failed: {:?}", err); - } - } - let total_cores = config.scheduler_params.num_cores + legacy_count; - configuration::ActiveConfig::::mutate(|c| { - c.scheduler_params.num_cores = total_cores; - }); - - if let Err(err) = migrate_send_assignments_to_coretime_chain::() { - log::error!("Sending legacy chain data to coretime chain failed: {:?}", err); - } - - let single_weight = ::WeightInfo::assign_core(1); - single_weight - .saturating_mul(u64::from(legacy_count.saturating_add(config.scheduler_params.num_cores))) - // Second read from sending assignments to the coretime chain. - .saturating_add(T::DbWeight::get().reads_writes(2, 1)) -} - -fn migrate_send_assignments_to_coretime_chain< - T: Config, - SendXcm: xcm::v4::SendXcm, - LegacyLease: GetLegacyLease>, ->() -> result::Result<(), SendError> { - let legacy_paras = LegacyLease::get_all_parachains_with_leases(); - let legacy_paras_count = legacy_paras.len(); - let (system_chains, lease_holding): (Vec<_>, Vec<_>) = - legacy_paras.into_iter().partition(IsSystem::is_system); - - let reservations = system_chains.into_iter().map(|p| { - let schedule = BoundedVec::truncate_from(vec![ScheduleItem { - mask: CoreMask::complete(), - assignment: CoreAssignment::Task(p.into()), - }]); - mk_coretime_call::(CoretimeCalls::Reserve(schedule)) - }); - - let mut leases = lease_holding.into_iter().filter_map(|p| { - log::trace!(target: "coretime-migration", "Preparing sending of lease holding para {:?}", p); - let Some(valid_until) = LegacyLease::get_parachain_lease_in_blocks(p) else { - log::error!("Lease holding chain with no lease information?!"); - return None - }; - - let valid_until: u32 = match valid_until.try_into() { - Ok(val) => val, - Err(_) => { - log::error!("Converting block number to u32 failed!"); - return None - }, - }; - - let time_slice = (valid_until + TIMESLICE_PERIOD - 1).div_ceil(TIMESLICE_PERIOD); - log::trace!(target: "coretime-migration", "Sending of lease holding para {:?}, valid_until: {:?}, time_slice: {:?}", p, valid_until, time_slice); - Some(mk_coretime_call::(CoretimeCalls::SetLease(p.into(), time_slice))) - }); - - let core_count: u16 = configuration::ActiveConfig::::get() - .scheduler_params - .num_cores - .saturated_into(); - let set_core_count = - iter::once(mk_coretime_call::(CoretimeCalls::NotifyCoreCount(core_count))); - log::trace!(target: "coretime-migration", "Set core count to {:?}. legacy paras count is {:?}",core_count, legacy_paras_count); - - let pool = (legacy_paras_count..core_count.into()).map(|_| { - let schedule = BoundedVec::truncate_from(vec![ScheduleItem { - mask: CoreMask::complete(), - assignment: CoreAssignment::Pool, - }]); - // Reserved cores will come before lease cores, so cores will change their assignments - // when coretime chain sends us their assign_core calls -> Good test. - mk_coretime_call::(CoretimeCalls::Reserve(schedule)) - }); - - let message_content = iter::once(Instruction::UnpaidExecution { - weight_limit: WeightLimit::Unlimited, - check_origin: None, - }); - - let reservation_content = message_content.clone().chain(reservations).collect(); - let leases_content_1 = message_content - .clone() - .chain(leases.by_ref().take(legacy_paras_count / 2)) // split in two messages to avoid overweighted XCM - .collect(); - let leases_content_2 = message_content.clone().chain(leases).collect(); - let set_core_count_content = message_content.clone().chain(set_core_count).collect(); - - // If `pool_content` is empty don't send a blank XCM message - let messages = if core_count as usize > legacy_paras_count { - let pool_content = message_content.clone().chain(pool).collect(); - vec![ - Xcm(reservation_content), - Xcm(pool_content), - Xcm(leases_content_1), - Xcm(leases_content_2), - Xcm(set_core_count_content), - ] - } else { - vec![ - Xcm(reservation_content), - Xcm(leases_content_1), - Xcm(leases_content_2), - Xcm(set_core_count_content), - ] - }; - - for message in messages { - send_xcm::(Location::new(0, Junction::Parachain(T::BrokerId::get())), message)?; - } - - Ok(()) -} - -fn mk_coretime_call(call: CoretimeCalls) -> Instruction<()> { - Instruction::Transact { - origin_kind: OriginKind::Superuser, - require_weight_at_most: T::MaxXcmTransactWeight::get(), - call: BrokerRuntimePallets::Broker(call).encode().into(), - } -} diff --git a/relay/polkadot/src/genesis_config_presets.rs b/relay/polkadot/src/genesis_config_presets.rs index 63717f69e5..26272917e7 100644 --- a/relay/polkadot/src/genesis_config_presets.rs +++ b/relay/polkadot/src/genesis_config_presets.rs @@ -17,6 +17,8 @@ //! Genesis configs presets for the Polkadot runtime use crate::*; +#[cfg(not(feature = "std"))] +use alloc::format; use babe_primitives::AuthorityId as BabeId; use pallet_staking::{Forcing, StakerStatus}; use polkadot_primitives::{AccountPublic, AssignmentId, AsyncBackingParams}; @@ -25,9 +27,6 @@ use runtime_parachains::configuration::HostConfiguration; use sp_core::{sr25519, Pair, Public}; use sp_genesis_builder::PresetId; use sp_runtime::{traits::IdentifyAccount, Perbill}; -#[cfg(not(feature = "std"))] -use sp_std::alloc::format; -use sp_std::vec::Vec; /// Helper function to generate a crypto pair from seed fn get_from_seed(seed: &str) -> ::Public { @@ -227,14 +226,17 @@ pub fn polkadot_development_config_genesis() -> serde_json::Value { /// Provides the names of the predefined genesis configs for this runtime. pub fn preset_names() -> Vec { - vec![PresetId::from("development"), PresetId::from("local_testnet")] + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("development") => polkadot_development_config_genesis(), - Ok("local_testnet") => polkadot_local_testnet_genesis(), +pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => polkadot_development_config_genesis(), + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => polkadot_local_testnet_genesis(), _ => return None, }; Some( diff --git a/relay/polkadot/src/lib.rs b/relay/polkadot/src/lib.rs index ea09fa01b1..99b2b6b542 100644 --- a/relay/polkadot/src/lib.rs +++ b/relay/polkadot/src/lib.rs @@ -20,6 +20,13 @@ // `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. #![recursion_limit = "512"] +extern crate alloc; + +use alloc::{ + collections::{BTreeMap, VecDeque}, + vec, + vec::Vec, +}; use pallet_transaction_payment::FungibleAdapter; use polkadot_runtime_common::{ auctions, claims, crowdloan, impl_runtime_weights, @@ -44,7 +51,7 @@ use runtime_parachains::{ origin as parachains_origin, paras as parachains_paras, paras_inherent as parachains_paras_inherent, reward_points as parachains_reward_points, runtime_api_impl::{ - v10 as parachains_runtime_api_impl, vstaging as parachains_vstaging_api_impl, + v11 as parachains_runtime_api_impl, vstaging as parachains_runtime_api_impl_vstaging, }, scheduler as parachains_scheduler, session_info as parachains_session_info, shared as parachains_shared, @@ -57,6 +64,7 @@ use beefy_primitives::{ OpaqueKeyOwnershipProof, }; use codec::{Decode, Encode, MaxEncodedLen}; +use core::cmp::Ordering; use frame_election_provider_support::{ bounds::ElectionBoundsBuilder, generate_solution_type, onchain, SequentialPhragmen, }; @@ -82,31 +90,29 @@ use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId}; use pallet_session::historical as session_historical; use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo}; use polkadot_primitives::{ - slashing, AccountId, AccountIndex, ApprovalVotingParams, Balance, BlockNumber, CandidateEvent, - CandidateHash, CommittedCandidateReceipt, CoreIndex, CoreState, DisputeState, ExecutorParams, - GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, InboundHrmpMessage, Moment, - NodeFeatures, Nonce, OccupiedCoreAssumption, PersistedValidationData, ScrapedOnChainVotes, - SessionInfo, Signature, ValidationCode, ValidationCodeHash, ValidatorId, ValidatorIndex, - PARACHAIN_KEY_TYPE_ID, + slashing, + vstaging::{ + CandidateEvent, CommittedCandidateReceiptV2 as CommittedCandidateReceipt, CoreState, + ScrapedOnChainVotes, + }, + AccountId, AccountIndex, ApprovalVotingParams, Balance, BlockNumber, CandidateHash, CoreIndex, + DisputeState, ExecutorParams, GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, + InboundHrmpMessage, Moment, NodeFeatures, Nonce, OccupiedCoreAssumption, + PersistedValidationData, SessionInfo, Signature, ValidationCode, ValidationCodeHash, + ValidatorId, ValidatorIndex, PARACHAIN_KEY_TYPE_ID, }; use sp_core::{OpaqueMetadata, H256}; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{ AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, - Extrinsic as ExtrinsicT, IdentityLookup, Keccak256, OpaqueKeys, SaturatedConversion, - Verify, + IdentityLookup, Keccak256, OpaqueKeys, SaturatedConversion, Verify, }, transaction_validity::{TransactionPriority, TransactionSource, TransactionValidity}, ApplyExtrinsicResult, FixedU128, KeyTypeId, OpaqueValue, Perbill, Percent, Permill, RuntimeDebug, }; use sp_staking::SessionIndex; -use sp_std::{ - cmp::Ordering, - collections::{btree_map::BTreeMap, vec_deque::VecDeque}, - prelude::*, -}; #[cfg(any(feature = "std", test))] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -146,8 +152,6 @@ use governance::{ pub mod impls; pub mod xcm_config; -mod coretime_migration; - /// Default logging target. pub const LOG_TARGET: &str = "runtime::polkadot"; @@ -161,14 +165,14 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); /// Runtime version (Polkadot). #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("polkadot"), - impl_name: create_runtime_str!("parity-polkadot"), + spec_name: alloc::borrow::Cow::Borrowed("polkadot"), + impl_name: alloc::borrow::Cow::Borrowed("parity-polkadot"), authoring_version: 0, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 26, - state_version: 1, + system_version: 1, }; /// The BABE epoch configuration at genesis. @@ -211,6 +215,7 @@ impl frame_system::Config for Runtime { type OnNewAccount = (); type OnKilledAccount = (); type SystemWeightInfo = weights::frame_system::WeightInfo; + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; @@ -346,6 +351,7 @@ impl pallet_balances::Config for Runtime { type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = RuntimeFreezeReason; type MaxFreezes = ConstU32<8>; + type DoneSlashHandler = (); } parameter_types! { @@ -443,6 +449,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } parameter_types! { @@ -701,16 +708,15 @@ impl pallet_staking::Config for Runtime { type VoterList = VoterList; type TargetList = UseValidatorsMap; type NominationsQuota = pallet_staking::FixedNominationsQuota<{ MaxNominations::get() }>; - type MaxUnlockingChunks = frame_support::traits::ConstU32<32>; - type HistoryDepth = frame_support::traits::ConstU32<84>; + type MaxUnlockingChunks = ConstU32<32>; + type HistoryDepth = ConstU32<84>; type MaxControllersInDeprecationBatch = ConstU32<5314>; type BenchmarkingConfig = polkadot_runtime_common::StakingBenchmarkingConfig; type EventListeners = (NominationPools, DelegatedStaking); type DisablingStrategy = pallet_staking::UpToLimitDisablingStrategy; type WeightInfo = weights::pallet_staking::WeightInfo; - // TODO: this will come back later (stable2412/stable25XY) + // TODO: this will come back later (stable25XY) // type Filter = pallet_nomination_pools::AllPoolMembers; - fn filter(who: &AccountId) -> bool { pallet_nomination_pools::AllPoolMembers::::contains(who) } @@ -778,6 +784,7 @@ impl pallet_treasury::Config for Runtime { >; type BalanceConverter = AssetRateWithNative; type PayoutPeriod = PayoutSpendPeriod; + type BlockNumberProvider = System; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = polkadot_runtime_common::impls::benchmarks::TreasuryArguments; } @@ -854,18 +861,44 @@ impl pallet_grandpa::Config for Runtime { pallet_grandpa::EquivocationReportSystem; } +impl frame_system::offchain::SigningTypes for Runtime { + type Public = ::Signer; + type Signature = Signature; +} + +impl frame_system::offchain::CreateTransactionBase for Runtime +where + RuntimeCall: From, +{ + type RuntimeCall = RuntimeCall; + type Extrinsic = UncheckedExtrinsic; +} + +impl frame_system::offchain::CreateTransaction for Runtime +where + RuntimeCall: From, +{ + type Extension = TxExtension; + + fn create_transaction(call: RuntimeCall, extension: TxExtension) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_transaction(call, extension) + } +} + /// Submits a transaction with the node's public and signature type. Adheres to the signed extension /// format of the chain. impl frame_system::offchain::CreateSignedTransaction for Runtime where RuntimeCall: From, { - fn create_transaction>( + fn create_signed_transaction< + C: frame_system::offchain::AppCrypto, + >( call: RuntimeCall, public: ::Signer, account: AccountId, nonce: ::Nonce, - ) -> Option<(RuntimeCall, ::SignaturePayload)> { + ) -> Option { use sp_runtime::traits::StaticLookup; // take the biggest period possible. let period = @@ -877,7 +910,7 @@ where // so the actual block number is `n`. .saturating_sub(1); let tip = 0; - let extra: SignedExtra = ( + let tx_ext: TxExtension = ( frame_system::CheckNonZeroSender::::new(), frame_system::CheckSpecVersion::::new(), frame_system::CheckTxVersion::::new(), @@ -892,29 +925,26 @@ where claims::PrevalidateAttests::::new(), frame_metadata_hash_extension::CheckMetadataHash::new(false), ); - let raw_payload = SignedPayload::new(call, extra) + let raw_payload = SignedPayload::new(call, tx_ext) .map_err(|e| { log::warn!(target: LOG_TARGET, "Unable to create signed payload: {:?}", e); }) .ok()?; let signature = raw_payload.using_encoded(|payload| C::sign(payload, public))?; - let (call, extra, _) = raw_payload.deconstruct(); + let (call, tx_ext, _) = raw_payload.deconstruct(); let address = ::Lookup::unlookup(account); - Some((call, (address, signature, extra))) + let transaction = UncheckedExtrinsic::new_signed(call, address, signature, tx_ext); + Some(transaction) } } -impl frame_system::offchain::SigningTypes for Runtime { - type Public = ::Signer; - type Signature = Signature; -} - -impl frame_system::offchain::SendTransactionTypes for Runtime +impl frame_system::offchain::CreateInherent for Runtime where - RuntimeCall: From, + RuntimeCall: From, { - type Extrinsic = UncheckedExtrinsic; - type OverarchingCall = RuntimeCall; + fn create_inherent(call: RuntimeCall) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_bare(call) + } } parameter_types! { @@ -1434,7 +1464,7 @@ impl pallet_nomination_pools::Config for Runtime { type MaxPointsToBalance = MaxPointsToBalance; type WeightInfo = weights::pallet_nomination_pools::WeightInfo; type AdminOrigin = EitherOf, StakingAdmin>; - // TODO: this will come back later (stable2412/stable25XY) + // TODO: this will come back later (stable25XY) // type Filter = pallet_staking::AllStakers; } @@ -1634,8 +1664,8 @@ pub type Block = generic::Block; pub type SignedBlock = generic::SignedBlock; /// `BlockId` type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The `SignedExtension` to the basic transaction logic. -pub type SignedExtra = ( +/// The `TransactionExtension` to the basic transaction logic. +pub type TxExtension = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -1658,9 +1688,19 @@ pub type Migrations = (migrations::Unreleased, migrations::Permanent); #[allow(deprecated, missing_docs)] pub mod migrations { use super::*; + use pallet_balances::WeightInfo; + + parameter_types! { + /// Weight for balance unreservations + pub BalanceTransferAllowDeath: Weight = weights::pallet_balances::WeightInfo::::transfer_allow_death(); + } /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = ( + parachains_shared::migration::MigrateToV1, + parachains_scheduler::migration::MigrateV2ToV3, + pallet_child_bounties::migration::MigrateV0ToV1, + ); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = (pallet_xcm::migration::MigrateToLatestXcmVersion,); @@ -1668,7 +1708,7 @@ pub mod migrations { /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -1680,7 +1720,7 @@ pub type Executive = frame_executive::Executive< >; /// The payload being signed in transactions. -pub type SignedPayload = generic::SignedPayload; +pub type SignedPayload = generic::SignedPayload; #[cfg(feature = "runtime-benchmarks")] mod benches { @@ -1724,7 +1764,9 @@ mod benches { [pallet_session, SessionBench::] [pallet_staking, Staking] [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [pallet_timestamp, Timestamp] + [pallet_transaction_payment, TransactionPayment] [pallet_treasury, Treasury] [pallet_utility, Utility] [pallet_vesting, Vesting] @@ -1733,7 +1775,7 @@ mod benches { [pallet_whitelist, Whitelist] [pallet_asset_rate, AssetRate] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] [pallet_xcm_benchmarks::fungible, pallet_xcm_benchmarks::fungible::Pallet::] [pallet_xcm_benchmarks::generic, pallet_xcm_benchmarks::generic::Pallet::] ); @@ -1744,12 +1786,14 @@ mod benches { // Trying to add benchmarks directly to some pallets caused cyclic dependency issues. // To get around that, we separated the benchmarks into its own crate. pub use frame_benchmarking::baseline::Pallet as Baseline; - pub use frame_system_benchmarking::Pallet as SystemBench; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; pub use pallet_election_provider_support_benchmarking::Pallet as ElectionProviderBench; pub use pallet_nomination_pools_benchmarking::Pallet as NominationPoolsBench; pub use pallet_offences_benchmarking::Pallet as OffencesBench; pub use pallet_session_benchmarking::Pallet as SessionBench; - pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; use xcm_config::{ AssetHubLocation, LocalCheckAccount, SovereignAccountOf, TokenLocation, XcmConfig, @@ -1810,7 +1854,8 @@ mod benches { )) } - fn set_up_complex_asset_transfer() -> Option<(Assets, u32, Location, Box)> { + fn set_up_complex_asset_transfer( + ) -> Option<(Assets, u32, Location, alloc::boxed::Box)> { // Relay supports only native token, either reserve transfer it to non-system // parachains, or teleport it to system parachain. Use the teleport case for // benchmarking as it's slightly heavier. @@ -1843,15 +1888,18 @@ mod benches { } fn worst_case_holding(_depositable_count: u32) -> Assets { // Polkadot only knows about DOT - vec![Asset { id: AssetId(TokenLocation::get()), fun: Fungible(1_000_000 * UNITS) }] - .into() + vec![Asset { + id: AssetId(TokenLocation::get()), + fun: Fungible(1_000_000_000_000 * UNITS), + }] + .into() } } parameter_types! { pub TrustedTeleporter: Option<(Location, Asset)> = Some(( AssetHubLocation::get(), - Asset { id: AssetId(TokenLocation::get()), fun: Fungible(1 * UNITS) } + Asset { id: AssetId(TokenLocation::get()), fun: Fungible(UNITS) } )); pub const TrustedReserve: Option<(Location, Asset)> = None; } @@ -1864,7 +1912,12 @@ mod benches { type TrustedReserve = TrustedReserve; fn get_asset() -> Asset { - Asset { id: AssetId(TokenLocation::get()), fun: Fungible(1 * UNITS) } + // We put more than ED here for being able to keep accounts alive when transferring + // and paying the delivery fees. + Asset { + id: AssetId(TokenLocation::get()), + fun: Fungible(1_000_000 * ExistentialDeposit::get()), + } } } @@ -1985,7 +2038,7 @@ sp_api::impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -2051,6 +2104,10 @@ sp_api::impl_runtime_apis! { fn pool_balance(pool_id: pallet_nomination_pools::PoolId) -> Balance { NominationPools::api_pool_balance(pool_id) } + + fn pool_accounts(pool_id: pallet_nomination_pools::PoolId) -> (AccountId, AccountId) { + NominationPools::api_pool_accounts(pool_id) + } } impl pallet_staking_runtime_api::StakingApi for Runtime { @@ -2083,7 +2140,7 @@ sp_api::impl_runtime_apis! { } } - #[api_version(11)] + #[api_version(12)] impl polkadot_primitives::runtime_api::ParachainHost for Runtime { fn validators() -> Vec { parachains_runtime_api_impl::validators::() @@ -2220,7 +2277,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 { parachains_runtime_api_impl::backing_state::(para_id) } @@ -2241,11 +2298,15 @@ sp_api::impl_runtime_apis! { } fn claim_queue() -> BTreeMap> { - parachains_vstaging_api_impl::claim_queue::() + parachains_runtime_api_impl::claim_queue::() } fn candidates_pending_availability(para_id: ParaId) -> Vec> { - parachains_vstaging_api_impl::candidates_pending_availability::(para_id) + parachains_runtime_api_impl::candidates_pending_availability::(para_id) + } + + fn validation_code_bomb_limit() -> u32 { + parachains_runtime_api_impl_vstaging::validation_code_bomb_limit::() } } @@ -2611,14 +2672,14 @@ sp_api::impl_runtime_apis! { list_benchmarks!(list, extra); let storage_info = AllPalletsWithSystem::storage_info(); - return (list, storage_info) + (list, storage_info) } fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig ) -> Result< Vec, - sp_runtime::RuntimeString, + alloc::string::String, > { let mut whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let treasury_key = frame_system::Account::::hashed_key_for(Treasury::account_id()); @@ -2692,7 +2753,7 @@ mod test_fees { println!("call = {:?} / info = {:?}", call, info); // convert to runtime call. let call = RuntimeCall::Balances(call); - let extra: SignedExtra = ( + let tx_ext: TxExtension = ( frame_system::CheckNonZeroSender::::new(), frame_system::CheckSpecVersion::::new(), frame_system::CheckTxVersion::::new(), @@ -2705,12 +2766,12 @@ mod test_fees { frame_metadata_hash_extension::CheckMetadataHash::::new(false), ); let uxt = UncheckedExtrinsic { - function: call, - signature: Some(( + preamble: generic::Preamble::Signed( MultiAddress::Id(Alice.to_account_id()), MultiSignature::Sr25519(Alice.sign(b"foo")), - extra, - )), + tx_ext, + ), + function: call, }; let len = uxt.encoded_size(); @@ -2791,10 +2852,11 @@ mod test { #[test] fn check_whitelist() { - let whitelist: HashSet = AllPalletsWithSystem::whitelisted_storage_keys() - .iter() - .map(|e| HexDisplay::from(&e.key).to_string()) - .collect(); + let whitelist: HashSet = + AllPalletsWithSystem::whitelisted_storage_keys() + .iter() + .map(|e| HexDisplay::from(&e.key).to_string()) + .collect(); // Block number assert!( @@ -3017,7 +3079,9 @@ mod multiplier_tests { let mut fees_paid = 0; frame_system::Pallet::::set_block_consumed_resources(Weight::MAX, 0); - let info = DispatchInfo { weight: Weight::MAX, ..Default::default() }; + // TODO: Find out if this test is correct, since we're not yet considering + // `extension_weight` + let info = DispatchInfo { call_weight: Weight::MAX, ..Default::default() }; let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() .build_storage() diff --git a/relay/polkadot/src/weights/frame_system_extensions.rs b/relay/polkadot/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..ba77186288 --- /dev/null +++ b/relay/polkadot/src/weights/frame_system_extensions.rs @@ -0,0 +1,131 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=frame-system-extensions +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 75_764_000 picoseconds. + Weight::from_parts(85_402_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 118_233_000 picoseconds. + Weight::from_parts(126_539_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 118_233_000 picoseconds. + Weight::from_parts(126_539_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_885_000 picoseconds. + Weight::from_parts(12_784_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 104_237_000 picoseconds. + Weight::from_parts(110_910_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_141_000 picoseconds. + Weight::from_parts(11_502_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_192_000 picoseconds. + Weight::from_parts(11_481_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 87_616_000 picoseconds. + Weight::from_parts(93_607_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/relay/polkadot/src/weights/mod.rs b/relay/polkadot/src/weights/mod.rs index 15cf054a74..f9b9c932bb 100644 --- a/relay/polkadot/src/weights/mod.rs +++ b/relay/polkadot/src/weights/mod.rs @@ -17,6 +17,7 @@ pub mod frame_election_provider_support; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_asset_rate; pub mod pallet_bags_list; pub mod pallet_balances; @@ -37,6 +38,7 @@ pub mod pallet_scheduler; pub mod pallet_session; pub mod pallet_staking; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_treasury; pub mod pallet_utility; pub mod pallet_vesting; diff --git a/relay/polkadot/src/weights/pallet_bounties.rs b/relay/polkadot/src/weights/pallet_bounties.rs index 6855e940b2..82a6b37580 100644 --- a/relay/polkadot/src/weights/pallet_bounties.rs +++ b/relay/polkadot/src/weights/pallet_bounties.rs @@ -96,6 +96,20 @@ impl pallet_bounties::WeightInfo for WeightInfo { } /// Storage: `Bounties::Bounties` (r:1 w:1) /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyApprovals` (r:1 w:1) + /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + fn approve_bounty_with_curator() -> Weight { + // Proof Size summary in bytes: + // Measured: `269` + // Estimated: `3642` + // Minimum execution time: 17_051_000 picoseconds. + Weight::from_parts(17_560_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn unassign_curator() -> Weight { diff --git a/relay/polkadot/src/weights/pallet_transaction_payment.rs b/relay/polkadot/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/relay/polkadot/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/relay/polkadot/src/weights/polkadot_runtime_common_claims.rs b/relay/polkadot/src/weights/polkadot_runtime_common_claims.rs index bb97709980..05123a9a6b 100644 --- a/relay/polkadot/src/weights/polkadot_runtime_common_claims.rs +++ b/relay/polkadot/src/weights/polkadot_runtime_common_claims.rs @@ -163,4 +163,22 @@ impl polkadot_runtime_common::claims::WeightInfo for We .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(7)) } + /// Storage: `Claims::Claims` (r:1 w:2) + /// Proof: `Claims::Claims` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Claims::Vesting` (r:1 w:2) + /// Proof: `Claims::Vesting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Claims::Signing` (r:1 w:2) + /// Proof: `Claims::Signing` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Claims::Preclaims` (r:1 w:1) + /// Proof: `Claims::Preclaims` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn prevalidate_attests() -> Weight { + // Proof Size summary in bytes: + // Measured: `406` + // Estimated: `3871` + // Minimum execution time: 35_420_000 picoseconds. + Weight::from_parts(37_110_000, 0) + .saturating_add(Weight::from_parts(0, 3871)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(7)) + } } diff --git a/relay/polkadot/src/weights/xcm/mod.rs b/relay/polkadot/src/weights/xcm/mod.rs index 39b3f2b31f..e2f5a83943 100644 --- a/relay/polkadot/src/weights/xcm/mod.rs +++ b/relay/polkadot/src/weights/xcm/mod.rs @@ -18,11 +18,14 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::Runtime; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; - +use alloc::vec::Vec; +use frame_election_provider_support::BoundedVec; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmBalancesWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; +use xcm::{ + latest::{prelude::*, AssetTransferFilter}, + DoubleEncoded, +}; /// Types of asset supported by the Polkadot runtime. pub enum AssetTypes { @@ -65,7 +68,7 @@ impl WeighAssets for AssetFilter { // only 1 kind of fungible asset. Self::Wild(AllOf { .. } | AllOfCounted { .. }) => balances_weight, Self::Wild(AllCounted(count)) => - balances_weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + balances_weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), Self::Wild(All) => balances_weight.saturating_mul(MAX_ASSETS), } } @@ -111,7 +114,7 @@ impl XcmWeightInfo for PolkadotXcmWeight } fn transact( _origin_kind: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -265,6 +268,48 @@ impl XcmWeightInfo for PolkadotXcmWeight fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmBalancesWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmBalancesWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } #[test] diff --git a/relay/polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/relay/polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index ef6a8b7e8a..bb901ea7b0 100644 --- a/relay/polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/relay/polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -185,4 +185,23 @@ impl WeightInfo { .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/relay/polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/relay/polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index bef7badab0..86e2231a12 100644 --- a/relay/polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/relay/polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -75,6 +75,20 @@ impl WeightInfo { Weight::from_parts(1_180_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `XcmPallet::Queries` (r:1 w:0) /// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -134,6 +148,13 @@ impl WeightInfo { Weight::from_parts(1_210_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/relay/polkadot/tests/asset_rate.rs b/relay/polkadot/tests/asset_rate.rs index 68fde7d7fa..6cf762c61a 100644 --- a/relay/polkadot/tests/asset_rate.rs +++ b/relay/polkadot/tests/asset_rate.rs @@ -24,14 +24,22 @@ use xcm::prelude::*; #[test] fn native_asset_rate_works() { sp_io::TestExternalities::default().execute_with(|| { - // success: native asset on Asset Hub as xcm v4 location - let native = VersionedLocatableAsset::V4 { + // success: native asset on Asset Hub as xcm v5 location + let native = VersionedLocatableAsset::V5 { location: Location::new(0, [Parachain(1000)]), asset_id: Location::parent().into(), }; let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); + // success: native asset on Asset Hub as xcm v4 location + let native = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(0, [xcm::v4::Junction::Parachain(1000)]), + asset_id: xcm::v4::Location::parent().into(), + }; + let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); + assert_eq!(actual, 100); + // success: native asset on Asset Hub as xcm v3 location let native = VersionedLocatableAsset::V3 { location: xcm::v3::Location::new( @@ -43,14 +51,22 @@ fn native_asset_rate_works() { let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); - // success: native asset on People as xcm v4 location - let native = VersionedLocatableAsset::V4 { + // success: native asset on People as xcm v5 location + let native = VersionedLocatableAsset::V5 { location: Location::new(0, [Parachain(1004)]), asset_id: Location::parent().into(), }; let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); + // success: native asset on People as xcm v4 location + let native = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(0, [xcm::v4::Junction::Parachain(1004)]), + asset_id: xcm::v4::Location::parent().into(), + }; + let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); + assert_eq!(actual, 100); + // success: native asset on People as xcm v3 location let native = VersionedLocatableAsset::V3 { location: xcm::v3::Location::new( @@ -62,13 +78,20 @@ fn native_asset_rate_works() { let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); - // failure: native asset on non system chain as xcm v4 location - let native_non_system = VersionedLocatableAsset::V4 { + // failure: native asset on non system chain as xcm v5 location + let native_non_system = VersionedLocatableAsset::V5 { location: Location::new(0, [Parachain(2000)]), asset_id: Location::parent().into(), }; assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); + // failure: native asset on non system chain as xcm v4 location + let native_non_system = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(0, [xcm::v4::Junction::Parachain(2000)]), + asset_id: xcm::v4::Location::parent().into(), + }; + assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); + // failure: native asset on non system chain as xcm v3 location let native_non_system = VersionedLocatableAsset::V3 { location: xcm::v3::Location::new( @@ -79,18 +102,36 @@ fn native_asset_rate_works() { }; assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); - // failure: some asset on Asset Hub as xcm v4 location - let non_native = VersionedLocatableAsset::V4 { + // failure: some asset on Asset Hub as xcm v5 location + let non_native = VersionedLocatableAsset::V5 { location: Location::new(0, [Parachain(2000)]), asset_id: Location::new(0, [PalletInstance(50), GeneralIndex(1984)]).into(), }; assert!(AssetRateWithNative::from_asset_balance(100, non_native).is_err()); - // failure: native asset with invalid system chain location as xcm v4 location - let native_non_system = VersionedLocatableAsset::V4 { + // failure: some asset on Asset Hub as xcm v4 location + let non_native = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(0, [xcm::v4::Junction::Parachain(2000)]), + asset_id: xcm::v4::Location::new( + 0, + [xcm::v4::Junction::PalletInstance(50), xcm::v4::Junction::GeneralIndex(1984)], + ) + .into(), + }; + assert!(AssetRateWithNative::from_asset_balance(100, non_native).is_err()); + + // failure: native asset with invalid system chain location as xcm v5 location + let native_non_system = VersionedLocatableAsset::V5 { location: Location::new(1, [Parachain(1000)]), asset_id: Location::parent().into(), }; assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); + + // failure: native asset with invalid system chain location as xcm v4 location + let native_non_system = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(1000)]), + asset_id: xcm::v4::Location::parent().into(), + }; + assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); }); } diff --git a/system-parachains/asset-hubs/asset-hub-kusama/Cargo.toml b/system-parachains/asset-hubs/asset-hub-kusama/Cargo.toml index 495f64e82c..db0ad1b237 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/Cargo.toml +++ b/system-parachains/asset-hubs/asset-hub-kusama/Cargo.toml @@ -61,7 +61,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -115,6 +114,10 @@ substrate-wasm-builder = { optional = true, workspace = true } default = ["std"] runtime-benchmarks = [ "assets-common/runtime-benchmarks", + "bp-asset-hub-kusama/runtime-benchmarks", + "bp-asset-hub-polkadot/runtime-benchmarks", + "bp-bridge-hub-kusama/runtime-benchmarks", + "bp-bridge-hub-polkadot/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-session-benchmarking/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", @@ -125,6 +128,7 @@ runtime-benchmarks = [ "frame-system-benchmarking/runtime-benchmarks", "frame-system/runtime-benchmarks", "kusama-runtime-constants/runtime-benchmarks", + "pallet-asset-conversion-tx-payment/runtime-benchmarks", "pallet-asset-conversion/runtime-benchmarks", "pallet-assets/runtime-benchmarks", "pallet-balances/runtime-benchmarks", @@ -137,6 +141,7 @@ runtime-benchmarks = [ "pallet-remote-proxy/runtime-benchmarks", "pallet-state-trie-migration/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-uniques/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-vesting/runtime-benchmarks", @@ -256,7 +261,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/system-parachains/asset-hubs/asset-hub-kusama/primitives/Cargo.toml b/system-parachains/asset-hubs/asset-hub-kusama/primitives/Cargo.toml index 4784e1cc18..bd2bd0f27c 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/primitives/Cargo.toml +++ b/system-parachains/asset-hubs/asset-hub-kusama/primitives/Cargo.toml @@ -35,3 +35,7 @@ std = [ "system-parachains-constants/std", "xcm/std", ] +runtime-benchmarks = [ + "frame-support/runtime-benchmarks", + "system-parachains-constants/runtime-benchmarks", +] diff --git a/system-parachains/asset-hubs/asset-hub-kusama/primitives/src/lib.rs b/system-parachains/asset-hubs/asset-hub-kusama/primitives/src/lib.rs index 782868f8db..8fb3d6368d 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/primitives/src/lib.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/primitives/src/lib.rs @@ -62,7 +62,7 @@ pub fn build_congestion_message( UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind: OriginKind::Xcm, - require_weight_at_most: XcmBridgeHubRouterTransactCallMaxWeight::get(), + fallback_max_weight: Some(XcmBridgeHubRouterTransactCallMaxWeight::get()), call: Call::ToPolkadotXcmRouter(XcmBridgeHubRouterCall::report_bridge_status { bridge_id, is_congested, diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/genesis_config_presets.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/genesis_config_presets.rs index 7a32b04b16..0cf9bf55a0 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/genesis_config_presets.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/genesis_config_presets.rs @@ -17,8 +17,8 @@ //! Genesis configs presets for the AssetHubKusama runtime use crate::*; +use alloc::vec::Vec; use sp_genesis_builder::PresetId; -use sp_std::vec::Vec; use system_parachains_constants::genesis_presets::*; const ASSET_HUB_KUSAMA_ED: Balance = ExistentialDeposit::get(); @@ -80,10 +80,11 @@ pub fn preset_names() -> Vec { } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("development") => asset_hub_kusama_development_genesis(1000.into()), - Ok("local_testnet") => asset_hub_kusama_local_testnet_genesis(1000.into()), +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => asset_hub_kusama_development_genesis(1000.into()), + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => + asset_hub_kusama_local_testnet_genesis(1000.into()), _ => return None, }; Some( diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/impls.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/impls.rs index 151ae0c0dd..f42b344d11 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/impls.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/impls.rs @@ -23,7 +23,7 @@ pub mod tx_payment { ensure, pallet_prelude::{InvalidTransaction, TransactionValidityError}, traits::{ - tokens::{Fortitude, Precision, Preservation}, + tokens::{Fortitude, Precision, Preservation, WithdrawConsequence}, Defensive, OnUnbalanced, SameOrOther, }, }; @@ -120,5 +120,32 @@ pub mod tx_payment { OU::on_unbalanced(adjusted_paid); Ok(()) } + + fn can_withdraw_fee( + who: &T::AccountId, + _call: &T::RuntimeCall, + _dispatch_info: &DispatchInfoOf, + fee: Self::Balance, + _tip: Self::Balance, + ) -> Result<(), TransactionValidityError> { + if fee.is_zero() { + return Ok(()); + } + + match F::can_withdraw(A::get(), who, fee) { + WithdrawConsequence::Success => Ok(()), + _ => Err(InvalidTransaction::Payment.into()), + } + } + + #[cfg(feature = "runtime-benchmarks")] + fn endow_account(who: &T::AccountId, amount: Self::Balance) { + let _ = F::deposit(A::get(), who, amount, Precision::BestEffort); + } + + #[cfg(feature = "runtime-benchmarks")] + fn minimum_balance() -> Self::Balance { + F::minimum_balance(A::get()) + } } } diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/lib.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/lib.rs index ebdd1e61dc..9a8cbc106f 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/lib.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/lib.rs @@ -24,12 +24,15 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + // Genesis preset configurations. pub mod genesis_config_presets; mod impls; mod weights; pub mod xcm_config; +use alloc::{borrow::Cow, vec, vec::Vec}; use assets_common::{ foreign_creators::ForeignCreators, local_and_foreign_assets::{LocalFromLeft, TargetFromLeft}, @@ -43,7 +46,7 @@ use pallet_proxy::ProxyDefinition; use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{ AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT, Convert, ConvertInto, Verify, @@ -52,7 +55,6 @@ use sp_runtime::{ ApplyExtrinsicResult, Perbill, Permill, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -92,8 +94,8 @@ use xcm::{ }; use xcm_config::{ FellowshipLocation, ForeignAssetsConvertedConcreteId, ForeignCreatorsSovereignAccountOf, - GovernanceLocation, KsmLocation, PoolAssetsConvertedConcreteId, - TrustBackedAssetsConvertedConcreteId, TrustBackedAssetsPalletLocation, + GovernanceLocation, KsmLocation, KsmLocationV4, PoolAssetsConvertedConcreteId, + TrustBackedAssetsConvertedConcreteId, TrustBackedAssetsPalletLocationV4, }; use xcm_runtime_apis::{ dry_run::{CallDryRunEffects, Error as XcmDryRunApiError, XcmDryRunEffects}, @@ -120,14 +122,14 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // Note: "statemine" is the legacy name for this chain. It has been renamed to // "asset-hub-kusama". Many wallets/tools depend on the `spec_name`, so it remains "statemine" // for the time being. Wallets/tools should update to treat "asset-hub-kusama" equally. - spec_name: create_runtime_str!("statemine"), - impl_name: create_runtime_str!("statemine"), + spec_name: Cow::Borrowed("statemine"), + impl_name: Cow::Borrowed("statemine"), authoring_version: 1, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 15, - state_version: 1, + system_version: 1, }; /// The version information used to identify this runtime when compiled natively. @@ -191,6 +193,7 @@ impl frame_system::Config for Runtime { type OnKilledAccount = (); type AccountData = pallet_balances::AccountData; type SystemWeightInfo = weights::frame_system::WeightInfo; + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; type SS58Prefix = SS58Prefix; type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type MaxConsumers = frame_support::traits::ConstU32<256>; @@ -236,6 +239,7 @@ impl pallet_balances::Config for Runtime { type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = (); type MaxFreezes = ConstU32<0>; + type DoneSlashHandler = (); } parameter_types! { @@ -268,13 +272,14 @@ impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = impls::tx_payment::FungiblesAdapter< NativeAndAssets, - KsmLocation, + KsmLocationV4, ResolveAssetTo, >; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; type OperationalFeeMultiplier = ConstU8<5>; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } parameter_types! { @@ -362,7 +367,7 @@ pub type LocalAndForeignAssets = fungibles::UnionOf< Assets, ForeignAssets, LocalFromLeft< - AssetIdForTrustBackedAssetsConvert, + AssetIdForTrustBackedAssetsConvert, AssetIdForTrustBackedAssets, xcm::v4::Location, >, @@ -374,7 +379,7 @@ pub type LocalAndForeignAssets = fungibles::UnionOf< pub type NativeAndAssets = fungible::UnionOf< Balances, LocalAndForeignAssets, - TargetFromLeft, + TargetFromLeft, xcm::v4::Location, AccountId, >; @@ -390,7 +395,7 @@ impl pallet_asset_conversion::Config for Runtime { type Assets = NativeAndAssets; type PoolId = (Self::AssetKind, Self::AssetKind); type PoolLocator = pallet_asset_conversion::WithFirstAsset< - KsmLocation, + KsmLocationV4, AccountId, Self::AssetKind, PoolIdToAccountId, @@ -398,7 +403,7 @@ impl pallet_asset_conversion::Config for Runtime { type PoolAssetId = u32; type PoolAssets = PoolAssets; type PoolSetupFee = PoolSetupFee; - type PoolSetupFeeAsset = KsmLocation; + type PoolSetupFeeAsset = KsmLocationV4; type PoolSetupFeeTarget = ResolveAssetTo; type LiquidityWithdrawalFee = LiquidityWithdrawalFee; type LPFee = ConstU32<3>; @@ -408,7 +413,7 @@ impl pallet_asset_conversion::Config for Runtime { type WeightInfo = weights::pallet_asset_conversion::WeightInfo; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = assets_common::benchmarks::AssetPairFactory< - KsmLocation, + KsmLocationV4, parachain_info::Pallet, xcm_config::TrustBackedAssetsPalletIndex, xcm::v4::Location, @@ -683,6 +688,7 @@ 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 ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -829,13 +835,17 @@ impl pallet_collator_selection::Config for Runtime { impl pallet_asset_conversion_tx_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type AssetId = xcm::latest::Location; + type AssetId = xcm::v4::Location; type OnChargeAssetTransaction = pallet_asset_conversion_tx_payment::SwapAssetAdapter< - KsmLocation, + KsmLocationV4, NativeAndAssets, AssetConversion, ResolveAssetTo, >; + type WeightInfo = weights::pallet_asset_conversion_tx_payment::WeightInfo; + + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = AssetConversionTxHelper; } parameter_types! { @@ -1063,8 +1073,8 @@ pub type Block = generic::Block; pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( +/// The TransactionExtension to the basic transaction logic. +pub type TxExtension = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -1077,7 +1087,7 @@ pub type SignedExtra = ( ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; /// Migrations to apply on runtime upgrade. pub type Migrations = ( @@ -1095,16 +1105,92 @@ pub type Executive = frame_executive::Executive< Migrations, >; +#[cfg(feature = "runtime-benchmarks")] +pub struct AssetConversionTxHelper; + +#[cfg(feature = "runtime-benchmarks")] +pub type AssetConversionAssetIdFor = ::AssetId; + +#[cfg(feature = "runtime-benchmarks")] +impl + pallet_asset_conversion_tx_payment::BenchmarkHelperTrait< + AccountId, + AssetConversionAssetIdFor, + AssetConversionAssetIdFor, + > for AssetConversionTxHelper +{ + fn create_asset_id_parameter( + seed: u32, + ) -> (AssetConversionAssetIdFor, AssetConversionAssetIdFor) { + // Use a different parachain' foreign assets pallet so that the asset is indeed foreign. + let asset_id = xcm::v4::Location::new( + 1, + [ + xcm::v4::Junction::Parachain(3000), + xcm::v4::Junction::PalletInstance(53), + xcm::v4::Junction::GeneralIndex(seed.into()), + ], + ); + (asset_id.clone(), asset_id) + } + + fn setup_balances_and_pool(asset_id: AssetConversionAssetIdFor, account: AccountId) { + use alloc::boxed::Box; + use frame_support::{assert_ok, traits::fungibles::Mutate}; + + assert_ok!(ForeignAssets::force_create( + RuntimeOrigin::root(), + asset_id.clone().into(), + account.clone().into(), /* owner */ + true, /* is_sufficient */ + 1, + )); + + let lp_provider = account.clone(); + use frame_support::traits::Currency; + let _ = Balances::deposit_creating(&lp_provider, u64::MAX.into()); + assert_ok!(ForeignAssets::mint_into( + asset_id.clone().into(), + &lp_provider, + u64::MAX.into() + )); + + let token_native = Box::new(KsmLocationV4::get()); + let token_second = Box::new(asset_id); + + assert_ok!(AssetConversion::create_pool( + RuntimeOrigin::signed(lp_provider.clone()), + token_native.clone(), + token_second.clone() + )); + + assert_ok!(AssetConversion::add_liquidity( + RuntimeOrigin::signed(lp_provider.clone()), + token_native, + token_second, + (u32::MAX / 8).into(), // 1 desired + u32::MAX.into(), // 2 desired + 1, // 1 min + 1, // 2 min + lp_provider, + )); + } +} + #[cfg(feature = "runtime-benchmarks")] mod benches { use super::*; + use alloc::boxed::Box; frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [pallet_assets, Local] [pallet_assets, Foreign] [pallet_assets, Pool] [pallet_asset_conversion, AssetConversion] + // TODO: Somehow, benchmarks for this pallet are not visible outside the pallet + [pallet_asset_conversion_tx_payment, AssetTxPayment] [pallet_balances, Balances] [pallet_message_queue, MessageQueue] [pallet_multisig, Multisig] @@ -1117,11 +1203,12 @@ mod benches { [pallet_utility, Utility] [pallet_vesting, Vesting] [pallet_timestamp, Timestamp] + [pallet_transaction_payment, TransactionPayment] [pallet_collator_selection, CollatorSelection] [cumulus_pallet_parachain_system, ParachainSystem] [cumulus_pallet_xcmp_queue, XcmpQueue] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] // Bridges [pallet_xcm_bridge_hub_router, ToPolkadot] // NOTE: Make sure you point to the individual modules below. @@ -1136,7 +1223,7 @@ mod benches { }; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -1368,7 +1455,10 @@ mod benches { } fn alias_origin() -> Result<(Location, Location), BenchmarkError> { - Err(BenchmarkError::Skip) + Ok(( + Location::new(1, [Parachain(1001)]), + Location::new(1, [Parachain(1001), AccountId32 { id: [111u8; 32], network: None }]), + )) } } @@ -1408,8 +1498,10 @@ mod benches { pub use cumulus_pallet_session_benchmarking::Pallet as SessionBench; pub use frame_benchmarking::{BenchmarkBatch, BenchmarkList, Benchmarking}; pub use frame_support::traits::{StorageInfoTrait, WhitelistedStorageKeys}; - pub use frame_system_benchmarking::Pallet as SystemBench; - pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; + pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; pub use pallet_xcm_bridge_hub_router::benchmarking::Pallet as XcmBridgeHubRouterBench; pub use sp_storage::TrackedStorageKey; pub type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet; @@ -1466,7 +1558,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -1757,7 +1849,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { + ) -> Result, alloc::string::String> { let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); let params = (&config, &whitelist); diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/frame_system_extensions.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..3fdcf734a5 --- /dev/null +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/mod.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/mod.rs index 16aa737336..f73588622c 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/mod.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/mod.rs @@ -19,7 +19,9 @@ pub mod cumulus_pallet_parachain_system; pub mod cumulus_pallet_xcmp_queue; pub mod extrinsic_weights; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_asset_conversion; +pub mod pallet_asset_conversion_tx_payment; pub mod pallet_assets_foreign; pub mod pallet_assets_local; pub mod pallet_assets_pool; @@ -33,6 +35,7 @@ pub mod pallet_proxy; pub mod pallet_remote_proxy; pub mod pallet_session; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_uniques; pub mod pallet_utility; pub mod pallet_vesting; diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_asset_conversion_tx_payment.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_asset_conversion_tx_payment.rs new file mode 100644 index 0000000000..2d9fce9ba6 --- /dev/null +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_asset_conversion_tx_payment.rs @@ -0,0 +1,92 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_asset_conversion_tx_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2024-01-04, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `Georges-MacBook-Pro.local`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot-parachain +// benchmark +// pallet +// --wasm-execution=compiled +// --pallet=pallet_asset_conversion_tx_payment +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=2 +// --repeat=2 +// --json +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/ +// --chain=asset-hub-rococo-dev + +#![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_asset_conversion_tx_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_asset_conversion_tx_payment::WeightInfo for WeightInfo { + fn charge_asset_tx_payment_zero() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_000_000 picoseconds. + Weight::from_parts(10_000_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn charge_asset_tx_payment_native() -> Weight { + // Proof Size summary in bytes: + // Measured: `4` + // Estimated: `3593` + // Minimum execution time: 209_000_000 picoseconds. + Weight::from_parts(212_000_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(2)) + } + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn charge_asset_tx_payment_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `631` + // Estimated: `7404` + // Minimum execution time: 1_228_000_000 picoseconds. + Weight::from_parts(1_268_000_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} \ No newline at end of file diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_transaction_payment.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/mod.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/mod.rs index ce8a6b5402..0d775ee1ee 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/mod.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/mod.rs @@ -18,10 +18,14 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; +use frame_support::BoundedVec; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; +use xcm::{ + latest::{prelude::*, AssetTransferFilter}, + DoubleEncoded, +}; trait WeighAssets { fn weigh_assets(&self, weight: Weight) -> Weight; @@ -42,8 +46,9 @@ impl WeighAssets for AssetFilter { WildFungibility::NonFungible => weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), + AllOfCounted { count, .. } => + weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), }, } } @@ -82,7 +87,7 @@ impl XcmWeightInfo for AssetHubKusamaXcmWeight { } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -229,4 +234,46 @@ impl XcmWeightInfo for AssetHubKusamaXcmWeight { fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmFungibleWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmFungibleWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 94388f80dc..6189af6f5e 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -187,4 +187,23 @@ impl WeightInfo { .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 1bc85002ce..0d7322ebdc 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -77,6 +77,20 @@ impl WeightInfo { Weight::from_parts(1_020_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `PolkadotXcm::Queries` (r:1 w:0) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -136,6 +150,13 @@ impl WeightInfo { Weight::from_parts(1_170_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/xcm_config.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/xcm_config.rs index 5bd9fdf870..4fd16945a7 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/xcm_config.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/xcm_config.rs @@ -20,16 +20,18 @@ use super::{ TrustBackedAssetsInstance, WeightToFee, XcmpQueue, }; use crate::{ForeignAssets, ForeignAssetsInstance}; +use alloc::{vec, vec::Vec}; use assets_common::{ matching::{FromSiblingParachain, IsForeignConcreteAsset, ParentLocation}, TrustBackedAssetsAsLocation, }; +use core::marker::PhantomData; use frame_support::{ pallet_prelude::Get, parameter_types, traits::{ tokens::imbalance::{ResolveAssetTo, ResolveTo}, - ConstU32, Contains, ContainsPair, Equals, Everything, Nothing, PalletInfoAccess, + ConstU32, Contains, ContainsPair, Equals, Everything, PalletInfoAccess, }, }; use frame_system::EnsureRoot; @@ -39,27 +41,28 @@ use parachains_common::xcm_config::{ ParentRelayOrSiblingParachains, RelayOrOtherSystemParachains, }; use polkadot_parachain_primitives::primitives::Sibling; -use snowbridge_router_primitives::inbound::GlobalConsensusEthereumConvertsFor; +use snowbridge_router_primitives::inbound::EthereumLocationsConverterFor; use sp_runtime::traits::{AccountIdConversion, ConvertInto, TryConvertInto}; use system_parachains_constants::TREASURY_PALLET_ID; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, - DenyThenTry, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, FrameTransactionalProcessor, - FungibleAdapter, FungiblesAdapter, GlobalConsensusParachainConvertsFor, HashedDescription, - IsConcrete, LocalMint, MatchedConvertedConcreteId, NoChecking, ParentAsSuperuser, - ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SingleAssetExchangeAdapter, SovereignSignedViaLocation, StartsWith, - StartsWithExplicitGlobalConsensus, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, - WeightInfoBounds, WithComputedOrigin, WithLatestLocationConverter, WithUniqueTopic, - XcmFeeManagerFromComponents, + AccountId32Aliases, AliasChildLocation, AllowExplicitUnpaidExecutionFrom, + AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, + DenyReserveTransferToRelayChain, DenyThenTry, DescribeAllTerminal, DescribeFamily, + EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, + GlobalConsensusParachainConvertsFor, HashedDescription, IsConcrete, LocalMint, + MatchedConvertedConcreteId, NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, + SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SingleAssetExchangeAdapter, + SovereignSignedViaLocation, StartsWith, StartsWithExplicitGlobalConsensus, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, + WithLatestLocationConverter, WithUniqueTopic, XcmFeeManagerFromComponents, }; use xcm_executor::{traits::ConvertLocation, XcmExecutor}; parameter_types! { pub const KsmLocation: Location = Location::parent(); + pub const KsmLocationV4: xcm::v4::Location = xcm::v4::Location::parent(); pub const RelayNetwork: Option = Some(NetworkId::Kusama); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub UniversalLocation: InteriorLocation = @@ -68,11 +71,14 @@ parameter_types! { pub TrustBackedAssetsPalletIndex: u8 = ::index() as u8; pub TrustBackedAssetsPalletLocation: Location = PalletInstance(TrustBackedAssetsPalletIndex::get()).into(); + pub TrustBackedAssetsPalletLocationV4: xcm::v4::Location = xcm::v4::Junction::PalletInstance(TrustBackedAssetsPalletIndex::get()).into(); pub ForeignAssetsPalletLocation: Location = PalletInstance(::index() as u8).into(); pub PoolAssetsPalletLocation: Location = PalletInstance(::index() as u8).into(); + pub PoolAssetsPalletLocationV4: xcm::v4::Location = + xcm::v4::Junction::PalletInstance(::index() as u8).into(); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); pub const GovernanceLocation: Location = Location::parent(); pub const FellowshipLocation: Location = Location::parent(); @@ -104,7 +110,7 @@ pub type LocationToAccountId = ( GlobalConsensusParachainConvertsFor, // Ethereum contract sovereign account. // (Used to get convert ethereum contract locations to sovereign account) - GlobalConsensusEthereumConvertsFor, + EthereumLocationsConverterFor, ); /// Means for transacting the native currency on this chain. @@ -323,6 +329,9 @@ pub type ForeignAssetFeeAsExistentialDepositMultiplierFeeCharger = ForeignAssetsInstance, >; +/// We allow locations to alias into their own child locations. +pub type Aliasers = AliasChildLocation; + pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; @@ -354,7 +363,7 @@ impl xcm_executor::Config for XcmConfig { // This trader allows to pay with any assets exchangeable to KSM with // [`AssetConversion`]. cumulus_primitives_utility::SwapFirstAssetTrader< - KsmLocation, + KsmLocationV4, AssetConversion, WeightToFee, NativeAndAssets, @@ -412,7 +421,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = (bridging::to_polkadot::UniversalAliases,); type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; - type Aliasers = Nothing; + type Aliasers = Aliasers; type TransactionalProcessor = FrameTransactionalProcessor; type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); @@ -483,7 +492,7 @@ pub type ForeignCreatorsSovereignAccountOf = ( SiblingParachainConvertsVia, AccountId32Aliases, ParentIsPreset, - GlobalConsensusEthereumConvertsFor, + EthereumLocationsConverterFor, GlobalConsensusParachainConvertsFor, ); @@ -499,7 +508,7 @@ impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { /// All configuration related to bridging pub mod bridging { use super::*; - use sp_std::collections::btree_set::BTreeSet; + use alloc::collections::BTreeSet; use xcm_builder::NetworkExportTableItem; parameter_types! { @@ -518,8 +527,8 @@ pub mod bridging { /// (`AssetId` has to be aligned with `BridgeTable`) pub XcmBridgeHubRouterFeeAssetId: AssetId = KsmLocation::get().into(); - pub BridgeTable: sp_std::vec::Vec = - sp_std::vec::Vec::new().into_iter() + pub BridgeTable: Vec = + Vec::new().into_iter() .chain(to_polkadot::BridgeTable::get()) .collect(); } @@ -552,10 +561,10 @@ pub mod bridging { /// Set up exporters configuration. /// `Option` represents static "base fee" which is used for total delivery fee calculation. - pub BridgeTable: sp_std::vec::Vec = sp_std::vec![ + pub BridgeTable: Vec = vec![ NetworkExportTableItem::new( PolkadotNetwork::get(), - Some(sp_std::vec![ + Some(vec![ AssetHubPolkadot::get().interior.split_global().expect("invalid configuration for AssetHubKusama").1, ]), SiblingBridgeHub::get(), @@ -569,7 +578,7 @@ pub mod bridging { /// Universal aliases pub UniversalAliases: BTreeSet<(Location, Junction)> = BTreeSet::from_iter( - sp_std::vec![ + vec![ (SiblingBridgeHubWithBridgeHubPolkadotInstance::get(), GlobalConsensus(PolkadotNetwork::get())) ] ); @@ -592,7 +601,7 @@ pub mod bridging { /// Accept an asset if it is native to `AssetsAllowedNetworks` and it is coming from /// `OriginLocation`. pub struct RemoteAssetFromLocation( - sp_std::marker::PhantomData<(AssetsAllowedNetworks, OriginLocation)>, + PhantomData<(AssetsAllowedNetworks, OriginLocation)>, ); impl< L: TryInto + Clone, diff --git a/system-parachains/asset-hubs/asset-hub-kusama/tests/tests.rs b/system-parachains/asset-hubs/asset-hub-kusama/tests/tests.rs index 4ea742c647..7f6291613d 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/tests/tests.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/tests/tests.rs @@ -17,6 +17,9 @@ //! Tests for the Kusama Asset Hub (previously known as Statemine) chain. +extern crate alloc; + +use alloc::boxed::Box; use asset_hub_kusama_runtime::{ xcm_config::{ bridging::{self, XcmBridgeHubRouterFeeAssetId}, @@ -35,18 +38,18 @@ use asset_test_utils::{ ExtBuilder, SlotDurations, }; use codec::{Decode, Encode}; +use core::ops::Mul; use frame_support::{assert_ok, traits::fungibles::InspectEnumerable}; use parachains_common::{AccountId, AssetIdForTrustBackedAssets, AuraId, Balance}; use sp_consensus_aura::SlotDuration; use sp_core::crypto::Ss58Codec; use sp_runtime::traits::MaybeEquivalence; -use sp_std::ops::Mul; use system_parachains_constants::kusama::{ consensus::RELAY_CHAIN_SLOT_DURATION_MILLIS, fee::WeightToFee, }; use xcm::latest::prelude::{Assets as XcmAssets, *}; use xcm_builder::WithLatestLocationConverter; -use xcm_executor::traits::{ConvertLocation, JustTry}; +use xcm_executor::traits::ConvertLocation; use xcm_runtime_apis::conversions::LocationToAccountHelper; const ALICE: [u8; 32] = [1u8; 32]; @@ -335,7 +338,7 @@ asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_ XcmConfig, ForeignAssetsInstance, xcm::v4::Location, - JustTry, + WithLatestLocationConverter, collator_session_keys(), ExistentialDeposit::get(), xcm::v4::Location::new( @@ -350,7 +353,7 @@ asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_ }) ); -asset_test_utils::include_create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works!( +include_create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works!( Runtime, XcmConfig, WeightToFee, @@ -434,15 +437,18 @@ fn receive_reserve_asset_deposited_dot_from_asset_hub_polkadot_fees_paid_by_pool let block_author_account = AccountId::from(BLOCK_AUTHOR_ACCOUNT); let staking_pot = StakingPot::get(); - let foreign_asset_id_location = xcm::v4::Location::new( + let foreign_asset_id_location_v4 = xcm::v4::Location::new( 2, [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)], ); 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, foreign_asset_id_location.clone(), foreign_asset_id_minimum_balance); + let foreign_asset_create_params = ( + foreign_asset_owner, + foreign_asset_id_location_v4.clone(), + foreign_asset_id_minimum_balance, + ); remove_when_updated_to_stable2409::receive_reserve_asset_deposited_from_different_consensus_works::< Runtime, @@ -476,7 +482,7 @@ fn receive_reserve_asset_deposited_dot_from_asset_hub_polkadot_fees_paid_by_pool // check now foreign asset for staking pot assert_eq!( ForeignAssets::balance( - foreign_asset_id_location.clone(), + foreign_asset_id_location_v4.clone(), &staking_pot ), 0 @@ -490,7 +496,7 @@ fn receive_reserve_asset_deposited_dot_from_asset_hub_polkadot_fees_paid_by_pool // staking pot receives no foreign assets assert_eq!( ForeignAssets::balance( - foreign_asset_id_location.clone(), + foreign_asset_id_location_v4.clone(), &staking_pot ), 0 @@ -506,15 +512,18 @@ fn receive_reserve_asset_deposited_dot_from_asset_hub_polkadot_fees_paid_by_suff let block_author_account = AccountId::from(BLOCK_AUTHOR_ACCOUNT); let staking_pot = >::account_id(); - let foreign_asset_id_location = xcm::v4::Location::new( + let foreign_asset_id_location_v4 = xcm::v4::Location::new( 2, [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)], ); 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, foreign_asset_id_location.clone(), foreign_asset_id_minimum_balance); + let foreign_asset_create_params = ( + foreign_asset_owner, + foreign_asset_id_location_v4.clone(), + foreign_asset_id_minimum_balance, + ); remove_when_updated_to_stable2409::receive_reserve_asset_deposited_from_different_consensus_works::< Runtime, @@ -539,7 +548,7 @@ fn receive_reserve_asset_deposited_dot_from_asset_hub_polkadot_fees_paid_by_suff // check block author before assert_eq!( ForeignAssets::balance( - foreign_asset_id_location.clone(), + foreign_asset_id_location_v4.clone(), &block_author_account ), 0 @@ -549,7 +558,7 @@ fn receive_reserve_asset_deposited_dot_from_asset_hub_polkadot_fees_paid_by_suff // `TakeFirstAssetTrader` puts fees to the block author assert!( ForeignAssets::balance( - foreign_asset_id_location.clone(), + foreign_asset_id_location_v4.clone(), &block_author_account ) > 0 ); @@ -841,12 +850,17 @@ pub mod remove_when_updated_to_stable2409 { ] .into(), }; + let foreign_asset_id_location_latest = + Location::new(1, [Parachain(foreign_para_id), GeneralIndex(1234567)]); // foreign creator, which can be sibling parachain to match ForeignCreators - let foreign_creator = - Location { parents: 1, interior: [Parachain(foreign_para_id)].into() }; + let foreign_creator = xcm::v4::Location { + parents: 1, + interior: [xcm::v4::Junction::Parachain(foreign_para_id)].into(), + }; + let foreign_creator_latest: Location = foreign_creator.try_into().unwrap(); let foreign_creator_as_account_id = - SovereignAccountOf::convert_location(&foreign_creator).expect(""); + SovereignAccountOf::convert_location(&foreign_creator_latest).expect(""); // we want to buy execution with local relay chain currency let buy_execution_fee_amount = @@ -939,12 +953,12 @@ pub mod remove_when_updated_to_stable2409 { }, // Process teleported asset ReceiveTeleportedAsset(Assets::from(vec![Asset { - id: AssetId(foreign_asset_id_location.clone()), + id: AssetId(foreign_asset_id_location_latest.clone()), fun: Fungible(teleported_foreign_asset_amount), }])), DepositAsset { assets: Wild(AllOf { - id: AssetId(foreign_asset_id_location.clone()), + id: AssetId(foreign_asset_id_location_latest.clone()), fun: WildFungibility::Fungible, }), beneficiary: Location { @@ -961,7 +975,7 @@ pub mod remove_when_updated_to_stable2409 { let mut hash = xcm.using_encoded(sp_io::hashing::blake2_256); let outcome = XcmExecutor::::prepare_and_execute( - foreign_creator, + foreign_creator_latest, xcm, &mut hash, RuntimeHelper::::xcm_max_weight(XcmReceivedFrom::Sibling), @@ -1028,14 +1042,15 @@ pub mod remove_when_updated_to_stable2409 { ); // Make sure the target account has enough native asset to pay for delivery fees - let delivery_fees = - xcm_helpers::teleport_assets_delivery_fees::( - (foreign_asset_id_location.clone(), asset_to_teleport_away).into(), - 0, - Unlimited, - dest_beneficiary.clone(), - dest.clone(), - ); + let delivery_fees = xcm_helpers::teleport_assets_delivery_fees::< + XcmConfig::XcmSender, + >( + (foreign_asset_id_location_latest.clone(), asset_to_teleport_away).into(), + 0, + Unlimited, + dest_beneficiary.clone(), + dest.clone(), + ); >::mint_into( &target_account, delivery_fees.into(), @@ -1047,7 +1062,7 @@ pub mod remove_when_updated_to_stable2409 { RuntimeHelper::::origin_of(target_account.clone()), dest, dest_beneficiary, - (foreign_asset_id_location.clone(), asset_to_teleport_away), + (foreign_asset_id_location_latest.clone(), asset_to_teleport_away), Some((runtime_para_id, foreign_para_id)), included_head, &alice, @@ -1233,7 +1248,7 @@ pub mod remove_when_updated_to_stable2409 { additional_checks_before(); let expected_assets = Assets::from(vec![Asset { - id: AssetId(foreign_asset_id_location.clone()), + id: AssetId(foreign_asset_id_location.clone().try_into().unwrap()), fun: Fungible(foreign_asset_id_amount_to_transfer), }]); let expected_beneficiary = Location::new( @@ -1250,7 +1265,7 @@ pub mod remove_when_updated_to_stable2409 { ClearOrigin, BuyExecution { fees: Asset { - id: AssetId(foreign_asset_id_location.clone()), + id: AssetId(foreign_asset_id_location.clone().try_into().unwrap()), fun: Fungible(foreign_asset_id_amount_to_transfer), }, weight_limit: Unlimited, @@ -1304,6 +1319,387 @@ pub mod remove_when_updated_to_stable2409 { } } +pub mod remove_when_asset_test_utils_doesnt_use_latest_xcm_location { + use super::RuntimeHelper; + use crate::RuntimeOrigin; + use asset_test_utils::{ + assert_metadata, AccountIdOf, BalanceOf, CollatorSessionKeys, ExtBuilder, ValidatorIdOf, + XcmReceivedFrom, + }; + use frame_support::{ + assert_noop, assert_ok, + traits::{fungibles::InspectEnumerable, OriginTrait}, + }; + use parachains_common::Balance; + use sp_core::Encode; + use sp_runtime::{ + traits::{MaybeEquivalence, StaticLookup}, + DispatchError, Saturating, Weight, + }; + use xcm::prelude::*; + use xcm_executor::{traits::ConvertLocation, XcmExecutor}; + + pub type MaybeAssetsEvent = + Option>; + + /// Test-case makes sure that `Runtime` can create and manage `ForeignAssets` + #[allow(clippy::too_many_arguments)] + pub fn create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works< + Runtime, + XcmConfig, + WeightToFee, + SovereignAccountOf, + ForeignAssetsPalletInstance, + AssetId, + AssetIdConverter, + >( + collator_session_keys: CollatorSessionKeys, + existential_deposit: BalanceOf, + asset_deposit: BalanceOf, + metadata_deposit_base: BalanceOf, + metadata_deposit_per_byte: BalanceOf, + alice_account: AccountIdOf, + bob_account: AccountIdOf, + runtime_call_encode: Box< + dyn Fn(pallet_assets::Call) -> Vec, + >, + unwrap_pallet_assets_event: Box< + dyn Fn(Vec) -> MaybeAssetsEvent, + >, + additional_checks_before: Box, + additional_checks_after: Box, + ) where + Runtime: frame_system::Config + + pallet_balances::Config + + pallet_session::Config + + pallet_xcm::Config + + parachain_info::Config + + pallet_collator_selection::Config + + cumulus_pallet_parachain_system::Config + + pallet_assets::Config + + pallet_timestamp::Config, + AccountIdOf: Into<[u8; 32]>, + ValidatorIdOf: From>, + BalanceOf: From, + XcmConfig: xcm_executor::Config, + WeightToFee: frame_support::weights::WeightToFee, + ::Balance: From + Into, + SovereignAccountOf: ConvertLocation>, + >::AssetId: + From + Into, + >::AssetIdParameter: + From + Into, + >::Balance: + From + Into, + ::AccountId: + Into<<::RuntimeOrigin as OriginTrait>::AccountId>, + <::Lookup as StaticLookup>::Source: + From<::AccountId>, + ForeignAssetsPalletInstance: 'static, + AssetId: Clone, + AssetIdConverter: MaybeEquivalence, + ::AccountId: Into, + ::RuntimeOrigin: From, + { + // foreign parachain with the same consensus currency as asset + let foreign_asset_id_location = xcm::v4::Location::new( + 1, + [xcm::v4::Junction::Parachain(2222), xcm::v4::Junction::GeneralIndex(1234567)], + ); + let asset_id = AssetIdConverter::convert(&foreign_asset_id_location).unwrap(); + + // foreign creator, which can be sibling parachain to match ForeignCreators + let foreign_creator = Location { parents: 1, interior: [Parachain(2222)].into() }; + let foreign_creator_as_account_id = + SovereignAccountOf::convert_location(&foreign_creator).expect(""); + + // we want to buy execution with local relay chain currency + let buy_execution_fee_amount = + WeightToFee::weight_to_fee(&Weight::from_parts(90_000_000_000, 0)); + let buy_execution_fee = + Asset { id: AssetId(Location::parent()), fun: Fungible(buy_execution_fee_amount) }; + + const ASSET_NAME: &str = "My super coin"; + const ASSET_SYMBOL: &str = "MY_S_COIN"; + let metadata_deposit_per_byte_eta = metadata_deposit_per_byte + .saturating_mul(((ASSET_NAME.len() + ASSET_SYMBOL.len()) as u128).into()); + + ExtBuilder::::default() + .with_collators(collator_session_keys.collators()) + .with_session_keys(collator_session_keys.session_keys()) + .with_balances(vec![( + foreign_creator_as_account_id.clone(), + existential_deposit + + asset_deposit + metadata_deposit_base + + metadata_deposit_per_byte_eta + + buy_execution_fee_amount.into() + + buy_execution_fee_amount.into(), + )]) + .with_tracing() + .build() + .execute_with(|| { + assert!(>::asset_ids() + .collect::>() + .is_empty()); + assert_eq!( + >::free_balance( + &foreign_creator_as_account_id + ), + existential_deposit + + asset_deposit + metadata_deposit_base + + metadata_deposit_per_byte_eta + + buy_execution_fee_amount.into() + + buy_execution_fee_amount.into() + ); + additional_checks_before(); + + // execute XCM with Transacts to create/manage foreign assets by foreign governance + // prepare data for xcm::Transact(create) + let foreign_asset_create = runtime_call_encode(pallet_assets::Call::< + Runtime, + ForeignAssetsPalletInstance, + >::create { + id: asset_id.clone().into(), + // admin as sovereign_account + admin: foreign_creator_as_account_id.clone().into(), + min_balance: 1.into(), + }); + // prepare data for xcm::Transact(set_metadata) + let foreign_asset_set_metadata = runtime_call_encode(pallet_assets::Call::< + Runtime, + ForeignAssetsPalletInstance, + >::set_metadata { + id: asset_id.clone().into(), + name: Vec::from(ASSET_NAME), + symbol: Vec::from(ASSET_SYMBOL), + decimals: 12, + }); + // prepare data for xcm::Transact(set_team - change just freezer to Bob) + let foreign_asset_set_team = runtime_call_encode(pallet_assets::Call::< + Runtime, + ForeignAssetsPalletInstance, + >::set_team { + id: asset_id.clone().into(), + issuer: foreign_creator_as_account_id.clone().into(), + admin: foreign_creator_as_account_id.clone().into(), + freezer: bob_account.clone().into(), + }); + + // lets simulate this was triggered by relay chain from local consensus sibling + // parachain + let xcm = Xcm(vec![ + WithdrawAsset(buy_execution_fee.clone().into()), + BuyExecution { fees: buy_execution_fee.clone(), weight_limit: Unlimited }, + Transact { + origin_kind: OriginKind::Xcm, + call: foreign_asset_create.into(), + fallback_max_weight: None, + }, + Transact { + origin_kind: OriginKind::SovereignAccount, + call: foreign_asset_set_metadata.into(), + fallback_max_weight: None, + }, + Transact { + origin_kind: OriginKind::SovereignAccount, + call: foreign_asset_set_team.into(), + fallback_max_weight: None, + }, + ExpectTransactStatus(MaybeErrorCode::Success), + ]); + + // messages with different consensus should go through the local bridge-hub + let mut hash = xcm.using_encoded(sp_io::hashing::blake2_256); + + // execute xcm as XcmpQueue would do + let outcome = XcmExecutor::::prepare_and_execute( + foreign_creator.clone(), + xcm, + &mut hash, + RuntimeHelper::xcm_max_weight(XcmReceivedFrom::Sibling), + Weight::zero(), + ); + assert_ok!(outcome.ensure_complete()); + + // check events + let mut events = >::events() + .into_iter() + .filter_map(|e| unwrap_pallet_assets_event(e.event.encode())); + assert!(events.any(|e| matches!(e, pallet_assets::Event::Created { .. }))); + assert!(events.any(|e| matches!(e, pallet_assets::Event::MetadataSet { .. }))); + assert!(events.any(|e| matches!(e, pallet_assets::Event::TeamChanged { .. }))); + + // check assets after + assert!(!>::asset_ids( + ) + .collect::>() + .is_empty()); + + // check update metadata + use frame_support::traits::fungibles::roles::Inspect as InspectRoles; + assert_eq!( + >::owner( + asset_id.clone().into() + ), + Some(foreign_creator_as_account_id.clone()) + ); + assert_eq!( + >::admin( + asset_id.clone().into() + ), + Some(foreign_creator_as_account_id.clone()) + ); + assert_eq!( + >::issuer( + asset_id.clone().into() + ), + Some(foreign_creator_as_account_id.clone()) + ); + assert_eq!( + >::freezer( + asset_id.clone().into() + ), + Some(bob_account.clone()) + ); + assert!( + >::free_balance( + &foreign_creator_as_account_id + ) >= existential_deposit + buy_execution_fee_amount.into(), + "Free balance: {:?} should be ge {:?}", + >::free_balance( + &foreign_creator_as_account_id + ), + existential_deposit + buy_execution_fee_amount.into() + ); + assert_metadata::< + pallet_assets::Pallet, + AccountIdOf, + >(asset_id.clone(), ASSET_NAME, ASSET_SYMBOL, 12); + + // check if changed freezer, can freeze + assert_noop!( + >::freeze( + RuntimeHelper::origin_of(bob_account.clone().into()).into(), + asset_id.clone().into(), + alice_account.clone().into() + ), + pallet_assets::Error::::NoAccount + ); + assert_noop!( + >::freeze( + RuntimeHelper::origin_of(foreign_creator_as_account_id.clone().into()) + .into(), + asset_id.into(), + alice_account.into() + ), + pallet_assets::Error::::NoPermission + ); + + // lets try create asset for different parachain(3333) (foreign_creator(2222) can + // create just his assets) + let foreign_asset_id_location = xcm::v4::Location { + parents: 1, + interior: [ + xcm::v4::Junction::Parachain(3333), + xcm::v4::Junction::GeneralIndex(1234567), + ] + .into(), + }; + let asset_id = AssetIdConverter::convert(&foreign_asset_id_location).unwrap(); + + // prepare data for xcm::Transact(create) + let foreign_asset_create = runtime_call_encode(pallet_assets::Call::< + Runtime, + ForeignAssetsPalletInstance, + >::create { + id: asset_id.into(), + // admin as sovereign_account + admin: foreign_creator_as_account_id.clone().into(), + min_balance: 1.into(), + }); + let xcm = Xcm(vec![ + WithdrawAsset(buy_execution_fee.clone().into()), + BuyExecution { fees: buy_execution_fee.clone(), weight_limit: Unlimited }, + Transact { + origin_kind: OriginKind::Xcm, + call: foreign_asset_create.into(), + fallback_max_weight: None, + }, + ExpectTransactStatus(MaybeErrorCode::from(DispatchError::BadOrigin.encode())), + ]); + + // messages with different consensus should go through the local bridge-hub + let mut hash = xcm.using_encoded(sp_io::hashing::blake2_256); + + // execute xcm as XcmpQueue would do + let outcome = XcmExecutor::::prepare_and_execute( + foreign_creator, + xcm, + &mut hash, + RuntimeHelper::xcm_max_weight(XcmReceivedFrom::Sibling), + Weight::zero(), + ); + assert_ok!(outcome.ensure_complete()); + + additional_checks_after(); + }) + } + + #[macro_export] + macro_rules! include_create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works( + ( + $runtime:path, + $xcm_config:path, + $weight_to_fee:path, + $sovereign_account_of:path, + $assets_pallet_instance:path, + $asset_id:path, + $asset_id_converter:path, + $collator_session_key:expr, + $existential_deposit:expr, + $asset_deposit:expr, + $metadata_deposit_base:expr, + $metadata_deposit_per_byte:expr, + $runtime_call_encode:expr, + $unwrap_pallet_assets_event:expr, + $additional_checks_before:expr, + $additional_checks_after:expr + ) => { + #[test] + fn create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works() { + const ALICE: [u8; 32] = [1u8; 32]; + let alice_account = parachains_common::AccountId::from(ALICE); + const BOB: [u8; 32] = [2u8; 32]; + let bob_account = parachains_common::AccountId::from(BOB); + + use asset_test_utils::test_cases; + + test_cases::create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works::< + $runtime, + $xcm_config, + $weight_to_fee, + $sovereign_account_of, + $assets_pallet_instance, + $asset_id, + $asset_id_converter + >( + $collator_session_key, + $existential_deposit, + $asset_deposit, + $metadata_deposit_base, + $metadata_deposit_per_byte, + alice_account, + bob_account, + $runtime_call_encode, + $unwrap_pallet_assets_event, + $additional_checks_before, + $additional_checks_after + ) + } + } +); +} + #[test] fn location_conversion_works() { let alice_32 = @@ -1413,10 +1809,11 @@ fn xcm_payment_api_works() { RuntimeOrigin, Block, >(); - asset_test_utils::test_cases::xcm_payment_api_with_pools_works::< - Runtime, - RuntimeCall, - RuntimeOrigin, - Block, - >(); + // TODO: uncomment when migrated to the XCMv5 or patched `xcm_payment_api_with_pools_works` + // asset_test_utils::test_cases::xcm_payment_api_with_pools_works::< + // Runtime, + // RuntimeCall, + // RuntimeOrigin, + // Block, + // >(); } diff --git a/system-parachains/asset-hubs/asset-hub-kusama/tests/weight_trader.rs b/system-parachains/asset-hubs/asset-hub-kusama/tests/weight_trader.rs index 762f3cc93d..52e1854892 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/tests/weight_trader.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/tests/weight_trader.rs @@ -17,7 +17,7 @@ use asset_hub_kusama_runtime::{ xcm_config::{ - AssetFeeAsExistentialDepositMultiplierFeeCharger, KsmLocation, StakingPot, + AssetFeeAsExistentialDepositMultiplierFeeCharger, KsmLocation, KsmLocationV4, StakingPot, TrustBackedAssetsPalletLocation, XcmConfig, }, AllPalletsWithoutSystem, AssetConversion, Assets, Balances, ExistentialDeposit, ForeignAssets, @@ -49,7 +49,7 @@ const SOME_ASSET_ADMIN: [u8; 32] = [5u8; 32]; type RuntimeHelper = asset_test_utils::RuntimeHelper; type AssetIdForTrustBackedAssetsConvertLatest = - assets_common::AssetIdForTrustBackedAssetsConvert; + AssetIdForTrustBackedAssetsConvert; #[test] fn test_asset_xcm_trader() { @@ -461,12 +461,14 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { let bob: AccountId = SOME_ASSET_ADMIN.into(); let staking_pot = StakingPot::get(); let asset_1: u32 = 1; - let native_location = KsmLocation::get(); - let asset_1_location = AssetIdForTrustBackedAssetsConvert::< + let native_location = KsmLocationV4::get(); + let asset_1_location_latest = AssetIdForTrustBackedAssetsConvert::< TrustBackedAssetsPalletLocation, - xcm::v4::Location, + Location, >::convert_back(&asset_1) .unwrap(); + let asset_1_location: xcm::v4::Location = asset_1_location_latest.try_into().unwrap(); + // bob's initial balance for native and `asset1` assets. let initial_balance = 200 * UNITS; // liquidity for both arms of (native, asset1) pool. @@ -507,7 +509,8 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { AssetConversion::get_amount_in(&fee, &pool_liquidity, &pool_liquidity).unwrap(); let extra_amount = 100; let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - let payment: Asset = (asset_1_location.clone(), asset_fee + extra_amount).into(); + let asset_1_location_latest: Location = asset_1_location.clone().try_into().unwrap(); + let payment: Asset = (asset_1_location_latest.clone(), asset_fee + extra_amount).into(); // init trader and buy weight. let mut trader = ::Trader::new(); @@ -515,8 +518,10 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { trader.buy_weight(weight, payment.into(), &ctx).expect("Expected Ok"); // assert. - let unused_amount = - unused_asset.fungible.get(&asset_1_location.clone().into()).map_or(0, |a| *a); + let unused_amount = unused_asset + .fungible + .get(&asset_1_location_latest.clone().into()) + .map_or(0, |a| *a); assert_eq!(unused_amount, extra_amount); assert_eq!(Assets::total_issuance(asset_1), asset_total_issuance + asset_fee); @@ -530,7 +535,7 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { // refund. let actual_refund = trader.refund_weight(refund_weight, &ctx).unwrap(); - assert_eq!(actual_refund, (asset_1_location, asset_refund).into()); + assert_eq!(actual_refund, (asset_1_location_latest, asset_refund).into()); // assert. assert_eq!(Balances::balance(&staking_pot), initial_balance); @@ -559,15 +564,11 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { .execute_with(|| { let bob: AccountId = SOME_ASSET_ADMIN.into(); let staking_pot = StakingPot::get(); - let native_location = KsmLocation::get(); - let foreign_location = xcm::v4::Location { - parents: 1, - interior: ( - xcm::v4::Junction::Parachain(1234), - xcm::v4::Junction::GeneralIndex(12345), - ) - .into(), - }; + let native_location = KsmLocationV4::get(); + let foreign_location = xcm::v4::Location::new( + 1, + [xcm::v4::Junction::Parachain(1234), xcm::v4::Junction::GeneralIndex(12345)], + ); // bob's initial balance for native and `asset1` assets. let initial_balance = 200 * UNITS; // liquidity for both arms of (native, asset1) pool. @@ -613,7 +614,8 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { AssetConversion::get_amount_in(&fee, &pool_liquidity, &pool_liquidity).unwrap(); let extra_amount = 100; let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - let payment: Asset = (foreign_location.clone(), asset_fee + extra_amount).into(); + let v5_location: Location = foreign_location.clone().try_into().unwrap(); + let payment: Asset = (v5_location.clone(), asset_fee + extra_amount).into(); // init trader and buy weight. let mut trader = ::Trader::new(); @@ -621,8 +623,7 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { trader.buy_weight(weight, payment.into(), &ctx).expect("Expected Ok"); // assert. - let unused_amount = - unused_asset.fungible.get(&foreign_location.clone().into()).map_or(0, |a| *a); + let unused_amount = unused_asset.fungible.get(&v5_location.into()).map_or(0, |a| *a); assert_eq!(unused_amount, extra_amount); assert_eq!( ForeignAssets::total_issuance(foreign_location.clone()), @@ -639,7 +640,8 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { // refund. let actual_refund = trader.refund_weight(refund_weight, &ctx).unwrap(); - assert_eq!(actual_refund, (foreign_location.clone(), asset_refund).into()); + let v4_asset: xcm::v4::Asset = (foreign_location.clone(), asset_refund).into(); + assert_eq!(actual_refund, v4_asset.try_into().unwrap()); // assert. assert_eq!(Balances::balance(&staking_pot), initial_balance); diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/Cargo.toml b/system-parachains/asset-hubs/asset-hub-polkadot/Cargo.toml index 41fa2262d3..f0680fb680 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/Cargo.toml +++ b/system-parachains/asset-hubs/asset-hub-polkadot/Cargo.toml @@ -62,7 +62,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -115,6 +114,10 @@ substrate-wasm-builder = { optional = true, workspace = true } default = ["std"] runtime-benchmarks = [ "assets-common/runtime-benchmarks", + "bp-asset-hub-kusama/runtime-benchmarks", + "bp-asset-hub-polkadot/runtime-benchmarks", + "bp-bridge-hub-kusama/runtime-benchmarks", + "bp-bridge-hub-polkadot/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-session-benchmarking/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", @@ -125,6 +128,7 @@ runtime-benchmarks = [ "frame-system-benchmarking/runtime-benchmarks", "frame-system/runtime-benchmarks", "kusama-runtime-constants/runtime-benchmarks", + "pallet-asset-conversion-tx-payment/runtime-benchmarks", "pallet-asset-conversion/runtime-benchmarks", "pallet-assets/runtime-benchmarks", "pallet-balances/runtime-benchmarks", @@ -135,6 +139,7 @@ runtime-benchmarks = [ "pallet-proxy/runtime-benchmarks", "pallet-state-trie-migration/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-uniques/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-vesting/runtime-benchmarks", @@ -253,7 +258,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/primitives/Cargo.toml b/system-parachains/asset-hubs/asset-hub-polkadot/primitives/Cargo.toml index a5baf230ef..b0b2510722 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/primitives/Cargo.toml +++ b/system-parachains/asset-hubs/asset-hub-polkadot/primitives/Cargo.toml @@ -35,3 +35,7 @@ std = [ "system-parachains-constants/std", "xcm/std", ] +runtime-benchmarks = [ + "frame-support/runtime-benchmarks", + "system-parachains-constants/runtime-benchmarks", +] diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/primitives/src/lib.rs b/system-parachains/asset-hubs/asset-hub-polkadot/primitives/src/lib.rs index 0150ef20a0..2a758892cc 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/primitives/src/lib.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/primitives/src/lib.rs @@ -20,6 +20,7 @@ extern crate alloc; +use alloc::vec::Vec; use codec::{Decode, Encode}; use scale_info::TypeInfo; @@ -57,12 +58,12 @@ frame_support::parameter_types! { pub fn build_congestion_message( bridge_id: sp_core::H256, is_congested: bool, -) -> alloc::vec::Vec> { +) -> Vec> { alloc::vec![ UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind: OriginKind::Xcm, - require_weight_at_most: XcmBridgeHubRouterTransactCallMaxWeight::get(), + fallback_max_weight: Some(XcmBridgeHubRouterTransactCallMaxWeight::get()), call: Call::ToKusamaXcmRouter(XcmBridgeHubRouterCall::report_bridge_status { bridge_id, is_congested, diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/genesis_config_presets.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/genesis_config_presets.rs index bfac3eb01a..f9e863f6d9 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/genesis_config_presets.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/genesis_config_presets.rs @@ -17,10 +17,10 @@ //! Genesis configs presets for the AssetHubPolkadot runtime use crate::*; +use alloc::vec::Vec; use parachains_common::AssetHubPolkadotAuraId; use sp_core::sr25519; use sp_genesis_builder::PresetId; -use sp_std::vec::Vec; use system_parachains_constants::genesis_presets::*; const ASSET_HUB_POLKADOT_ED: Balance = ExistentialDeposit::get(); @@ -96,10 +96,12 @@ pub fn preset_names() -> Vec { } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("development") => asset_hub_polkadot_development_genesis(1000.into()), - Ok("local_testnet") => asset_hub_polkadot_local_testnet_genesis(1000.into()), +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => + asset_hub_polkadot_development_genesis(1000.into()), + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => + asset_hub_polkadot_local_testnet_genesis(1000.into()), _ => return None, }; Some( diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/impls.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/impls.rs index 151ae0c0dd..f42b344d11 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/impls.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/impls.rs @@ -23,7 +23,7 @@ pub mod tx_payment { ensure, pallet_prelude::{InvalidTransaction, TransactionValidityError}, traits::{ - tokens::{Fortitude, Precision, Preservation}, + tokens::{Fortitude, Precision, Preservation, WithdrawConsequence}, Defensive, OnUnbalanced, SameOrOther, }, }; @@ -120,5 +120,32 @@ pub mod tx_payment { OU::on_unbalanced(adjusted_paid); Ok(()) } + + fn can_withdraw_fee( + who: &T::AccountId, + _call: &T::RuntimeCall, + _dispatch_info: &DispatchInfoOf, + fee: Self::Balance, + _tip: Self::Balance, + ) -> Result<(), TransactionValidityError> { + if fee.is_zero() { + return Ok(()); + } + + match F::can_withdraw(A::get(), who, fee) { + WithdrawConsequence::Success => Ok(()), + _ => Err(InvalidTransaction::Payment.into()), + } + } + + #[cfg(feature = "runtime-benchmarks")] + fn endow_account(who: &T::AccountId, amount: Self::Balance) { + let _ = F::deposit(A::get(), who, amount, Precision::BestEffort); + } + + #[cfg(feature = "runtime-benchmarks")] + fn minimum_balance() -> Self::Balance { + F::minimum_balance(A::get()) + } } } diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/lib.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/lib.rs index f35d1c3546..b79383a324 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/lib.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/lib.rs @@ -59,12 +59,15 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + // Genesis preset configurations. pub mod genesis_config_presets; mod impls; mod weights; pub mod xcm_config; +use alloc::{borrow::Cow, vec, vec::Vec}; use assets_common::{ foreign_creators::ForeignCreators, local_and_foreign_assets::{LocalFromLeft, TargetFromLeft}, @@ -76,18 +79,17 @@ use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, ConstU128, OpaqueMetadata}; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, Verify}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, Perbill, Permill, }; -use xcm_config::TrustBackedAssetsPalletLocation; +use xcm_config::TrustBackedAssetsPalletLocationV4; use xcm_runtime_apis::{ dry_run::{CallDryRunEffects, Error as XcmDryRunApiError, XcmDryRunEffects}, fees::Error as XcmPaymentApiError, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -127,7 +129,7 @@ use xcm::{ Version as XcmVersion, VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm, }; use xcm_config::{ - DotLocation, FellowshipLocation, ForeignAssetsConvertedConcreteId, + DotLocation, DotLocationV4, FellowshipLocation, ForeignAssetsConvertedConcreteId, ForeignCreatorsSovereignAccountOf, GovernanceLocation, PoolAssetsConvertedConcreteId, TrustBackedAssetsConvertedConcreteId, XcmOriginToTransactDispatchOrigin, }; @@ -138,7 +140,6 @@ pub use sp_runtime::BuildStorage; // Polkadot imports use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; - use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; impl_opaque_keys! { @@ -152,14 +153,14 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // Note: "statemint" is the legacy name for this chain. It has been renamed to // "asset-hub-polkadot". Many wallets/tools depend on the `spec_name`, so it remains "statemint" // for the time being. Wallets/tools should update to treat "asset-hub-polkadot" equally. - spec_name: create_runtime_str!("statemint"), - impl_name: create_runtime_str!("statemint"), + impl_name: Cow::Borrowed("statemint"), + spec_name: Cow::Borrowed("statemint"), authoring_version: 1, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 15, - state_version: 1, + system_version: 1, }; /// The version information used to identify this runtime when compiled natively. @@ -223,9 +224,10 @@ impl frame_system::Config for Runtime { type OnKilledAccount = (); type AccountData = pallet_balances::AccountData; type SystemWeightInfo = weights::frame_system::WeightInfo; + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; type SS58Prefix = SS58Prefix; type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; - type MaxConsumers = frame_support::traits::ConstU32<64>; + type MaxConsumers = ConstU32<64>; type SingleBlockMigrations = (); type MultiBlockMigrator = (); type PreInherents = (); @@ -268,6 +270,7 @@ impl pallet_balances::Config for Runtime { type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = (); type MaxFreezes = ConstU32<0>; + type DoneSlashHandler = (); } parameter_types! { @@ -300,13 +303,14 @@ impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = impls::tx_payment::FungiblesAdapter< NativeAndAssets, - DotLocation, + DotLocationV4, ResolveAssetTo, >; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; type OperationalFeeMultiplier = ConstU8<5>; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } parameter_types! { @@ -624,6 +628,7 @@ 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 ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -771,13 +776,16 @@ impl pallet_collator_selection::Config for Runtime { impl pallet_asset_conversion_tx_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type AssetId = xcm::latest::Location; + type AssetId = xcm::v4::Location; type OnChargeAssetTransaction = pallet_asset_conversion_tx_payment::SwapAssetAdapter< - DotLocation, + DotLocationV4, NativeAndAssets, AssetConversion, ResolveAssetTo, >; + type WeightInfo = weights::pallet_asset_conversion_tx_payment::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = AssetConversionTxHelper; } parameter_types! { @@ -901,7 +909,7 @@ pub type LocalAndForeignAssets = fungibles::UnionOf< Assets, ForeignAssets, LocalFromLeft< - AssetIdForTrustBackedAssetsConvert, + AssetIdForTrustBackedAssetsConvert, AssetIdForTrustBackedAssets, xcm::v4::Location, >, @@ -913,7 +921,7 @@ pub type LocalAndForeignAssets = fungibles::UnionOf< pub type NativeAndAssets = fungible::UnionOf< Balances, LocalAndForeignAssets, - TargetFromLeft, + TargetFromLeft, xcm::v4::Location, AccountId, >; @@ -939,7 +947,7 @@ impl pallet_asset_conversion::Config for Runtime { type Assets = NativeAndAssets; type PoolId = (Self::AssetKind, Self::AssetKind); type PoolLocator = pallet_asset_conversion::WithFirstAsset< - DotLocation, + DotLocationV4, AccountId, Self::AssetKind, PoolIdToAccountId, @@ -947,7 +955,7 @@ impl pallet_asset_conversion::Config for Runtime { type PoolAssetId = u32; type PoolAssets = PoolAssets; type PoolSetupFee = PoolSetupFee; - type PoolSetupFeeAsset = DotLocation; + type PoolSetupFeeAsset = DotLocationV4; type PoolSetupFeeTarget = ResolveAssetTo; type LiquidityWithdrawalFee = LiquidityWithdrawalFee; type LPFee = ConstU32<3>; @@ -957,7 +965,7 @@ impl pallet_asset_conversion::Config for Runtime { type WeightInfo = weights::pallet_asset_conversion::WeightInfo; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = assets_common::benchmarks::AssetPairFactory< - DotLocation, + DotLocationV4, parachain_info::Pallet, xcm_config::TrustBackedAssetsPalletIndex, Self::AssetKind, @@ -1022,8 +1030,8 @@ pub type Block = generic::Block; pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( +/// The `TransactionExtension` to the basic transaction logic. +pub type TxExtension = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -1036,7 +1044,7 @@ pub type SignedExtra = ( ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; /// Migrations to apply on runtime upgrade. pub type Migrations = ( @@ -1054,16 +1062,91 @@ pub type Executive = frame_executive::Executive< Migrations, >; +#[cfg(feature = "runtime-benchmarks")] +pub struct AssetConversionTxHelper; + +#[cfg(feature = "runtime-benchmarks")] +pub type AssetConversionAssetIdFor = ::AssetId; + +#[cfg(feature = "runtime-benchmarks")] +impl + pallet_asset_conversion_tx_payment::BenchmarkHelperTrait< + AccountId, + AssetConversionAssetIdFor, + AssetConversionAssetIdFor, + > for AssetConversionTxHelper +{ + fn create_asset_id_parameter( + seed: u32, + ) -> (AssetConversionAssetIdFor, AssetConversionAssetIdFor) { + // Use a different parachain' foreign assets pallet so that the asset is indeed foreign. + let asset_id = xcm::v4::Location::new( + 1, + [ + xcm::v4::Junction::Parachain(3000), + xcm::v4::Junction::PalletInstance(53), + xcm::v4::Junction::GeneralIndex(seed.into()), + ], + ); + (asset_id.clone(), asset_id) + } + + fn setup_balances_and_pool(asset_id: AssetConversionAssetIdFor, account: AccountId) { + use alloc::boxed::Box; + use frame_support::{assert_ok, traits::fungibles::Mutate}; + + assert_ok!(ForeignAssets::force_create( + RuntimeOrigin::root(), + asset_id.clone().into(), + account.clone().into(), /* owner */ + true, /* is_sufficient */ + 1, + )); + + let lp_provider = account.clone(); + use frame_support::traits::Currency; + let _ = Balances::deposit_creating(&lp_provider, u64::MAX.into()); + assert_ok!(ForeignAssets::mint_into( + asset_id.clone().into(), + &lp_provider, + u64::MAX.into() + )); + + let token_native = Box::new(DotLocationV4::get()); + let token_second = Box::new(asset_id); + + assert_ok!(AssetConversion::create_pool( + RuntimeOrigin::signed(lp_provider.clone()), + token_native.clone(), + token_second.clone() + )); + + assert_ok!(AssetConversion::add_liquidity( + RuntimeOrigin::signed(lp_provider.clone()), + token_native, + token_second, + (u32::MAX / 8).into(), // 1 desired + u32::MAX.into(), // 2 desired + 1, // 1 min + 1, // 2 min + lp_provider, + )); + } +} + #[cfg(feature = "runtime-benchmarks")] mod benches { use super::*; + use alloc::boxed::Box; frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [pallet_assets, Local] [pallet_assets, Foreign] [pallet_assets, Pool] [pallet_asset_conversion, AssetConversion] + [pallet_asset_conversion_tx_payment, AssetTxPayment] [pallet_balances, Balances] [pallet_message_queue, MessageQueue] [pallet_multisig, Multisig] @@ -1074,11 +1157,12 @@ mod benches { [pallet_utility, Utility] [pallet_vesting, Vesting] [pallet_timestamp, Timestamp] + [pallet_transaction_payment, TransactionPayment] [pallet_collator_selection, CollatorSelection] [cumulus_pallet_parachain_system, ParachainSystem] [cumulus_pallet_xcmp_queue, XcmpQueue] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] // Bridges [pallet_xcm_bridge_hub_router, ToKusama] // NOTE: Make sure you point to the individual modules below. @@ -1094,7 +1178,7 @@ mod benches { }; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -1326,7 +1410,10 @@ mod benches { } fn alias_origin() -> Result<(Location, Location), BenchmarkError> { - Err(BenchmarkError::Skip) + Ok(( + Location::new(1, [Parachain(1001)]), + Location::new(1, [Parachain(1001), AccountId32 { id: [111u8; 32], network: None }]), + )) } } @@ -1366,8 +1453,10 @@ mod benches { pub use cumulus_pallet_session_benchmarking::Pallet as SessionBench; pub use frame_benchmarking::{BenchmarkBatch, BenchmarkList, Benchmarking}; pub use frame_support::traits::{StorageInfoTrait, WhitelistedStorageKeys}; - pub use frame_system_benchmarking::Pallet as SystemBench; - pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; + pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; pub use pallet_xcm_bridge_hub_router::benchmarking::Pallet as XcmBridgeHubRouterBench; pub use sp_storage::TrackedStorageKey; @@ -1427,7 +1516,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -1736,7 +1825,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { + ) -> Result, alloc::string::String> { let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); let params = (&config, &whitelist); diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/frame_system_extensions.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..c2a52c43d7 --- /dev/null +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/mod.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/mod.rs index 11e535b09f..9d174b0bf1 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/mod.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/mod.rs @@ -19,7 +19,9 @@ pub mod cumulus_pallet_parachain_system; pub mod cumulus_pallet_xcmp_queue; pub mod extrinsic_weights; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_asset_conversion; +pub mod pallet_asset_conversion_tx_payment; pub mod pallet_assets_foreign; pub mod pallet_assets_local; pub mod pallet_assets_pool; @@ -31,6 +33,7 @@ pub mod pallet_nfts; pub mod pallet_proxy; pub mod pallet_session; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_uniques; pub mod pallet_utility; pub mod pallet_vesting; diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_asset_conversion_tx_payment.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_asset_conversion_tx_payment.rs new file mode 100644 index 0000000000..2d9fce9ba6 --- /dev/null +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_asset_conversion_tx_payment.rs @@ -0,0 +1,92 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_asset_conversion_tx_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2024-01-04, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `Georges-MacBook-Pro.local`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot-parachain +// benchmark +// pallet +// --wasm-execution=compiled +// --pallet=pallet_asset_conversion_tx_payment +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --steps=2 +// --repeat=2 +// --json +// --header=./cumulus/file_header.txt +// --output=./cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/ +// --chain=asset-hub-rococo-dev + +#![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_asset_conversion_tx_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_asset_conversion_tx_payment::WeightInfo for WeightInfo { + fn charge_asset_tx_payment_zero() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_000_000 picoseconds. + Weight::from_parts(10_000_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn charge_asset_tx_payment_native() -> Weight { + // Proof Size summary in bytes: + // Measured: `4` + // Estimated: `3593` + // Minimum execution time: 209_000_000 picoseconds. + Weight::from_parts(212_000_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(2)) + } + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Asset` (r:1 w:1) + /// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`) + /// Storage: `ForeignAssets::Account` (r:2 w:2) + /// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn charge_asset_tx_payment_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `631` + // Estimated: `7404` + // Minimum execution time: 1_228_000_000 picoseconds. + Weight::from_parts(1_268_000_000, 0) + .saturating_add(Weight::from_parts(0, 7404)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} \ No newline at end of file diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_transaction_payment.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/mod.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/mod.rs index 1b72853d0a..376cb269e7 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/mod.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/mod.rs @@ -18,10 +18,14 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; +use sp_runtime::BoundedVec; +use xcm::{ + latest::{prelude::*, AssetTransferFilter}, + DoubleEncoded, +}; trait WeighAssets { fn weigh_assets(&self, weight: Weight) -> Weight; @@ -42,8 +46,9 @@ impl WeighAssets for AssetFilter { WildFungibility::NonFungible => weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), + AllOfCounted { count, .. } => + weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), }, } } @@ -82,7 +87,7 @@ impl XcmWeightInfo for AssetHubPolkadotXcmWeight { } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -229,4 +234,46 @@ impl XcmWeightInfo for AssetHubPolkadotXcmWeight { fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmFungibleWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmFungibleWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 9cf6cf7177..ea70bf62f9 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -187,4 +187,23 @@ impl WeightInfo { .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 350a0e52b4..7e56229b84 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -77,6 +77,20 @@ impl WeightInfo { Weight::from_parts(1_050_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `PolkadotXcm::Queries` (r:1 w:0) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -136,6 +150,13 @@ impl WeightInfo { Weight::from_parts(1_120_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/xcm_config.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/xcm_config.rs index f205a117c2..9adb401700 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/xcm_config.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/xcm_config.rs @@ -20,16 +20,18 @@ use super::{ ToKusamaXcmRouter, TrustBackedAssetsInstance, WeightToFee, XcmpQueue, }; use crate::ForeignAssetsInstance; +use alloc::{collections::BTreeSet, vec, vec::Vec}; use assets_common::{ matching::{FromNetwork, FromSiblingParachain, IsForeignConcreteAsset, ParentLocation}, TrustBackedAssetsAsLocation, }; +use core::marker::PhantomData; use frame_support::{ pallet_prelude::Get, parameter_types, traits::{ tokens::imbalance::{ResolveAssetTo, ResolveTo}, - ConstU32, Contains, ContainsPair, Equals, Everything, Nothing, PalletInfoAccess, + ConstU32, Contains, ContainsPair, Equals, Everything, PalletInfoAccess, }, }; use frame_system::EnsureRoot; @@ -40,27 +42,29 @@ use parachains_common::xcm_config::{ }; use polkadot_parachain_primitives::primitives::Sibling; use polkadot_runtime_constants::system_parachain; -use snowbridge_router_primitives::inbound::GlobalConsensusEthereumConvertsFor; +use snowbridge_router_primitives::inbound::EthereumLocationsConverterFor; use sp_runtime::traits::{AccountIdConversion, ConvertInto, TryConvertInto}; use system_parachains_constants::TREASURY_PALLET_ID; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, - DenyThenTry, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, FrameTransactionalProcessor, - FungibleAdapter, FungiblesAdapter, GlobalConsensusParachainConvertsFor, HashedDescription, - IsConcrete, LocalMint, MatchedConvertedConcreteId, NoChecking, ParentAsSuperuser, - ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SingleAssetExchangeAdapter, SovereignPaidRemoteExporter, SovereignSignedViaLocation, - StartsWith, StartsWithExplicitGlobalConsensus, TakeWeightCredit, TrailingSetTopicAsId, - UsingComponents, WeightInfoBounds, WithComputedOrigin, WithLatestLocationConverter, - WithUniqueTopic, XcmFeeManagerFromComponents, + AccountId32Aliases, AliasChildLocation, AllowExplicitUnpaidExecutionFrom, + AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, + DenyReserveTransferToRelayChain, DenyThenTry, DescribeAllTerminal, DescribeFamily, + EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, + GlobalConsensusParachainConvertsFor, HashedDescription, IsConcrete, LocalMint, + MatchedConvertedConcreteId, NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, + SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SingleAssetExchangeAdapter, + SovereignPaidRemoteExporter, SovereignSignedViaLocation, StartsWith, + StartsWithExplicitGlobalConsensus, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, + WeightInfoBounds, WithComputedOrigin, WithLatestLocationConverter, WithUniqueTopic, + XcmFeeManagerFromComponents, }; use xcm_executor::{traits::ConvertLocation, XcmExecutor}; parameter_types! { pub const DotLocation: Location = Location::parent(); + pub const DotLocationV4: xcm::v4::Location = xcm::v4::Location::parent(); pub const RelayNetwork: Option = Some(NetworkId::Polkadot); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub UniversalLocation: InteriorLocation = @@ -69,6 +73,8 @@ parameter_types! { pub TrustBackedAssetsPalletIndex: u8 = ::index() as u8; pub TrustBackedAssetsPalletLocation: Location = PalletInstance(TrustBackedAssetsPalletIndex::get()).into(); + pub TrustBackedAssetsPalletLocationV4: xcm::v4::Location = + xcm::v4::Junction::PalletInstance(TrustBackedAssetsPalletIndex::get()).into(); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); pub FellowshipLocation: Location = Location::new(1, Parachain(system_parachain::COLLECTIVES_ID)); pub const GovernanceLocation: Location = Location::parent(); @@ -76,6 +82,8 @@ parameter_types! { pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); pub PoolAssetsPalletLocation: Location = PalletInstance(::index() as u8).into(); + pub PoolAssetsPalletLocationV4: xcm::v4::Location = + xcm::v4::Junction::PalletInstance(::index() as u8).into(); pub StakingPot: AccountId = CollatorSelection::account_id(); // Test [`crate::tests::treasury_pallet_account_not_none`] ensures that the result of location // conversion is not `None`. @@ -102,7 +110,7 @@ pub type LocationToAccountId = ( GlobalConsensusParachainConvertsFor, // Ethereum contract sovereign account. // (Used to get convert ethereum contract locations to sovereign account) - GlobalConsensusEthereumConvertsFor, + EthereumLocationsConverterFor, ); /// Means for transacting the native currency on this chain. @@ -384,6 +392,9 @@ pub type ForeignAssetFeeAsExistentialDepositMultiplierFeeCharger = ForeignAssetsInstance, >; +/// We allow locations to alias into their own child locations. +pub type Aliasers = AliasChildLocation; + pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; @@ -418,7 +429,7 @@ impl xcm_executor::Config for XcmConfig { // This trader allows to pay with any assets exchangeable to DOT with // [`AssetConversion`]. cumulus_primitives_utility::SwapFirstAssetTrader< - DotLocation, + DotLocationV4, AssetConversion, WeightToFee, NativeAndAssets, @@ -477,7 +488,7 @@ impl xcm_executor::Config for XcmConfig { (bridging::to_kusama::UniversalAliases, bridging::to_ethereum::UniversalAliases); type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; - type Aliasers = Nothing; + type Aliasers = Aliasers; type TransactionalProcessor = FrameTransactionalProcessor; type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); @@ -555,7 +566,7 @@ pub type ForeignCreatorsSovereignAccountOf = ( SiblingParachainConvertsVia, AccountId32Aliases, ParentIsPreset, - GlobalConsensusEthereumConvertsFor, + EthereumLocationsConverterFor, GlobalConsensusParachainConvertsFor, ); @@ -571,7 +582,6 @@ impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { /// All configuration related to bridging pub mod bridging { use super::*; - use sp_std::collections::btree_set::BTreeSet; use xcm_builder::NetworkExportTableItem; parameter_types! { @@ -590,8 +600,8 @@ pub mod bridging { /// (`AssetId` has to be aligned with `BridgeTable`) pub XcmBridgeHubRouterFeeAssetId: AssetId = DotLocation::get().into(); - pub BridgeTable: sp_std::vec::Vec = - sp_std::vec::Vec::new().into_iter() + pub BridgeTable: Vec = + Vec::new().into_iter() .chain(to_kusama::BridgeTable::get()) .collect(); } @@ -622,10 +632,10 @@ pub mod bridging { /// Set up exporters configuration. /// `Option` represents static "base fee" which is used for total delivery fee calculation. - pub BridgeTable: sp_std::vec::Vec = sp_std::vec![ + pub BridgeTable: Vec = vec![ NetworkExportTableItem::new( KusamaNetwork::get(), - Some(sp_std::vec![ + Some(vec![ AssetHubKusama::get().interior.split_global().expect("invalid configuration for AssetHubPolkadot").1, ]), SiblingBridgeHub::get(), @@ -639,7 +649,7 @@ pub mod bridging { /// Universal aliases pub UniversalAliases: BTreeSet<(Location, Junction)> = BTreeSet::from_iter( - sp_std::vec![ + vec![ (SiblingBridgeHubWithBridgeHubKusamaInstance::get(), GlobalConsensus(KusamaNetwork::get())) ] ); @@ -658,7 +668,7 @@ pub mod bridging { /// Accept an asset if it is native to `AssetsAllowedNetworks` and it is coming from /// `OriginLocation`. pub struct RemoteAssetFromLocation( - sp_std::marker::PhantomData<(AssetsAllowedNetworks, OriginLocation)>, + PhantomData<(AssetsAllowedNetworks, OriginLocation)>, ); impl< L: TryInto + Clone, @@ -724,10 +734,10 @@ pub mod bridging { /// Set up exporters configuration. /// `Option` represents static "base fee" which is used for total delivery fee calculation. - pub BridgeTable: sp_std::vec::Vec = sp_std::vec![ + pub BridgeTable: Vec = vec![ NetworkExportTableItem::new( EthereumNetwork::get(), - Some(sp_std::vec![Junctions::Here]), + Some(vec![Junctions::Here]), SiblingBridgeHub::get(), Some(( XcmBridgeHubRouterFeeAssetId::get(), @@ -738,7 +748,7 @@ pub mod bridging { /// Universal aliases pub UniversalAliases: BTreeSet<(Location, Junction)> = BTreeSet::from_iter( - sp_std::vec![ + vec![ (SiblingBridgeHubWithEthereumInboundQueueInstance::get(), GlobalConsensus(EthereumNetwork::get())), ] ); diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/tests/snowbridge.rs b/system-parachains/asset-hubs/asset-hub-polkadot/tests/snowbridge.rs index 05dff0bc97..6f97548dac 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/tests/snowbridge.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/tests/snowbridge.rs @@ -15,12 +15,14 @@ // See the License for the specific language governing permissions and // limitations under the License. +extern crate alloc; + +use alloc::{vec, vec::Vec}; use asset_hub_polkadot_runtime::xcm_config::bridging::{ to_ethereum::{BridgeHubEthereumBaseFee, BridgeTable, EthereumNetwork}, SiblingBridgeHub, XcmBridgeHubRouterFeeAssetId, }; use sp_core::H160; -use sp_std::prelude::*; use xcm::prelude::*; use xcm_builder::{ExporterFor, NetworkExportTable}; @@ -33,7 +35,7 @@ fn network_export_table_works() { // matched. ( EthereumNetwork::get(), - Junctions::Here, + Here, Some(( SiblingBridgeHub::get(), Some(Asset { @@ -55,7 +57,7 @@ fn network_export_table_works() { None, ), // From Ethereum with the Sepolia chain ID instead of Mainnet, not matched. - (NetworkId::Ethereum { chain_id: 11155111 }, Junctions::Here, None), + (NetworkId::Ethereum { chain_id: 11155111 }, Here, None), ]; for (network, remote_location, expected_result) in test_data { diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/tests/tests.rs b/system-parachains/asset-hubs/asset-hub-polkadot/tests/tests.rs index 645506a669..842ed6059e 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/tests/tests.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/tests/tests.rs @@ -35,6 +35,7 @@ use asset_test_utils::{ ExtBuilder, SlotDurations, }; use codec::{Decode, Encode}; +use core::ops::Mul; use frame_support::{assert_ok, traits::fungibles::InspectEnumerable}; use parachains_common::{ AccountId, AssetHubPolkadotAuraId as AuraId, AssetIdForTrustBackedAssets, Balance, @@ -42,13 +43,12 @@ use parachains_common::{ use sp_consensus_aura::SlotDuration; use sp_core::crypto::Ss58Codec; use sp_runtime::traits::MaybeEquivalence; -use sp_std::ops::Mul; use system_parachains_constants::{ kusama::consensus::RELAY_CHAIN_SLOT_DURATION_MILLIS, polkadot::fee::WeightToFee, }; use xcm::latest::prelude::{Assets as XcmAssets, *}; use xcm_builder::WithLatestLocationConverter; -use xcm_executor::traits::{ConvertLocation, JustTry}; +use xcm_executor::traits::ConvertLocation; use xcm_runtime_apis::conversions::LocationToAccountHelper; const ALICE: [u8; 32] = [1u8; 32]; @@ -337,7 +337,7 @@ asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_ XcmConfig, ForeignAssetsInstance, xcm::v4::Location, - JustTry, + WithLatestLocationConverter, collator_session_keys(), ExistentialDeposit::get(), xcm::v4::Location::new( @@ -352,7 +352,7 @@ asset_test_utils::include_asset_transactor_transfer_with_pallet_assets_instance_ }) ); -asset_test_utils::include_create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works!( +include_create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works!( Runtime, XcmConfig, WeightToFee, @@ -436,13 +436,16 @@ fn receive_reserve_asset_deposited_ksm_from_asset_hub_kusama_fees_paid_by_pool_s let block_author_account = AccountId::from(BLOCK_AUTHOR_ACCOUNT); let staking_pot = StakingPot::get(); - let foreign_asset_id_location = + let foreign_asset_id_location_v4 = xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Kusama)]); 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, foreign_asset_id_location.clone(), foreign_asset_id_minimum_balance); + let foreign_asset_create_params = ( + foreign_asset_owner, + foreign_asset_id_location_v4.clone(), + foreign_asset_id_minimum_balance, + ); remove_when_updated_to_stable2409::receive_reserve_asset_deposited_from_different_consensus_works::< Runtime, @@ -476,7 +479,7 @@ fn receive_reserve_asset_deposited_ksm_from_asset_hub_kusama_fees_paid_by_pool_s // check now foreign asset for staking pot assert_eq!( ForeignAssets::balance( - foreign_asset_id_location.clone(), + foreign_asset_id_location_v4.clone(), &staking_pot ), 0 @@ -490,7 +493,7 @@ fn receive_reserve_asset_deposited_ksm_from_asset_hub_kusama_fees_paid_by_pool_s // staking pot receives no foreign assets assert_eq!( ForeignAssets::balance( - foreign_asset_id_location.clone(), + foreign_asset_id_location_v4.clone(), &staking_pot ), 0 @@ -505,13 +508,16 @@ fn receive_reserve_asset_deposited_ksm_from_asset_hub_kusama_fees_paid_by_suffic let block_author_account = AccountId::from(BLOCK_AUTHOR_ACCOUNT); let staking_pot = >::account_id(); - let foreign_asset_id_location = + let foreign_asset_id_location_v4 = xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Kusama)]); 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, foreign_asset_id_location.clone(), foreign_asset_id_minimum_balance); + let foreign_asset_create_params = ( + foreign_asset_owner, + foreign_asset_id_location_v4.clone(), + foreign_asset_id_minimum_balance, + ); remove_when_updated_to_stable2409::receive_reserve_asset_deposited_from_different_consensus_works::< Runtime, @@ -536,7 +542,7 @@ fn receive_reserve_asset_deposited_ksm_from_asset_hub_kusama_fees_paid_by_suffic // check block author before assert_eq!( ForeignAssets::balance( - foreign_asset_id_location.clone(), + foreign_asset_id_location_v4.clone(), &block_author_account ), 0 @@ -546,7 +552,7 @@ fn receive_reserve_asset_deposited_ksm_from_asset_hub_kusama_fees_paid_by_suffic // `TakeFirstAssetTrader` puts fees to the block author assert!( ForeignAssets::balance( - foreign_asset_id_location.clone(), + foreign_asset_id_location_v4.clone(), &block_author_account ) > 0 ); @@ -862,12 +868,17 @@ pub mod remove_when_updated_to_stable2409 { ] .into(), }; + let foreign_asset_id_location_latest = + Location::new(1, [Parachain(foreign_para_id), GeneralIndex(1234567)]); // foreign creator, which can be sibling parachain to match ForeignCreators - let foreign_creator = - Location { parents: 1, interior: [Parachain(foreign_para_id)].into() }; + let foreign_creator = xcm::v4::Location { + parents: 1, + interior: [xcm::v4::Junction::Parachain(foreign_para_id)].into(), + }; + let foreign_creator_latest: Location = foreign_creator.try_into().unwrap(); let foreign_creator_as_account_id = - SovereignAccountOf::convert_location(&foreign_creator).expect(""); + SovereignAccountOf::convert_location(&foreign_creator_latest).expect(""); // we want to buy execution with local relay chain currency let buy_execution_fee_amount = @@ -960,12 +971,12 @@ pub mod remove_when_updated_to_stable2409 { }, // Process teleported asset ReceiveTeleportedAsset(Assets::from(vec![Asset { - id: AssetId(foreign_asset_id_location.clone()), + id: AssetId(foreign_asset_id_location_latest.clone()), fun: Fungible(teleported_foreign_asset_amount), }])), DepositAsset { assets: Wild(AllOf { - id: AssetId(foreign_asset_id_location.clone()), + id: AssetId(foreign_asset_id_location_latest.clone()), fun: WildFungibility::Fungible, }), beneficiary: Location { @@ -982,7 +993,7 @@ pub mod remove_when_updated_to_stable2409 { let mut hash = xcm.using_encoded(sp_io::hashing::blake2_256); let outcome = XcmExecutor::::prepare_and_execute( - foreign_creator, + foreign_creator_latest, xcm, &mut hash, RuntimeHelper::::xcm_max_weight(XcmReceivedFrom::Sibling), @@ -1049,14 +1060,15 @@ pub mod remove_when_updated_to_stable2409 { ); // Make sure the target account has enough native asset to pay for delivery fees - let delivery_fees = - xcm_helpers::teleport_assets_delivery_fees::( - (foreign_asset_id_location.clone(), asset_to_teleport_away).into(), - 0, - Unlimited, - dest_beneficiary.clone(), - dest.clone(), - ); + let delivery_fees = xcm_helpers::teleport_assets_delivery_fees::< + XcmConfig::XcmSender, + >( + (foreign_asset_id_location_latest.clone(), asset_to_teleport_away).into(), + 0, + Unlimited, + dest_beneficiary.clone(), + dest.clone(), + ); >::mint_into( &target_account, delivery_fees.into(), @@ -1068,7 +1080,7 @@ pub mod remove_when_updated_to_stable2409 { RuntimeHelper::::origin_of(target_account.clone()), dest, dest_beneficiary, - (foreign_asset_id_location.clone(), asset_to_teleport_away), + (foreign_asset_id_location_latest.clone(), asset_to_teleport_away), Some((runtime_para_id, foreign_para_id)), included_head, &alice, @@ -1254,7 +1266,7 @@ pub mod remove_when_updated_to_stable2409 { additional_checks_before(); let expected_assets = Assets::from(vec![Asset { - id: AssetId(foreign_asset_id_location.clone()), + id: AssetId(foreign_asset_id_location.clone().try_into().unwrap()), fun: Fungible(foreign_asset_id_amount_to_transfer), }]); let expected_beneficiary = Location::new( @@ -1271,7 +1283,7 @@ pub mod remove_when_updated_to_stable2409 { ClearOrigin, BuyExecution { fees: Asset { - id: AssetId(foreign_asset_id_location.clone()), + id: AssetId(foreign_asset_id_location.clone().try_into().unwrap()), fun: Fungible(foreign_asset_id_amount_to_transfer), }, weight_limit: Unlimited, @@ -1434,10 +1446,392 @@ fn xcm_payment_api_works() { RuntimeOrigin, Block, >(); - asset_test_utils::test_cases::xcm_payment_api_with_pools_works::< + // TODO: uncomment when migrated to the XCMv5 or patched `xcm_payment_api_with_pools_works` + // asset_test_utils::test_cases::xcm_payment_api_with_pools_works::< + // Runtime, + // RuntimeCall, + // RuntimeOrigin, + // Block, + // >(); +} + +pub mod remove_when_asset_test_utils_doesnt_use_latest_xcm_location { + use super::RuntimeHelper; + use crate::RuntimeOrigin; + use asset_test_utils::{ + assert_metadata, AccountIdOf, BalanceOf, CollatorSessionKeys, ExtBuilder, ValidatorIdOf, + XcmReceivedFrom, + }; + use frame_support::{ + assert_noop, assert_ok, + traits::{fungibles::InspectEnumerable, OriginTrait}, + }; + use parachains_common::Balance; + use sp_core::Encode; + use sp_runtime::{ + traits::{MaybeEquivalence, StaticLookup}, + DispatchError, Saturating, Weight, + }; + use xcm::prelude::*; + use xcm_executor::{traits::ConvertLocation, XcmExecutor}; + + pub type MaybeAssetsEvent = + Option>; + + /// Test-case makes sure that `Runtime` can create and manage `ForeignAssets` + #[allow(clippy::too_many_arguments)] + pub fn create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works< Runtime, - RuntimeCall, - RuntimeOrigin, - Block, - >(); + XcmConfig, + WeightToFee, + SovereignAccountOf, + ForeignAssetsPalletInstance, + AssetId, + AssetIdConverter, + >( + collator_session_keys: CollatorSessionKeys, + existential_deposit: BalanceOf, + asset_deposit: BalanceOf, + metadata_deposit_base: BalanceOf, + metadata_deposit_per_byte: BalanceOf, + alice_account: AccountIdOf, + bob_account: AccountIdOf, + runtime_call_encode: Box< + dyn Fn(pallet_assets::Call) -> Vec, + >, + unwrap_pallet_assets_event: Box< + dyn Fn(Vec) -> MaybeAssetsEvent, + >, + additional_checks_before: Box, + additional_checks_after: Box, + ) where + Runtime: frame_system::Config + + pallet_balances::Config + + pallet_session::Config + + pallet_xcm::Config + + parachain_info::Config + + pallet_collator_selection::Config + + cumulus_pallet_parachain_system::Config + + pallet_assets::Config + + pallet_timestamp::Config, + AccountIdOf: Into<[u8; 32]>, + ValidatorIdOf: From>, + BalanceOf: From, + XcmConfig: xcm_executor::Config, + WeightToFee: frame_support::weights::WeightToFee, + ::Balance: From + Into, + SovereignAccountOf: ConvertLocation>, + >::AssetId: + From + Into, + >::AssetIdParameter: + From + Into, + >::Balance: + From + Into, + ::AccountId: + Into<<::RuntimeOrigin as OriginTrait>::AccountId>, + <::Lookup as StaticLookup>::Source: + From<::AccountId>, + ForeignAssetsPalletInstance: 'static, + AssetId: Clone, + AssetIdConverter: MaybeEquivalence, + ::AccountId: Into, + ::RuntimeOrigin: From, + { + // foreign parachain with the same consensus currency as asset + let foreign_asset_id_location = xcm::v4::Location::new( + 1, + [xcm::v4::Junction::Parachain(2222), xcm::v4::Junction::GeneralIndex(1234567)], + ); + let asset_id = AssetIdConverter::convert(&foreign_asset_id_location).unwrap(); + + // foreign creator, which can be sibling parachain to match ForeignCreators + let foreign_creator = Location { parents: 1, interior: [Parachain(2222)].into() }; + let foreign_creator_as_account_id = + SovereignAccountOf::convert_location(&foreign_creator).expect(""); + + // we want to buy execution with local relay chain currency + let buy_execution_fee_amount = + WeightToFee::weight_to_fee(&Weight::from_parts(90_000_000_000, 0)); + let buy_execution_fee = + Asset { id: AssetId(Location::parent()), fun: Fungible(buy_execution_fee_amount) }; + + const ASSET_NAME: &str = "My super coin"; + const ASSET_SYMBOL: &str = "MY_S_COIN"; + let metadata_deposit_per_byte_eta = metadata_deposit_per_byte + .saturating_mul(((ASSET_NAME.len() + ASSET_SYMBOL.len()) as u128).into()); + + ExtBuilder::::default() + .with_collators(collator_session_keys.collators()) + .with_session_keys(collator_session_keys.session_keys()) + .with_balances(vec![( + foreign_creator_as_account_id.clone(), + existential_deposit + + asset_deposit + metadata_deposit_base + + metadata_deposit_per_byte_eta + + buy_execution_fee_amount.into() + + buy_execution_fee_amount.into(), + )]) + .with_tracing() + .build() + .execute_with(|| { + assert!(>::asset_ids() + .collect::>() + .is_empty()); + assert_eq!( + >::free_balance( + &foreign_creator_as_account_id + ), + existential_deposit + + asset_deposit + metadata_deposit_base + + metadata_deposit_per_byte_eta + + buy_execution_fee_amount.into() + + buy_execution_fee_amount.into() + ); + additional_checks_before(); + + // execute XCM with Transacts to create/manage foreign assets by foreign governance + // prepare data for xcm::Transact(create) + let foreign_asset_create = runtime_call_encode(pallet_assets::Call::< + Runtime, + ForeignAssetsPalletInstance, + >::create { + id: asset_id.clone().into(), + // admin as sovereign_account + admin: foreign_creator_as_account_id.clone().into(), + min_balance: 1.into(), + }); + // prepare data for xcm::Transact(set_metadata) + let foreign_asset_set_metadata = runtime_call_encode(pallet_assets::Call::< + Runtime, + ForeignAssetsPalletInstance, + >::set_metadata { + id: asset_id.clone().into(), + name: Vec::from(ASSET_NAME), + symbol: Vec::from(ASSET_SYMBOL), + decimals: 12, + }); + // prepare data for xcm::Transact(set_team - change just freezer to Bob) + let foreign_asset_set_team = runtime_call_encode(pallet_assets::Call::< + Runtime, + ForeignAssetsPalletInstance, + >::set_team { + id: asset_id.clone().into(), + issuer: foreign_creator_as_account_id.clone().into(), + admin: foreign_creator_as_account_id.clone().into(), + freezer: bob_account.clone().into(), + }); + + // lets simulate this was triggered by relay chain from local consensus sibling + // parachain + let xcm = Xcm(vec![ + WithdrawAsset(buy_execution_fee.clone().into()), + BuyExecution { fees: buy_execution_fee.clone(), weight_limit: Unlimited }, + Transact { + origin_kind: OriginKind::Xcm, + call: foreign_asset_create.into(), + fallback_max_weight: None, + }, + Transact { + origin_kind: OriginKind::SovereignAccount, + call: foreign_asset_set_metadata.into(), + fallback_max_weight: None, + }, + Transact { + origin_kind: OriginKind::SovereignAccount, + call: foreign_asset_set_team.into(), + fallback_max_weight: None, + }, + ExpectTransactStatus(MaybeErrorCode::Success), + ]); + + // messages with different consensus should go through the local bridge-hub + let mut hash = xcm.using_encoded(sp_io::hashing::blake2_256); + + // execute xcm as XcmpQueue would do + let outcome = XcmExecutor::::prepare_and_execute( + foreign_creator.clone(), + xcm, + &mut hash, + RuntimeHelper::xcm_max_weight(XcmReceivedFrom::Sibling), + Weight::zero(), + ); + assert_ok!(outcome.ensure_complete()); + + // check events + let mut events = >::events() + .into_iter() + .filter_map(|e| unwrap_pallet_assets_event(e.event.encode())); + assert!(events.any(|e| matches!(e, pallet_assets::Event::Created { .. }))); + assert!(events.any(|e| matches!(e, pallet_assets::Event::MetadataSet { .. }))); + assert!(events.any(|e| matches!(e, pallet_assets::Event::TeamChanged { .. }))); + + // check assets after + assert!(!>::asset_ids( + ) + .collect::>() + .is_empty()); + + // check update metadata + use frame_support::traits::fungibles::roles::Inspect as InspectRoles; + assert_eq!( + >::owner( + asset_id.clone().into() + ), + Some(foreign_creator_as_account_id.clone()) + ); + assert_eq!( + >::admin( + asset_id.clone().into() + ), + Some(foreign_creator_as_account_id.clone()) + ); + assert_eq!( + >::issuer( + asset_id.clone().into() + ), + Some(foreign_creator_as_account_id.clone()) + ); + assert_eq!( + >::freezer( + asset_id.clone().into() + ), + Some(bob_account.clone()) + ); + assert!( + >::free_balance( + &foreign_creator_as_account_id + ) >= existential_deposit + buy_execution_fee_amount.into(), + "Free balance: {:?} should be ge {:?}", + >::free_balance( + &foreign_creator_as_account_id + ), + existential_deposit + buy_execution_fee_amount.into() + ); + assert_metadata::< + pallet_assets::Pallet, + AccountIdOf, + >(asset_id.clone(), ASSET_NAME, ASSET_SYMBOL, 12); + + // check if changed freezer, can freeze + assert_noop!( + >::freeze( + RuntimeHelper::origin_of(bob_account.clone().into()).into(), + asset_id.clone().into(), + alice_account.clone().into() + ), + pallet_assets::Error::::NoAccount + ); + assert_noop!( + >::freeze( + RuntimeHelper::origin_of(foreign_creator_as_account_id.clone().into()) + .into(), + asset_id.into(), + alice_account.into() + ), + pallet_assets::Error::::NoPermission + ); + + // lets try create asset for different parachain(3333) (foreign_creator(2222) can + // create just his assets) + let foreign_asset_id_location = xcm::v4::Location { + parents: 1, + interior: [ + xcm::v4::Junction::Parachain(3333), + xcm::v4::Junction::GeneralIndex(1234567), + ] + .into(), + }; + let asset_id = AssetIdConverter::convert(&foreign_asset_id_location).unwrap(); + + // prepare data for xcm::Transact(create) + let foreign_asset_create = runtime_call_encode(pallet_assets::Call::< + Runtime, + ForeignAssetsPalletInstance, + >::create { + id: asset_id.into(), + // admin as sovereign_account + admin: foreign_creator_as_account_id.clone().into(), + min_balance: 1.into(), + }); + let xcm = Xcm(vec![ + WithdrawAsset(buy_execution_fee.clone().into()), + BuyExecution { fees: buy_execution_fee.clone(), weight_limit: Unlimited }, + Transact { + origin_kind: OriginKind::Xcm, + call: foreign_asset_create.into(), + fallback_max_weight: None, + }, + ExpectTransactStatus(MaybeErrorCode::from(DispatchError::BadOrigin.encode())), + ]); + + // messages with different consensus should go through the local bridge-hub + let mut hash = xcm.using_encoded(sp_io::hashing::blake2_256); + + // execute xcm as XcmpQueue would do + let outcome = XcmExecutor::::prepare_and_execute( + foreign_creator, + xcm, + &mut hash, + RuntimeHelper::xcm_max_weight(XcmReceivedFrom::Sibling), + Weight::zero(), + ); + assert_ok!(outcome.ensure_complete()); + + additional_checks_after(); + }) + } + + #[macro_export] + macro_rules! include_create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works( + ( + $runtime:path, + $xcm_config:path, + $weight_to_fee:path, + $sovereign_account_of:path, + $assets_pallet_instance:path, + $asset_id:path, + $asset_id_converter:path, + $collator_session_key:expr, + $existential_deposit:expr, + $asset_deposit:expr, + $metadata_deposit_base:expr, + $metadata_deposit_per_byte:expr, + $runtime_call_encode:expr, + $unwrap_pallet_assets_event:expr, + $additional_checks_before:expr, + $additional_checks_after:expr + ) => { + #[test] + fn create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works() { + const ALICE: [u8; 32] = [1u8; 32]; + let alice_account = parachains_common::AccountId::from(ALICE); + const BOB: [u8; 32] = [2u8; 32]; + let bob_account = parachains_common::AccountId::from(BOB); + + use asset_test_utils::test_cases; + + test_cases::create_and_manage_foreign_assets_for_local_consensus_parachain_assets_works::< + $runtime, + $xcm_config, + $weight_to_fee, + $sovereign_account_of, + $assets_pallet_instance, + $asset_id, + $asset_id_converter + >( + $collator_session_key, + $existential_deposit, + $asset_deposit, + $metadata_deposit_base, + $metadata_deposit_per_byte, + alice_account, + bob_account, + $runtime_call_encode, + $unwrap_pallet_assets_event, + $additional_checks_before, + $additional_checks_after + ) + } + } +); } diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/tests/weight_trader.rs b/system-parachains/asset-hubs/asset-hub-polkadot/tests/weight_trader.rs index 66f2e2ce8f..86d2d72895 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/tests/weight_trader.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/tests/weight_trader.rs @@ -17,8 +17,8 @@ use asset_hub_polkadot_runtime::{ xcm_config::{ - AssetFeeAsExistentialDepositMultiplierFeeCharger, DotLocation, StakingPot, - TrustBackedAssetsPalletLocation, XcmConfig, + AssetFeeAsExistentialDepositMultiplierFeeCharger, DotLocation, DotLocationV4, StakingPot, + TrustBackedAssetsPalletLocation, TrustBackedAssetsPalletLocationV4, XcmConfig, }, AllPalletsWithoutSystem, AssetConversion, Assets, Balances, ExistentialDeposit, ForeignAssets, Runtime, SessionKeys, @@ -470,9 +470,9 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { let bob: AccountId = SOME_ASSET_ADMIN.into(); let staking_pot = StakingPot::get(); let asset_1: u32 = 1; - let native_location = DotLocation::get(); + let native_location = DotLocationV4::get(); let asset_1_location = AssetIdForTrustBackedAssetsConvert::< - TrustBackedAssetsPalletLocation, + TrustBackedAssetsPalletLocationV4, xcm::v4::Location, >::convert_back(&asset_1) .unwrap(); @@ -516,7 +516,8 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { AssetConversion::get_amount_in(&fee, &pool_liquidity, &pool_liquidity).unwrap(); let extra_amount = 100; let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - let payment: Asset = (asset_1_location.clone(), asset_fee + extra_amount).into(); + let asset_1_location_latest: Location = asset_1_location.clone().try_into().unwrap(); + let payment: Asset = (asset_1_location_latest.clone(), asset_fee + extra_amount).into(); // init trader and buy weight. let mut trader = ::Trader::new(); @@ -524,8 +525,10 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { trader.buy_weight(weight, payment.into(), &ctx).expect("Expected Ok"); // assert. - let unused_amount = - unused_asset.fungible.get(&asset_1_location.clone().into()).map_or(0, |a| *a); + let unused_amount = unused_asset + .fungible + .get(&asset_1_location_latest.clone().into()) + .map_or(0, |a| *a); assert_eq!(unused_amount, extra_amount); assert_eq!(Assets::total_issuance(asset_1), asset_total_issuance + asset_fee); @@ -539,7 +542,7 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { // refund. let actual_refund = trader.refund_weight(refund_weight, &ctx).unwrap(); - assert_eq!(actual_refund, (asset_1_location, asset_refund).into()); + assert_eq!(actual_refund, (asset_1_location_latest, asset_refund).into()); // assert. assert_eq!(Balances::balance(&staking_pot), initial_balance); @@ -568,7 +571,7 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { .execute_with(|| { let bob: AccountId = SOME_ASSET_ADMIN.into(); let staking_pot = StakingPot::get(); - let native_location = DotLocation::get(); + let native_location = DotLocationV4::get(); let foreign_location = xcm::v4::Location { parents: 1, interior: ( @@ -622,7 +625,8 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { AssetConversion::get_amount_in(&fee, &pool_liquidity, &pool_liquidity).unwrap(); let extra_amount = 100; let ctx = XcmContext { origin: None, message_id: XcmHash::default(), topic: None }; - let payment: Asset = (foreign_location.clone(), asset_fee + extra_amount).into(); + let v5_location: Location = foreign_location.clone().try_into().unwrap(); + let payment: Asset = (v5_location.clone(), asset_fee + extra_amount).into(); // init trader and buy weight. let mut trader = ::Trader::new(); @@ -630,8 +634,7 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { trader.buy_weight(weight, payment.into(), &ctx).expect("Expected Ok"); // assert. - let unused_amount = - unused_asset.fungible.get(&foreign_location.clone().into()).map_or(0, |a| *a); + let unused_amount = unused_asset.fungible.get(&v5_location.into()).map_or(0, |a| *a); assert_eq!(unused_amount, extra_amount); assert_eq!( ForeignAssets::total_issuance(foreign_location.clone()), @@ -648,7 +651,8 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { // refund. let actual_refund = trader.refund_weight(refund_weight, &ctx).unwrap(); - assert_eq!(actual_refund, (foreign_location.clone(), asset_refund).into()); + let v4_asset: xcm::v4::Asset = (foreign_location.clone(), asset_refund).into(); + assert_eq!(actual_refund, v4_asset.try_into().unwrap()); // assert. assert_eq!(Balances::balance(&staking_pot), initial_balance); diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/Cargo.toml b/system-parachains/bridge-hubs/bridge-hub-kusama/Cargo.toml index 6c69d1859e..0416cf685f 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/Cargo.toml +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/Cargo.toml @@ -57,7 +57,6 @@ sp-io = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -186,7 +185,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", @@ -200,6 +198,10 @@ std = [ ] runtime-benchmarks = [ + "bp-asset-hub-kusama/runtime-benchmarks", + "bp-asset-hub-polkadot/runtime-benchmarks", + "bp-bridge-hub-kusama/runtime-benchmarks", + "bp-bridge-hub-polkadot/runtime-benchmarks", "bridge-hub-common/runtime-benchmarks", "bridge-runtime-common/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", @@ -221,6 +223,7 @@ runtime-benchmarks = [ "pallet-message-queue/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-xcm-benchmarks/runtime-benchmarks", "pallet-xcm-bridge-hub/runtime-benchmarks", diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/primitives/Cargo.toml b/system-parachains/bridge-hubs/bridge-hub-kusama/primitives/Cargo.toml index 83e1393d92..3c5a8f66ba 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/primitives/Cargo.toml +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/primitives/Cargo.toml @@ -43,3 +43,10 @@ std = [ "sp-std/std", "system-parachains-constants/std", ] +runtime-benchmarks = [ + "frame-support/runtime-benchmarks", + "kusama-runtime-constants/runtime-benchmarks", + "polkadot-runtime-constants/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "system-parachains-constants/runtime-benchmarks", +] diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/primitives/src/lib.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/primitives/src/lib.rs index 28dfaf5ab5..969ace5955 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/primitives/src/lib.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/primitives/src/lib.rs @@ -19,6 +19,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + pub use bp_bridge_hub_cumulus::*; use bp_messages::*; use bp_runtime::{ diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/src/bridge_to_polkadot_config.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/src/bridge_to_polkadot_config.rs index 39bb87b1eb..da2ed9408d 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/src/bridge_to_polkadot_config.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/bridge_to_polkadot_config.rs @@ -38,7 +38,7 @@ use frame_system::{EnsureNever, EnsureRoot}; use kusama_runtime_constants as constants; use pallet_bridge_messages::LaneIdOf; use pallet_bridge_relayers::extension::{ - BridgeRelayersSignedExtension, WithMessagesExtensionConfig, + BridgeRelayersTransactionExtension, WithMessagesExtensionConfig, }; use pallet_xcm_bridge_hub::{BridgeId, XcmAsPlainPayload}; use parachains_common::xcm_config::{AllSiblingSystemParachains, RelayOrOtherSystemParachains}; @@ -157,7 +157,7 @@ pub type FromPolkadotMessageBlobDispatcher = BridgeBlobDispatcher< >; /// Signed extension that refunds relayers that are delivering messages from the Polkadot parachain. -pub type OnBridgeHubPolkadotRefundBridgeHubKusamaMessages = BridgeRelayersSignedExtension< +pub type OnBridgeHubPolkadotRefundBridgeHubKusamaMessages = BridgeRelayersTransactionExtension< Runtime, WithMessagesExtensionConfig< StrOnBridgeHubPolkadotRefundBridgeHubKusamaMessages, @@ -306,6 +306,7 @@ where bp_runtime::AccountIdOf>, >, { + use alloc::boxed::Box; use pallet_xcm_bridge_hub::{Bridge, BridgeId, BridgeState}; use sp_runtime::traits::Zero; use xcm::VersionedInteriorLocation; @@ -321,15 +322,13 @@ where pallet_xcm_bridge_hub::Bridges::::insert( bridge_id, Bridge { - bridge_origin_relative_location: sp_std::boxed::Box::new( - sibling_parachain.clone().into(), - ), - bridge_origin_universal_location: sp_std::boxed::Box::new( - VersionedInteriorLocation::from(universal_source.clone()), - ), - bridge_destination_universal_location: sp_std::boxed::Box::new( - VersionedInteriorLocation::from(universal_destination), - ), + bridge_origin_relative_location: Box::new(sibling_parachain.clone().into()), + bridge_origin_universal_location: Box::new(VersionedInteriorLocation::from( + universal_source.clone(), + )), + bridge_destination_universal_location: Box::new(VersionedInteriorLocation::from( + universal_destination, + )), state: BridgeState::Opened, bridge_owner_account: C::convert_location(&sibling_parachain).expect("valid AccountId"), deposit: Zero::zero(), @@ -417,26 +416,41 @@ mod tests { } } -/// Contains the migration for the AssetHubKusama<>AssetHubPolkadot bridge. +/// Contains the migrations for a P/K bridge. pub mod migration { use super::*; - use frame_support::traits::ConstBool; - parameter_types! { - pub AssetHubKusamaToAssetHubPolkadotMessagesLane: LegacyLaneId = LegacyLaneId([0, 0, 0, 1]); - pub AssetHubKusamaLocation: Location = Location::new(1, [Parachain(bp_asset_hub_kusama::ASSET_HUB_KUSAMA_PARACHAIN_ID)]); - pub AssetHubPolkadotUniversalLocation: InteriorLocation = [GlobalConsensus(PolkadotGlobalConsensusNetwork::get()), Parachain(bp_asset_hub_polkadot::ASSET_HUB_POLKADOT_PARACHAIN_ID)].into(); + /// Fix data from XCMv4 to XCMv5 because of buggy of XCM `try_as` implementation. + pub struct MigrateToXcm5(core::marker::PhantomData<(T, I)>); + + impl, I: 'static> frame_support::traits::OnRuntimeUpgrade + for MigrateToXcm5 + { + fn on_runtime_upgrade() -> Weight { + use sp_core::Get; + use xcm::IntoVersion; + let mut weight = T::DbWeight::get().reads(1); + + // `Migrate to latest XCM`. + let translate = + |mut pre: pallet_xcm_bridge_hub::BridgeOf| -> Option> { + weight.saturating_accrue(T::DbWeight::get().reads_writes(1, 1)); + + if let Ok(latest) = pre.bridge_origin_relative_location.clone().into_latest() { + pre.bridge_origin_relative_location = alloc::boxed::Box::new(latest); + } + if let Ok(latest) = pre.bridge_origin_universal_location.clone().into_latest() { + pre.bridge_origin_universal_location = alloc::boxed::Box::new(latest); + } + if let Ok(latest) = pre.bridge_destination_universal_location.clone().into_latest() { + pre.bridge_destination_universal_location = alloc::boxed::Box::new(latest); + } + + Some(pre) + }; + pallet_xcm_bridge_hub::Bridges::::translate_values(translate); + + weight + } } - - /// Ensure that the existing lanes for the AHR<>AHW bridge are correctly configured. - pub type StaticToDynamicLanes = pallet_xcm_bridge_hub::migration::OpenBridgeForLane< - Runtime, - XcmOverBridgeHubPolkadotInstance, - AssetHubKusamaToAssetHubPolkadotMessagesLane, - // the lanes are already created for AHP<>AHK, but we need to link them to the bridge - // structs - ConstBool, - AssetHubKusamaLocation, - AssetHubPolkadotUniversalLocation, - >; } diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/src/genesis_config_presets.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/src/genesis_config_presets.rs index 644c7baa43..073827912e 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/src/genesis_config_presets.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/genesis_config_presets.rs @@ -17,8 +17,8 @@ //! Genesis configs presets for the BridgeHubKusama runtime use crate::*; +use alloc::vec::Vec; use sp_genesis_builder::PresetId; -use sp_std::vec::Vec; use system_parachains_constants::genesis_presets::*; const BRIDGE_HUB_KUSAMA_ED: Balance = ExistentialDeposit::get(); @@ -74,11 +74,11 @@ pub fn preset_names() -> Vec { } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("development") => +pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => bridge_hub_kusama_genesis(invulnerables(), testnet_accounts(), 1002.into(), vec![]), - Ok("local_testnet") => bridge_hub_kusama_genesis( + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => bridge_hub_kusama_genesis( invulnerables(), testnet_accounts(), 1002.into(), diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/src/lib.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/src/lib.rs index 9b2779604c..ae9df06616 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/src/lib.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/lib.rs @@ -22,12 +22,15 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + pub mod bridge_to_polkadot_config; // Genesis preset configurations. pub mod genesis_config_presets; mod weights; pub mod xcm_config; +use alloc::{borrow::Cow, vec, vec::Vec}; use bridge_hub_common::message_queue::{ AggregateMessageOrigin, NarrowOriginToSibling, ParaIdToSibling, }; @@ -38,13 +41,12 @@ use cumulus_primitives_core::ParaId; use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, Get}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -106,8 +108,8 @@ pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( +/// The `TransactionExtension` to the basic transaction logic. +pub type TxExtension = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -133,7 +135,7 @@ bridge_runtime_common::generate_bridge_reject_obsolete_headers_and_messages! { /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; parameter_types! { pub EthereumInboundQueueName: &'static str = "EthereumInboundQueue"; @@ -149,6 +151,11 @@ parameter_types! { /// Migrations to apply on runtime upgrade. pub type Migrations = ( + // Unreleased + bridge_to_polkadot_config::migration::MigrateToXcm5< + Runtime, + bridge_to_polkadot_config::XcmOverBridgeHubPolkadotInstance, + >, // permanent pallet_xcm::migration::MigrateToLatestXcmVersion, ); @@ -171,14 +178,14 @@ impl_opaque_keys! { #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("bridge-hub-kusama"), - impl_name: create_runtime_str!("bridge-hub-kusama"), + spec_name: Cow::Borrowed("bridge-hub-kusama"), + impl_name: Cow::Borrowed("bridge-hub-kusama"), authoring_version: 1, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 5, - state_version: 1, + system_version: 1, }; /// The version information used to identify this runtime when compiled natively. @@ -252,6 +259,8 @@ impl frame_system::Config for Runtime { type BaseCallFilter = Everything; /// Weight information for the extrinsics of this pallet. type SystemWeightInfo = weights::frame_system::WeightInfo; + /// Weight information for the extensions from this pallet. + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; /// Block & extrinsics weights: base values and limits. type BlockWeights = RuntimeBlockWeights; /// The maximum length of a block (in bytes). @@ -300,6 +309,7 @@ impl pallet_balances::Config for Runtime { type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = (); type MaxFreezes = ConstU32<0>; + type DoneSlashHandler = (); } parameter_types! { @@ -315,6 +325,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } parameter_types! { @@ -335,6 +346,7 @@ 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 ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -374,8 +386,8 @@ impl pallet_message_queue::Config for Runtime { // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: type QueueChangeHandler = NarrowOriginToSibling; type QueuePausedQuery = NarrowOriginToSibling; - type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; - type MaxStale = sp_core::ConstU32<8>; + type HeapSize = ConstU32<{ 64 * 1024 }>; + type MaxStale = ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; type IdleMaxServiceWeight = MessageQueueIdleServiceWeight; } @@ -421,7 +433,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { // Most on-chain HRMP channels are configured to use 102400 bytes of max message size, so we // need to set the page size larger than that until we reduce the channel size on-chain. type MaxPageSize = ConstU32<{ 103 * 1024 }>; - type MaxInboundSuspended = sp_core::ConstU32<1_000>; + type MaxInboundSuspended = ConstU32<1_000>; type ControllerOrigin = RootOrFellows; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; @@ -562,20 +574,23 @@ use pallet_bridge_messages::LaneIdOf; #[cfg(feature = "runtime-benchmarks")] mod benches { use super::*; + use alloc::boxed::Box; frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [pallet_balances, Balances] [pallet_message_queue, MessageQueue] [pallet_multisig, Multisig] [pallet_session, SessionBench::] [pallet_utility, Utility] [pallet_timestamp, Timestamp] + [pallet_transaction_payment, TransactionPayment] [pallet_collator_selection, CollatorSelection] [cumulus_pallet_parachain_system, ParachainSystem] [cumulus_pallet_xcmp_queue, XcmpQueue] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] // NOTE: Make sure you point to the individual modules below. [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] @@ -588,7 +603,7 @@ mod benches { ); impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -944,8 +959,10 @@ mod benches { pub use cumulus_pallet_session_benchmarking::Pallet as SessionBench; pub use frame_benchmarking::{BenchmarkBatch, BenchmarkError, BenchmarkList, Benchmarking}; pub use frame_support::traits::{StorageInfoTrait, WhitelistedStorageKeys}; - pub use frame_system_benchmarking::Pallet as SystemBench; - pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; + pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; pub type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet; pub type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet; pub use pallet_bridge_relayers::benchmarking::Pallet as BridgeRelayersBench; @@ -1007,7 +1024,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -1275,7 +1292,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { + ) -> Result, alloc::string::String> { let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); let params = (&config, &whitelist); diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/frame_system_extensions.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..3fdcf734a5 --- /dev/null +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs index cb36b653a7..2a83d0fc78 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs @@ -29,6 +29,7 @@ pub mod cumulus_pallet_parachain_system; pub mod cumulus_pallet_xcmp_queue; pub mod extrinsic_weights; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_balances; pub mod pallet_bridge_grandpa; pub mod pallet_bridge_messages; @@ -39,6 +40,7 @@ pub mod pallet_message_queue; pub mod pallet_multisig; pub mod pallet_session; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_utility; pub mod pallet_xcm; pub mod paritydb_weights; diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/pallet_transaction_payment.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs index 64119a69b5..bad89e0214 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs @@ -18,11 +18,15 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; use codec::Encode; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; +use sp_runtime::BoundedVec; +use xcm::{ + latest::{prelude::*, AssetTransferFilter}, + DoubleEncoded, +}; trait WeighAssets { fn weigh_assets(&self, weight: Weight) -> Weight; @@ -43,8 +47,9 @@ impl WeighAssets for AssetFilter { WildFungibility::NonFungible => weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), + AllOfCounted { count, .. } => + weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), }, } } @@ -83,7 +88,7 @@ impl XcmWeightInfo for BridgeHubKusamaXcmWeight { } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -231,4 +236,46 @@ impl XcmWeightInfo for BridgeHubKusamaXcmWeight { fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmFungibleWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmFungibleWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 8f01e79ec1..aa1181d4c1 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -189,4 +189,23 @@ impl WeightInfo { .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 1e370cc36f..105e43e591 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -77,6 +77,20 @@ impl WeightInfo { Weight::from_parts(900_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `PolkadotXcm::Queries` (r:1 w:0) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -136,6 +150,13 @@ impl WeightInfo { Weight::from_parts(930_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/tests/tests.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/tests/tests.rs index 104ae27816..d3ac6c80ba 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/tests/tests.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/tests/tests.rs @@ -30,7 +30,7 @@ use bridge_hub_kusama_runtime::{ }, AllPalletsWithoutSystem, Block, BridgeRejectObsoleteHeadersAndMessages, Executive, ExistentialDeposit, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, - RuntimeOrigin, SessionKeys, SignedExtra, TransactionPayment, UncheckedExtrinsic, SLOT_DURATION, + RuntimeOrigin, SessionKeys, TransactionPayment, TxExtension, UncheckedExtrinsic, SLOT_DURATION, }; use bridge_hub_test_utils::{test_cases::from_parachain, SlotDurations}; use codec::{Decode, Encode}; @@ -82,7 +82,7 @@ fn construct_extrinsic( call: RuntimeCall, ) -> UncheckedExtrinsic { let account_id = AccountId32::from(sender.public()); - let extra: SignedExtra = ( + let extra: TxExtension = ( frame_system::CheckNonZeroSender::::new(), frame_system::CheckSpecVersion::::new(), frame_system::CheckTxVersion::::new(), diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/Cargo.toml b/system-parachains/bridge-hubs/bridge-hub-polkadot/Cargo.toml index 615649a5ce..2b0b7f03a4 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/Cargo.toml +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/Cargo.toml @@ -57,7 +57,6 @@ sp-io = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -210,7 +209,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", @@ -224,6 +222,10 @@ std = [ ] runtime-benchmarks = [ + "bp-asset-hub-kusama/runtime-benchmarks", + "bp-asset-hub-polkadot/runtime-benchmarks", + "bp-bridge-hub-kusama/runtime-benchmarks", + "bp-bridge-hub-polkadot/runtime-benchmarks", "bridge-hub-common/runtime-benchmarks", "bridge-runtime-common/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", @@ -245,6 +247,7 @@ runtime-benchmarks = [ "pallet-message-queue/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-xcm-benchmarks/runtime-benchmarks", "pallet-xcm-bridge-hub/runtime-benchmarks", diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/primitives/Cargo.toml b/system-parachains/bridge-hubs/bridge-hub-polkadot/primitives/Cargo.toml index c3e48b2dc2..00217a9658 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/primitives/Cargo.toml +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/primitives/Cargo.toml @@ -49,3 +49,11 @@ std = [ "system-parachains-constants/std", "xcm/std", ] +runtime-benchmarks = [ + "frame-support/runtime-benchmarks", + "kusama-runtime-constants/runtime-benchmarks", + "polkadot-runtime-constants/runtime-benchmarks", + "snowbridge-core/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "system-parachains-constants/runtime-benchmarks", +] diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/primitives/src/lib.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/primitives/src/lib.rs index a57333e334..3b3786760f 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/primitives/src/lib.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/primitives/src/lib.rs @@ -19,6 +19,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + pub use bp_bridge_hub_cumulus::*; use bp_messages::*; use bp_runtime::{ diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/bridge_to_kusama_config.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/bridge_to_kusama_config.rs index f004be1bb3..586890ea38 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/bridge_to_kusama_config.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/bridge_to_kusama_config.rs @@ -38,7 +38,7 @@ use frame_support::{ use frame_system::{EnsureNever, EnsureRoot}; use pallet_bridge_messages::LaneIdOf; use pallet_bridge_relayers::extension::{ - BridgeRelayersSignedExtension, WithMessagesExtensionConfig, + BridgeRelayersTransactionExtension, WithMessagesExtensionConfig, }; use pallet_xcm_bridge_hub::{BridgeId, XcmAsPlainPayload}; use parachains_common::xcm_config::{AllSiblingSystemParachains, RelayOrOtherSystemParachains}; @@ -158,7 +158,7 @@ pub type FromKusamaMessageBlobDispatcher = BridgeBlobDispatcher< >; /// Signed extension that refunds relayers that are delivering messages from the Kusama parachain. -pub type OnBridgeHubPolkadotRefundBridgeHubKusamaMessages = BridgeRelayersSignedExtension< +pub type OnBridgeHubPolkadotRefundBridgeHubKusamaMessages = BridgeRelayersTransactionExtension< Runtime, WithMessagesExtensionConfig< StrOnBridgeHubPolkadotRefundBridgeHubKusamaMessages, @@ -306,6 +306,7 @@ where bp_runtime::AccountIdOf>, >, { + use alloc::boxed::Box; use pallet_xcm_bridge_hub::{Bridge, BridgeId, BridgeState}; use sp_runtime::traits::Zero; use xcm::VersionedInteriorLocation; @@ -321,15 +322,13 @@ where pallet_xcm_bridge_hub::Bridges::::insert( bridge_id, Bridge { - bridge_origin_relative_location: sp_std::boxed::Box::new( - sibling_parachain.clone().into(), - ), - bridge_origin_universal_location: sp_std::boxed::Box::new( - VersionedInteriorLocation::from(universal_source.clone()), - ), - bridge_destination_universal_location: sp_std::boxed::Box::new( - VersionedInteriorLocation::from(universal_destination), - ), + bridge_origin_relative_location: Box::new(sibling_parachain.clone().into()), + bridge_origin_universal_location: Box::new(VersionedInteriorLocation::from( + universal_source.clone(), + )), + bridge_destination_universal_location: Box::new(VersionedInteriorLocation::from( + universal_destination, + )), state: BridgeState::Opened, bridge_owner_account: C::convert_location(&sibling_parachain).expect("valid AccountId"), deposit: Zero::zero(), @@ -417,26 +416,41 @@ mod tests { } } -/// Contains the migration for the AssetHubPolkadot<>AssetHubKusama bridge. +/// Contains the migrations for a P/K bridge. pub mod migration { use super::*; - use frame_support::traits::ConstBool; - parameter_types! { - pub AssetHubPolkadotToAssetHubKusamaMessagesLane: LegacyLaneId = LegacyLaneId([0, 0, 0, 1]); - pub AssetHubPolkadotLocation: Location = Location::new(1, [Parachain(bp_asset_hub_polkadot::ASSET_HUB_POLKADOT_PARACHAIN_ID)]); - pub AssetHubKusamaUniversalLocation: InteriorLocation = [GlobalConsensus(KusamaGlobalConsensusNetwork::get()), Parachain(bp_asset_hub_kusama::ASSET_HUB_KUSAMA_PARACHAIN_ID)].into(); + /// Fix data from XCMv4 to XCMv5 because of buggy of XCM `try_as` implementation. + pub struct MigrateToXcm5(core::marker::PhantomData<(T, I)>); + + impl, I: 'static> frame_support::traits::OnRuntimeUpgrade + for MigrateToXcm5 + { + fn on_runtime_upgrade() -> Weight { + use sp_core::Get; + use xcm::IntoVersion; + let mut weight = T::DbWeight::get().reads(1); + + // `Migrate to latest XCM`. + let translate = + |mut pre: pallet_xcm_bridge_hub::BridgeOf| -> Option> { + weight.saturating_accrue(T::DbWeight::get().reads_writes(1, 1)); + + if let Ok(latest) = pre.bridge_origin_relative_location.clone().into_latest() { + pre.bridge_origin_relative_location = alloc::boxed::Box::new(latest); + } + if let Ok(latest) = pre.bridge_origin_universal_location.clone().into_latest() { + pre.bridge_origin_universal_location = alloc::boxed::Box::new(latest); + } + if let Ok(latest) = pre.bridge_destination_universal_location.clone().into_latest() { + pre.bridge_destination_universal_location = alloc::boxed::Box::new(latest); + } + + Some(pre) + }; + pallet_xcm_bridge_hub::Bridges::::translate_values(translate); + + weight + } } - - /// Ensure that the existing lanes for the AHR<>AHW bridge are correctly configured. - pub type StaticToDynamicLanes = pallet_xcm_bridge_hub::migration::OpenBridgeForLane< - Runtime, - XcmOverBridgeHubKusamaInstance, - AssetHubPolkadotToAssetHubKusamaMessagesLane, - // the lanes are already created for AHP<>AHK, but we need to link them to the bridge - // structs - ConstBool, - AssetHubPolkadotLocation, - AssetHubKusamaUniversalLocation, - >; } diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/genesis_config_presets.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/genesis_config_presets.rs index d346ef2562..4029f29633 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/genesis_config_presets.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/genesis_config_presets.rs @@ -17,8 +17,8 @@ //! Genesis configs presets for the BridgeHubPolkadot runtime use crate::*; +use alloc::vec::Vec; use sp_genesis_builder::PresetId; -use sp_std::vec::Vec; use system_parachains_constants::genesis_presets::*; const BRIDGE_HUB_POLKADOT_ED: Balance = ExistentialDeposit::get(); @@ -75,15 +75,18 @@ fn bridge_hub_polkadot_genesis( /// Provides the names of the predefined genesis configs for this runtime. pub fn preset_names() -> Vec { - vec![PresetId::from("development"), PresetId::from("local_testnet")] + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("development") => +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => bridge_hub_polkadot_genesis(invulnerables(), testnet_accounts(), 1002.into(), vec![]), - Ok("local_testnet") => bridge_hub_polkadot_genesis( + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => bridge_hub_polkadot_genesis( invulnerables(), testnet_accounts(), 1002.into(), diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/lib.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/lib.rs index dc8ca39724..aeb9cf7748 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/lib.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/lib.rs @@ -22,6 +22,8 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + pub mod bridge_to_ethereum_config; pub mod bridge_to_kusama_config; // Genesis preset configurations. @@ -29,6 +31,7 @@ pub mod genesis_config_presets; mod weights; pub mod xcm_config; +use alloc::{borrow::Cow, vec, vec::Vec}; use bridge_hub_common::message_queue::{ AggregateMessageOrigin, NarrowOriginToSibling, ParaIdToSibling, }; @@ -43,13 +46,12 @@ use snowbridge_core::{ use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, Get}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -112,8 +114,8 @@ pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( +/// The `TransactionExtension` to the basic transaction logic. +pub type TxExtension = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -139,7 +141,7 @@ bridge_runtime_common::generate_bridge_reject_obsolete_headers_and_messages! { /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; parameter_types! { pub const BridgeKusamaMessagesPalletName: &'static str = "BridgeKusamaMessages"; @@ -148,6 +150,11 @@ parameter_types! { /// Migrations to apply on runtime upgrade. pub type Migrations = ( + // Unreleased + bridge_to_kusama_config::migration::MigrateToXcm5< + Runtime, + bridge_to_kusama_config::XcmOverBridgeHubKusamaInstance, + >, // permanent pallet_xcm::migration::MigrateToLatestXcmVersion, ); @@ -170,14 +177,14 @@ impl_opaque_keys! { #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("bridge-hub-polkadot"), - impl_name: create_runtime_str!("bridge-hub-polkadot"), + spec_name: Cow::Borrowed("bridge-hub-polkadot"), + impl_name: Cow::Borrowed("bridge-hub-polkadot"), authoring_version: 1, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 4, - state_version: 1, + system_version: 1, }; /// The version information used to identify this runtime when compiled natively. @@ -269,6 +276,8 @@ impl frame_system::Config for Runtime { type BaseCallFilter = BaseFilter; /// Weight information for the extrinsics of this pallet. type SystemWeightInfo = weights::frame_system::WeightInfo; + /// Weight information for the extensions from this pallet. + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; /// Block & extrinsics weights: base values and limits. type BlockWeights = RuntimeBlockWeights; /// The maximum length of a block (in bytes). @@ -317,6 +326,7 @@ impl pallet_balances::Config for Runtime { type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = (); type MaxFreezes = ConstU32<0>; + type DoneSlashHandler = (); } parameter_types! { @@ -332,6 +342,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } parameter_types! { @@ -352,6 +363,7 @@ 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 ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -398,8 +410,8 @@ impl pallet_message_queue::Config for Runtime { // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: type QueueChangeHandler = NarrowOriginToSibling; type QueuePausedQuery = NarrowOriginToSibling; - type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; - type MaxStale = sp_core::ConstU32<8>; + type HeapSize = ConstU32<{ 64 * 1024 }>; + type MaxStale = ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; type IdleMaxServiceWeight = MessageQueueIdleServiceWeight; } @@ -445,7 +457,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { // Most on-chain HRMP channels are configured to use 102400 bytes of max message size, so we // need to set the page size larger than that until we reduce the channel size on-chain. type MaxPageSize = ConstU32<{ 103 * 1024 }>; - type MaxInboundSuspended = sp_core::ConstU32<1_000>; + type MaxInboundSuspended = ConstU32<1_000>; type ControllerOrigin = RootOrFellows; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; @@ -593,20 +605,23 @@ use pallet_bridge_messages::LaneIdOf; #[cfg(feature = "runtime-benchmarks")] mod benches { use super::*; + use alloc::boxed::Box; frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [pallet_balances, Balances] [pallet_message_queue, MessageQueue] [pallet_multisig, Multisig] [pallet_session, SessionBench::] [pallet_utility, Utility] [pallet_timestamp, Timestamp] + [pallet_transaction_payment, TransactionPayment] [pallet_collator_selection, CollatorSelection] [cumulus_pallet_parachain_system, ParachainSystem] [cumulus_pallet_xcmp_queue, XcmpQueue] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] // NOTE: Make sure you point to the individual modules below. [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] @@ -624,7 +639,7 @@ mod benches { ); impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -978,8 +993,10 @@ mod benches { pub use cumulus_pallet_session_benchmarking::Pallet as SessionBench; pub use frame_benchmarking::{BenchmarkBatch, BenchmarkError, BenchmarkList, Benchmarking}; pub use frame_support::traits::StorageInfoTrait; - pub use frame_system_benchmarking::Pallet as SystemBench; - pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; + pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; pub type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet; pub type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet; pub use pallet_bridge_relayers::benchmarking::Pallet as BridgeRelayersBench; @@ -1042,7 +1059,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -1326,7 +1343,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { + ) -> Result, alloc::string::String> { let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); let params = (&config, &whitelist); diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system_extensions.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..3fdcf734a5 --- /dev/null +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs index f93d5f8bbc..00015758bf 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs @@ -29,6 +29,7 @@ pub mod cumulus_pallet_parachain_system; pub mod cumulus_pallet_xcmp_queue; pub mod extrinsic_weights; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_balances; pub mod pallet_bridge_grandpa; pub mod pallet_bridge_messages; @@ -39,6 +40,7 @@ pub mod pallet_message_queue; pub mod pallet_multisig; pub mod pallet_session; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_utility; pub mod pallet_xcm; pub mod paritydb_weights; diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_transaction_payment.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs index 0892a9ba45..e1f3c57e0b 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs @@ -18,11 +18,15 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; use codec::Encode; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; +use sp_runtime::BoundedVec; +use xcm::{ + latest::{prelude::*, AssetTransferFilter}, + DoubleEncoded, +}; trait WeighAssets { fn weigh_assets(&self, weight: Weight) -> Weight; @@ -43,8 +47,9 @@ impl WeighAssets for AssetFilter { WildFungibility::NonFungible => weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), + AllOfCounted { count, .. } => + weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), }, } } @@ -83,7 +88,7 @@ impl XcmWeightInfo for BridgeHubPolkadotXcmWeight { } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -231,4 +236,46 @@ impl XcmWeightInfo for BridgeHubPolkadotXcmWeight { fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmFungibleWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmFungibleWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 6f53764208..7327ddc18d 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -189,4 +189,23 @@ impl WeightInfo { .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 89bb9721fd..3309e533ad 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -77,6 +77,20 @@ impl WeightInfo { Weight::from_parts(1_460_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `PolkadotXcm::Queries` (r:1 w:0) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -136,6 +150,13 @@ impl WeightInfo { Weight::from_parts(1_500_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs index a2586d056a..d9e1623c70 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs @@ -21,6 +21,7 @@ use super::{ CollatorSelection, ParachainInfo, ParachainSystem, PolkadotXcm, PriceForParentDelivery, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, }; +use core::marker::PhantomData; use frame_support::{ parameter_types, traits::{tokens::imbalance::ResolveTo, ConstU32, Contains, Equals, Everything, Nothing}, @@ -36,7 +37,6 @@ use polkadot_parachain_primitives::primitives::Sibling; use polkadot_runtime_constants::system_parachain; use snowbridge_runtime_common::XcmExportFeeToSibling; use sp_runtime::traits::AccountIdConversion; -use sp_std::marker::PhantomData; use system_parachains_constants::TREASURY_PALLET_ID; use xcm::latest::prelude::*; use xcm_builder::{ diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/snowbridge.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/snowbridge.rs index a0c0835b56..48aed957da 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/snowbridge.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/snowbridge.rs @@ -22,7 +22,7 @@ use bridge_hub_polkadot_runtime::{ bridge_to_kusama_config::OnBridgeHubPolkadotRefundBridgeHubKusamaMessages, xcm_config::{XcmConfig, XcmFeeManagerFromComponentsBridgeHub}, AllPalletsWithoutSystem, BridgeRejectObsoleteHeadersAndMessages, Executive, - MessageQueueServiceWeight, Runtime, RuntimeCall, RuntimeEvent, SessionKeys, SignedExtra, + MessageQueueServiceWeight, Runtime, RuntimeCall, RuntimeEvent, SessionKeys, TxExtension, UncheckedExtrinsic, }; use codec::{Decode, Encode}; @@ -387,7 +387,7 @@ fn construct_extrinsic( call: RuntimeCall, ) -> UncheckedExtrinsic { let account_id = AccountId32::from(sender.public()); - let extra: SignedExtra = ( + let extra: TxExtension = ( frame_system::CheckNonZeroSender::::new(), frame_system::CheckSpecVersion::::new(), frame_system::CheckTxVersion::::new(), diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/tests.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/tests.rs index 1a8ca4a7e2..576a2fc5c1 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/tests.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/tests.rs @@ -31,7 +31,7 @@ use bridge_hub_polkadot_runtime::{ }, AllPalletsWithoutSystem, Block, BridgeRejectObsoleteHeadersAndMessages, Executive, ExistentialDeposit, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, - RuntimeOrigin, SessionKeys, SignedExtra, TransactionPayment, UncheckedExtrinsic, SLOT_DURATION, + RuntimeOrigin, SessionKeys, TransactionPayment, TxExtension, UncheckedExtrinsic, SLOT_DURATION, }; use bridge_hub_test_utils::{test_cases::from_parachain, SlotDurations}; use codec::{Decode, Encode}; @@ -83,7 +83,7 @@ fn construct_extrinsic( call: RuntimeCall, ) -> UncheckedExtrinsic { let account_id = AccountId32::from(sender.public()); - let extra: SignedExtra = ( + let extra: TxExtension = ( frame_system::CheckNonZeroSender::::new(), frame_system::CheckSpecVersion::::new(), frame_system::CheckTxVersion::::new(), diff --git a/system-parachains/collectives/collectives-polkadot/Cargo.toml b/system-parachains/collectives/collectives-polkadot/Cargo.toml index 9ecc69471e..80378a08a2 100644 --- a/system-parachains/collectives/collectives-polkadot/Cargo.toml +++ b/system-parachains/collectives/collectives-polkadot/Cargo.toml @@ -55,7 +55,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -121,6 +120,7 @@ runtime-benchmarks = [ "pallet-salary/runtime-benchmarks", "pallet-scheduler/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-treasury/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-xcm-benchmarks/runtime-benchmarks", @@ -232,7 +232,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/system-parachains/collectives/collectives-polkadot/src/ambassador/mod.rs b/system-parachains/collectives/collectives-polkadot/src/ambassador/mod.rs index 8e12812ccd..5248f79162 100644 --- a/system-parachains/collectives/collectives-polkadot/src/ambassador/mod.rs +++ b/system-parachains/collectives/collectives-polkadot/src/ambassador/mod.rs @@ -354,6 +354,7 @@ impl pallet_treasury::Config for Runtime { sp_core::ConstU8<1>, ConstU32<1000>, >; + type BlockNumberProvider = System; } #[cfg(all(test, not(feature = "runtime-benchmarks")))] diff --git a/system-parachains/collectives/collectives-polkadot/src/fellowship/mod.rs b/system-parachains/collectives/collectives-polkadot/src/fellowship/mod.rs index b1354bd647..a0b9a5b316 100644 --- a/system-parachains/collectives/collectives-polkadot/src/fellowship/mod.rs +++ b/system-parachains/collectives/collectives-polkadot/src/fellowship/mod.rs @@ -331,6 +331,7 @@ impl pallet_treasury::Config for Runtime { sp_core::ConstU8<1>, ConstU32<1000>, >; + type BlockNumberProvider = crate::System; } #[cfg(test)] diff --git a/system-parachains/collectives/collectives-polkadot/src/genesis_config_presets.rs b/system-parachains/collectives/collectives-polkadot/src/genesis_config_presets.rs index 7d1b59ebd0..af60f6c218 100644 --- a/system-parachains/collectives/collectives-polkadot/src/genesis_config_presets.rs +++ b/system-parachains/collectives/collectives-polkadot/src/genesis_config_presets.rs @@ -18,7 +18,6 @@ use crate::*; use sp_genesis_builder::PresetId; -use sp_std::vec::Vec; use system_parachains_constants::genesis_presets::*; const COLLECTIVES_POLKADOT_ED: Balance = ExistentialDeposit::get(); @@ -76,14 +75,19 @@ fn collectives_polkadot_development_genesis(para_id: ParaId) -> serde_json::Valu /// Provides the names of the predefined genesis configs for this runtime. pub fn preset_names() -> Vec { - vec![PresetId::from("development"), PresetId::from("local_testnet")] + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("development") => collectives_polkadot_development_genesis(1001.into()), - Ok("local_testnet") => collectives_polkadot_local_testnet_genesis(1001.into()), +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => + collectives_polkadot_development_genesis(1001.into()), + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => + collectives_polkadot_local_testnet_genesis(1001.into()), _ => return None, }; Some( diff --git a/system-parachains/collectives/collectives-polkadot/src/impls.rs b/system-parachains/collectives/collectives-polkadot/src/impls.rs index 57df1ae2ff..9425bb64ec 100644 --- a/system-parachains/collectives/collectives-polkadot/src/impls.rs +++ b/system-parachains/collectives/collectives-polkadot/src/impls.rs @@ -14,6 +14,7 @@ // limitations under the License. use super::*; +use core::{cmp::Ordering, marker::PhantomData}; use frame_support::{ dispatch::DispatchResultWithPostInfo, traits::{Currency, Get, Imbalance, OnUnbalanced, OriginTrait, PrivilegeCmp}, @@ -21,7 +22,6 @@ use frame_support::{ use pallet_alliance::{ProposalIndex, ProposalProvider}; use parachains_common::impls::NegativeImbalance; use sp_runtime::DispatchError; -use sp_std::{cmp::Ordering, marker::PhantomData, prelude::*}; use xcm_executor::traits::ConvertLocation; type AccountIdOf = ::AccountId; diff --git a/system-parachains/collectives/collectives-polkadot/src/lib.rs b/system-parachains/collectives/collectives-polkadot/src/lib.rs index 5ba8a81af3..bab865a0b4 100644 --- a/system-parachains/collectives/collectives-polkadot/src/lib.rs +++ b/system-parachains/collectives/collectives-polkadot/src/lib.rs @@ -36,6 +36,8 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + pub mod ambassador; // Genesis preset configurations. pub mod genesis_config_presets; @@ -46,6 +48,7 @@ pub mod xcm_config; pub mod fellowship; pub use ambassador::pallet_ambassador_origins; +use alloc::{borrow::Cow, boxed::Box, vec, vec::Vec}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use fellowship::{pallet_fellowship_origins, Fellows}; @@ -56,13 +59,12 @@ use polkadot_runtime_common::impls::{ use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, Perbill, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -122,14 +124,14 @@ impl_opaque_keys! { #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("collectives"), - impl_name: create_runtime_str!("collectives"), + spec_name: Cow::Borrowed("collectives"), + impl_name: Cow::Borrowed("collectives"), authoring_version: 1, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 7, - state_version: 0, + system_version: 0, }; /// The version information used to identify this runtime when compiled natively. @@ -191,6 +193,7 @@ impl frame_system::Config for Runtime { type OnKilledAccount = (); type AccountData = pallet_balances::AccountData; type SystemWeightInfo = weights::frame_system::WeightInfo; + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; type SS58Prefix = ConstU16<0>; type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type MaxConsumers = frame_support::traits::ConstU32<16>; @@ -234,6 +237,7 @@ impl pallet_balances::Config for Runtime { type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = (); type MaxFreezes = ConstU32<0>; + type DoneSlashHandler = (); } parameter_types! { @@ -249,6 +253,7 @@ impl pallet_transaction_payment::Config for Runtime { type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; type OperationalFeeMultiplier = ConstU8<5>; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } parameter_types! { @@ -408,6 +413,7 @@ 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 ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -568,6 +574,9 @@ impl pallet_collective::Config for Runtime { type SetMembersOrigin = EnsureRoot; type WeightInfo = weights::pallet_collective::WeightInfo; type MaxProposalWeight = MaxProposalWeight; + type DisapproveOrigin = EnsureRoot; + type KillOrigin = EnsureRoot; + type Consideration = (); } pub const MAX_FELLOWS: u32 = ALLIANCE_MAX_MEMBERS; @@ -755,8 +764,9 @@ pub type Block = generic::Block; pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( + +/// The `TransactionExtension` to the basic transaction logic. +pub type TxExtension = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -769,7 +779,7 @@ pub type SignedExtra = ( ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; /// All migrations executed on runtime upgrade as a nested tuple of types implementing /// `OnRuntimeUpgrade`. Included migrations must be idempotent. @@ -794,6 +804,7 @@ mod benches { frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [pallet_balances, Balances] [pallet_message_queue, MessageQueue] [pallet_multisig, Multisig] @@ -812,6 +823,7 @@ mod benches { [pallet_ranked_collective, FellowshipCollective] [pallet_core_fellowship, FellowshipCore] [pallet_salary, FellowshipSalary] + [pallet_transaction_payment, TransactionPayment] [pallet_treasury, FellowshipTreasury] [pallet_asset_rate, AssetRate] [pallet_referenda, AmbassadorReferenda] @@ -820,7 +832,7 @@ mod benches { [pallet_salary, AmbassadorSalary] [pallet_treasury, AmbassadorTreasury] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] ); @@ -828,7 +840,7 @@ mod benches { use frame_benchmarking::BenchmarkError; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -865,8 +877,7 @@ mod benches { fn teleportable_asset_and_dest() -> Option<(Asset, Location)> { // Relay/native token can be teleported between Collectives and Relay. Some(( - Asset { fun: Fungible(ExistentialDeposit::get()), id: AssetId(Parent.into()) } - .into(), + Asset { fun: Fungible(ExistentialDeposit::get()), id: AssetId(Parent.into()) }, Parent.into(), )) } @@ -980,15 +991,20 @@ mod benches { } fn alias_origin() -> Result<(Location, Location), BenchmarkError> { - Err(BenchmarkError::Skip) + Ok(( + Location::new(1, [Parachain(1000)]), + Location::new(1, [Parachain(1000), AccountId32 { id: [111u8; 32], network: None }]), + )) } } pub use cumulus_pallet_session_benchmarking::Pallet as SessionBench; pub use frame_benchmarking::{BenchmarkList, Benchmarking}; pub use frame_support::traits::{StorageInfoTrait, WhitelistedStorageKeys}; - pub use frame_system_benchmarking::Pallet as SystemBench; - pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; + pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; pub use sp_storage::TrackedStorageKey; // This is defined once again in dispatch_benchmark, because list_benchmarks! @@ -1044,7 +1060,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -1257,7 +1273,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { + ) -> Result, alloc::string::String> { let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); let params = (&config, &whitelist); diff --git a/system-parachains/collectives/collectives-polkadot/src/weights/frame_system_extensions.rs b/system-parachains/collectives/collectives-polkadot/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..3fdcf734a5 --- /dev/null +++ b/system-parachains/collectives/collectives-polkadot/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/system-parachains/collectives/collectives-polkadot/src/weights/mod.rs b/system-parachains/collectives/collectives-polkadot/src/weights/mod.rs index 4ea2d6cddb..541b817475 100644 --- a/system-parachains/collectives/collectives-polkadot/src/weights/mod.rs +++ b/system-parachains/collectives/collectives-polkadot/src/weights/mod.rs @@ -19,6 +19,7 @@ pub mod cumulus_pallet_parachain_system; pub mod cumulus_pallet_xcmp_queue; pub mod extrinsic_weights; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_alliance; pub mod pallet_asset_rate; pub mod pallet_balances; @@ -39,6 +40,7 @@ pub mod pallet_salary_fellowship_salary; pub mod pallet_scheduler; pub mod pallet_session; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_treasury_ambassador_treasury; pub mod pallet_treasury_fellowship_treasury; pub mod pallet_utility; diff --git a/system-parachains/collectives/collectives-polkadot/src/weights/pallet_collective.rs b/system-parachains/collectives/collectives-polkadot/src/weights/pallet_collective.rs index fa2408e3c2..1d93fbde5c 100644 --- a/system-parachains/collectives/collectives-polkadot/src/weights/pallet_collective.rs +++ b/system-parachains/collectives/collectives-polkadot/src/weights/pallet_collective.rs @@ -295,4 +295,42 @@ impl pallet_collective::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) } + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:0 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[1, 100]`. + fn kill(d: u32, p: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `226 + p * (32 ±0)` + // Estimated: `1711 + p * (32 ±0)` + // Minimum execution time: 18_920_000 picoseconds. + Weight::from_parts(20_452_656, 0) + .saturating_add(Weight::from_parts(0, 1711)) + // Standard Error: 603 + .saturating_add(Weight::from_parts(156_269, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) + } + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:0 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[1, 100]`. + fn release_proposal_cost() -> Weight { + // Proof Size summary in bytes: + // Measured: `226 + p * (32 ±0)` + // Estimated: `1711 + p * (32 ±0)` + // Minimum execution time: 18_920_000 picoseconds. + Weight::from_parts(20_452_656, 0) + .saturating_add(Weight::from_parts(0, 1711)) + // Standard Error: 603 + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/system-parachains/collectives/collectives-polkadot/src/weights/pallet_transaction_payment.rs b/system-parachains/collectives/collectives-polkadot/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/system-parachains/collectives/collectives-polkadot/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/system-parachains/collectives/collectives-polkadot/src/weights/xcm/mod.rs b/system-parachains/collectives/collectives-polkadot/src/weights/xcm/mod.rs index 36260632f8..1267dc563e 100644 --- a/system-parachains/collectives/collectives-polkadot/src/weights/xcm/mod.rs +++ b/system-parachains/collectives/collectives-polkadot/src/weights/xcm/mod.rs @@ -18,11 +18,14 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; -use frame_support::weights::Weight; +use alloc::vec::Vec; +use frame_support::{weights::Weight, BoundedVec}; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; +use xcm::{ + latest::{prelude::*, AssetTransferFilter}, + DoubleEncoded, +}; trait WeighAssets { fn weigh_assets(&self, weight: Weight) -> Weight; @@ -44,8 +47,9 @@ impl WeighAssets for AssetFilter { WildFungibility::NonFungible => weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), + AllOfCounted { count, .. } => + weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), }, } } @@ -84,7 +88,7 @@ impl XcmWeightInfo for CollectivesWestendXcmWeight { } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -231,4 +235,46 @@ impl XcmWeightInfo for CollectivesWestendXcmWeight { fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmFungibleWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmFungibleWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } diff --git a/system-parachains/collectives/collectives-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/system-parachains/collectives/collectives-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 85eba7cd8e..f4ea055d17 100644 --- a/system-parachains/collectives/collectives-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/system-parachains/collectives/collectives-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -187,4 +187,23 @@ impl WeightInfo { .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/system-parachains/collectives/collectives-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/system-parachains/collectives/collectives-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index aa0736dd80..d2cbbf0637 100644 --- a/system-parachains/collectives/collectives-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/system-parachains/collectives/collectives-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -77,6 +77,20 @@ impl WeightInfo { Weight::from_parts(970_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `PolkadotXcm::Queries` (r:1 w:0) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -136,6 +150,13 @@ impl WeightInfo { Weight::from_parts(1_000_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs b/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs index b9e6f996a1..6c92192225 100644 --- a/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs +++ b/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs @@ -37,9 +37,10 @@ use sp_runtime::traits::AccountIdConversion; use system_parachains_constants::TREASURY_PALLET_ID; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, - DenyThenTry, DescribeAllTerminal, DescribeFamily, DescribeTerminus, EnsureXcmOrigin, + AccountId32Aliases, AliasChildLocation, AliasOriginRootUsingFilter, + AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, + DescribeAllTerminal, DescribeFamily, DescribeTerminus, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsConcrete, LocatableAssetId, OriginToPluralityVoice, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, @@ -53,6 +54,7 @@ parameter_types! { pub const RootLocation: Location = Location::here(); pub const DotLocation: Location = Location::parent(); pub const RelayNetwork: Option = Some(NetworkId::Polkadot); + pub AssetHubLocation: Location = Location::new(1, [Parachain(polkadot_runtime_constants::system_parachain::ASSET_HUB_ID)]); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub UniversalLocation: InteriorLocation = [GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())].into(); @@ -197,6 +199,10 @@ pub type WaivedLocations = ( /// - DOT with the parent Relay Chain and sibling parachains. pub type TrustedTeleporters = ConcreteAssetFromSystem; +/// We allow locations to alias into their own child locations, as well as +/// AssetHub to alias into anything. +pub type Aliasers = (AliasChildLocation, AliasOriginRootUsingFilter); + pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; @@ -238,7 +244,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; - type Aliasers = Nothing; + type Aliasers = Aliasers; type TransactionalProcessor = FrameTransactionalProcessor; type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); diff --git a/system-parachains/collectives/collectives-polkadot/tests/asset_rate.rs b/system-parachains/collectives/collectives-polkadot/tests/asset_rate.rs index 05d0b7dae4..1716ccac81 100644 --- a/system-parachains/collectives/collectives-polkadot/tests/asset_rate.rs +++ b/system-parachains/collectives/collectives-polkadot/tests/asset_rate.rs @@ -24,14 +24,22 @@ use xcm::prelude::*; #[test] fn native_asset_rate_works() { sp_io::TestExternalities::default().execute_with(|| { - // success: native asset on Asset Hub as xcm v4 location - let native = VersionedLocatableAsset::V4 { + // success: native asset on Asset Hub as xcm v5 location + let native = VersionedLocatableAsset::V5 { location: Location::new(1, [Parachain(1000)]), asset_id: Location::parent().into(), }; let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); + // success: native asset on Asset Hub as xcm v4 location + let native = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(1000)]), + asset_id: xcm::v4::Location::parent().into(), + }; + let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); + assert_eq!(actual, 100); + // success: native asset on Asset Hub as xcm v3 location let native = VersionedLocatableAsset::V3 { location: xcm::v3::Location::new( @@ -43,14 +51,22 @@ fn native_asset_rate_works() { let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); - // success: native asset on People as xcm v4 location - let native = VersionedLocatableAsset::V4 { + // success: native asset on People as xcm v5 location + let native = VersionedLocatableAsset::V5 { location: Location::new(1, [Parachain(1004)]), asset_id: Location::parent().into(), }; let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); + // success: native asset on People as xcm v4 location + let native = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(1004)]), + asset_id: xcm::v4::Location::parent().into(), + }; + let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); + assert_eq!(actual, 100); + // success: native asset on People as xcm v3 location let native = VersionedLocatableAsset::V3 { location: xcm::v3::Location::new( @@ -62,13 +78,20 @@ fn native_asset_rate_works() { let actual = AssetRateWithNative::from_asset_balance(100, native).unwrap(); assert_eq!(actual, 100); - // failure: native asset on non system chain as xcm v4 location - let native_non_system = VersionedLocatableAsset::V4 { + // failure: native asset on non system chain as xcm v5 location + let native_non_system = VersionedLocatableAsset::V5 { location: Location::new(1, [Parachain(2000)]), asset_id: Location::parent().into(), }; assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); + // failure: native asset on non system chain as xcm v4 location + let native_non_system = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(2000)]), + asset_id: xcm::v4::Location::parent().into(), + }; + assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); + // failure: native asset on non system chain as xcm v3 location let native_non_system = VersionedLocatableAsset::V3 { location: xcm::v3::Location::new( @@ -79,18 +102,36 @@ fn native_asset_rate_works() { }; assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); - // failure: some asset on Asset Hub as xcm v4 location - let non_native = VersionedLocatableAsset::V4 { + // failure: some asset on Asset Hub as xcm v5 location + let non_native = VersionedLocatableAsset::V5 { location: Location::new(1, [Parachain(2000)]), asset_id: Location::new(0, [PalletInstance(50), GeneralIndex(1984)]).into(), }; assert!(AssetRateWithNative::from_asset_balance(100, non_native).is_err()); + // failure: some asset on Asset Hub as xcm v4 location + let non_native = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(2000)]), + asset_id: xcm::v4::Location::new( + 0, + [xcm::v4::Junction::PalletInstance(50), xcm::v4::Junction::GeneralIndex(1984)], + ) + .into(), + }; + assert!(AssetRateWithNative::from_asset_balance(100, non_native).is_err()); + // failure: native asset with invalid system chain location as xcm v4 location - let native_non_system = VersionedLocatableAsset::V4 { + let native_non_system = VersionedLocatableAsset::V5 { location: Location::new(0, [Parachain(1000)]), asset_id: Location::parent().into(), }; assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); + + // failure: native asset with invalid system chain location as xcm v4 location + let native_non_system = VersionedLocatableAsset::V4 { + location: xcm::v4::Location::new(0, [xcm::v4::Junction::Parachain(1000)]), + asset_id: xcm::v4::Location::parent().into(), + }; + assert!(AssetRateWithNative::from_asset_balance(100, native_non_system).is_err()); }); } diff --git a/system-parachains/constants/Cargo.toml b/system-parachains/constants/Cargo.toml index 050a1a9553..888a406015 100644 --- a/system-parachains/constants/Cargo.toml +++ b/system-parachains/constants/Cargo.toml @@ -18,7 +18,6 @@ polkadot-primitives = { workspace = true } polkadot-runtime-constants = { workspace = true } sp-core = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } xcm = { workspace = true } [features] @@ -32,7 +31,6 @@ std = [ "polkadot-runtime-constants/std", "sp-core/std", "sp-runtime/std", - "sp-std/std", "xcm/std", ] runtime-benchmarks = [ diff --git a/system-parachains/constants/src/genesis_presets.rs b/system-parachains/constants/src/genesis_presets.rs index abb1f8b955..4d93558604 100644 --- a/system-parachains/constants/src/genesis_presets.rs +++ b/system-parachains/constants/src/genesis_presets.rs @@ -15,13 +15,13 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +#[cfg(not(feature = "std"))] +use alloc::format; +use alloc::vec::Vec; use parachains_common::AuraId; use polkadot_primitives::{AccountId, AccountPublic}; use sp_core::{sr25519, Pair, Public}; use sp_runtime::traits::IdentifyAccount; -#[cfg(not(feature = "std"))] -use sp_std::alloc::format; -use sp_std::vec::Vec; /// Invulnerable Collators pub fn invulnerables() -> Vec<(parachains_common::AccountId, AuraId)> { diff --git a/system-parachains/constants/src/lib.rs b/system-parachains/constants/src/lib.rs index e6e2012c35..b059cb574f 100644 --- a/system-parachains/constants/src/lib.rs +++ b/system-parachains/constants/src/lib.rs @@ -16,6 +16,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + pub mod genesis_presets; pub mod kusama; pub mod polkadot; diff --git a/system-parachains/coretime/coretime-kusama/Cargo.toml b/system-parachains/coretime/coretime-kusama/Cargo.toml index 80198bc89e..7cb9fb6da7 100644 --- a/system-parachains/coretime/coretime-kusama/Cargo.toml +++ b/system-parachains/coretime/coretime-kusama/Cargo.toml @@ -50,7 +50,6 @@ sp-genesis-builder = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -139,7 +138,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", @@ -169,6 +167,7 @@ runtime-benchmarks = [ "pallet-multisig/runtime-benchmarks", "pallet-proxy/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-xcm-benchmarks/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", diff --git a/system-parachains/coretime/coretime-kusama/src/coretime.rs b/system-parachains/coretime/coretime-kusama/src/coretime.rs index 9cd7faf8be..1ad1bfff12 100644 --- a/system-parachains/coretime/coretime-kusama/src/coretime.rs +++ b/system-parachains/coretime/coretime-kusama/src/coretime.rs @@ -154,7 +154,7 @@ impl CoretimeInterface for CoretimeAllocator { }, Instruction::Transact { origin_kind: OriginKind::Native, - require_weight_at_most: call_weight, + fallback_max_weight: Some(call_weight), call: request_core_count_call.encode().into(), }, ]); @@ -191,7 +191,7 @@ impl CoretimeInterface for CoretimeAllocator { }, Instruction::Transact { origin_kind: OriginKind::Native, - require_weight_at_most: call_weight, + fallback_max_weight: Some(call_weight), call: request_revenue_info_at_call.encode().into(), }, ]); @@ -273,7 +273,7 @@ impl CoretimeInterface for CoretimeAllocator { }, Instruction::Transact { origin_kind: OriginKind::Native, - require_weight_at_most: call_weight, + fallback_max_weight: Some(call_weight), call: assign_core_call.encode().into(), }, ]); diff --git a/system-parachains/coretime/coretime-kusama/src/genesis_config_presets.rs b/system-parachains/coretime/coretime-kusama/src/genesis_config_presets.rs index 2f70d24a07..c43d660d4f 100644 --- a/system-parachains/coretime/coretime-kusama/src/genesis_config_presets.rs +++ b/system-parachains/coretime/coretime-kusama/src/genesis_config_presets.rs @@ -17,10 +17,10 @@ //! Genesis configs presets for the CoretimeKusama runtime use crate::*; +use alloc::vec::Vec; use hex_literal::hex; use sp_core::crypto::UncheckedInto; use sp_genesis_builder::PresetId; -use sp_std::vec::Vec; use system_parachains_constants::genesis_presets::*; const CORETIME_KUSAMA_ED: Balance = ExistentialDeposit::get(); @@ -135,15 +135,19 @@ fn coretime_kusama_live_genesis(para_id: ParaId) -> serde_json::Value { /// Provides the names of the predefined genesis configs for this runtime. pub fn preset_names() -> Vec { - vec![PresetId::from("development"), PresetId::from("local_testnet")] + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("live") => coretime_kusama_live_genesis(1005.into()), - Ok("development") => coretime_kusama_development_genesis(1005.into()), - Ok("local_testnet") => coretime_kusama_local_testnet_genesis(1005.into()), +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + "live" => coretime_kusama_live_genesis(1005.into()), + sp_genesis_builder::DEV_RUNTIME_PRESET => coretime_kusama_development_genesis(1005.into()), + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => + coretime_kusama_local_testnet_genesis(1005.into()), _ => return None, }; Some( diff --git a/system-parachains/coretime/coretime-kusama/src/lib.rs b/system-parachains/coretime/coretime-kusama/src/lib.rs index 132332ab70..9aac4c3b8d 100644 --- a/system-parachains/coretime/coretime-kusama/src/lib.rs +++ b/system-parachains/coretime/coretime-kusama/src/lib.rs @@ -22,6 +22,8 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + mod coretime; // Genesis preset configurations. pub mod genesis_config_presets; @@ -30,6 +32,7 @@ mod tests; mod weights; pub mod xcm_config; +use alloc::{borrow::Cow, vec, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; @@ -60,12 +63,11 @@ use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{BlakeTwo256, Block as BlockT}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, MultiAddress, Perbill, RuntimeDebug, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -96,8 +98,8 @@ pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( +/// The `TransactionExtension` to the basic transaction logic. +pub type TxExtensions = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -111,7 +113,7 @@ pub type SignedExtra = ( /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; /// Migrations to apply on runtime upgrade. pub type Migrations = ( @@ -137,14 +139,14 @@ impl_opaque_keys! { #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("coretime-kusama"), - impl_name: create_runtime_str!("coretime-kusama"), + spec_name: Cow::Borrowed("coretime-kusama"), + impl_name: Cow::Borrowed("coretime-kusama"), authoring_version: 1, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, - state_version: 1, + system_version: 1, }; /// The version information used to identify this runtime when compiled natively. @@ -210,6 +212,7 @@ impl frame_system::Config for Runtime { type DbWeight = RocksDbWeight; /// Weight information for the extrinsics of this pallet. type SystemWeightInfo = weights::frame_system::WeightInfo; + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; /// Block & extrinsics weights: base values and limits. type BlockWeights = RuntimeBlockWeights; /// The maximum length of a block (in bytes). @@ -256,6 +259,7 @@ impl pallet_balances::Config for Runtime { type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = (); type MaxFreezes = ConstU32<0>; + type DoneSlashHandler = (); } parameter_types! { @@ -271,6 +275,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } parameter_types! { @@ -291,6 +296,7 @@ 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 ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -636,6 +642,7 @@ mod benches { frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [cumulus_pallet_parachain_system, ParachainSystem] [pallet_timestamp, Timestamp] [pallet_balances, Balances] @@ -647,6 +654,7 @@ mod benches { [pallet_message_queue, MessageQueue] [pallet_multisig, Multisig] [pallet_proxy, Proxy] + [pallet_transaction_payment, TransactionPayment] [pallet_utility, Utility] // NOTE: Make sure you point to the individual modules below. [pallet_xcm_benchmarks::fungible, XcmBalances] @@ -654,7 +662,7 @@ mod benches { ); impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -836,14 +844,19 @@ mod benches { } fn alias_origin() -> Result<(Location, Location), BenchmarkError> { - Err(BenchmarkError::Skip) + Ok(( + Location::new(1, [Parachain(1000)]), + Location::new(1, [Parachain(1000), AccountId32 { id: [111u8; 32], network: None }]), + )) } } pub use cumulus_pallet_session_benchmarking::Pallet as SessionBench; pub use frame_benchmarking::{BenchmarkBatch, BenchmarkError, BenchmarkList, Benchmarking}; pub use frame_support::traits::StorageInfoTrait; - pub use frame_system_benchmarking::Pallet as SystemBench; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; pub type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet; pub type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet; @@ -897,7 +910,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -1096,7 +1109,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { + ) -> Result, alloc::string::String> { let whitelist: Vec = vec![ // Block Number hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), diff --git a/system-parachains/coretime/coretime-kusama/src/weights/frame_system_extensions.rs b/system-parachains/coretime/coretime-kusama/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..3fdcf734a5 --- /dev/null +++ b/system-parachains/coretime/coretime-kusama/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/system-parachains/coretime/coretime-kusama/src/weights/mod.rs b/system-parachains/coretime/coretime-kusama/src/weights/mod.rs index d17b06676b..15b1a398ec 100644 --- a/system-parachains/coretime/coretime-kusama/src/weights/mod.rs +++ b/system-parachains/coretime/coretime-kusama/src/weights/mod.rs @@ -21,6 +21,7 @@ pub mod cumulus_pallet_parachain_system; pub mod cumulus_pallet_xcmp_queue; pub mod extrinsic_weights; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_balances; pub mod pallet_broker; pub mod pallet_collator_selection; @@ -29,6 +30,7 @@ pub mod pallet_multisig; pub mod pallet_proxy; pub mod pallet_session; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_utility; pub mod pallet_xcm; pub mod paritydb_weights; diff --git a/system-parachains/coretime/coretime-kusama/src/weights/pallet_transaction_payment.rs b/system-parachains/coretime/coretime-kusama/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/system-parachains/coretime/coretime-kusama/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/system-parachains/coretime/coretime-kusama/src/weights/xcm/mod.rs b/system-parachains/coretime/coretime-kusama/src/weights/xcm/mod.rs index b12d688d38..35d3f519fc 100644 --- a/system-parachains/coretime/coretime-kusama/src/weights/xcm/mod.rs +++ b/system-parachains/coretime/coretime-kusama/src/weights/xcm/mod.rs @@ -18,10 +18,14 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; +use frame_support::BoundedVec; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; +use xcm::{ + latest::{prelude::*, AssetTransferFilter}, + DoubleEncoded, +}; trait WeighAssets { fn weigh_assets(&self, weight: Weight) -> Weight; @@ -42,8 +46,9 @@ impl WeighAssets for AssetFilter { WildFungibility::NonFungible => weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), + AllOfCounted { count, .. } => + weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), }, } } @@ -82,7 +87,7 @@ impl XcmWeightInfo for CoretimeKusamaXcmWeight { } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -228,4 +233,46 @@ impl XcmWeightInfo for CoretimeKusamaXcmWeight { fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmFungibleWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmFungibleWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } diff --git a/system-parachains/coretime/coretime-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/system-parachains/coretime/coretime-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 45cfc226ed..0d8e63ed4b 100644 --- a/system-parachains/coretime/coretime-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/system-parachains/coretime/coretime-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -205,4 +205,23 @@ impl WeightInfo { .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/system-parachains/coretime/coretime-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/system-parachains/coretime/coretime-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 2c4062919b..4c67d3e1f3 100644 --- a/system-parachains/coretime/coretime-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/system-parachains/coretime/coretime-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -81,6 +81,20 @@ impl WeightInfo { Weight::from_parts(900_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `PolkadotXcm::Queries` (r:1 w:0) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -140,6 +154,13 @@ impl WeightInfo { Weight::from_parts(960_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/system-parachains/coretime/coretime-kusama/src/xcm_config.rs b/system-parachains/coretime/coretime-kusama/src/xcm_config.rs index d0d58ce6ed..85f4e22794 100644 --- a/system-parachains/coretime/coretime-kusama/src/xcm_config.rs +++ b/system-parachains/coretime/coretime-kusama/src/xcm_config.rs @@ -35,9 +35,10 @@ use sp_runtime::traits::AccountIdConversion; use system_parachains_constants::TREASURY_PALLET_ID; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, - DenyThenTry, DescribeAllTerminal, DescribeFamily, DescribeTerminus, EnsureXcmOrigin, + AccountId32Aliases, AliasChildLocation, AliasOriginRootUsingFilter, + AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, + DescribeAllTerminal, DescribeFamily, DescribeTerminus, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsConcrete, NonFungibleAdapter, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, @@ -55,6 +56,7 @@ parameter_types! { (GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())).into(); pub BrokerPalletLocation: Location = PalletInstance(::index() as u8).into(); + pub AssetHubLocation: Location = Location::new(1, [Parachain(kusama_runtime_constants::system_parachain::ASSET_HUB_ID)]); pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; pub const GovernanceLocation: Location = Location::parent(); @@ -185,6 +187,10 @@ pub type WaivedLocations = ( Equals, ); +/// We allow locations to alias into their own child locations, as well as +/// AssetHub to alias into anything. +pub type Aliasers = (AliasChildLocation, AliasOriginRootUsingFilter); + pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; @@ -227,7 +233,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; - type Aliasers = Nothing; + type Aliasers = Aliasers; type TransactionalProcessor = FrameTransactionalProcessor; type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); diff --git a/system-parachains/coretime/coretime-polkadot/Cargo.toml b/system-parachains/coretime/coretime-polkadot/Cargo.toml index ed605b911e..628e9c32dc 100644 --- a/system-parachains/coretime/coretime-polkadot/Cargo.toml +++ b/system-parachains/coretime/coretime-polkadot/Cargo.toml @@ -51,7 +51,6 @@ sp-genesis-builder = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -141,7 +140,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", @@ -170,6 +168,7 @@ runtime-benchmarks = [ "pallet-multisig/runtime-benchmarks", "pallet-proxy/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-xcm-benchmarks/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", diff --git a/system-parachains/coretime/coretime-polkadot/src/coretime.rs b/system-parachains/coretime/coretime-polkadot/src/coretime.rs index 97bf8ffcd7..51dae0765a 100644 --- a/system-parachains/coretime/coretime-polkadot/src/coretime.rs +++ b/system-parachains/coretime/coretime-polkadot/src/coretime.rs @@ -155,7 +155,7 @@ impl CoretimeInterface for CoretimeAllocator { }, Instruction::Transact { origin_kind: OriginKind::Native, - require_weight_at_most: call_weight, + fallback_max_weight: Some(call_weight), call: request_core_count_call.encode().into(), }, ]); @@ -187,13 +187,10 @@ impl CoretimeInterface for CoretimeAllocator { Weight::from_parts(1000 * WEIGHT_REF_TIME_PER_MICROS, 9 * WEIGHT_PROOF_SIZE_PER_KB); let message = Xcm(vec![ - Instruction::UnpaidExecution { - weight_limit: WeightLimit::Unlimited, - check_origin: None, - }, - Instruction::Transact { + UnpaidExecution { weight_limit: WeightLimit::Unlimited, check_origin: None }, + Transact { origin_kind: OriginKind::Native, - require_weight_at_most: call_weight, + fallback_max_weight: Some(call_weight), call: request_revenue_info_at_call.encode().into(), }, ]); @@ -270,13 +267,10 @@ impl CoretimeInterface for CoretimeAllocator { RelayRuntimePallets::Coretime(AssignCore(core, begin, assignment, end_hint)); let message = Xcm(vec![ - Instruction::UnpaidExecution { - weight_limit: WeightLimit::Unlimited, - check_origin: None, - }, - Instruction::Transact { + UnpaidExecution { weight_limit: WeightLimit::Unlimited, check_origin: None }, + Transact { origin_kind: OriginKind::Native, - require_weight_at_most: call_weight, + fallback_max_weight: Some(call_weight), call: assign_core_call.encode().into(), }, ]); diff --git a/system-parachains/coretime/coretime-polkadot/src/genesis_config_presets.rs b/system-parachains/coretime/coretime-polkadot/src/genesis_config_presets.rs index d63c826e61..cac5dd40a9 100644 --- a/system-parachains/coretime/coretime-polkadot/src/genesis_config_presets.rs +++ b/system-parachains/coretime/coretime-polkadot/src/genesis_config_presets.rs @@ -17,10 +17,10 @@ //! Genesis configs presets for the Polkadot Coretime runtime use crate::*; +use alloc::vec::Vec; use hex_literal::hex; use sp_core::crypto::UncheckedInto; use sp_genesis_builder::PresetId; -use sp_std::vec::Vec; use system_parachains_constants::genesis_presets::*; const CORETIME_POLKADOT_ED: Balance = ExistentialDeposit::get(); @@ -135,15 +135,21 @@ fn coretime_polkadot_live_genesis(para_id: ParaId) -> serde_json::Value { } pub fn preset_names() -> Vec { - vec![PresetId::from("live"), PresetId::from("development"), PresetId::from("local_testnet")] + vec![ + PresetId::from("live"), + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("live") => coretime_polkadot_live_genesis(1005.into()), - Ok("development") => coretime_polkadot_development_genesis(1005.into()), - Ok("local_testnet") => coretime_polkadot_local_testnet_genesis(1005.into()), +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + "live" => coretime_polkadot_live_genesis(1005.into()), + sp_genesis_builder::DEV_RUNTIME_PRESET => + coretime_polkadot_development_genesis(1005.into()), + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => + coretime_polkadot_local_testnet_genesis(1005.into()), _ => return None, }; Some( diff --git a/system-parachains/coretime/coretime-polkadot/src/lib.rs b/system-parachains/coretime/coretime-polkadot/src/lib.rs index d23ee55760..a5162ee94b 100644 --- a/system-parachains/coretime/coretime-polkadot/src/lib.rs +++ b/system-parachains/coretime/coretime-polkadot/src/lib.rs @@ -22,6 +22,8 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + mod coretime; // Genesis preset configurations. pub mod genesis_config_presets; @@ -30,6 +32,7 @@ mod tests; mod weights; pub mod xcm_config; +use alloc::{borrow::Cow, vec, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; @@ -60,12 +63,11 @@ use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{BlakeTwo256, Block as BlockT}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, MultiAddress, Perbill, RuntimeDebug, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -96,8 +98,8 @@ pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( +/// The TransactionExtension to the basic transaction logic. +pub type TxExtension = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -111,7 +113,7 @@ pub type SignedExtra = ( /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; /// Migrations to apply on runtime upgrade. pub type Migrations = ( @@ -137,14 +139,14 @@ impl_opaque_keys! { #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("coretime-polkadot"), - impl_name: create_runtime_str!("coretime-polkadot"), + spec_name: Cow::Borrowed("coretime-polkadot"), + impl_name: Cow::Borrowed("coretime-polkadot"), authoring_version: 1, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 0, - state_version: 1, + system_version: 1, }; /// The version information used to identify this runtime when compiled natively. @@ -215,6 +217,8 @@ impl frame_system::Config for Runtime { type DbWeight = RocksDbWeight; /// Weight information for the extrinsics of this pallet. type SystemWeightInfo = weights::frame_system::WeightInfo; + /// Weight information for the extensions in this pallet. + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; /// Block & extrinsics weights: base values and limits. type BlockWeights = RuntimeBlockWeights; /// The maximum length of a block (in bytes). @@ -261,6 +265,7 @@ impl pallet_balances::Config for Runtime { type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = (); type MaxFreezes = ConstU32<0>; + type DoneSlashHandler = (); } parameter_types! { @@ -276,6 +281,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } parameter_types! { @@ -296,6 +302,7 @@ 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 ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -327,8 +334,8 @@ impl pallet_message_queue::Config for Runtime { // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: type QueueChangeHandler = NarrowOriginToSibling; type QueuePausedQuery = NarrowOriginToSibling; - type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; - type MaxStale = sp_core::ConstU32<8>; + type HeapSize = ConstU32<{ 64 * 1024 }>; + type MaxStale = ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; type IdleMaxServiceWeight = MessageQueueIdleServiceWeight; } @@ -639,6 +646,7 @@ mod benches { frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [cumulus_pallet_parachain_system, ParachainSystem] [pallet_timestamp, Timestamp] [pallet_balances, Balances] @@ -650,6 +658,7 @@ mod benches { [pallet_message_queue, MessageQueue] [pallet_multisig, Multisig] [pallet_proxy, Proxy] + [pallet_transaction_payment, TransactionPayment] [pallet_utility, Utility] // NOTE: Make sure you point to the individual modules below. [pallet_xcm_benchmarks::fungible, XcmBalances] @@ -657,7 +666,7 @@ mod benches { ); impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -838,14 +847,19 @@ mod benches { } fn alias_origin() -> Result<(Location, Location), BenchmarkError> { - Err(BenchmarkError::Skip) + Ok(( + Location::new(1, [Parachain(1000)]), + Location::new(1, [Parachain(1000), AccountId32 { id: [111u8; 32], network: None }]), + )) } } pub use cumulus_pallet_session_benchmarking::Pallet as SessionBench; pub use frame_benchmarking::{BenchmarkBatch, BenchmarkError, BenchmarkList, Benchmarking}; pub use frame_support::traits::{StorageInfoTrait, WhitelistedStorageKeys}; - pub use frame_system_benchmarking::Pallet as SystemBench; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; pub use pallet_broker::CoreMask; pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; pub use sp_storage::TrackedStorageKey; @@ -899,7 +913,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -1086,7 +1100,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { + ) -> Result, alloc::string::String> { let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); let params = (&config, &whitelist); diff --git a/system-parachains/coretime/coretime-polkadot/src/weights/frame_system_extensions.rs b/system-parachains/coretime/coretime-polkadot/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..3fdcf734a5 --- /dev/null +++ b/system-parachains/coretime/coretime-polkadot/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/system-parachains/coretime/coretime-polkadot/src/weights/mod.rs b/system-parachains/coretime/coretime-polkadot/src/weights/mod.rs index d17b06676b..15b1a398ec 100644 --- a/system-parachains/coretime/coretime-polkadot/src/weights/mod.rs +++ b/system-parachains/coretime/coretime-polkadot/src/weights/mod.rs @@ -21,6 +21,7 @@ pub mod cumulus_pallet_parachain_system; pub mod cumulus_pallet_xcmp_queue; pub mod extrinsic_weights; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_balances; pub mod pallet_broker; pub mod pallet_collator_selection; @@ -29,6 +30,7 @@ pub mod pallet_multisig; pub mod pallet_proxy; pub mod pallet_session; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_utility; pub mod pallet_xcm; pub mod paritydb_weights; diff --git a/system-parachains/coretime/coretime-polkadot/src/weights/pallet_transaction_payment.rs b/system-parachains/coretime/coretime-polkadot/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/system-parachains/coretime/coretime-polkadot/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/system-parachains/coretime/coretime-polkadot/src/weights/xcm/mod.rs b/system-parachains/coretime/coretime-polkadot/src/weights/xcm/mod.rs index 52fa913eed..77816f8bbc 100644 --- a/system-parachains/coretime/coretime-polkadot/src/weights/xcm/mod.rs +++ b/system-parachains/coretime/coretime-polkadot/src/weights/xcm/mod.rs @@ -18,10 +18,14 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; +use frame_support::BoundedVec; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; +use xcm::{ + latest::{prelude::*, AssetTransferFilter}, + DoubleEncoded, +}; trait WeighAssets { fn weigh_assets(&self, weight: Weight) -> Weight; @@ -42,8 +46,9 @@ impl WeighAssets for AssetFilter { WildFungibility::NonFungible => weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), + AllOfCounted { count, .. } => + weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), }, } } @@ -82,7 +87,7 @@ impl XcmWeightInfo for CoretimePolkadotXcmWeight { } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -228,4 +233,46 @@ impl XcmWeightInfo for CoretimePolkadotXcmWeight { fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmFungibleWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmFungibleWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } diff --git a/system-parachains/coretime/coretime-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/system-parachains/coretime/coretime-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 695b2c4c39..c8addaf8f5 100644 --- a/system-parachains/coretime/coretime-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/system-parachains/coretime/coretime-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -189,4 +189,23 @@ impl WeightInfo { .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/system-parachains/coretime/coretime-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/system-parachains/coretime/coretime-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index d0de362d35..f2a8968e6c 100644 --- a/system-parachains/coretime/coretime-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/system-parachains/coretime/coretime-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -77,6 +77,20 @@ impl WeightInfo { Weight::from_parts(1_000_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `PolkadotXcm::Queries` (r:1 w:0) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -136,6 +150,13 @@ impl WeightInfo { Weight::from_parts(1_040_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/system-parachains/coretime/coretime-polkadot/src/xcm_config.rs b/system-parachains/coretime/coretime-polkadot/src/xcm_config.rs index d0e4f6f001..072aac728c 100644 --- a/system-parachains/coretime/coretime-polkadot/src/xcm_config.rs +++ b/system-parachains/coretime/coretime-polkadot/src/xcm_config.rs @@ -36,9 +36,10 @@ use sp_runtime::traits::AccountIdConversion; use system_parachains_constants::TREASURY_PALLET_ID; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, - DenyThenTry, DescribeAllTerminal, DescribeFamily, DescribeTerminus, EnsureXcmOrigin, + AccountId32Aliases, AliasChildLocation, AliasOriginRootUsingFilter, + AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, + DescribeAllTerminal, DescribeFamily, DescribeTerminus, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsConcrete, NonFungibleAdapter, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, @@ -50,12 +51,13 @@ use xcm_executor::{traits::ConvertLocation, XcmExecutor}; parameter_types! { pub const DotRelayLocation: Location = Location::parent(); - pub const RelayNetwork: Option = Some(NetworkId::Polkadot); + pub const RelayNetwork: Option = Some(Polkadot); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub UniversalLocation: InteriorLocation = (GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())).into(); pub BrokerPalletLocation: Location = PalletInstance(::index() as u8).into(); + pub AssetHubLocation: Location = Location::new(1, [Parachain(polkadot_runtime_constants::system_parachain::ASSET_HUB_ID)]); pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; pub const GovernanceLocation: Location = Location::parent(); @@ -208,6 +210,10 @@ pub type WaivedLocations = ( FellowsPlurality, ); +/// We allow locations to alias into their own child locations, as well as +/// AssetHub to alias into anything. +pub type Aliasers = (AliasChildLocation, AliasOriginRootUsingFilter); + pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; @@ -250,7 +256,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; - type Aliasers = Nothing; + type Aliasers = Aliasers; type TransactionalProcessor = FrameTransactionalProcessor; type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); diff --git a/system-parachains/encointer/Cargo.toml b/system-parachains/encointer/Cargo.toml index 7ff94568cc..6915d12ef1 100644 --- a/system-parachains/encointer/Cargo.toml +++ b/system-parachains/encointer/Cargo.toml @@ -77,7 +77,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -86,6 +85,7 @@ pallet-xcm = { workspace = true } pallet-xcm-benchmarks = { optional = true, workspace = true } polkadot-parachain-primitives = { workspace = true } polkadot-runtime-common = { workspace = true } +kusama-runtime-constants = { workspace = true } xcm = { workspace = true } xcm-builder = { workspace = true } xcm-executor = { workspace = true } @@ -110,9 +110,6 @@ system-parachains-constants = { workspace = true } [build-dependencies] substrate-wasm-builder = { optional = true, workspace = true } -[dev-dependencies] -kusama-runtime-constants = { workspace = true, default-features = true } - [features] default = ["std"] runtime-benchmarks = [ @@ -146,6 +143,7 @@ runtime-benchmarks = [ "pallet-proxy/runtime-benchmarks", "pallet-scheduler/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-xcm-benchmarks/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", @@ -181,6 +179,7 @@ std = [ "frame-system-rpc-runtime-api/std", "frame-system/std", "frame-try-runtime?/std", + "kusama-runtime-constants/std", "log/std", "pallet-asset-tx-payment/std", "pallet-aura/std", @@ -230,7 +229,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-transaction-pool/std", "sp-version/std", "substrate-wasm-builder", diff --git a/system-parachains/encointer/src/genesis_config_presets.rs b/system-parachains/encointer/src/genesis_config_presets.rs index cda23b6565..6e5d126a6f 100644 --- a/system-parachains/encointer/src/genesis_config_presets.rs +++ b/system-parachains/encointer/src/genesis_config_presets.rs @@ -18,9 +18,11 @@ use crate::*; use sp_genesis_builder::PresetId; -use sp_std::vec::Vec; use system_parachains_constants::genesis_presets::*; +#[cfg(not(feature = "std"))] +use alloc::vec::Vec; + const ENCOINTER_KUSAMA_ED: Balance = ExistentialDeposit::get(); fn encointer_kusama_genesis( @@ -104,16 +106,12 @@ fn encointer_kusama_development_genesis(para_id: ParaId) -> serde_json::Value { encointer_kusama_local_testnet_genesis(para_id) } -/// Provides the names of the predefined genesis configs for this runtime. -pub fn preset_names() -> Vec { - vec![PresetId::from("development"), PresetId::from("local_testnet")] -} - /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("development") => encointer_kusama_development_genesis(1001.into()), - Ok("local_testnet") => encointer_kusama_local_testnet_genesis(1001.into()), +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => encointer_kusama_development_genesis(1001.into()), + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => + encointer_kusama_local_testnet_genesis(1001.into()), _ => return None, }; Some( @@ -122,3 +120,11 @@ pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option Vec { + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] +} diff --git a/system-parachains/encointer/src/lib.rs b/system-parachains/encointer/src/lib.rs index 0c706ede3d..095e2c31af 100644 --- a/system-parachains/encointer/src/lib.rs +++ b/system-parachains/encointer/src/lib.rs @@ -31,11 +31,14 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + // Genesis preset configurations. pub mod genesis_config_presets; mod weights; pub mod xcm_config; +use alloc::{borrow::Cow, vec, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; use core::marker::PhantomData; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; @@ -91,12 +94,12 @@ use sp_core::{crypto::KeyTypeId, ConstU32, OpaqueMetadata}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, Verify}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, Perbill, RuntimeDebug, }; -use sp_std::prelude::*; + #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -128,14 +131,14 @@ impl_opaque_keys! { /// This runtime version. #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("encointer-parachain"), - impl_name: create_runtime_str!("encointer-parachain"), + spec_name: Cow::Borrowed("encointer-parachain"), + impl_name: Cow::Borrowed("encointer-parachain"), authoring_version: 1, spec_version: 1_004_003, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 4, - state_version: 0, + system_version: 0, }; /// The version information used to identify this runtime when compiled natively. @@ -280,6 +283,7 @@ impl frame_system::Config for Runtime { type OnKilledAccount = (); type AccountData = pallet_balances::AccountData; type SystemWeightInfo = weights::frame_system::WeightInfo; + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; type SS58Prefix = SS58Prefix; type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type MaxConsumers = frame_support::traits::ConstU32<16>; @@ -320,6 +324,7 @@ impl pallet_balances::Config for Runtime { type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = (); type MaxFreezes = ConstU32<0>; + type DoneSlashHandler = (); } parameter_types! { @@ -336,6 +341,7 @@ impl pallet_transaction_payment::Config for Runtime { type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; type OperationalFeeMultiplier = OperationalFeeMultiplier; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } impl pallet_utility::Config for Runtime { @@ -382,6 +388,7 @@ 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 ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -598,6 +605,9 @@ impl pallet_collective::Config for Runtime { type WeightInfo = weights::pallet_collective::WeightInfo; type SetMembersOrigin = MoreThanHalfCouncil; type MaxProposalWeight = MaxProposalWeight; + type DisapproveOrigin = MoreThanHalfCouncil; + type KillOrigin = MoreThanHalfCouncil; + type Consideration = (); } // support for collective pallet @@ -650,6 +660,27 @@ where } } +#[cfg(feature = "runtime-benchmarks")] +pub struct AssetTxBenchmarkHelper; + +#[cfg(feature = "runtime-benchmarks")] +impl + pallet_asset_tx_payment::BenchmarkHelperTrait< + AccountId, + CommunityIdentifier, + CommunityIdentifier, + > for AssetTxBenchmarkHelper +{ + fn create_asset_id_parameter(_id: u32) -> (CommunityIdentifier, CommunityIdentifier) { + Default::default() + } + fn setup_balances_and_pool(asset_id: CommunityIdentifier, account: AccountId) { + use frame_support::traits::fungible::Mutate; + Balances::set_balance(&account, encointer_balances_tx_payment::ONE_KSM); + EncointerBalances::issue(asset_id, &account, BalanceType::from_num(100u32)).unwrap(); + } +} + // Allow fee payment in community currency impl pallet_asset_tx_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; @@ -658,6 +689,9 @@ impl pallet_asset_tx_payment::Config for Runtime { encointer_balances_tx_payment::BalanceToCommunityBalance, AssetsToBlockAuthor, >; + type WeightInfo = weights::pallet_asset_tx_payment::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = AssetTxBenchmarkHelper; } impl pallet_authorship::Config for Runtime { @@ -794,7 +828,7 @@ pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; /// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( +pub type TxExtension = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -807,9 +841,9 @@ pub type SignedExtra = ( ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; /// Extrinsic type that has already been checked. -pub type CheckedExtrinsic = generic::CheckedExtrinsic; +pub type CheckedExtrinsic = generic::CheckedExtrinsic; /// Migrations to apply on runtime upgrade. pub type Migrations = ( @@ -833,6 +867,8 @@ mod benches { frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] + [pallet_asset_tx_payment, AssetTxPayment] [pallet_balances, Balances] [pallet_collective, Collective] [pallet_message_queue, MessageQueue] @@ -840,6 +876,7 @@ mod benches { [pallet_session, SessionBench::] [pallet_collator_selection, CollatorSelection] [pallet_timestamp, Timestamp] + [pallet_transaction_payment, TransactionPayment] [pallet_utility, Utility] [pallet_proxy, Proxy] [pallet_encointer_balances, EncointerBalances] @@ -854,14 +891,14 @@ mod benches { [cumulus_pallet_parachain_system, ParachainSystem] [cumulus_pallet_xcmp_queue, XcmpQueue] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] ); impl cumulus_pallet_session_benchmarking::Config for Runtime {} impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -1000,15 +1037,20 @@ mod benches { } fn alias_origin() -> Result<(Location, Location), BenchmarkError> { - Err(BenchmarkError::Skip) + Ok(( + Location::new(1, [Parachain(1000)]), + Location::new(1, [Parachain(1000), AccountId32 { id: [111u8; 32], network: None }]), + )) } } pub use cumulus_pallet_session_benchmarking::Pallet as SessionBench; pub use frame_benchmarking::{BenchmarkBatch, BenchmarkError, BenchmarkList, Benchmarking}; pub use frame_support::traits::StorageInfoTrait; - pub use frame_system_benchmarking::Pallet as SystemBench; - pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; + pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; pub type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet; pub use frame_support::traits::{TrackedStorageKey, WhitelistedStorageKeys}; pub type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet; @@ -1059,7 +1101,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -1307,7 +1349,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { + ) -> Result, alloc::string::String> { let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); let params = (&config, &whitelist); diff --git a/system-parachains/encointer/src/weights/frame_system_extensions.rs b/system-parachains/encointer/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..3fdcf734a5 --- /dev/null +++ b/system-parachains/encointer/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/system-parachains/encointer/src/weights/mod.rs b/system-parachains/encointer/src/weights/mod.rs index 4f5d9d1d91..e990c3864a 100644 --- a/system-parachains/encointer/src/weights/mod.rs +++ b/system-parachains/encointer/src/weights/mod.rs @@ -24,6 +24,8 @@ pub mod cumulus_pallet_parachain_system; pub mod cumulus_pallet_xcmp_queue; pub mod extrinsic_weights; pub mod frame_system; +pub mod frame_system_extensions; +pub mod pallet_asset_tx_payment; pub mod pallet_balances; pub mod pallet_collator_selection; pub mod pallet_collective; @@ -41,6 +43,7 @@ pub mod pallet_message_queue; pub mod pallet_proxy; pub mod pallet_session; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_utility; pub mod pallet_xcm; pub mod paritydb_weights; diff --git a/system-parachains/encointer/src/weights/pallet_asset_tx_payment.rs b/system-parachains/encointer/src/weights/pallet_asset_tx_payment.rs new file mode 100644 index 0000000000..163b6f93be --- /dev/null +++ b/system-parachains/encointer/src/weights/pallet_asset_tx_payment.rs @@ -0,0 +1,95 @@ +// This file is part of Substrate. + +// 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. + +//! Autogenerated weights for `pallet_asset_tx_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` + +// Executed Command: +// ./target/production/substrate-node +// benchmark +// pallet +// --chain=dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_asset_tx_payment +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --output=./substrate/frame/transaction-payment/asset-tx-payment/src/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use core::marker::PhantomData; + +/// Weights for `pallet_asset_tx_payment` using the Substrate node and recommended hardware. +pub struct WeightInfo(PhantomData); +impl pallet_asset_tx_payment::WeightInfo for WeightInfo { + fn charge_asset_tx_payment_zero() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 542_000 picoseconds. + Weight::from_parts(597_000, 0) + } + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_asset_tx_payment_native() -> Weight { + // Proof Size summary in bytes: + // Measured: `248` + // Estimated: `1733` + // Minimum execution time: 33_162_000 picoseconds. + Weight::from_parts(34_716_000, 1733) + .saturating_add(T::DbWeight::get().reads(3_u64)) + } + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, 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:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_asset_tx_payment_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `747` + // Estimated: `3675` + // Minimum execution time: 44_230_000 picoseconds. + Weight::from_parts(45_297_000, 3675) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } +} \ No newline at end of file diff --git a/system-parachains/encointer/src/weights/pallet_collective.rs b/system-parachains/encointer/src/weights/pallet_collective.rs index a02f6320f1..1d93fbde5c 100644 --- a/system-parachains/encointer/src/weights/pallet_collective.rs +++ b/system-parachains/encointer/src/weights/pallet_collective.rs @@ -20,20 +20,20 @@ //! DATE: 2025-01-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `ggwpez-ref-hw`, CPU: `AMD EPYC 7232P 8-Core Processor` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("./encointer-kusama-chain-spec.json")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("./collectives-polkadot-chain-spec.json")`, DB CACHE: 1024 // Executed Command: // ./target/production/polkadot-parachain // benchmark // pallet -// --chain=./encointer-kusama-chain-spec.json +// --chain=./collectives-polkadot-chain-spec.json // --steps=50 // --repeat=20 // --pallet=pallet_collective // --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 -// --output=./encointer-kusama-weights/ +// --output=./collectives-polkadot-weights/ // --header=./file_header.txt #![cfg_attr(rustfmt, rustfmt_skip)] @@ -47,28 +47,28 @@ use core::marker::PhantomData; /// Weight functions for `pallet_collective`. pub struct WeightInfo(PhantomData); impl pallet_collective::WeightInfo for WeightInfo { - /// Storage: `Collective::Members` (r:1 w:1) - /// Proof: `Collective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Proposals` (r:1 w:0) - /// Proof: `Collective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Voting` (r:100 w:100) - /// Proof: `Collective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Prime` (r:0 w:1) - /// Proof: `Collective::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:1) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:0) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:100 w:100) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:0 w:1) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `m` is `[0, 100]`. /// The range of component `n` is `[0, 100]`. /// The range of component `p` is `[0, 100]`. fn set_members(m: u32, _n: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3190 ±0)` - // Estimated: `15762 + m * (1967 ±23) + p * (4332 ±23)` - // Minimum execution time: 21_070_000 picoseconds. - Weight::from_parts(21_290_000, 0) - .saturating_add(Weight::from_parts(0, 15762)) - // Standard Error: 79_601 - .saturating_add(Weight::from_parts(5_960_886, 0).saturating_mul(m.into())) - // Standard Error: 79_601 - .saturating_add(Weight::from_parts(10_953_057, 0).saturating_mul(p.into())) + // Estimated: `15728 + m * (1967 ±23) + p * (4332 ±23)` + // Minimum execution time: 21_820_000 picoseconds. + Weight::from_parts(21_900_000, 0) + .saturating_add(Weight::from_parts(0, 15728)) + // Standard Error: 93_008 + .saturating_add(Weight::from_parts(7_004_235, 0).saturating_mul(m.into())) + // Standard Error: 93_008 + .saturating_add(Weight::from_parts(11_965_429, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -76,227 +76,261 @@ impl pallet_collective::WeightInfo for WeightInfo { .saturating_add(Weight::from_parts(0, 1967).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 4332).saturating_mul(p.into())) } - /// Storage: `Collective::Members` (r:1 w:0) - /// Proof: `Collective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[1, 100]`. fn execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `103 + m * (32 ±0)` - // Estimated: `1589 + m * (32 ±0)` - // Minimum execution time: 17_660_000 picoseconds. - Weight::from_parts(16_711_274, 0) - .saturating_add(Weight::from_parts(0, 1589)) - // Standard Error: 15 - .saturating_add(Weight::from_parts(1_513, 0).saturating_mul(b.into())) - // Standard Error: 164 - .saturating_add(Weight::from_parts(14_369, 0).saturating_mul(m.into())) + // Measured: `69 + m * (32 ±0)` + // Estimated: `1555 + m * (32 ±0)` + // Minimum execution time: 19_350_000 picoseconds. + Weight::from_parts(18_561_099, 0) + .saturating_add(Weight::from_parts(0, 1555)) + // Standard Error: 17 + .saturating_add(Weight::from_parts(1_508, 0).saturating_mul(b.into())) + // Standard Error: 181 + .saturating_add(Weight::from_parts(11_946, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } - /// Storage: `Collective::Members` (r:1 w:0) - /// Proof: `Collective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::ProposalOf` (r:1 w:0) - /// Proof: `Collective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:0) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[1, 100]`. fn propose_execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `103 + m * (32 ±0)` - // Estimated: `3569 + m * (32 ±0)` - // Minimum execution time: 21_750_000 picoseconds. - Weight::from_parts(20_918_679, 0) - .saturating_add(Weight::from_parts(0, 3569)) + // Measured: `69 + m * (32 ±0)` + // Estimated: `3535 + m * (32 ±0)` + // Minimum execution time: 23_740_000 picoseconds. + Weight::from_parts(22_730_846, 0) + .saturating_add(Weight::from_parts(0, 3535)) // Standard Error: 19 - .saturating_add(Weight::from_parts(1_638, 0).saturating_mul(b.into())) - // Standard Error: 198 - .saturating_add(Weight::from_parts(21_057, 0).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(1_623, 0).saturating_mul(b.into())) + // Standard Error: 203 + .saturating_add(Weight::from_parts(20_060, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } - /// Storage: `Collective::Members` (r:1 w:0) - /// Proof: `Collective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::ProposalOf` (r:1 w:1) - /// Proof: `Collective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Proposals` (r:1 w:1) - /// Proof: `Collective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::ProposalCount` (r:1 w:1) - /// Proof: `Collective::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Voting` (r:0 w:1) - /// Proof: `Collective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalCount` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:0 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[2, 100]`. /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `393 + m * (32 ±0) + p * (36 ±0)` - // Estimated: `3785 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 27_960_000 picoseconds. - Weight::from_parts(29_986_172, 0) - .saturating_add(Weight::from_parts(0, 3785)) - // Standard Error: 93 - .saturating_add(Weight::from_parts(2_541, 0).saturating_mul(b.into())) - // Standard Error: 973 - .saturating_add(Weight::from_parts(20_635, 0).saturating_mul(m.into())) - // Standard Error: 961 - .saturating_add(Weight::from_parts(173_787, 0).saturating_mul(p.into())) + // Measured: `359 + m * (32 ±0) + p * (36 ±0)` + // Estimated: `3751 + m * (33 ±0) + p * (36 ±0)` + // Minimum execution time: 29_850_000 picoseconds. + Weight::from_parts(31_614_923, 0) + .saturating_add(Weight::from_parts(0, 3751)) + // Standard Error: 91 + .saturating_add(Weight::from_parts(2_771, 0).saturating_mul(b.into())) + // Standard Error: 957 + .saturating_add(Weight::from_parts(20_322, 0).saturating_mul(m.into())) + // Standard Error: 945 + .saturating_add(Weight::from_parts(180_014, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: `Collective::Members` (r:1 w:0) - /// Proof: `Collective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Voting` (r:1 w:1) - /// Proof: `Collective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `842 + m * (64 ±0)` - // Estimated: `4306 + m * (64 ±0)` - // Minimum execution time: 28_480_000 picoseconds. - Weight::from_parts(28_856_877, 0) - .saturating_add(Weight::from_parts(0, 4306)) - // Standard Error: 499 - .saturating_add(Weight::from_parts(35_107, 0).saturating_mul(m.into())) + // Measured: `808 + m * (64 ±0)` + // Estimated: `4272 + m * (64 ±0)` + // Minimum execution time: 30_350_000 picoseconds. + Weight::from_parts(31_729_832, 0) + .saturating_add(Weight::from_parts(0, 4272)) + // Standard Error: 569 + .saturating_add(Weight::from_parts(21_513, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - /// Storage: `Collective::Voting` (r:1 w:1) - /// Proof: `Collective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Members` (r:1 w:0) - /// Proof: `Collective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Proposals` (r:1 w:1) - /// Proof: `Collective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::ProposalOf` (r:0 w:1) - /// Proof: `Collective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `431 + m * (64 ±0) + p * (36 ±0)` - // Estimated: `3876 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 31_720_000 picoseconds. - Weight::from_parts(33_106_420, 0) - .saturating_add(Weight::from_parts(0, 3876)) - // Standard Error: 821 - .saturating_add(Weight::from_parts(20_923, 0).saturating_mul(m.into())) - // Standard Error: 801 - .saturating_add(Weight::from_parts(164_458, 0).saturating_mul(p.into())) + // Measured: `397 + m * (64 ±0) + p * (36 ±0)` + // Estimated: `3842 + m * (65 ±0) + p * (36 ±0)` + // Minimum execution time: 33_600_000 picoseconds. + Weight::from_parts(34_748_890, 0) + .saturating_add(Weight::from_parts(0, 3842)) + // Standard Error: 777 + .saturating_add(Weight::from_parts(21_999, 0).saturating_mul(m.into())) + // Standard Error: 758 + .saturating_add(Weight::from_parts(172_945, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: `Collective::Voting` (r:1 w:1) - /// Proof: `Collective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Members` (r:1 w:0) - /// Proof: `Collective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::ProposalOf` (r:1 w:1) - /// Proof: `Collective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Proposals` (r:1 w:1) - /// Proof: `Collective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `733 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `4050 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 44_110_000 picoseconds. - Weight::from_parts(47_267_105, 0) - .saturating_add(Weight::from_parts(0, 4050)) - // Standard Error: 189 - .saturating_add(Weight::from_parts(2_611, 0).saturating_mul(b.into())) - // Standard Error: 2_002 - .saturating_add(Weight::from_parts(23_387, 0).saturating_mul(m.into())) - // Standard Error: 1_952 - .saturating_add(Weight::from_parts(216_394, 0).saturating_mul(p.into())) + // Measured: `699 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `4016 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 45_510_000 picoseconds. + Weight::from_parts(50_018_006, 0) + .saturating_add(Weight::from_parts(0, 4016)) + // Standard Error: 288 + .saturating_add(Weight::from_parts(2_804, 0).saturating_mul(b.into())) + // Standard Error: 2_968 + .saturating_add(Weight::from_parts(226_999, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) .saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) } - /// Storage: `Collective::Voting` (r:1 w:1) - /// Proof: `Collective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Members` (r:1 w:0) - /// Proof: `Collective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Prime` (r:1 w:0) - /// Proof: `Collective::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Proposals` (r:1 w:1) - /// Proof: `Collective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::ProposalOf` (r:0 w:1) - /// Proof: `Collective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:1 w:0) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `451 + m * (64 ±0) + p * (36 ±0)` - // Estimated: `3896 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 34_850_000 picoseconds. - Weight::from_parts(36_128_611, 0) - .saturating_add(Weight::from_parts(0, 3896)) - // Standard Error: 757 - .saturating_add(Weight::from_parts(23_373, 0).saturating_mul(m.into())) - // Standard Error: 739 - .saturating_add(Weight::from_parts(162_443, 0).saturating_mul(p.into())) + // Measured: `495 + m * (48 ±0) + p * (36 ±0)` + // Estimated: `3935 + m * (49 ±0) + p * (36 ±0)` + // Minimum execution time: 35_261_000 picoseconds. + Weight::from_parts(36_868_717, 0) + .saturating_add(Weight::from_parts(0, 3935)) + // Standard Error: 931 + .saturating_add(Weight::from_parts(22_147, 0).saturating_mul(m.into())) + // Standard Error: 908 + .saturating_add(Weight::from_parts(180_200, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) - .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 49).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) } - /// Storage: `Collective::Voting` (r:1 w:1) - /// Proof: `Collective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Members` (r:1 w:0) - /// Proof: `Collective::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Prime` (r:1 w:0) - /// Proof: `Collective::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::ProposalOf` (r:1 w:1) - /// Proof: `Collective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Proposals` (r:1 w:1) - /// Proof: `Collective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:1 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Members` (r:1 w:0) + /// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Prime` (r:1 w:0) + /// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:1 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `753 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `4070 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 46_810_000 picoseconds. - Weight::from_parts(51_555_063, 0) - .saturating_add(Weight::from_parts(0, 4070)) - // Standard Error: 183 - .saturating_add(Weight::from_parts(2_249, 0).saturating_mul(b.into())) - // Standard Error: 1_936 - .saturating_add(Weight::from_parts(16_883, 0).saturating_mul(m.into())) - // Standard Error: 1_887 - .saturating_add(Weight::from_parts(210_563, 0).saturating_mul(p.into())) + // Measured: `719 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `4036 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 48_160_000 picoseconds. + Weight::from_parts(54_781_513, 0) + .saturating_add(Weight::from_parts(0, 4036)) + // Standard Error: 283 + .saturating_add(Weight::from_parts(2_199, 0).saturating_mul(b.into())) + // Standard Error: 2_916 + .saturating_add(Weight::from_parts(221_407, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) .saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) } - /// Storage: `Collective::Proposals` (r:1 w:1) - /// Proof: `Collective::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Collective::Voting` (r:0 w:1) - /// Proof: `Collective::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Collective::ProposalOf` (r:0 w:1) - /// Proof: `Collective::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:0 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `p` is `[1, 100]`. fn disapprove_proposal(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `260 + p * (32 ±0)` - // Estimated: `1745 + p * (32 ±0)` - // Minimum execution time: 17_360_000 picoseconds. - Weight::from_parts(18_959_576, 0) - .saturating_add(Weight::from_parts(0, 1745)) - // Standard Error: 504 - .saturating_add(Weight::from_parts(156_965, 0).saturating_mul(p.into())) + // Measured: `226 + p * (32 ±0)` + // Estimated: `1711 + p * (32 ±0)` + // Minimum execution time: 18_920_000 picoseconds. + Weight::from_parts(20_452_656, 0) + .saturating_add(Weight::from_parts(0, 1711)) + // Standard Error: 603 + .saturating_add(Weight::from_parts(156_269, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) + } + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:0 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[1, 100]`. + fn kill(d: u32, p: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `226 + p * (32 ±0)` + // Estimated: `1711 + p * (32 ±0)` + // Minimum execution time: 18_920_000 picoseconds. + Weight::from_parts(20_452_656, 0) + .saturating_add(Weight::from_parts(0, 1711)) + // Standard Error: 603 + .saturating_add(Weight::from_parts(156_269, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) } + /// Storage: `AllianceMotion::Proposals` (r:1 w:1) + /// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::Voting` (r:0 w:1) + /// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AllianceMotion::ProposalOf` (r:0 w:1) + /// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[1, 100]`. + fn release_proposal_cost() -> Weight { + // Proof Size summary in bytes: + // Measured: `226 + p * (32 ±0)` + // Estimated: `1711 + p * (32 ±0)` + // Minimum execution time: 18_920_000 picoseconds. + Weight::from_parts(20_452_656, 0) + .saturating_add(Weight::from_parts(0, 1711)) + // Standard Error: 603 + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/system-parachains/encointer/src/weights/pallet_transaction_payment.rs b/system-parachains/encointer/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/system-parachains/encointer/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/system-parachains/encointer/src/weights/xcm/mod.rs b/system-parachains/encointer/src/weights/xcm/mod.rs index 1e0e6730f6..a61d080054 100644 --- a/system-parachains/encointer/src/weights/xcm/mod.rs +++ b/system-parachains/encointer/src/weights/xcm/mod.rs @@ -17,10 +17,14 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; +use frame_support::BoundedVec; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; +use xcm::{ + latest::{prelude::*, AssetTransferFilter, XcmWeightInfo}, + DoubleEncoded, +}; trait WeighAssets { fn weigh_assets(&self, weight: Weight) -> Weight; @@ -41,8 +45,9 @@ impl WeighAssets for AssetFilter { WildFungibility::NonFungible => weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), + AllOfCounted { count, .. } => + weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), }, } } @@ -81,7 +86,7 @@ impl XcmWeightInfo for EncointerKusamaXcmWeight { } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -113,10 +118,7 @@ impl XcmWeightInfo for EncointerKusamaXcmWeight { } fn deposit_asset(assets: &AssetFilter, _dest: &Location) -> Weight { - // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_parts(1_000_000_000_u64, 0); - let weight = assets.weigh_assets(XcmFungibleWeight::::deposit_asset()); - hardcoded_weight.min(weight) + assets.weigh_assets(XcmFungibleWeight::::deposit_asset()) } fn deposit_reserve_asset(assets: &AssetFilter, _dest: &Location, _xcm: &Xcm<()>) -> Weight { assets.weigh_assets(XcmFungibleWeight::::deposit_reserve_asset()) @@ -198,7 +200,7 @@ impl XcmWeightInfo for EncointerKusamaXcmWeight { XcmGeneric::::clear_transact_status() } fn universal_origin(_: &Junction) -> Weight { - Weight::MAX + XcmGeneric::::universal_origin() } fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { Weight::MAX @@ -231,4 +233,46 @@ impl XcmWeightInfo for EncointerKusamaXcmWeight { fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmFungibleWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmFungibleWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } diff --git a/system-parachains/encointer/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/system-parachains/encointer/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 3d0ecf5188..eb916388f9 100644 --- a/system-parachains/encointer/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/system-parachains/encointer/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -179,11 +179,30 @@ impl WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) pub(crate) fn initiate_teleport() -> Weight { // Proof Size summary in bytes: - // Measured: `38` - // Estimated: `3503` - // Minimum execution time: 27_490_000 picoseconds. - Weight::from_parts(27_971_000, 0) - .saturating_add(Weight::from_parts(0, 3503)) + // Measured: `126` + // Estimated: `3593` + // Minimum execution time: 63_121_000 picoseconds. + Weight::from_parts(63_881_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/system-parachains/encointer/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/system-parachains/encointer/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 616dc65c42..393cb1b304 100644 --- a/system-parachains/encointer/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/system-parachains/encointer/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -77,6 +77,20 @@ impl WeightInfo { Weight::from_parts(1_070_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `PolkadotXcm::Queries` (r:1 w:0) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -136,6 +150,13 @@ impl WeightInfo { Weight::from_parts(1_140_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` @@ -333,6 +354,17 @@ impl WeightInfo { Weight::from_parts(1_010_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + pub(crate) fn universal_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `1489` + // Minimum execution time: 7_410_000 picoseconds. + Weight::from_parts(7_671_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } pub(crate) fn set_fees_mode() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/system-parachains/encointer/src/xcm_config.rs b/system-parachains/encointer/src/xcm_config.rs index 2c491653b9..94eded6944 100644 --- a/system-parachains/encointer/src/xcm_config.rs +++ b/system-parachains/encointer/src/xcm_config.rs @@ -33,19 +33,21 @@ use sp_core::ConstU32; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, - DenyThenTry, DescribeTerminus, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, - HashedDescription, IsConcrete, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, - UsingComponents, WeightInfoBounds, WithComputedOrigin, + AccountId32Aliases, AliasChildLocation, AliasOriginRootUsingFilter, + AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, DescribeTerminus, + EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsConcrete, + ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, + WeightInfoBounds, WithComputedOrigin, }; use xcm_executor::XcmExecutor; parameter_types! { pub const KsmLocation: Location = Location::parent(); pub const RelayNetwork: NetworkId = NetworkId::Kusama; + pub AssetHubLocation: Location = Location::new(1, [Parachain(kusama_runtime_constants::system_parachain::ASSET_HUB_ID)]); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub Ancestry: Location = Parachain(ParachainInfo::parachain_id().into()).into(); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); @@ -157,8 +159,11 @@ parameter_types! { /// - KSM with the parent Relay Chain and sibling parachains. pub type TrustedTeleporters = ConcreteAssetFromSystem; -pub struct XcmConfig; +/// We allow locations to alias into their own child locations, as well as +/// AssetHub to alias into anything. +pub type Aliasers = (AliasChildLocation, AliasOriginRootUsingFilter); +pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; type XcmSender = XcmRouter; @@ -194,7 +199,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; - type Aliasers = Nothing; + type Aliasers = Aliasers; type TransactionalProcessor = FrameTransactionalProcessor; type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); diff --git a/system-parachains/gluttons/glutton-kusama/Cargo.toml b/system-parachains/gluttons/glutton-kusama/Cargo.toml index 4a33ce1444..523f2b0f0c 100644 --- a/system-parachains/gluttons/glutton-kusama/Cargo.toml +++ b/system-parachains/gluttons/glutton-kusama/Cargo.toml @@ -32,7 +32,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -98,7 +97,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/system-parachains/gluttons/glutton-kusama/src/genesis_config_presets.rs b/system-parachains/gluttons/glutton-kusama/src/genesis_config_presets.rs index c951b4e538..633d52bfda 100644 --- a/system-parachains/gluttons/glutton-kusama/src/genesis_config_presets.rs +++ b/system-parachains/gluttons/glutton-kusama/src/genesis_config_presets.rs @@ -39,14 +39,18 @@ fn glutton_kusama_development_genesis(para_id: ParaId) -> serde_json::Value { /// Provides the names of the predefined genesis configs for this runtime. pub fn preset_names() -> Vec { - vec![PresetId::from("development"), PresetId::from("local_testnet")] + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("development") => glutton_kusama_development_genesis(1300.into()), - Ok("local_testnet") => glutton_kusama_local_testnet_genesis(1300.into()), +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => glutton_kusama_development_genesis(1300.into()), + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => + glutton_kusama_local_testnet_genesis(1300.into()), _ => return None, }; Some( diff --git a/system-parachains/gluttons/glutton-kusama/src/lib.rs b/system-parachains/gluttons/glutton-kusama/src/lib.rs index 7e332d5d96..00afa2d5dd 100644 --- a/system-parachains/gluttons/glutton-kusama/src/lib.rs +++ b/system-parachains/gluttons/glutton-kusama/src/lib.rs @@ -43,22 +43,24 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + // Genesis preset configurations. pub mod genesis_config_presets; pub mod weights; pub mod xcm_config; +use alloc::{borrow::Cow, vec, vec::Vec}; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; use cumulus_primitives_core::AggregateMessageOrigin; use sp_api::impl_runtime_apis; use sp_core::OpaqueMetadata; use sp_runtime::{ - create_runtime_str, generic, + generic, traits::{AccountIdLookup, BlakeTwo256, Block as BlockT}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -88,14 +90,14 @@ pub use sp_runtime::{Perbill, Permill}; #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("glutton"), - impl_name: create_runtime_str!("glutton"), + spec_name: Cow::Borrowed("glutton"), + impl_name: Cow::Borrowed("glutton"), authoring_version: 1, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, - state_version: 1, + system_version: 1, }; /// The version information used to identify this runtime when compiled natively. @@ -160,8 +162,9 @@ impl frame_system::Config for Runtime { type OnNewAccount = (); type OnKilledAccount = (); type DbWeight = (); - type BaseCallFilter = frame_support::traits::Everything; + type BaseCallFilter = Everything; type SystemWeightInfo = weights::frame_system::WeightInfo; + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; type BlockWeights = RuntimeBlockWeights; type BlockLength = RuntimeBlockLength; type SS58Prefix = SS58Prefix; @@ -192,6 +195,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; type ConsensusHook = cumulus_pallet_parachain_system::consensus_hook::ExpectParentIncluded; type WeightInfo = weights::cumulus_pallet_parachain_system::WeightInfo; + type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; } impl parachain_info::Config for Runtime {} @@ -205,9 +209,8 @@ impl pallet_message_queue::Config for Runtime { type RuntimeEvent = RuntimeEvent; type WeightInfo = weights::pallet_message_queue::WeightInfo; #[cfg(feature = "runtime-benchmarks")] - type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor< - cumulus_primitives_core::AggregateMessageOrigin, - >; + type MessageProcessor = + pallet_message_queue::mock_helpers::NoopMessageProcessor; #[cfg(not(feature = "runtime-benchmarks"))] type MessageProcessor = xcm_builder::ProcessXcmMessage< AggregateMessageOrigin, @@ -270,8 +273,8 @@ pub type Block = generic::Block; pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( +/// The TransactionExtension to the basic transaction logic. +pub type TxExtension = ( pallet_sudo::CheckOnlySudoAccount, frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, @@ -282,7 +285,7 @@ pub type SignedExtra = ( ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -298,13 +301,14 @@ mod benches { frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [pallet_glutton, Glutton] [pallet_message_queue, MessageQueue] [cumulus_pallet_parachain_system, ParachainSystem] ); impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -318,7 +322,9 @@ mod benches { pub use frame_benchmarking::{BenchmarkBatch, BenchmarkError, BenchmarkList, Benchmarking}; pub use frame_support::traits::{StorageInfoTrait, WhitelistedStorageKeys}; - pub use frame_system_benchmarking::Pallet as SystemBench; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; pub use sp_storage::TrackedStorageKey; } @@ -349,7 +355,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -442,7 +448,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { + ) -> Result, alloc::string::String> { let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); diff --git a/system-parachains/gluttons/glutton-kusama/src/weights/frame_system_extensions.rs b/system-parachains/gluttons/glutton-kusama/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..3fdcf734a5 --- /dev/null +++ b/system-parachains/gluttons/glutton-kusama/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/system-parachains/gluttons/glutton-kusama/src/weights/mod.rs b/system-parachains/gluttons/glutton-kusama/src/weights/mod.rs index e080eba04f..fd272c70ba 100644 --- a/system-parachains/gluttons/glutton-kusama/src/weights/mod.rs +++ b/system-parachains/gluttons/glutton-kusama/src/weights/mod.rs @@ -16,5 +16,6 @@ pub mod cumulus_pallet_parachain_system; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_glutton; pub mod pallet_message_queue; diff --git a/system-parachains/gluttons/glutton-kusama/src/xcm_config.rs b/system-parachains/gluttons/glutton-kusama/src/xcm_config.rs index b92f5e24e1..5d7da95add 100644 --- a/system-parachains/gluttons/glutton-kusama/src/xcm_config.rs +++ b/system-parachains/gluttons/glutton-kusama/src/xcm_config.rs @@ -29,7 +29,7 @@ use xcm_builder::{ parameter_types! { pub const KusamaLocation: Location = Location::parent(); - pub const KusamaNetwork: Option = Some(NetworkId::Kusama); + pub const KusamaNetwork: Option = Some(Kusama); pub UniversalLocation: InteriorLocation = [Parachain(ParachainInfo::parachain_id().into())].into(); } diff --git a/system-parachains/people/people-kusama/Cargo.toml b/system-parachains/people/people-kusama/Cargo.toml index 891dd6297c..c7a680005e 100644 --- a/system-parachains/people/people-kusama/Cargo.toml +++ b/system-parachains/people/people-kusama/Cargo.toml @@ -31,6 +31,7 @@ pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-identity = { workspace = true } pallet-message-queue = { workspace = true } +pallet-migrations = { workspace = true } pallet-multisig = { workspace = true } pallet-proxy = { workspace = true } pallet-session = { workspace = true } @@ -48,7 +49,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -113,6 +113,7 @@ std = [ "pallet-collator-selection/std", "pallet-identity/std", "pallet-message-queue/std", + "pallet-migrations/std", "pallet-multisig/std", "pallet-proxy/std", "pallet-session/std", @@ -139,7 +140,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", @@ -166,9 +166,11 @@ runtime-benchmarks = [ "pallet-collator-selection/runtime-benchmarks", "pallet-identity/runtime-benchmarks", "pallet-message-queue/runtime-benchmarks", + "pallet-migrations/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", "pallet-proxy/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-xcm-benchmarks/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", @@ -198,6 +200,7 @@ try-runtime = [ "pallet-collator-selection/try-runtime", "pallet-identity/try-runtime", "pallet-message-queue/try-runtime", + "pallet-migrations/try-runtime", "pallet-multisig/try-runtime", "pallet-proxy/try-runtime", "pallet-session/try-runtime", diff --git a/system-parachains/people/people-kusama/src/genesis_config_presets.rs b/system-parachains/people/people-kusama/src/genesis_config_presets.rs index 04249d196a..95c3797cae 100644 --- a/system-parachains/people/people-kusama/src/genesis_config_presets.rs +++ b/system-parachains/people/people-kusama/src/genesis_config_presets.rs @@ -18,7 +18,6 @@ use crate::*; use sp_genesis_builder::PresetId; -use sp_std::vec::Vec; use system_parachains_constants::genesis_presets::*; const PEOPLE_KUSAMA_ED: Balance = ExistentialDeposit::get(); @@ -76,14 +75,18 @@ fn people_kusama_development_genesis(para_id: ParaId) -> serde_json::Value { /// Provides the names of the predefined genesis configs for this runtime. pub fn preset_names() -> Vec { - vec![PresetId::from("development"), PresetId::from("local_testnet")] + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("development") => people_kusama_development_genesis(1004.into()), - Ok("local_testnet") => people_kusama_local_testnet_genesis(1004.into()), +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => people_kusama_development_genesis(1004.into()), + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => + people_kusama_local_testnet_genesis(1004.into()), _ => return None, }; Some( diff --git a/system-parachains/people/people-kusama/src/lib.rs b/system-parachains/people/people-kusama/src/lib.rs index 5e0529cbaf..56543952c7 100644 --- a/system-parachains/people/people-kusama/src/lib.rs +++ b/system-parachains/people/people-kusama/src/lib.rs @@ -18,6 +18,8 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + // Genesis preset configurations. pub mod genesis_config_presets; pub mod people; @@ -26,6 +28,7 @@ mod tests; mod weights; pub mod xcm_config; +use alloc::{borrow::Cow, vec, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; @@ -59,13 +62,12 @@ use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{BlakeTwo256, Block as BlockT}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, RuntimeDebug, }; pub use sp_runtime::{MultiAddress, Perbill, Permill}; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -134,8 +136,8 @@ pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( +/// The TransactionExtension to the basic transaction logic. +pub type TxExtension = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -149,7 +151,7 @@ pub type SignedExtra = ( /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; /// Migrations to apply on runtime upgrade. pub type Migrations = ( @@ -157,6 +159,12 @@ pub type Migrations = ( pallet_xcm::migration::MigrateToLatestXcmVersion, ); +/// MBM migrations to apply on runtime upgrade. +pub type MbmMigrations = ( + // Unreleased + pallet_identity::migration::v2::LazyMigrationV1ToV2, +); + /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -175,14 +183,14 @@ impl_opaque_keys! { #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("people-kusama"), - impl_name: create_runtime_str!("people-kusama"), + spec_name: Cow::Borrowed("people-kusama"), + impl_name: Cow::Borrowed("people-kusama"), authoring_version: 1, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, - state_version: 1, + system_version: 1, }; /// The version information used to identify this runtime when compiled natively. @@ -219,6 +227,8 @@ parameter_types! { #[derive_impl(frame_system::config_preludes::ParaChainDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Runtime { type BaseCallFilter = Everything; + type BlockWeights = RuntimeBlockWeights; + type BlockLength = RuntimeBlockLength; type AccountId = AccountId; type Nonce = Nonce; type Hash = Hash; @@ -228,14 +238,11 @@ impl frame_system::Config for Runtime { type Version = Version; type AccountData = pallet_balances::AccountData; type SystemWeightInfo = weights::frame_system::WeightInfo; + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; type SS58Prefix = SS58Prefix; type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type MaxConsumers = ConstU32<16>; - type SingleBlockMigrations = (); - type MultiBlockMigrator = (); - type PreInherents = (); - type PostInherents = (); - type PostTransactions = (); + type MultiBlockMigrator = MultiBlockMigrations; } impl pallet_timestamp::Config for Runtime { @@ -269,6 +276,7 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type MaxFreezes = ConstU32<0>; + type DoneSlashHandler = (); } parameter_types! { @@ -284,6 +292,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } parameter_types! { @@ -304,6 +313,7 @@ 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 ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -572,6 +582,25 @@ impl pallet_utility::Config for Runtime { type WeightInfo = weights::pallet_utility::WeightInfo; } +parameter_types! { + pub MbmServiceWeight: Weight = Perbill::from_percent(80) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_migrations::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + #[cfg(not(feature = "runtime-benchmarks"))] + type Migrations = MbmMigrations; + // Benchmarks need mocked migrations to guarantee that they succeed. + #[cfg(feature = "runtime-benchmarks")] + type Migrations = pallet_migrations::mock_helpers::MockedMigrations; + type CursorMaxLen = ConstU32<65_536>; + type IdentifierMaxLen = ConstU32<256>; + type MigrationStatusHandler = (); + type FailedMigrationHandler = frame_support::migrations::FreezeChainOnFailedMigration; + type MaxServiceWeight = MbmServiceWeight; + type WeightInfo = weights::pallet_migrations::WeightInfo; +} + // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub enum Runtime @@ -581,6 +610,7 @@ construct_runtime!( ParachainSystem: cumulus_pallet_parachain_system = 1, Timestamp: pallet_timestamp = 2, ParachainInfo: parachain_info = 3, + MultiBlockMigrations: pallet_migrations = 4, // Monetary stuff. Balances: pallet_balances = 10, @@ -616,26 +646,29 @@ mod benches { frame_benchmarking::define_benchmarks!( // Substrate [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [pallet_balances, Balances] [pallet_identity, Identity] [pallet_message_queue, MessageQueue] + [pallet_migrations, MultiBlockMigrations] [pallet_multisig, Multisig] [pallet_proxy, Proxy] [pallet_session, SessionBench::] [pallet_timestamp, Timestamp] + [pallet_transaction_payment, TransactionPayment] [pallet_utility, Utility] // Cumulus [cumulus_pallet_parachain_system, ParachainSystem] [cumulus_pallet_xcmp_queue, XcmpQueue] [pallet_collator_selection, CollatorSelection] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] ); impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -774,15 +807,20 @@ mod benches { } fn alias_origin() -> Result<(Location, Location), BenchmarkError> { - Err(BenchmarkError::Skip) + Ok(( + Location::new(1, [Parachain(1000)]), + Location::new(1, [Parachain(1000), AccountId32 { id: [111u8; 32], network: None }]), + )) } } pub use cumulus_pallet_session_benchmarking::Pallet as SessionBench; pub use frame_benchmarking::{BenchmarkBatch, BenchmarkError, BenchmarkList, Benchmarking}; pub use frame_support::traits::StorageInfoTrait; - pub use frame_system_benchmarking::Pallet as SystemBench; - pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; + pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; pub type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet; pub type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet; pub use frame_support::traits::WhitelistedStorageKeys; @@ -835,7 +873,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -1034,7 +1072,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { + ) -> Result, alloc::string::String> { let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); let params = (&config, &whitelist); diff --git a/system-parachains/people/people-kusama/src/people.rs b/system-parachains/people/people-kusama/src/people.rs index dc2c708bce..0209cf11a8 100644 --- a/system-parachains/people/people-kusama/src/people.rs +++ b/system-parachains/people/people-kusama/src/people.rs @@ -27,7 +27,6 @@ use sp_runtime::{ traits::{AccountIdConversion, Verify}, RuntimeDebug, }; -use sp_std::prelude::*; parameter_types! { // 27 | Min encoded size of `Registration` @@ -36,6 +35,7 @@ parameter_types! { // 17 | Min size without `IdentityInfo` (accounted for in byte deposit) pub const BasicDeposit: Balance = system_para_deposit(1, 17); pub const ByteDeposit: Balance = system_para_deposit(0, 1); + pub const UsernameDeposit: Balance = system_para_deposit(0, 32); pub const SubAccountDeposit: Balance = system_para_deposit(1, 53); pub RelayTreasuryAccount: AccountId = parachains_common::TREASURY_PALLET_ID.into_account_truncating(); @@ -52,6 +52,7 @@ impl pallet_identity::Config for Runtime { type Currency = Balances; type BasicDeposit = BasicDeposit; type ByteDeposit = ByteDeposit; + type UsernameDeposit = UsernameDeposit; type SubAccountDeposit = SubAccountDeposit; type MaxSubAccounts = ConstU32<100>; type IdentityInformation = IdentityInfo; @@ -63,6 +64,7 @@ impl pallet_identity::Config for Runtime { type SigningPublicKey = ::Signer; type UsernameAuthorityOrigin = IdentityAdminOrigin; type PendingUsernameExpiration = ConstU32<{ 7 * DAYS }>; + type UsernameGracePeriod = ConstU32<{ 7 * DAYS }>; type MaxSuffixLength = ConstU32<7>; type MaxUsernameLength = ConstU32<32>; type WeightInfo = weights::pallet_identity::WeightInfo; diff --git a/system-parachains/people/people-kusama/src/tests.rs b/system-parachains/people/people-kusama/src/tests.rs index d696903532..e2a617d042 100644 --- a/system-parachains/people/people-kusama/src/tests.rs +++ b/system-parachains/people/people-kusama/src/tests.rs @@ -14,7 +14,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::{xcm_config::LocationToAccountId, Block, Runtime, RuntimeCall, RuntimeOrigin}; +use crate::xcm_config::LocationToAccountId; use polkadot_primitives::AccountId; use sp_core::crypto::Ss58Codec; use xcm::prelude::*; @@ -124,6 +124,7 @@ fn location_conversion_works() { #[test] fn xcm_payment_api_works() { + use crate::{Block, Runtime, RuntimeCall, RuntimeOrigin}; parachains_runtimes_test_utils::test_cases::xcm_payment_api_with_native_token_works::< Runtime, RuntimeCall, diff --git a/system-parachains/people/people-kusama/src/weights/frame_system_extensions.rs b/system-parachains/people/people-kusama/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..3fdcf734a5 --- /dev/null +++ b/system-parachains/people/people-kusama/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/system-parachains/people/people-kusama/src/weights/mod.rs b/system-parachains/people/people-kusama/src/weights/mod.rs index 34658af9ee..fa7f8c108d 100644 --- a/system-parachains/people/people-kusama/src/weights/mod.rs +++ b/system-parachains/people/people-kusama/src/weights/mod.rs @@ -20,14 +20,17 @@ pub mod cumulus_pallet_parachain_system; pub mod cumulus_pallet_xcmp_queue; pub mod extrinsic_weights; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_balances; pub mod pallet_collator_selection; pub mod pallet_identity; pub mod pallet_message_queue; +pub mod pallet_migrations; pub mod pallet_multisig; pub mod pallet_proxy; pub mod pallet_session; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_utility; pub mod pallet_xcm; pub mod paritydb_weights; diff --git a/system-parachains/people/people-kusama/src/weights/pallet_identity.rs b/system-parachains/people/people-kusama/src/weights/pallet_identity.rs index bb8deb23ce..fe22b094f5 100644 --- a/system-parachains/people/people-kusama/src/weights/pallet_identity.rs +++ b/system-parachains/people/people-kusama/src/weights/pallet_identity.rs @@ -368,7 +368,7 @@ impl pallet_identity::WeightInfo for WeightInfo { /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:1) /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) - fn set_username_for() -> Weight { + fn set_username_for(_q: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `80` // Estimated: `4303` @@ -396,7 +396,7 @@ impl pallet_identity::WeightInfo for WeightInfo { } /// Storage: `Identity::PendingUsernames` (r:1 w:1) /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) - fn remove_expired_approval() -> Weight { + fn remove_expired_approval(_q: u32,) -> Weight { // Proof Size summary in bytes: // Measured: `115` // Estimated: `3550` @@ -420,16 +420,128 @@ impl pallet_identity::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Identity::AccountOfUsername` (r:1 w:1) + /// Storage: `Identity::AccountOfUsername` (r:1 w:0) /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) - /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) + fn unbind_username() -> Weight { + // Proof Size summary in bytes: + // Measured: `258` + // Estimated: `4303` + // Minimum execution time: 26_271_000 picoseconds. + Weight::from_parts(26_910_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Identity::AccountOfUsername` (r:1 w:0) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) + fn remove_username() -> Weight { + // Proof Size summary in bytes: + // Measured: `258` + // Estimated: `4303` + // Minimum execution time: 26_271_000 picoseconds. + Weight::from_parts(26_910_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Identity::AccountOfUsername` (r:1 w:0) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) + fn kill_username(_p: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `258` + // Estimated: `4303` + // Minimum execution time: 26_271_000 picoseconds. + Weight::from_parts(26_910_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Identity::AccountOfUsername` (r:1 w:0) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) - fn remove_dangling_username() -> Weight { + fn migration_v2_authority_step() -> Weight { // Proof Size summary in bytes: - // Measured: `98` + // Measured: `258` // Estimated: `4303` - // Minimum execution time: 18_330_000 picoseconds. - Weight::from_parts(18_670_000, 0) + // Minimum execution time: 26_271_000 picoseconds. + Weight::from_parts(26_910_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Identity::AccountOfUsername` (r:1 w:0) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) + fn migration_v2_username_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `258` + // Estimated: `4303` + // Minimum execution time: 26_271_000 picoseconds. + Weight::from_parts(26_910_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Identity::AccountOfUsername` (r:1 w:0) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) + fn migration_v2_identity_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `258` + // Estimated: `4303` + // Minimum execution time: 26_271_000 picoseconds. + Weight::from_parts(26_910_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Identity::AccountOfUsername` (r:1 w:0) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) + fn migration_v2_pending_username_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `258` + // Estimated: `4303` + // Minimum execution time: 26_271_000 picoseconds. + Weight::from_parts(26_910_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Identity::AccountOfUsername` (r:1 w:0) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) + fn migration_v2_cleanup_authority_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `258` + // Estimated: `4303` + // Minimum execution time: 26_271_000 picoseconds. + Weight::from_parts(26_910_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Identity::AccountOfUsername` (r:1 w:0) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) + fn migration_v2_cleanup_username_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `258` + // Estimated: `4303` + // Minimum execution time: 26_271_000 picoseconds. + Weight::from_parts(26_910_000, 0) .saturating_add(Weight::from_parts(0, 4303)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/system-parachains/people/people-kusama/src/weights/pallet_migrations.rs b/system-parachains/people/people-kusama/src/weights/pallet_migrations.rs new file mode 100644 index 0000000000..36ab7ec875 --- /dev/null +++ b/system-parachains/people/people-kusama/src/weights/pallet_migrations.rs @@ -0,0 +1,206 @@ +// Copyright (C) Parity Technologies and the various Polkadot 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_migrations` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 47.0.0 +//! DATE: 2025-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `e502a20f0dc0`, 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/people-kusama-runtime/people_kusama_runtime.wasm +// --pallet=pallet_migrations +// --header=/_work/fellowship-001/runtimes/runtimes/.github/scripts/cmd/file_header.txt +// --output=./system-parachains/people/people-kusama/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_migrations`. +pub struct WeightInfo(PhantomData); +impl pallet_migrations::WeightInfo for WeightInfo { + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + fn onboard_new_mbms() -> Weight { + // Proof Size summary in bytes: + // Measured: `71` + // Estimated: `67035` + // Minimum execution time: 8_190_000 picoseconds. + Weight::from_parts(9_520_000, 0) + .saturating_add(Weight::from_parts(0, 67035)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn progress_mbms_none() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `67035` + // Minimum execution time: 2_240_000 picoseconds. + Weight::from_parts(2_380_000, 0) + .saturating_add(Weight::from_parts(0, 67035)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn exec_migration_completed() -> Weight { + // Proof Size summary in bytes: + // Measured: `29` + // Estimated: `3494` + // Minimum execution time: 6_070_000 picoseconds. + Weight::from_parts(7_240_000, 0) + .saturating_add(Weight::from_parts(0, 3494)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + fn exec_migration_skipped_historic() -> Weight { + // Proof Size summary in bytes: + // Measured: `125` + // Estimated: `3731` + // Minimum execution time: 11_190_000 picoseconds. + Weight::from_parts(13_550_000, 0) + .saturating_add(Weight::from_parts(0, 3731)) + .saturating_add(T::DbWeight::get().reads(2)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + fn exec_migration_advance() -> Weight { + // Proof Size summary in bytes: + // Measured: `71` + // Estimated: `3731` + // Minimum execution time: 10_480_000 picoseconds. + Weight::from_parts(11_680_000, 0) + .saturating_add(Weight::from_parts(0, 3731)) + .saturating_add(T::DbWeight::get().reads(2)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:1) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + fn exec_migration_complete() -> Weight { + // Proof Size summary in bytes: + // Measured: `71` + // Estimated: `3731` + // Minimum execution time: 12_421_000 picoseconds. + Weight::from_parts(14_410_000, 0) + .saturating_add(Weight::from_parts(0, 3731)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn exec_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `71` + // Estimated: `3731` + // Minimum execution time: 13_050_000 picoseconds. + Weight::from_parts(15_000_000, 0) + .saturating_add(Weight::from_parts(0, 3731)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn on_init_loop() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 200_000 picoseconds. + Weight::from_parts(250_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn force_set_cursor() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_110_000 picoseconds. + Weight::from_parts(3_570_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn force_set_active_cursor() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_460_000 picoseconds. + Weight::from_parts(4_261_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + fn force_onboard_mbms() -> Weight { + // Proof Size summary in bytes: + // Measured: `85` + // Estimated: `67035` + // Minimum execution time: 6_690_000 picoseconds. + Weight::from_parts(7_100_000, 0) + .saturating_add(Weight::from_parts(0, 67035)) + .saturating_add(T::DbWeight::get().reads(2)) + } + /// Storage: `MultiBlockMigrations::Historic` (r:256 w:256) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 256]`. + fn clear_historic(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1022 + n * (271 ±0)` + // Estimated: `3834 + n * (2740 ±0)` + // Minimum execution time: 19_940_000 picoseconds. + Weight::from_parts(14_507_666, 0) + .saturating_add(Weight::from_parts(0, 3834)) + // Standard Error: 3_687 + .saturating_add(Weight::from_parts(1_554_578, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2740).saturating_mul(n.into())) + } +} diff --git a/system-parachains/people/people-kusama/src/weights/pallet_transaction_payment.rs b/system-parachains/people/people-kusama/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/system-parachains/people/people-kusama/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/system-parachains/people/people-kusama/src/weights/xcm/mod.rs b/system-parachains/people/people-kusama/src/weights/xcm/mod.rs index 73e55b8559..8ab57ce7eb 100644 --- a/system-parachains/people/people-kusama/src/weights/xcm/mod.rs +++ b/system-parachains/people/people-kusama/src/weights/xcm/mod.rs @@ -17,10 +17,14 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; +use frame_support::BoundedVec; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; +use xcm::{ + latest::{prelude::*, AssetTransferFilter}, + DoubleEncoded, +}; trait WeighAssets { fn weigh_assets(&self, weight: Weight) -> Weight; @@ -41,8 +45,9 @@ impl WeighAssets for AssetFilter { WildFungibility::NonFungible => weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), + AllOfCounted { count, .. } => + weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), }, } } @@ -81,7 +86,7 @@ impl XcmWeightInfo for PeopleKusamaXcmWeight { } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -231,4 +236,46 @@ impl XcmWeightInfo for PeopleKusamaXcmWeight { fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmFungibleWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmFungibleWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } diff --git a/system-parachains/people/people-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/system-parachains/people/people-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 16fd22bc2e..0aa4bafd5d 100644 --- a/system-parachains/people/people-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/system-parachains/people/people-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -187,4 +187,23 @@ impl WeightInfo { .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/system-parachains/people/people-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/system-parachains/people/people-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index cb1becdc8d..5915fc4816 100644 --- a/system-parachains/people/people-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/system-parachains/people/people-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -77,6 +77,20 @@ impl WeightInfo { Weight::from_parts(1_040_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `PolkadotXcm::Queries` (r:1 w:0) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -136,6 +150,13 @@ impl WeightInfo { Weight::from_parts(1_040_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/system-parachains/people/people-kusama/src/xcm_config.rs b/system-parachains/people/people-kusama/src/xcm_config.rs index 43174a863c..547a484418 100644 --- a/system-parachains/people/people-kusama/src/xcm_config.rs +++ b/system-parachains/people/people-kusama/src/xcm_config.rs @@ -35,9 +35,10 @@ use polkadot_parachain_primitives::primitives::Sibling; use sp_runtime::traits::AccountIdConversion; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, - DenyThenTry, DescribeAllTerminal, DescribeFamily, DescribeTerminus, EnsureXcmOrigin, + AccountId32Aliases, AliasChildLocation, AliasOriginRootUsingFilter, + AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, + DescribeAllTerminal, DescribeFamily, DescribeTerminus, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsConcrete, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, @@ -55,6 +56,7 @@ parameter_types! { [GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())].into(); pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; + pub AssetHubLocation: Location = Location::new(1, [Parachain(kusama_runtime_constants::system_parachain::ASSET_HUB_ID)]); pub const GovernanceLocation: Location = Location::parent(); pub const FellowshipLocation: Location = Location::parent(); /// The asset ID for the asset that we use to pay for message delivery fees. Just KSM. @@ -188,6 +190,10 @@ pub type WaivedLocations = ( LocalPlurality, ); +/// We allow locations to alias into their own child locations, as well as +/// AssetHub to alias into anything. +pub type Aliasers = (AliasChildLocation, AliasOriginRootUsingFilter); + pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; @@ -230,7 +236,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; - type Aliasers = Nothing; + type Aliasers = Aliasers; type TransactionalProcessor = FrameTransactionalProcessor; type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); diff --git a/system-parachains/people/people-polkadot/Cargo.toml b/system-parachains/people/people-polkadot/Cargo.toml index 362ce2a1e1..0699b48ad0 100644 --- a/system-parachains/people/people-polkadot/Cargo.toml +++ b/system-parachains/people/people-polkadot/Cargo.toml @@ -31,6 +31,7 @@ pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-identity = { workspace = true } pallet-message-queue = { workspace = true } +pallet-migrations = { workspace = true } pallet-multisig = { workspace = true } pallet-proxy = { workspace = true } pallet-session = { workspace = true } @@ -47,7 +48,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -111,6 +111,7 @@ std = [ "pallet-collator-selection/std", "pallet-identity/std", "pallet-message-queue/std", + "pallet-migrations/std", "pallet-multisig/std", "pallet-proxy/std", "pallet-session/std", @@ -137,7 +138,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", @@ -163,9 +163,11 @@ runtime-benchmarks = [ "pallet-collator-selection/runtime-benchmarks", "pallet-identity/runtime-benchmarks", "pallet-message-queue/runtime-benchmarks", + "pallet-migrations/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", "pallet-proxy/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-transaction-payment/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-xcm-benchmarks/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", @@ -195,6 +197,7 @@ try-runtime = [ "pallet-collator-selection/try-runtime", "pallet-identity/try-runtime", "pallet-message-queue/try-runtime", + "pallet-migrations/try-runtime", "pallet-multisig/try-runtime", "pallet-proxy/try-runtime", "pallet-session/try-runtime", diff --git a/system-parachains/people/people-polkadot/src/genesis_config_presets.rs b/system-parachains/people/people-polkadot/src/genesis_config_presets.rs index 61dfb6edd1..e31da2de3f 100644 --- a/system-parachains/people/people-polkadot/src/genesis_config_presets.rs +++ b/system-parachains/people/people-polkadot/src/genesis_config_presets.rs @@ -18,7 +18,6 @@ use crate::*; use sp_genesis_builder::PresetId; -use sp_std::vec::Vec; use system_parachains_constants::genesis_presets::*; const PEOPLE_POLKADOT_ED: Balance = ExistentialDeposit::get(); @@ -76,14 +75,18 @@ fn people_polkadot_development_genesis(para_id: ParaId) -> serde_json::Value { /// Provides the names of the predefined genesis configs for this runtime. pub fn preset_names() -> Vec { - vec![PresetId::from("development"), PresetId::from("local_testnet")] + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let patch = match id.try_into() { - Ok("development") => people_polkadot_development_genesis(1004.into()), - Ok("local_testnet") => people_polkadot_local_testnet_genesis(1004.into()), +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => people_polkadot_development_genesis(1004.into()), + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => + people_polkadot_local_testnet_genesis(1004.into()), _ => return None, }; Some( diff --git a/system-parachains/people/people-polkadot/src/lib.rs b/system-parachains/people/people-polkadot/src/lib.rs index 6431076164..2d70dd4a30 100644 --- a/system-parachains/people/people-polkadot/src/lib.rs +++ b/system-parachains/people/people-polkadot/src/lib.rs @@ -18,6 +18,8 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + // Genesis preset configurations. pub mod genesis_config_presets; pub mod people; @@ -26,6 +28,7 @@ mod tests; mod weights; pub mod xcm_config; +use alloc::{borrow::Cow, vec, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; @@ -58,13 +61,12 @@ use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{BlakeTwo256, Block as BlockT}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, RuntimeDebug, }; pub use sp_runtime::{MultiAddress, Perbill, Permill}; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -95,8 +97,8 @@ pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( +/// The TransactionExtension to the basic transaction logic. +pub type TxExtension = ( frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, @@ -110,7 +112,7 @@ pub type SignedExtra = ( /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + generic::UncheckedExtrinsic; parameter_types! { pub const IdentityMigratorPalletName: &'static str = "IdentityMigrator"; @@ -122,6 +124,12 @@ pub type Migrations = ( pallet_xcm::migration::MigrateToLatestXcmVersion, ); +/// MBM migrations to apply on runtime upgrade. +pub type MbmMigrations = ( + // Unreleased + pallet_identity::migration::v2::LazyMigrationV1ToV2, +); + /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -140,14 +148,14 @@ impl_opaque_keys! { #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("people-polkadot"), - impl_name: create_runtime_str!("people-polkadot"), + spec_name: Cow::Borrowed("people-polkadot"), + impl_name: Cow::Borrowed("people-polkadot"), authoring_version: 1, spec_version: 1_004_003, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 0, - state_version: 1, + system_version: 1, }; /// The version information used to identify this runtime when compiled natively. @@ -184,6 +192,8 @@ parameter_types! { #[derive_impl(frame_system::config_preludes::ParaChainDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Runtime { type BaseCallFilter = Everything; + type BlockWeights = RuntimeBlockWeights; + type BlockLength = RuntimeBlockLength; type AccountId = AccountId; type Nonce = Nonce; type Hash = Hash; @@ -193,9 +203,11 @@ impl frame_system::Config for Runtime { type Version = Version; type AccountData = pallet_balances::AccountData; type SystemWeightInfo = weights::frame_system::WeightInfo; + type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo; type SS58Prefix = SS58Prefix; type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type MaxConsumers = ConstU32<16>; + type MultiBlockMigrator = MultiBlockMigrations; } impl pallet_timestamp::Config for Runtime { @@ -229,6 +241,7 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type MaxFreezes = ConstU32<0>; + type DoneSlashHandler = (); } parameter_types! { @@ -244,6 +257,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } parameter_types! { @@ -264,6 +278,7 @@ 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 ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -532,6 +547,25 @@ impl pallet_utility::Config for Runtime { type WeightInfo = weights::pallet_utility::WeightInfo; } +parameter_types! { + pub MbmServiceWeight: Weight = Perbill::from_percent(80) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_migrations::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + #[cfg(not(feature = "runtime-benchmarks"))] + type Migrations = MbmMigrations; + // Benchmarks need mocked migrations to guarantee that they succeed. + #[cfg(feature = "runtime-benchmarks")] + type Migrations = pallet_migrations::mock_helpers::MockedMigrations; + type CursorMaxLen = ConstU32<65_536>; + type IdentifierMaxLen = ConstU32<256>; + type MigrationStatusHandler = (); + type FailedMigrationHandler = frame_support::migrations::FreezeChainOnFailedMigration; + type MaxServiceWeight = MbmServiceWeight; + type WeightInfo = weights::pallet_migrations::WeightInfo; +} + // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub enum Runtime @@ -541,6 +575,7 @@ construct_runtime!( ParachainSystem: cumulus_pallet_parachain_system = 1, Timestamp: pallet_timestamp = 2, ParachainInfo: parachain_info = 3, + MultiBlockMigrations: pallet_migrations = 4, // Monetary stuff. Balances: pallet_balances = 10, @@ -576,12 +611,15 @@ mod benches { frame_benchmarking::define_benchmarks!( // Substrate [frame_system, SystemBench::] + [frame_system_extensions, SystemExtensionsBench::] [pallet_balances, Balances] [pallet_identity, Identity] [pallet_message_queue, MessageQueue] + [pallet_migrations, MultiBlockMigrations] [pallet_multisig, Multisig] [pallet_proxy, Proxy] [pallet_session, SessionBench::] + [pallet_transaction_payment, TransactionPayment] [pallet_timestamp, Timestamp] [pallet_utility, Utility] // Cumulus @@ -589,13 +627,13 @@ mod benches { [cumulus_pallet_xcmp_queue, XcmpQueue] [pallet_collator_selection, CollatorSelection] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] ); impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -734,15 +772,20 @@ mod benches { } fn alias_origin() -> Result<(Location, Location), BenchmarkError> { - Err(BenchmarkError::Skip) + Ok(( + Location::new(1, [Parachain(1000)]), + Location::new(1, [Parachain(1000), AccountId32 { id: [111u8; 32], network: None }]), + )) } } pub use cumulus_pallet_session_benchmarking::Pallet as SessionBench; pub use frame_benchmarking::{BenchmarkBatch, BenchmarkError, BenchmarkList, Benchmarking}; pub use frame_support::traits::StorageInfoTrait; - pub use frame_system_benchmarking::Pallet as SystemBench; - pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + pub use frame_system_benchmarking::{ + extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench, + }; + pub use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; pub type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet; pub type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet; pub use frame_support::traits::WhitelistedStorageKeys; @@ -795,7 +838,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -994,7 +1037,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { + ) -> Result, alloc::string::String> { let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); let params = (&config, &whitelist); diff --git a/system-parachains/people/people-polkadot/src/people.rs b/system-parachains/people/people-polkadot/src/people.rs index 026ec0f881..7657059780 100644 --- a/system-parachains/people/people-polkadot/src/people.rs +++ b/system-parachains/people/people-polkadot/src/people.rs @@ -27,7 +27,6 @@ use sp_runtime::{ traits::{AccountIdConversion, Verify}, RuntimeDebug, }; -use sp_std::prelude::*; use xcm::latest::prelude::BodyId; use xcm_config::GovernanceLocation; @@ -38,6 +37,7 @@ parameter_types! { // 17 | Min size without `IdentityInfo` (accounted for in byte deposit) pub const BasicDeposit: Balance = system_para_deposit(1, 17); pub const ByteDeposit: Balance = system_para_deposit(0, 1); + pub const UsernameDeposit: Balance = system_para_deposit(0, 32); pub const SubAccountDeposit: Balance = system_para_deposit(1, 53); pub RelayTreasuryAccount: AccountId = parachains_common::TREASURY_PALLET_ID.into_account_truncating(); @@ -54,6 +54,7 @@ impl pallet_identity::Config for Runtime { type Currency = Balances; type BasicDeposit = BasicDeposit; type ByteDeposit = ByteDeposit; + type UsernameDeposit = UsernameDeposit; type SubAccountDeposit = SubAccountDeposit; type MaxSubAccounts = ConstU32<100>; type IdentityInformation = IdentityInfo; @@ -65,6 +66,7 @@ impl pallet_identity::Config for Runtime { type SigningPublicKey = ::Signer; type UsernameAuthorityOrigin = IdentityAdminOrigin; type PendingUsernameExpiration = ConstU32<{ 7 * DAYS }>; + type UsernameGracePeriod = ConstU32<{ 3 * DAYS }>; type MaxSuffixLength = ConstU32<7>; type MaxUsernameLength = ConstU32<32>; type WeightInfo = weights::pallet_identity::WeightInfo; diff --git a/system-parachains/people/people-polkadot/src/tests.rs b/system-parachains/people/people-polkadot/src/tests.rs index 512b79fea5..d8c29568b5 100644 --- a/system-parachains/people/people-polkadot/src/tests.rs +++ b/system-parachains/people/people-polkadot/src/tests.rs @@ -14,7 +14,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::{xcm_config::LocationToAccountId, Block, Runtime, RuntimeCall, RuntimeOrigin}; +use crate::xcm_config::LocationToAccountId; use cumulus_primitives_core::relay_chain::AccountId; use sp_core::crypto::Ss58Codec; use xcm::prelude::*; @@ -124,6 +124,7 @@ fn location_conversion_works() { #[test] fn xcm_payment_api_works() { + use crate::{Block, Runtime, RuntimeCall, RuntimeOrigin}; parachains_runtimes_test_utils::test_cases::xcm_payment_api_with_native_token_works::< Runtime, RuntimeCall, diff --git a/system-parachains/people/people-polkadot/src/weights/frame_system_extensions.rs b/system-parachains/people/people-polkadot/src/weights/frame_system_extensions.rs new file mode 100644 index 0000000000..3fdcf734a5 --- /dev/null +++ b/system-parachains/people/people-polkadot/src/weights/frame_system_extensions.rs @@ -0,0 +1,135 @@ + +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/production/polkadot +// benchmark +// pallet +// --chain=rococo-dev +// --steps=50 +// --repeat=20 +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --pallet=frame_system_extensions +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/rococo/src/weights/ + +#![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 `frame_system_extensions`. +pub struct WeightInfo(PhantomData); +impl frame_system::ExtensionsWeightInfo for WeightInfo { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `54` + // Estimated: `3509` + // Minimum execution time: 3_262_000 picoseconds. + Weight::from_parts(3_497_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 5_416_000 picoseconds. + Weight::from_parts(5_690_000, 0) + .saturating_add(Weight::from_parts(0, 3509)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 471_000 picoseconds. + Weight::from_parts(552_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 4_847_000 picoseconds. + Weight::from_parts(5_091_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 388_000 picoseconds. + Weight::from_parts(421_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 378_000 picoseconds. + Weight::from_parts(440_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 3_402_000 picoseconds. + Weight::from_parts(3_627_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/system-parachains/people/people-polkadot/src/weights/mod.rs b/system-parachains/people/people-polkadot/src/weights/mod.rs index 34658af9ee..fa7f8c108d 100644 --- a/system-parachains/people/people-polkadot/src/weights/mod.rs +++ b/system-parachains/people/people-polkadot/src/weights/mod.rs @@ -20,14 +20,17 @@ pub mod cumulus_pallet_parachain_system; pub mod cumulus_pallet_xcmp_queue; pub mod extrinsic_weights; pub mod frame_system; +pub mod frame_system_extensions; pub mod pallet_balances; pub mod pallet_collator_selection; pub mod pallet_identity; pub mod pallet_message_queue; +pub mod pallet_migrations; pub mod pallet_multisig; pub mod pallet_proxy; pub mod pallet_session; pub mod pallet_timestamp; +pub mod pallet_transaction_payment; pub mod pallet_utility; pub mod pallet_xcm; pub mod paritydb_weights; diff --git a/system-parachains/people/people-polkadot/src/weights/pallet_identity.rs b/system-parachains/people/people-polkadot/src/weights/pallet_identity.rs index e7e54ed530..720b063264 100644 --- a/system-parachains/people/people-polkadot/src/weights/pallet_identity.rs +++ b/system-parachains/people/people-polkadot/src/weights/pallet_identity.rs @@ -368,7 +368,7 @@ impl pallet_identity::WeightInfo for WeightInfo { /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:1) /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) - fn set_username_for() -> Weight { + fn set_username_for(_q: u32,) -> Weight { // Proof Size summary in bytes: // Measured: `80` // Estimated: `4303` @@ -396,7 +396,7 @@ impl pallet_identity::WeightInfo for WeightInfo { } /// Storage: `Identity::PendingUsernames` (r:1 w:1) /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) - fn remove_expired_approval() -> Weight { + fn remove_expired_approval(_q: u32,) -> Weight { // Proof Size summary in bytes: // Measured: `115` // Estimated: `3550` @@ -420,11 +420,96 @@ impl pallet_identity::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Identity::AccountOfUsername` (r:1 w:1) - /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) - /// Storage: `Identity::IdentityOf` (r:1 w:0) - /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(838), added: 3313, mode: `MaxEncodedLen`) - fn remove_dangling_username() -> Weight { + + fn unbind_username() -> Weight { + // Proof Size summary in bytes: + // Measured: `98` + // Estimated: `4303` + // Minimum execution time: 18_240_000 picoseconds. + Weight::from_parts(18_490_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + + fn remove_username() -> Weight { + // Proof Size summary in bytes: + // Measured: `98` + // Estimated: `4303` + // Minimum execution time: 18_240_000 picoseconds. + Weight::from_parts(18_490_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + + fn kill_username(_q: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `98` + // Estimated: `4303` + // Minimum execution time: 18_240_000 picoseconds. + Weight::from_parts(18_490_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + + fn migration_v2_authority_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `98` + // Estimated: `4303` + // Minimum execution time: 18_240_000 picoseconds. + Weight::from_parts(18_490_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + + fn migration_v2_username_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `98` + // Estimated: `4303` + // Minimum execution time: 18_240_000 picoseconds. + Weight::from_parts(18_490_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + + fn migration_v2_identity_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `98` + // Estimated: `4303` + // Minimum execution time: 18_240_000 picoseconds. + Weight::from_parts(18_490_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + + fn migration_v2_pending_username_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `98` + // Estimated: `4303` + // Minimum execution time: 18_240_000 picoseconds. + Weight::from_parts(18_490_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + + fn migration_v2_cleanup_authority_step() -> Weight { + // Proof Size summary in bytes: + // Measured: `98` + // Estimated: `4303` + // Minimum execution time: 18_240_000 picoseconds. + Weight::from_parts(18_490_000, 0) + .saturating_add(Weight::from_parts(0, 4303)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + + fn migration_v2_cleanup_username_step() -> Weight { // Proof Size summary in bytes: // Measured: `98` // Estimated: `4303` diff --git a/system-parachains/people/people-polkadot/src/weights/pallet_migrations.rs b/system-parachains/people/people-polkadot/src/weights/pallet_migrations.rs new file mode 100644 index 0000000000..63b1bf0302 --- /dev/null +++ b/system-parachains/people/people-polkadot/src/weights/pallet_migrations.rs @@ -0,0 +1,206 @@ +// Copyright (C) Parity Technologies and the various Polkadot 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_migrations` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 47.0.0 +//! DATE: 2025-04-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `e502a20f0dc0`, 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/people-polkadot-runtime/people_polkadot_runtime.wasm +// --pallet=pallet_migrations +// --header=/_work/fellowship-001/runtimes/runtimes/.github/scripts/cmd/file_header.txt +// --output=./system-parachains/people/people-polkadot/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_migrations`. +pub struct WeightInfo(PhantomData); +impl pallet_migrations::WeightInfo for WeightInfo { + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + fn onboard_new_mbms() -> Weight { + // Proof Size summary in bytes: + // Measured: `71` + // Estimated: `67035` + // Minimum execution time: 7_751_000 picoseconds. + Weight::from_parts(8_190_000, 0) + .saturating_add(Weight::from_parts(0, 67035)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn progress_mbms_none() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `67035` + // Minimum execution time: 2_330_000 picoseconds. + Weight::from_parts(2_400_000, 0) + .saturating_add(Weight::from_parts(0, 67035)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn exec_migration_completed() -> Weight { + // Proof Size summary in bytes: + // Measured: `29` + // Estimated: `3494` + // Minimum execution time: 5_900_000 picoseconds. + Weight::from_parts(6_169_000, 0) + .saturating_add(Weight::from_parts(0, 3494)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + fn exec_migration_skipped_historic() -> Weight { + // Proof Size summary in bytes: + // Measured: `125` + // Estimated: `3731` + // Minimum execution time: 10_920_000 picoseconds. + Weight::from_parts(11_240_000, 0) + .saturating_add(Weight::from_parts(0, 3731)) + .saturating_add(T::DbWeight::get().reads(2)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + fn exec_migration_advance() -> Weight { + // Proof Size summary in bytes: + // Measured: `71` + // Estimated: `3731` + // Minimum execution time: 10_960_000 picoseconds. + Weight::from_parts(11_419_000, 0) + .saturating_add(Weight::from_parts(0, 3731)) + .saturating_add(T::DbWeight::get().reads(2)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:1) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + fn exec_migration_complete() -> Weight { + // Proof Size summary in bytes: + // Measured: `71` + // Estimated: `3731` + // Minimum execution time: 12_651_000 picoseconds. + Weight::from_parts(13_240_000, 0) + .saturating_add(Weight::from_parts(0, 3731)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn exec_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `71` + // Estimated: `3731` + // Minimum execution time: 12_871_000 picoseconds. + Weight::from_parts(13_240_000, 0) + .saturating_add(Weight::from_parts(0, 3731)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn on_init_loop() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 190_000 picoseconds. + Weight::from_parts(231_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn force_set_cursor() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_010_000 picoseconds. + Weight::from_parts(3_170_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn force_set_active_cursor() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_410_000 picoseconds. + Weight::from_parts(3_600_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + fn force_onboard_mbms() -> Weight { + // Proof Size summary in bytes: + // Measured: `85` + // Estimated: `67035` + // Minimum execution time: 6_450_000 picoseconds. + Weight::from_parts(6_910_000, 0) + .saturating_add(Weight::from_parts(0, 67035)) + .saturating_add(T::DbWeight::get().reads(2)) + } + /// Storage: `MultiBlockMigrations::Historic` (r:256 w:256) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 256]`. + fn clear_historic(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1022 + n * (271 ±0)` + // Estimated: `3834 + n * (2740 ±0)` + // Minimum execution time: 17_211_000 picoseconds. + Weight::from_parts(14_704_428, 0) + .saturating_add(Weight::from_parts(0, 3834)) + // Standard Error: 2_795 + .saturating_add(Weight::from_parts(1_546_733, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2740).saturating_mul(n.into())) + } +} diff --git a/system-parachains/people/people-polkadot/src/weights/pallet_transaction_payment.rs b/system-parachains/people/people-polkadot/src/weights/pallet_transaction_payment.rs new file mode 100644 index 0000000000..b31e5a059f --- /dev/null +++ b/system-parachains/people/people-polkadot/src/weights/pallet_transaction_payment.rs @@ -0,0 +1,68 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Autogenerated weights for `pallet_transaction_payment` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-09-12, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/debug/polkadot +// benchmark +// pallet +// --steps=2 +// --repeat=2 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet-transaction-payment +// --chain=westend-dev +// --output=./polkadot/runtime/westend/src/weights/ +// --header=./polkadot/file_header.txt + +#![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_transaction_payment`. +pub struct WeightInfo(PhantomData); +impl pallet_transaction_payment::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Authorship::Author` (r:1 w:0) + /// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn charge_transaction_payment() -> Weight { + // Proof Size summary in bytes: + // Measured: `320` + // Estimated: `3593` + // Minimum execution time: 569_518_000 picoseconds. + Weight::from_parts(590_438_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} \ No newline at end of file diff --git a/system-parachains/people/people-polkadot/src/weights/xcm/mod.rs b/system-parachains/people/people-polkadot/src/weights/xcm/mod.rs index 09214d2288..ad25f3414a 100644 --- a/system-parachains/people/people-polkadot/src/weights/xcm/mod.rs +++ b/system-parachains/people/people-polkadot/src/weights/xcm/mod.rs @@ -17,10 +17,14 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; +use frame_support::BoundedVec; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; -use xcm::{latest::prelude::*, DoubleEncoded}; +use xcm::{ + latest::{prelude::*, AssetTransferFilter}, + DoubleEncoded, +}; trait WeighAssets { fn weigh_assets(&self, weight: Weight) -> Weight; @@ -41,8 +45,9 @@ impl WeighAssets for AssetFilter { WildFungibility::NonFungible => weight.saturating_mul((MaxAssetsIntoHolding::get() * 2) as u64), }, - AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), - AllOfCounted { count, .. } => weight.saturating_mul(MAX_ASSETS.min(*count as u64)), + AllCounted(count) => weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), + AllOfCounted { count, .. } => + weight.saturating_mul(MAX_ASSETS.min((*count as u64).max(1))), }, } } @@ -81,7 +86,7 @@ impl XcmWeightInfo for PeoplePolkadotXcmWeight { } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &Weight, + _fallback_max_weight: &Option, _call: &DoubleEncoded, ) -> Weight { XcmGeneric::::transact() @@ -231,4 +236,46 @@ impl XcmWeightInfo for PeoplePolkadotXcmWeight { fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } + fn pay_fees(_asset: &Asset) -> Weight { + XcmGeneric::::pay_fees() + } + fn initiate_transfer( + _dest: &Location, + remote_fees: &Option, + _preserve_origin: &bool, + assets: &BoundedVec, + _xcm: &Xcm<()>, + ) -> Weight { + let base_weight = XcmFungibleWeight::::initiate_transfer(); + let mut weight = if let Some(remote_fees) = remote_fees { + let fees = remote_fees.inner(); + fees.weigh_assets(base_weight) + } else { + base_weight + }; + + for asset_filter in assets { + let assets = asset_filter.inner(); + let extra = assets.weigh_assets(XcmFungibleWeight::::initiate_transfer()); + weight = weight.saturating_add(extra); + } + weight + } + fn execute_with_origin( + _descendant_origin: &Option, + _xcm: &Xcm, + ) -> Weight { + XcmGeneric::::execute_with_origin() + } + fn set_hints(hints: &BoundedVec) -> Weight { + let mut weight = Weight::zero(); + for hint in hints { + match hint { + AssetClaimer { .. } => { + weight = weight.saturating_add(XcmGeneric::::asset_claimer()); + }, + } + } + weight + } } diff --git a/system-parachains/people/people-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/system-parachains/people/people-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 0e5a1478b8..c34e7d9d97 100644 --- a/system-parachains/people/people-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/system-parachains/people/people-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -187,4 +187,23 @@ impl WeightInfo { .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) + /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1) + /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) + pub(crate) fn initiate_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `3645` + // Minimum execution time: 82_584_000 picoseconds. + Weight::from_parts(84_614_000, 3645) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } } diff --git a/system-parachains/people/people-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/system-parachains/people/people-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 4d892a1a05..296c48eec4 100644 --- a/system-parachains/people/people-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/system-parachains/people/people-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -77,6 +77,20 @@ impl WeightInfo { Weight::from_parts(1_040_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn pay_fees() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_899_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub(crate) fn asset_claimer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 669_000 picoseconds. + Weight::from_parts(714_000, 0) + } /// Storage: `PolkadotXcm::Queries` (r:1 w:0) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) pub(crate) fn query_response() -> Weight { @@ -136,6 +150,13 @@ impl WeightInfo { Weight::from_parts(1_050_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + pub(crate) fn execute_with_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 790_000 picoseconds. + Weight::from_parts(843_000, 0) + } pub(crate) fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/system-parachains/people/people-polkadot/src/xcm_config.rs b/system-parachains/people/people-polkadot/src/xcm_config.rs index 409a87e9d8..bfd89ed010 100644 --- a/system-parachains/people/people-polkadot/src/xcm_config.rs +++ b/system-parachains/people/people-polkadot/src/xcm_config.rs @@ -36,9 +36,10 @@ use polkadot_runtime_constants::system_parachain; use sp_runtime::traits::AccountIdConversion; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, - DenyThenTry, DescribeAllTerminal, DescribeFamily, DescribeTerminus, EnsureXcmOrigin, + AccountId32Aliases, AliasChildLocation, AliasOriginRootUsingFilter, + AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, + DescribeAllTerminal, DescribeFamily, DescribeTerminus, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsConcrete, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, @@ -57,6 +58,7 @@ parameter_types! { pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; pub const GovernanceLocation: Location = Location::parent(); + pub AssetHubLocation: Location = Location::new(1, [Parachain(polkadot_runtime_constants::system_parachain::ASSET_HUB_ID)]); pub FellowshipLocation: Location = Location::new(1, Parachain(system_parachain::COLLECTIVES_ID)); /// The asset ID for the asset that we use to pay for message delivery fees. Just DOT. pub FeeAssetId: AssetId = AssetId(RelayLocation::get()); @@ -211,6 +213,10 @@ pub type WaivedLocations = ( LocalPlurality, ); +/// We allow locations to alias into their own child locations, as well as +/// AssetHub to alias into anything. +pub type Aliasers = (AliasChildLocation, AliasOriginRootUsingFilter); + pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; @@ -252,7 +258,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; - type Aliasers = Nothing; + type Aliasers = Aliasers; type TransactionalProcessor = FrameTransactionalProcessor; type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = ();