diff --git a/.github/scripts/cmd/cmd.py b/.github/scripts/cmd/cmd.py index b2d34736f5..21c570d30e 100755 --- a/.github/scripts/cmd/cmd.py +++ b/.github/scripts/cmd/cmd.py @@ -161,7 +161,7 @@ print(f'-- benchmarking {pallet} in {runtime} into {output_path} using template {template} and excluded {excluded_string}') - status = os.system(f"frame-omni-bencher v1 benchmark pallet " + status = os.system(f"RUNTIME_LOG=error frame-omni-bencher v1 benchmark pallet " f"--extrinsic=* " f"--runtime=target/{profile}/wbuild/{config['package']}/{config['package'].replace('-', '_')}.wasm " f"--pallet={pallet} " @@ -171,6 +171,8 @@ f"--steps=50 " f"--repeat=20 " f"--heap-pages=4096 " + f"--min-duration 1 " + f"--quiet " f"{f'--template={template} ' if template else ''}" f"{f'--exclude-extrinsics={excluded_string} ' if excluded_string else ''}" ) diff --git a/.github/workflows/runtimes-matrix.json b/.github/workflows/runtimes-matrix.json index e633f6deb9..69dc51885e 100644 --- a/.github/workflows/runtimes-matrix.json +++ b/.github/workflows/runtimes-matrix.json @@ -4,6 +4,8 @@ "package": "polkadot-runtime", "path": "relay/polkadot", "uris": [ + "wss://polkadot.ibp.network", + "wss://polkadot.dotters.network", "wss://try-runtime.polkadot.io:443", "wss://polkadot-rpc.publicnode.com", "wss://polkadot-public-rpc.blockops.network/ws", @@ -11,7 +13,6 @@ "wss://polkadot-rpc-tn.dwellir.com", "wss://rpc-polkadot.helixstreet.io", "wss://rpc.ibp.network/polkadot", - "wss://polkadot.dotters.network", "wss://rpc-polkadot.luckyfriday.io", "wss://polkadot.api.onfinality.io/public-ws", "wss://polkadot.public.curie.radiumblock.co/ws", @@ -105,8 +106,7 @@ "wss://dot-rpc.stakeworld.io/assethub" ], "is_relay": false, - "blocktime": 6000, - "extra_args": "--disable-mbm-checks", + "blocktime": 12000, "try_runtime_args": "--overwrite-state-version 1", "build_extra_features": "polkadot-ahm", "benchmarks_templates": { diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 19d9d53381..c9640e6e56 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-stable2506 + FRAME_OMNI_BENCHER_RELEASE_VERSION: polkadot-stable2603 # cancel previous runs concurrency: @@ -127,9 +127,10 @@ jobs: EXCLUDE_EXTRINSICS=" --exclude-extrinsics ${EXCLUDE_EXTRINSICS_LIST}" 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 --heap-pages 4096 + ./frame-omni-bencher v1 benchmark pallet --runtime $RUNTIME_BLOB_PATH --all --steps 2 --repeat 1 $EXCLUDE_EXTRINSICS --heap-pages 4096 --min-duration 0 --quiet env: RUSTFLAGS: "-C debug-assertions -A warnings" # FAIL-CI AHM + RUNTIME_LOG: "error" # Job required by "confirmTestPassed" integration-test: diff --git a/CHANGELOG.md b/CHANGELOG.md index 62c712c4f1..caa54b5bfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,10 +8,23 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Added +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] 💥 Pallet-broker: add extrinsic to forcefully remove the potential renewal ([stable2603 #10828](https://github.com/paritytech/polkadot-sdk/pull/10828)). +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] 💥 Pallet-broker: add extrinsic to force transfer a region ([stable2603 #10856](https://github.com/paritytech/polkadot-sdk/pull/10856)). - Runtime API view function for accessing the Asset Hub Migration start and end blocks ([#1016](https://github.com/polkadot-fellows/runtimes/pull/1016)) +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] 💥 Polkadot & Kusama relay: Bump `ParachainHost` runtime API to v16, adding `unapplied_slashes_v2`, `para_ids`, `max_relay_parent_session_age` and `ancestor_relay_parent_info` +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] Asset Hub Kusama & Polkadot: EVM ERC-20 precompiles for foreign assets. +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] Polkadot & Kusama relay: Set `max_relay_parent_session_age` to `0` in genesis presets (to be configured via governance). + +### Changed + +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] Kusama & Polkadot relay: Waive XCM fees for Treasury pallet origin. +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] Collectives Polkadot: Waive XCM fees for Fellowship/Ambassador Treasury and Salary pallet origins. +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] Asset Hub Kusama & Polkadot: Activate `TransferAllAssets` on `pallet_bounties` to sweep fungibles from closed bounty accounts. +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] Asset Hub Kusama & Polkadot: Set `BountyDepositBase` on `pallet_bounties` to `10 * QUID` / `10 * DOLLARS` instead of `system_para_deposit(0, 176)`, aligning the proposer deposit with other fixed governance deposits on Asset Hub. ### Fixed +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] Fix auto-renew core tracking on immediate renew ([stable2603 #10767](https://github.com/paritytech/polkadot-sdk/pull/10767)) - [encointer] updated hardcoded remote execution weight for AHK [1124](https://github.com/polkadot-fellows/runtimes/pull/1124) - Fix fee calculation on Polkadot and Kusama system parachains: use chain-specific `ExtrinsicBaseWeight` instead of the generic `frame_support` default [1117](https://github.com/polkadot-fellows/runtimes/pull/1117) @@ -19,6 +32,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Remove hardcoded `deposit_asset` weight cap from people runtimes to align with other system parachains ([#1121](https://github.com/polkadot-fellows/runtimes/pull/1121)) - Remove pre-hardcap related code and storage values. ([#1112](https://github.com/polkadot-fellows/runtimes/pull/1112)) +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] Frame-support: remove error reporting in `remote_transfer_xcm` for paid execution ([stable2603 #10697](https://github.com/paritytech/polkadot-sdk/pull/10697)). +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] Polkadot & Kusama relay: Remove `CoretimeAssignmentProvider` pallet, coretime assignment now via `ParaScheduler`. +- [[#1114](https://github.com/polkadot-fellows/runtimes/pull/1114)] Asset Hub Polkadot: Remove `March2026TI` value and hard-code instead. ### Changed diff --git a/Cargo.lock b/Cargo.lock index 3916cc5193..925a4c79a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1109,7 +1109,7 @@ dependencies = [ "parity-scale-codec", "penpal-emulated-chain", "polkadot-parachain-primitives", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-keyring", "staging-xcm", "staging-xcm-builder", @@ -1141,7 +1141,7 @@ dependencies = [ "parachains-common", "parity-scale-codec", "polkadot-runtime-common", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-tracing", "staging-kusama-runtime", "staging-xcm", @@ -1248,7 +1248,7 @@ dependencies = [ "scale-info", "serde_json", "snowbridge-inbound-queue-primitives", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", @@ -1256,20 +1256,20 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", "sp-npos-elections", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", "sp-staking", - "sp-storage", + "sp-storage 23.0.0", "sp-tracing", "sp-transaction-pool", - "sp-version 43.0.0", - "sp-weights", + "sp-version 44.0.0", + "sp-weights 34.0.0", "staging-kusama-runtime", "staging-parachain-info", "staging-xcm", @@ -1297,7 +1297,7 @@ dependencies = [ "polkadot-emulated-chain", "polkadot-parachain-primitives", "snowbridge-inbound-queue-primitives", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-keyring", "staging-xcm", "staging-xcm-builder", @@ -1332,7 +1332,7 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-constants", "polkadot-system-emulated-network", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-tracing", "staging-xcm", "staging-xcm-builder", @@ -1444,7 +1444,7 @@ dependencies = [ "snowbridge-outbound-queue-primitives", "snowbridge-pallet-system-frontend", "snowbridge-runtime-common", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", @@ -1452,20 +1452,20 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", "sp-npos-elections", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", "sp-staking", - "sp-storage", + "sp-storage 23.0.0", "sp-tracing", "sp-transaction-pool", - "sp-version 43.0.0", - "sp-weights", + "sp-version 44.0.0", + "sp-weights 34.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -1479,9 +1479,9 @@ dependencies = [ [[package]] name = "asset-test-utils" -version = "29.0.1" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2b7d9b9eb37a038ce25592086d3843468227a503da05d32184bda678d2591b" +checksum = "9fa0bceabe14ead0cba43dabb264c0902526c2733e2315b0a59a6621c445ac92" dependencies = [ "assets-common", "cumulus-pallet-parachain-system", @@ -1500,8 +1500,8 @@ dependencies = [ "parachains-common", "parachains-runtimes-test-utils", "parity-scale-codec", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -1511,9 +1511,9 @@ dependencies = [ [[package]] name = "assets-common" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7669aa4fc76e66f59e5dde1187b90dad60a8fd9de072f48e0d2949b139f366c2" +checksum = "e44df8294aa6bcc5793c23070d3bbe6f181d02c31947eb03ce818e7495af9561" dependencies = [ "cumulus-primitives-core", "ethereum-standards", @@ -1529,9 +1529,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 40.0.0", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -1835,9 +1835,9 @@ checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] name = "binary-merkle-tree" -version = "16.1.0" +version = "16.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95c9f6900c9fd344d53fbdfb36e1343429079d73f4168c8ef48884bf15616dbd" +checksum = "a6d867f1ffee8b07e7bee466f4f33a043b91f868f5c7b1d22d8a02f86e92bee8" dependencies = [ "hash-db", "log", @@ -2100,7 +2100,7 @@ dependencies = [ "frame-support", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", + "sp-core 40.0.0", "staging-xcm", "system-parachains-constants", ] @@ -2113,16 +2113,16 @@ dependencies = [ "frame-support", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", + "sp-core 40.0.0", "staging-xcm", "system-parachains-constants", ] [[package]] name = "bp-bridge-hub-cumulus" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563f70bc907c981e5f16222bf75783af18d8994fbcfacf5a3bd311efa3043e8" +checksum = "add75719767a983f13761a977be1fa8c3933ab5e33d7d901c44522e4a60011e3" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -2131,7 +2131,7 @@ dependencies = [ "frame-system", "parachains-common", "polkadot-primitives", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-std", ] @@ -2147,8 +2147,8 @@ dependencies = [ "frame-support", "kusama-runtime-constants", "polkadot-runtime-constants", - "sp-api 40.0.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-runtime 46.0.0", "sp-std", "system-parachains-constants", ] @@ -2166,8 +2166,8 @@ dependencies = [ "kusama-runtime-constants", "polkadot-runtime-constants", "snowbridge-core", - "sp-api 40.0.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "system-parachains-constants", @@ -2175,9 +2175,9 @@ dependencies = [ [[package]] name = "bp-header-chain" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c49aa0892b9a3286e22ff52c9025d8e62576fa4c91f91364738db791f05088f0" +checksum = "4986b30b44e2e80df5468e95d47d21026bdd028dfa6dd311813a2ae7295b5bd2" dependencies = [ "bp-runtime", "finality-grandpa", @@ -2186,16 +2186,16 @@ dependencies = [ "scale-info", "serde", "sp-consensus-grandpa", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "bp-messages" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad35c105fa3ef50f451bff0bdddda39d2fcb4c02d75f0e71b06e6538c98f89d3" +checksum = "d0a91e151f6d635ae1e31fbcf82f119facc9137420f46d8160b3ac7f900bc2ef" dependencies = [ "bp-header-chain", "bp-runtime", @@ -2203,16 +2203,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 39.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", "sp-std", ] [[package]] name = "bp-parachains" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c60b4c35b8ebf4175666c47ff6e9fe4586903091c47d73677529c59578937aeb" +checksum = "4fadd0330c59a79ad688ced9c7d5a0f889ae84483fc546866c2ee23f348376bb" dependencies = [ "bp-header-chain", "bp-polkadot-core", @@ -2221,16 +2221,16 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "bp-polkadot-core" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c52d6962152e0aa5a20e020c4502bb47b8fd850a84a2955f523d10af68b26c8" +checksum = "f2b3a3975ba99e9b422efd0ec82278fb02ef43edee8f2f92f7396925b0c7eccb" dependencies = [ "bp-messages", "bp-runtime", @@ -2239,16 +2239,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "bp-relayers" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7137c42b06e131fbf995b3b462c454b3c3b7a51b0779f70869915445d9f3e60a" +checksum = "fcb01abc0666c1d929c5463c033dea39ebc0f8333b6bba4998cadd2e7b2827a9" dependencies = [ "bp-header-chain", "bp-messages", @@ -2259,15 +2259,15 @@ dependencies = [ "pallet-utility", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "bp-runtime" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bae52c333df27220b4b0a7603ec77f7daed48d28f8ce5146f9d2072440d739c" +checksum = "1a077b5cf7ef6437d7d61394a35419cf1b0f8dab77e7bafa3aafca04c61104b8" dependencies = [ "frame-support", "frame-system", @@ -2277,21 +2277,21 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", "sp-std", - "sp-trie 42.0.1", + "sp-trie 43.0.0", "tracing", - "trie-db", + "trie-db 0.31.0", ] [[package]] name = "bp-test-utils" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44445f2ec2fd945fc0552c386f30872d7de967920c4cc05704e8a4f26d239f9e" +checksum = "77d10ca74df4c744901f717bc49e531ec36aeac2d35c5c0b7420192c14fab557" dependencies = [ "bp-header-chain", "bp-parachains", @@ -2300,19 +2300,19 @@ dependencies = [ "ed25519-dalek", "finality-grandpa", "parity-scale-codec", - "sp-application-crypto 44.0.0", + "sp-application-crypto 45.0.0", "sp-consensus-grandpa", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-std", - "sp-trie 42.0.1", + "sp-trie 43.0.0", ] [[package]] name = "bp-xcm-bridge-hub" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd169ad82bff4c0eba6ae050d78bea8d04e50bff5698981ddb865dff1cc7d0a3" +checksum = "d5087b848c998364d25bb119dc14408a745cac877d97e8d4c64601681a1f71f4" dependencies = [ "bp-messages", "bp-runtime", @@ -2320,30 +2320,30 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 39.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", "sp-std", "staging-xcm", ] [[package]] name = "bp-xcm-bridge-hub-router" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5115500f8cc5c5bee2ba3ffe87072e812f31c7fda26ead9cb7e691a20068668b" +checksum = "84c0b71a00e16b2e43eb45da61d3111167f207d41229ee5e22656a806cdb14d0" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "staging-xcm", ] [[package]] name = "bridge-hub-common" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30232767c00587e32715032a72002b60cf55d1ef7dc3461c17e3190571a70fc7" +checksum = "32b9983f3368061acf119b9d1715cfcc4e06fead5ed0731b457bb92e153e9ff8" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2351,8 +2351,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "snowbridge-core", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -2369,7 +2369,7 @@ dependencies = [ "emulated-integration-tests-common", "frame-support", "parachains-common", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-keyring", "staging-xcm", ] @@ -2403,8 +2403,8 @@ dependencies = [ "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-executor", "system-parachains-constants", @@ -2480,20 +2480,20 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", "sp-keyring", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", - "sp-storage", + "sp-storage 23.0.0", "sp-transaction-pool", - "sp-version 43.0.0", + "sp-version 44.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -2514,7 +2514,7 @@ dependencies = [ "emulated-integration-tests-common", "frame-support", "parachains-common", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-keyring", "staging-xcm", ] @@ -2562,9 +2562,9 @@ dependencies = [ "snowbridge-pallet-system", "snowbridge-pallet-system-frontend", "snowbridge-pallet-system-v2", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2662,20 +2662,20 @@ dependencies = [ "snowbridge-runtime-test-common", "snowbridge-system-runtime-api", "snowbridge-system-v2-runtime-api", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", "sp-keyring", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", - "sp-storage", + "sp-storage 23.0.0", "sp-transaction-pool", - "sp-version 43.0.0", + "sp-version 44.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -2688,9 +2688,9 @@ dependencies = [ [[package]] name = "bridge-hub-test-utils" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5df05fe49bb38e0c96980e00514eeeb551159b0da692e2b15c069da5bf63005e" +checksum = "48d4586467157d112bbab6bc39dfdbdcf776956d0d48edfb436e5adf77887961" dependencies = [ "asset-test-utils", "bp-header-chain", @@ -2717,10 +2717,10 @@ dependencies = [ "parachains-common", "parachains-runtimes-test-utils", "parity-scale-codec", - "sp-core 39.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", "sp-keyring", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", "sp-tracing", "staging-xcm", @@ -2731,9 +2731,9 @@ dependencies = [ [[package]] name = "bridge-runtime-common" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2dab44704a1ec6045ceb3376b827a06c4a946f8d5ffc50b907258774fad36" +checksum = "5be8f1e509e1b5d4288b4fa9ad53e3bc77e7655b62472ca0fe7d288a6a48bb39" dependencies = [ "bp-header-chain", "bp-messages", @@ -2751,11 +2751,11 @@ dependencies = [ "pallet-utility", "parity-scale-codec", "scale-info", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", - "sp-trie 42.0.1", - "sp-weights", + "sp-trie 43.0.0", + "sp-weights 34.0.0", "staging-xcm", "static_assertions", "tracing", @@ -2816,9 +2816,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" dependencies = [ "serde", ] @@ -2970,8 +2970,8 @@ dependencies = [ "people-kusama-runtime", "people-polkadot-runtime", "polkadot-runtime", - "sc-chain-spec 48.0.0", - "sc-network 0.55.1", + "sc-chain-spec 49.0.0", + "sc-network 0.56.0", "serde", "serde_json", "staging-kusama-runtime", @@ -3105,7 +3105,7 @@ dependencies = [ "emulated-integration-tests-common", "frame-support", "parachains-common", - "sp-core 39.0.0", + "sp-core 40.0.0", ] [[package]] @@ -3138,8 +3138,8 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-constants", "polkadot-system-emulated-network", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-executor", "system-parachains-constants", @@ -3203,20 +3203,20 @@ dependencies = [ "polkadot-runtime-constants", "scale-info", "serde_json", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-arithmetic", "sp-block-builder", "sp-consensus-aura", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", - "sp-storage", + "sp-storage 23.0.0", "sp-transaction-pool", - "sp-version 43.0.0", + "sp-version 44.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -3428,7 +3428,7 @@ dependencies = [ "emulated-integration-tests-common", "frame-support", "parachains-common", - "sp-core 39.0.0", + "sp-core 40.0.0", ] [[package]] @@ -3452,7 +3452,7 @@ dependencies = [ "parity-scale-codec", "polkadot-runtime-common", "polkadot-runtime-parachains", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "staging-kusama-runtime", "staging-xcm", "staging-xcm-executor", @@ -3507,18 +3507,18 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", - "sp-storage", + "sp-storage 23.0.0", "sp-transaction-pool", - "sp-version 43.0.0", + "sp-version 44.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -3537,7 +3537,7 @@ dependencies = [ "emulated-integration-tests-common", "frame-support", "parachains-common", - "sp-core 39.0.0", + "sp-core 40.0.0", ] [[package]] @@ -3561,7 +3561,7 @@ dependencies = [ "polkadot-runtime-constants", "polkadot-runtime-parachains", "polkadot-system-emulated-network", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-executor", "xcm-runtime-apis", @@ -3615,19 +3615,19 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-arithmetic", "sp-block-builder", "sp-consensus-aura", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", - "sp-storage", + "sp-storage 23.0.0", "sp-transaction-pool", - "sp-version 43.0.0", + "sp-version 44.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -3940,9 +3940,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82cb90cd9debf9f763c65f9e5cd5bd3592103592ed962da03635dcaa70346e25" +checksum = "6003f82320a41c7f52d9d531cb73eb5e1eba7198468db7e0bbd8246737bcbbe7" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -3951,16 +3951,16 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 44.0.0", + "sp-application-crypto 45.0.0", "sp-consensus-aura", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "cumulus-pallet-parachain-system" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25d8efadc9b4ad035b7fb55c768ce3d68941c1d7ef38840fa61624d34878e5e3" +checksum = "5ea5cb0fe1000137f7f94676001138caec7284d0ff41ddac61dad2fc411ebe80" dependencies = [ "array-bytes 6.2.3", "bytes", @@ -3968,6 +3968,8 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", + "derive-where", + "docify", "environmental", "frame-benchmarking", "frame-support", @@ -3978,28 +3980,31 @@ dependencies = [ "pallet-message-queue", "parity-scale-codec", "polkadot-parachain-primitives", + "polkadot-primitives", "polkadot-runtime-parachains", "scale-info", + "sp-api 41.0.0", "sp-consensus-babe", - "sp-core 39.0.0", - "sp-externalities 0.31.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", + "sp-core 40.0.0", + "sp-crypto-hashing", + "sp-externalities 0.32.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", "sp-std", - "sp-trie 42.0.1", - "sp-version 43.0.0", + "sp-trie 43.0.0", + "sp-version 44.0.0", "staging-xcm", "staging-xcm-builder", - "trie-db", + "trie-db 0.31.0", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8734f642ff194055ba9905135a16fbfc16d143c4bebf3a9593d90caf75d10083" +checksum = "d919afb7cdf4722905ed70be154ca5007fdeb49df5d90518f046d270df6d33d4" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -4009,23 +4014,23 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" -version = "26.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca4ab47b9d17cc968f5ee89469a851bb2a2ba06a0b65398bf50c34ca0afb4eb0" +checksum = "8ff8d0c77bf779dab4812affeb0fd60bbe01174f6f8bf4d345441fb9d90b4482" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "pallet-session", "parity-scale-codec", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "cumulus-pallet-weight-reclaim" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0259d53fe511c79be65f50cdb31b22837ebf804331c643ae2a155d91d8efd466" +checksum = "879349824c8662673c7c32f9d9c8e017e0849056a3ed6637347fe8058cfb5cba" dependencies = [ "cumulus-primitives-storage-weight-reclaim", "derive-where", @@ -4036,34 +4041,35 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-trie 42.0.1", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-trie 43.0.0", ] [[package]] name = "cumulus-pallet-xcm" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade68dc08dc31f1708b9d46ed1993c3b439cef8a30c56c05b6adf19e585020cc" +checksum = "58ebcb3391e8e60d4388436a4f6982f3ebfc29845eb63bb8a0d2ece68a7f1784" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", ] [[package]] name = "cumulus-pallet-xcmp-queue" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94b2def9b1b6628c7af78291e80d189b7d77adc0a72bf0e47096333e79f7789" +checksum = "6fdd6068945450b7ebb79661aef08fe948da553424f499154112a27301ac17b1" dependencies = [ "approx", + "bitflags 1.3.2", "bounded-collections", "bp-xcm-bridge-hub-router", "cumulus-primitives-core", @@ -4075,9 +4081,9 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-parachains", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -4086,63 +4092,63 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadc09e2bd83a313202cc493bf6ed9f8328275fb688a7d9bbca0fd79514e8343" +checksum = "ef3f1a5bbfefcbc005e09ad027198c78c61d90ac7d92a48f16ca8ee1cf3bffdf" dependencies = [ - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-consensus-aura", ] [[package]] name = "cumulus-primitives-core" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef73b695cc30fc5dd146fd32636f08fbfc725458f00cc776cb326c8846f5157a" +checksum = "8cc8e435e7fe94240399dc856ce2bce0fd4af696d64a53873867eeaa77e875d0" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "scale-info", - "sp-api 40.0.0", - "sp-runtime 45.0.0", - "sp-trie 42.0.1", + "sp-api 41.0.0", + "sp-runtime 46.0.0", + "sp-trie 43.0.0", "staging-xcm", "tracing", ] [[package]] name = "cumulus-primitives-parachain-inherent" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dfc00f908f13d8a44d48086515f89c7f883454b18192d33bdae5808c25c85d1" +checksum = "4215b2e8bacf54f152c86eae6a47444d915f752d22246545862013421448187a" dependencies = [ "async-trait", "cumulus-primitives-core", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-inherents 40.0.0", - "sp-trie 42.0.1", + "sp-core 40.0.0", + "sp-inherents 41.0.0", + "sp-trie 43.0.0", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "173cea3648f289194e2ed3a9501e7224f8bea4c4d38cce247ef681c3016ac3c1" +checksum = "2812a3bf842bc07b87bf5a8e45d548630af4921b04584db00391cd18bbb082f7" dependencies = [ - "sp-externalities 0.31.0", - "sp-runtime-interface 33.0.0", - "sp-trie 42.0.1", + "sp-externalities 0.32.0", + "sp-runtime-interface 34.0.0", + "sp-trie 43.0.0", ] [[package]] name = "cumulus-primitives-storage-weight-reclaim" -version = "16.0.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c6c35f19b372c4c00d7a22a23ebabfadeb8504126fe289d9c48659c51de5032" +checksum = "6ec737a8e29197cd18753563c4cfb9781f59e8d61cb09457ddbe5848d532c287" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -4153,14 +4159,14 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "cumulus-primitives-utility" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d789447d17b81063f3c2277c70d009a5c2d54dd505c090485500dfa23d5e1895" +checksum = "8fba4e756351a8a660b7c7a992020aeadc5166110db25528598aaa0e9abc0e8d" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -4168,7 +4174,7 @@ dependencies = [ "pallet-asset-conversion", "parity-scale-codec", "polkadot-runtime-common", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -4176,18 +4182,20 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffc9d6ab662abed407a0f2737333daa653b647d3aa13c6693ccab7adcd0fc0f" +checksum = "ad6b2aa7f52ef4fa25e2c1b7aafe0a54645fa09e4d55ea4462038054c45217da" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives", "sp-consensus-babe", - "sp-core 39.0.0", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", - "sp-trie 42.0.1", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-keyring", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", + "sp-trie 43.0.0", ] [[package]] @@ -4774,9 +4782,9 @@ checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" [[package]] name = "emulated-integration-tests-common" -version = "28.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aea312b5aad3da2049a43afe0952262cc19b45e0d34bdd9ef9b9bd2d409103b5" +checksum = "dbb1c0c2f85261947781e01b91eeb883e919a3b4d780ca87c00c7bc282ce042d" dependencies = [ "asset-test-utils", "bp-messages", @@ -4805,9 +4813,9 @@ dependencies = [ "sp-authority-discovery", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-keyring", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -4833,9 +4841,9 @@ dependencies = [ [[package]] name = "encointer-balances-tx-payment" -version = "21.1.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e53308613972a1558c2a0957aa567ae8b2bcc1552878dcb73c42c4714a42e52e" +checksum = "0d1e93c3b9a5fb572c4f94338e75a8c6d1823fabb4bd96c79fde0327e581e51f" dependencies = [ "encointer-primitives", "frame-support", @@ -4845,31 +4853,31 @@ dependencies = [ "pallet-encointer-balances", "pallet-encointer-ceremonies", "pallet-transaction-payment", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "encointer-balances-tx-payment-rpc-runtime-api" -version = "21.1.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96d3391f88cd5302faa4358c6a7b7a206cfa9d270eee1f1ccf25c612753be0c" +checksum = "99833c6a64a27a8805c88bb1468511891d0bbf5d75e7c42b663083f5a003eaf6" dependencies = [ "encointer-primitives", "frame-support", "parity-scale-codec", "scale-info", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-std", ] [[package]] name = "encointer-ceremonies-assignment" -version = "21.1.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bc13dd8ad24344af61546aeab7c5dcb1f6300e7fc540361d74e5de12e8fdc9" +checksum = "e53bad26bba8b9e8b90f0e3b4fe1e914c8d8603a45defbb4fc1e5f41e0babb36" dependencies = [ "encointer-primitives", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] @@ -4885,7 +4893,7 @@ dependencies = [ "kusama-emulated-chain", "parachains-common", "polkadot-parachain-primitives", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-keyring", "staging-xcm", "staging-xcm-builder", @@ -4912,7 +4920,7 @@ dependencies = [ "parachains-common", "parity-scale-codec", "polkadot-runtime-common", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-tracing", "staging-kusama-runtime", "staging-xcm", @@ -4992,19 +5000,19 @@ dependencies = [ "scale-info", "serde_json", "smallvec", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", "sp-tracing", "sp-transaction-pool", - "sp-version 43.0.0", + "sp-version 44.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -5016,23 +5024,23 @@ dependencies = [ [[package]] name = "encointer-meetup-validation" -version = "21.1.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a549aa7ef9e10aa917f647eb6af719a12277810ffde4a6b790c8b177937af01" +checksum = "0d186334c330f8ab6f62ff49126850959893e179d1319e86048f8643f1f053c9" dependencies = [ "encointer-primitives", "parity-scale-codec", "scale-info", "serde", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "encointer-offline-payment-core" -version = "21.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e53c52903f9f334c04858f985328309c365f1fade8886da74e87c41a5b9b68" +checksum = "406cf8579c72065c9d415da0de9755ad6f0ea5b3f415dbf800bdcebe4ac0750b" dependencies = [ "ark-bn254 0.4.0", "ark-crypto-primitives", @@ -5048,9 +5056,9 @@ dependencies = [ [[package]] name = "encointer-primitives" -version = "21.5.1" +version = "22.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "553e7b2684575a4989bb42924de5ea8f6ff24f2d6e50cd569847bef699640499" +checksum = "78994f88d65ec4168153e8ce79eba318888e705ba629af8bab4b9c8204600c02" dependencies = [ "bs58", "crc", @@ -5060,9 +5068,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "substrate-geohash", ] @@ -5158,9 +5166,9 @@ checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] name = "ep-core" -version = "21.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55f5b032fcc64c663904e78e5fceda806f2bd1dc01f036c23d6153ee12e75f46" +checksum = "9e98bc0ac89a5449af5e82c2010d47d82b4bcea513b2d5587237804f5397e4cd" dependencies = [ "array-bytes 6.2.3", "impl-serde", @@ -5168,8 +5176,8 @@ dependencies = [ "scale-info", "serde", "sp-arithmetic", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-std", "substrate-fixed", ] @@ -5228,9 +5236,9 @@ dependencies = [ [[package]] name = "ethereum-standards" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5bb19a698ceb837a145395f230f1ee1c4ec751bc8038dfc616a669cfb4a01de" +checksum = "b156dce6f705a22ab532719e50ff5f7b3fe449b0f8bdeecc515436bf3a435446" dependencies = [ "alloy-core", ] @@ -5484,9 +5492,9 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" -version = "45.0.3" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f3226faf3dbf5311c1ab352850d680f487f4f675c4590b1c905572b0de611df" +checksum = "66bd6676f15dc0918f449d22531c31a266a3aefb28bbfa14635eb6b985baa2a0" dependencies = [ "frame-support", "frame-support-procedural", @@ -5497,13 +5505,13 @@ dependencies = [ "paste", "scale-info", "serde", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-runtime-interface 33.0.0", - "sp-storage", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-runtime-interface 34.0.0", + "sp-storage 23.0.0", "static_assertions", ] @@ -5551,9 +5559,9 @@ dependencies = [ [[package]] name = "frame-election-provider-support" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6c5549782e1b6e601405795d9207119ff22f9117e1aef20b93fd4a43c6516fb" +checksum = "1814d5380a301e46371abfafd1927cc721f5f98fd21ec2547c0d241667779545" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -5561,17 +5569,17 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-arithmetic", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-npos-elections", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "frame-executive" -version = "45.0.1" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7110e75b540e49ebf54e368e8117c8bf25109a1eb619890c55715093f1a1e04f" +checksum = "6a22fff27d1dce5cb80df8d4dbfc2df6bcfdf7adae7b8db499e7ac66dc906e7d" dependencies = [ "aquamarine", "frame-support", @@ -5580,9 +5588,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-tracing", ] @@ -5600,9 +5608,9 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70b849ff6fbe4e7e238293bf42bacbdcd9aaed4b2d98aec204de6fc221f74638" +checksum = "dc9522fcf64f45004d010a9eb7c21f9854706cfc545856f33f932cd57295bbcf" dependencies = [ "array-bytes 6.2.3", "const-hex", @@ -5612,37 +5620,37 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "frame-remote-externalities" -version = "0.56.0" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4f255661e5c192322b4425dcbae944f17fa007180109804b63e944472dc41a" +checksum = "6330157acc219f40f1d9c97297f09103e56b82136181e9dc73fb7fc8a3fc5f83" dependencies = [ "futures", "indicatif", "jsonrpsee", "log", "parity-scale-codec", + "rand 0.8.5", "serde", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-crypto-hashing", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", "spinners", "substrate-rpc-client", "tokio", - "tokio-retry", ] [[package]] name = "frame-support" -version = "45.1.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ac9c3d0a7e3669bfcd1d549bcbeae941fd0181aea9edc71447f8d785b567de" +checksum = "58bd7bff9c84759703668a6ec351aeba64be74873ed5ceb73e0c968b7ce8ed99" dependencies = [ "aquamarine", "array-bytes 6.2.3", @@ -5661,30 +5669,30 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-arithmetic", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-crypto-hashing-proc-macro", - "sp-debug-derive", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", + "sp-debug-derive 15.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", "sp-metadata-ir", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-staking", - "sp-state-machine 0.49.0", + "sp-state-machine 0.50.0", "sp-std", "sp-tracing", - "sp-trie 42.0.1", - "sp-weights", + "sp-trie 43.0.0", + "sp-weights 34.0.0", "tt-call", ] [[package]] name = "frame-support-procedural" -version = "36.0.0" +version = "37.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916d7474058f97fe1d6fc66c43c9891eeaed47e694cdd1aba8ec0f551cabca27" +checksum = "b63a57674ed6e5579b572ecae8729119d4cf05cd6ad0899f191523e1725b7254" dependencies = [ "Inflector", "cfg-expr", @@ -5727,9 +5735,9 @@ dependencies = [ [[package]] name = "frame-system" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c883a6b18af7be0fc756f8221927e9a58bbe3d3f950de1f5d377af9fbdcdcac" +checksum = "c9022562dcaec04a63a2b50502fd0feb831d618e7473f1f592b43d2d3362b857" dependencies = [ "cfg-if", "docify", @@ -5738,49 +5746,49 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-version 43.0.0", - "sp-weights", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-version 44.0.0", + "sp-weights 34.0.0", ] [[package]] name = "frame-system-benchmarking" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ef073183476960babf0c7e5a169375c9698709b407c7beedb6c2dc8690d73f" +checksum = "a6770d24bb43ae51d462c27f6e8a82c0c8de297841b30365facf0810fea7693c" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "frame-system-rpc-runtime-api" -version = "40.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8405cc4c9564cd87521065b7607a85a2a56bfab2c6f12afdf3df32c4da66f804" +checksum = "b17f28882e9930e6ec29450b6e1c38d6e9df95cbb80340e8fd5f09cee070b3da" dependencies = [ "docify", "parity-scale-codec", - "sp-api 40.0.0", + "sp-api 41.0.0", ] [[package]] name = "frame-try-runtime" -version = "0.51.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1745c6b30778a7c5aa682b87e59d6c0f6f1b00087cb4861f7ecd22fcda17f0" +checksum = "e78325d2dc4f425b2da921df6904b2703c64bb725fcee8738c33367364563824" dependencies = [ "frame-support", "parity-scale-codec", - "sp-api 40.0.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -5792,6 +5800,16 @@ dependencies = [ "autocfg", ] +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "funty" version = "2.0.0" @@ -6067,17 +6085,17 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde_json", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-block-builder", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", - "sp-storage", + "sp-storage 23.0.0", "sp-transaction-pool", - "sp-version 43.0.0", + "sp-version 44.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -6111,7 +6129,7 @@ dependencies = [ "pallet-xcm", "parity-scale-codec", "people-kusama-runtime", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "staging-kusama-runtime", "staging-xcm", ] @@ -6132,7 +6150,7 @@ dependencies = [ "parity-scale-codec", "polkadot-runtime", "polkadot-system-emulated-network", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", ] @@ -6826,7 +6844,7 @@ dependencies = [ "rtnetlink", "system-configuration 0.6.1", "tokio", - "windows", + "windows 0.53.0", ] [[package]] @@ -7510,7 +7528,7 @@ dependencies = [ "sp-authority-discovery", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 39.0.0", + "sp-core 40.0.0", "staging-kusama-runtime", ] @@ -7540,10 +7558,10 @@ dependencies = [ "polkadot-runtime-common", "scale-info", "smallvec", - "sp-core 39.0.0", - "sp-runtime 45.0.0", - "sp-trie 42.0.1", - "sp-weights", + "sp-core 40.0.0", + "sp-runtime 46.0.0", + "sp-trie 43.0.0", + "sp-weights 34.0.0", "staging-xcm-builder", ] @@ -7570,6 +7588,16 @@ dependencies = [ "smallvec", ] +[[package]] +name = "kvdb-memorydb" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" +dependencies = [ + "kvdb", + "parking_lot 0.12.5", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -8018,7 +8046,7 @@ dependencies = [ "thiserror 1.0.69", "tracing", "yamux 0.12.1", - "yamux 0.13.8", + "yamux 0.13.10", ] [[package]] @@ -8179,16 +8207,16 @@ dependencies = [ "url", "x25519-dalek", "x509-parser 0.17.0", - "yamux 0.13.8", + "yamux 0.13.10", "yasna", "zeroize", ] [[package]] name = "litep2p" -version = "0.13.0" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68ba359d7f1a80d18821b46575d5ddb9a9a6672fe0669f5fc9e83cab9abd760" +checksum = "cbf3924cf539a761465543592b34c4198d60db2cda16594769edd43451e5ab41" dependencies = [ "async-trait", "bs58", @@ -8200,6 +8228,7 @@ dependencies = [ "futures-timer", "hickory-resolver 0.25.2", "indexmap 2.13.0", + "ip_network", "libc", "mockall", "multiaddr 0.17.1", @@ -8228,7 +8257,7 @@ dependencies = [ "url", "x25519-dalek", "x509-parser 0.17.0", - "yamux 0.13.8", + "yamux 0.13.10", "yasna", "zeroize", ] @@ -8272,6 +8301,25 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +[[package]] +name = "lz4" +version = "1.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4" +dependencies = [ + "lz4-sys", +] + +[[package]] +name = "lz4-sys" +version = "1.11.1+lz4-1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "mach2" version = "0.4.3" @@ -8391,6 +8439,15 @@ dependencies = [ "rustix", ] +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + [[package]] name = "memmap2" version = "0.9.9" @@ -8817,6 +8874,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "ntapi" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" +dependencies = [ + "winapi", +] + [[package]] name = "nu-ansi-term" version = "0.50.3" @@ -9130,19 +9196,19 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 44.0.0", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-application-crypto 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-staking", "sp-std", ] [[package]] name = "pallet-alliance" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2324da9a9e139327b11d6468c5b4d20ea2dbaea2b01e6d0c488d96f4323d713" +checksum = "128ea14a9be9cfc74737743f005e1b5cbafe3a3c326a8f4993bbca7ed6bcb142" dependencies = [ "array-bytes 6.2.3", "frame-benchmarking", @@ -9153,17 +9219,17 @@ dependencies = [ "pallet-identity", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-crypto-hashing", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-asset-conversion" -version = "27.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e513b0bc7ca5df600338c2f2972560bce1cce5996837ff33f4e86832681dd4" +checksum = "ea2931507a1c898b9acb65a6f280b85fda587d9a95055b242b95d2c159eef8e4" dependencies = [ "frame-benchmarking", "frame-support", @@ -9171,18 +9237,18 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-asset-conversion-tx-payment" -version = "27.0.1" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a718a6b19c51a5461897ee048b7d9ae4740c8c68ca0e8fbacf22f4e80fa86d6f" +checksum = "c53ac40c78c89b4b7c73b0dcbe03790f948c2c6f65675808fa693c2e1e109da0" dependencies = [ "frame-benchmarking", "frame-support", @@ -9191,29 +9257,29 @@ dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-asset-rate" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4c9324c5c5ca4b6409790e7b37e6f169050992ff89f33bd78284ed33cf8f4f" +checksum = "c551c9a03e2a8389171e9efabfe37c421bbec22eeb706f95cdc4c23ba94102ef" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-asset-tx-payment" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19cebd6f5415921af519d95b1fa18026d5b6b4935d6c70f1989958510e0c36df" +checksum = "f17b766267805b9679066c0f608ee4c05275bcceb9a210781f5d88218a5a0dd2" dependencies = [ "frame-benchmarking", "frame-support", @@ -9222,15 +9288,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-assets" -version = "48.1.0" +version = "49.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe32957ed431e041d4a5f6a964d2a385a4b7d27d22881c77d18fbd3971bf605c" +checksum = "ab1506f9545c241abb7ec37bb6be581a4dcad3266c0bd9ad2430d08f5dad105d" dependencies = [ "frame-benchmarking", "frame-support", @@ -9239,15 +9305,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-assets-holder" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bc2b2b6b79d04434b827dc7ad9ee1bc984dff48a28644cdafa901579876782b" +checksum = "aad58bcf29d9475e363e03068181508678c6af8c5a86cea549281d89d96af2e2" dependencies = [ "frame-benchmarking", "frame-support", @@ -9256,26 +9322,38 @@ dependencies = [ "pallet-assets", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-assets-precompiles" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e0d360a50b3b946c9fdd738ac2206954cfccfa763ed907968bde68ba295d31" +checksum = "1b3e5bfb7ab1cc53e4682aa01ec1942c96b5148f3f9eca7698561a60b406e6b9" dependencies = [ + "const-crypto", "ethereum-standards", + "frame-benchmarking", "frame-support", + "frame-system", + "k256", + "log", "pallet-assets", "pallet-revive", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "staging-xcm", ] [[package]] name = "pallet-aura" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb444f29c9df8a1ea89b4c8b6a026a119b13e5f55fff8c6901103ec8de2a6ad8" +checksum = "1f7f6e0f4710b9ce1bfa7473624987365550b718eef6b7ab2f8daf807a08d38f" dependencies = [ "frame-support", "frame-system", @@ -9283,46 +9361,46 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 44.0.0", + "sp-application-crypto 45.0.0", "sp-consensus-aura", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-authority-discovery" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d565050d67bc7755e99e744d9b767fa648464f5610717834641eab2f5ee6d81" +checksum = "83d498704709f9870a705c628fa67eaad6f0cb38cc29d9fb10d247a203220259" dependencies = [ "frame-support", "frame-system", "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto 44.0.0", + "sp-application-crypto 45.0.0", "sp-authority-discovery", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-authorship" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b29d985ace541bb49bc34c955fa83103cfff6c661d4865fd7698521b0f596cb9" +checksum = "b0a0d099dbcb0bbb6b1a23c0eabc7b9055470b1455026206a590c3da2d5040b5" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-babe" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f02265869cfa317bca14fb2511d3de4e910a55e7748454009273b79206e3e16" +checksum = "be9a4b98fd0ae83cddfcbe07c578627f7033612692e2f18894a4d912d5b3970e" dependencies = [ "frame-benchmarking", "frame-support", @@ -9333,20 +9411,20 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 44.0.0", + "sp-application-crypto 45.0.0", "sp-consensus-babe", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-session", "sp-staking", ] [[package]] name = "pallet-bags-list" -version = "44.0.1" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc37f29bec2f5542ee709b9eca37aaf85641c1473288ceb4e0b4a66eb80defe5" +checksum = "295631cecc1a2c3b145093f56b4f695c61ba1c0080d79585474ae548dea8b6d9" dependencies = [ "aquamarine", "docify", @@ -9358,17 +9436,17 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-tracing", ] [[package]] name = "pallet-balances" -version = "46.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1a8216eaf2a90707d761856ea3d7e31d9be8781ca44a5ec668e00be5e404698" +checksum = "5355bbb74a9c34990c1d2a4c5dde0effaef9410eef0b587868651bd38cb6f013" dependencies = [ "docify", "frame-benchmarking", @@ -9377,15 +9455,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-beefy" -version = "46.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55697c95e26cc005080334f65efcd46f9a03bfce3e44512df7f0416b6c67bab" +checksum = "876778433cf31f594941fddfa7feff41a450c807dea6b7dd07250fbc46c9aa94" dependencies = [ "frame-support", "frame-system", @@ -9396,16 +9474,16 @@ dependencies = [ "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", "sp-staking", ] [[package]] name = "pallet-beefy-mmr" -version = "46.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91f8b06357b7b5c2697afb8906f02a086932c69087c23702dbcb57699250da5f" +checksum = "fbaf84716f631c8285313cd1ca0d3318ddab1ba9be166ba7bbdb9436a08123fe" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -9419,19 +9497,19 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-consensus-beefy", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", ] [[package]] name = "pallet-bounties" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1856b3515f12225165567a3635c69321a3b049faf7cbf71114fe39055152e3f9" +checksum = "3639d43b5295d2d3be0e02d3dc679ee209684259115614efd3fbbfe5965d5f7b" dependencies = [ "frame-benchmarking", "frame-support", @@ -9440,16 +9518,16 @@ dependencies = [ "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-bridge-grandpa" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d4ab67e13e0d425701d0128effaa032de9259276b8d7a82a723291cd633a52" +checksum = "bf6669b402e42b85cfc79e34cde930efc9c04d8de890242a5bae7beedd3d7f3a" dependencies = [ "bp-header-chain", "bp-runtime", @@ -9460,16 +9538,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-consensus-grandpa", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", "tracing", ] [[package]] name = "pallet-bridge-messages" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94ead2c9807e86c22ce8786a0ddaa078aa33bfba91011aaac60e070b84d11904" +checksum = "14f084430b08021bf1637f738d4af38c7fc30e4fab91e3b1017233998cc20e70" dependencies = [ "bp-header-chain", "bp-messages", @@ -9479,17 +9557,17 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", - "sp-trie 42.0.1", + "sp-trie 43.0.0", "tracing", ] [[package]] name = "pallet-bridge-parachains" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b7083c88782402587b8666ddf987c477cea1cf03bbd134b4b0054c7b471a9d2" +checksum = "2ef5c7c7f9caa7eb5b1d0d1a6b66e894b86e846996fbade13eccab10338b966e" dependencies = [ "bp-header-chain", "bp-parachains", @@ -9501,16 +9579,16 @@ dependencies = [ "pallet-bridge-grandpa", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", "tracing", ] [[package]] name = "pallet-bridge-relayers" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420b5f4d6e479d6454c1ac860aa2338b738844332f34ecc234afae4859ea8294" +checksum = "5b847f6d87519cfe5d1a337ae89ceaeddf60fdc7de4a1d9b4e75545ac9902107" dependencies = [ "bp-header-chain", "bp-messages", @@ -9526,15 +9604,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-arithmetic", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "tracing", ] [[package]] name = "pallet-broker" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b8fbceb96d0e45d055c5fab2f9e1746c63f2f7272e6428a7357ea2b57c1d475" +checksum = "0e9e25d33a8e04c937a63973ed62feb954983bc6a840ec753bfdedf0ec4b8ef8" dependencies = [ "bitvec", "frame-benchmarking", @@ -9543,17 +9621,17 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-arithmetic", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-child-bounties" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d679941857b5b9d56c4c3a3343f284bec16cc9bab9713046dfc5390390822f5e" +checksum = "b8b9fc6c3957593caf8c57146dcc8231d0312a573cf321e490b89e1973f8a835" dependencies = [ "frame-benchmarking", "frame-support", @@ -9563,17 +9641,18 @@ dependencies = [ "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-collator-selection" -version = "26.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4befae2c37f2acc10181504ffcf7d1c6ec8c285cc593789f14c1c0d4b6ac326b" +checksum = "a5be380e91c82484852901035c9ed7d63f00ba3de599b349b72f35c820aac9a3" dependencies = [ + "cumulus-pallet-session-benchmarking", "frame-benchmarking", "frame-support", "frame-system", @@ -9584,15 +9663,15 @@ dependencies = [ "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-staking", ] [[package]] name = "pallet-collective" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6ab7b91882b9cceeda0efd67259ff18cac710272b21df801e014d15bbe0fe3" +checksum = "1257bd27a7c31bf8df9ec287bf1980e08e9ee4a36f934ff1fecf143bc8aa08f8" dependencies = [ "docify", "frame-benchmarking", @@ -9601,16 +9680,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-conviction-voting" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c21787730ec39818943b4572ea9cbff684e0e4de0ba1b4539798909bba6409" +checksum = "68557a6e7a42a3fb096d2200ce15ef0935b74c4a2a2a48187abde110a60c7537" dependencies = [ "assert_matches", "frame-benchmarking", @@ -9619,15 +9698,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-core-fellowship" -version = "29.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ab014dcb58bf2b45f8fc9026705a5e29ba1ce7e3661ff3b8d150f454dff715" +checksum = "492aee18ab50e5d8c6cb1969479426ce830cf6842db65d38469f477cc4bc1f3f" dependencies = [ "frame-benchmarking", "frame-support", @@ -9637,16 +9716,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-dap" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c49c6333a1b6a9dd43c8071a53ae699679b25a470806be2fbed8ce8752e686" +checksum = "79c0059e495cf1e7d3f77a1f680a2b4a452f3bab89e4eab89d1c7c42dd3f9e42" dependencies = [ "frame-benchmarking", "frame-support", @@ -9654,30 +9733,30 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-delegated-staking" -version = "12.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65f725f8a8bbfae5889ef2ba555bda8db328c0c09b2a4f74e97b2db7e7e2ef8e" +checksum = "0432d5b33a8b00f88229c18ad84547797b0c0e538a2aa6d34cc118f6d54786d4" dependencies = [ "frame-support", "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-staking", ] [[package]] name = "pallet-election-provider-multi-block" -version = "0.6.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0e88ad48e53aa24847619741c3f70a975f3ae697f46c8a2a2bea0df0830d" +checksum = "0f267adfd1f386b670f6fce3d5be308645b5e333103faf95770a2e1d1c955684" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9688,18 +9767,18 @@ dependencies = [ "rand 0.8.5", "scale-info", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", "sp-npos-elections", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "pallet-election-provider-multi-phase" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b841380ef768f88682f57c3c1aa999b9eb81003f85f6d543e5885d0b187d48d" +checksum = "2b82f6781107c0cbedc313ec57cc38f7a463a6645aaa08f9865c670204525d41" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9710,32 +9789,32 @@ dependencies = [ "rand 0.8.5", "scale-info", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", "sp-npos-elections", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "strum 0.26.3", ] [[package]] name = "pallet-election-provider-support-benchmarking" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa0e6c661d48cc7fa8a6e3b6c85d4ac8a44aaf352d16b5305152ae3d872297b" +checksum = "3626c21e39f4f430e55253090ec68ca88611cf046818cab957b8ae82503864dc" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-system", "parity-scale-codec", "sp-npos-elections", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-encointer-balances" -version = "21.2.1" +version = "22.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ac9dc0d5c390043ec19bcd615a614a37e751ad2bdf6e315739cb33e89ec95b" +checksum = "b4ebd354348e677deb20770e1df55a3c65d98ed6273334f56089626182fba5aa" dependencies = [ "approx", "encointer-primitives", @@ -9747,15 +9826,15 @@ dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "pallet-encointer-bazaar" -version = "21.1.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c525efebaa2c178dbeacf9bd22e7e95f855e71c583b62cbbfd9a01d9de372f7" +checksum = "2c2312748b5ff113e512192de88ba349c3fcdede06ec66d728ec3f4117dd0fa5" dependencies = [ "encointer-primitives", "frame-benchmarking", @@ -9765,28 +9844,28 @@ dependencies = [ "pallet-encointer-communities", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-std", ] [[package]] name = "pallet-encointer-bazaar-rpc-runtime-api" -version = "21.1.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aaca960a508fed3e055375f4ec8e16d693459ad816d766d6940defceb331361" +checksum = "62779af280408f4cb76ad45ccc5ead7fbdaf33c2f354f0ce3c9ebf8202fd0eaf" dependencies = [ "encointer-primitives", "frame-support", "parity-scale-codec", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-std", ] [[package]] name = "pallet-encointer-ceremonies" -version = "21.1.1" +version = "22.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ced697539fa8c8df42fcfb11e6a57f370f72f523769a0873bb2da99ca95023f" +checksum = "0e84473a7415e190db2ed54007d86373ec7995e3b2551d1ccc50b279a4371380" dependencies = [ "encointer-ceremonies-assignment", "encointer-meetup-validation", @@ -9801,31 +9880,31 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 44.0.0", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-application-crypto 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "pallet-encointer-ceremonies-rpc-runtime-api" -version = "21.1.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca220e4e02551647a4677ff4d18006659796276a07379810cc00737bbe1bfd6" +checksum = "e4ffea18bb4bdec13580fdc3118ce78fc4e3d85ed86e2b22aaa79e64280e2a99" dependencies = [ "encointer-primitives", "frame-support", "parity-scale-codec", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-std", ] [[package]] name = "pallet-encointer-communities" -version = "21.1.1" +version = "22.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5ad1eefe27b646902f8ecdcd97bd4fac7537b7e34922ccde0490d3975f12e20" +checksum = "d1bb30197ecf2221a12516446b6aeb60c98b220dc8a4c00c5fe64563a8027093" dependencies = [ "encointer-primitives", "frame-benchmarking", @@ -9836,28 +9915,28 @@ dependencies = [ "pallet-encointer-scheduler", "parity-scale-codec", "scale-info", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "pallet-encointer-communities-rpc-runtime-api" -version = "21.1.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc737d398d1fede8ff9c4adfa84b6271ad047b2de536ee9c1d42b2ff229da764" +checksum = "3c92b2b1231a0d52ba16a15522c547eb7d1d0c0de93b7684586ec5c06cdfdc43" dependencies = [ "encointer-primitives", "parity-scale-codec", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-std", ] [[package]] name = "pallet-encointer-democracy" -version = "21.7.1" +version = "22.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1730c52ba304b7a846ed92a2c515df3a8d76fcc3e164603d4d80c19c2011fa" +checksum = "cab592ca158d05135e047c09e0b224ece16844e044807169f7d1ecef0a2c6815" dependencies = [ "encointer-primitives", "frame-benchmarking", @@ -9872,18 +9951,18 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 44.0.0", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-application-crypto 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "pallet-encointer-faucet" -version = "21.2.0" +version = "22.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaacb3d88b09b5ad1049564c316e9c7cae7ef641e5977f02a56d3514a921fb6" +checksum = "3e71937874c908808084896ff9afc3114a5efbd9176b120ef8e4c6a15048cefe" dependencies = [ "approx", "encointer-primitives", @@ -9895,16 +9974,16 @@ dependencies = [ "pallet-encointer-reputation-commitments", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "pallet-encointer-offline-payment" -version = "21.0.1" +version = "22.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce659c769b955c405233c23c03f63b37ec1d74fd3ca54413a09db4c44e9cc20f" +checksum = "06ee56f605ed9be62b95a23bc66682988f6582c313273b18c276b141ebda5afe" dependencies = [ "ark-bn254 0.4.0", "ark-crypto-primitives", @@ -9926,17 +10005,17 @@ dependencies = [ "pallet-encointer-communities", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "pallet-encointer-reputation-commitments" -version = "21.1.1" +version = "22.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0929a4b83daa774db1fa602d08e14cb0e9597410d337ac2d2ceadbd7da16567c" +checksum = "fb95b4f13f86de4af668b1bfdcba43333d4b95730fb099a61a68f013b32b036b" dependencies = [ "approx", "encointer-primitives", @@ -9950,16 +10029,16 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "pallet-encointer-reputation-rings" -version = "21.0.1" +version = "22.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7a89f3b6d6a33a74732059dc2807d85617be6c8a7df2c582d4d244183d1dc54" +checksum = "ab71ccf27d531cc022fc5d84a412012dd971e83ce949507fb430dad39f1d8294" dependencies = [ "encointer-primitives", "frame-benchmarking", @@ -9971,17 +10050,17 @@ dependencies = [ "pallet-encointer-scheduler", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "pallet-encointer-scheduler" -version = "21.1.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "effc264a63780fafca8d73435568cee162fa11e2976c83908343d992e37eef76" +checksum = "f528b5954a38ce31118adb8181e60da817384e691c54a0de5f5cb2543cf09482" dependencies = [ "encointer-primitives", "frame-benchmarking", @@ -9992,15 +10071,15 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "pallet-encointer-treasuries" -version = "21.7.1" +version = "22.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a2060ca7bd02bb1dabeb070062c35c6facfeeb9a1a696ae3edd8b6f980a7045" +checksum = "6f967bd3c35cafd67d2426c0c1077b0e4520efd5e91d7c9aa1aff323e6896768" dependencies = [ "approx", "encointer-primitives", @@ -10014,30 +10093,30 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "pallet-encointer-treasuries-rpc-runtime-api" -version = "21.3.0" +version = "22.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dfb946aeca3cd3436e9633e2d300106119f1953c166cf914116aa8cb99faf25" +checksum = "529b200988e0c708e09607281f6db690f9d0c9ae43f3fe4b951beccada17e269" dependencies = [ "encointer-primitives", "frame-support", "parity-scale-codec", "scale-info", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-std", ] [[package]] name = "pallet-fast-unstake" -version = "44.1.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355110d0be6b3f0cd8c87171fd6658d3e9dd4c407ada9e63bfbf53e0cee85b75" +checksum = "1c4cdfddb1b7416ebf49a23d1a9fad8f810271f92734e64661b060a759a769eb" dependencies = [ "docify", "frame-benchmarking", @@ -10047,16 +10126,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-staking", ] [[package]] name = "pallet-glutton" -version = "31.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d886dca277f0a7e02d493cdae771378201f4965d6519ea16716e32338ebbbe2" +checksum = "d97db8b628c128d28fc7e466a6e41e66ca4be6c2b243cf635534a8fccef0a500" dependencies = [ "blake2 0.10.6", "frame-benchmarking", @@ -10065,17 +10144,17 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-grandpa" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fecc3218554b16baef5f794bd84e457f98bac1328f767571142228ab6e6ed4a4" +checksum = "3546e596001808dd1c371b5237a0f11a85679a98a861535de04f9d486a95722f" dependencies = [ "frame-benchmarking", "frame-support", @@ -10085,20 +10164,20 @@ dependencies = [ "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto 44.0.0", + "sp-application-crypto 45.0.0", "sp-consensus-grandpa", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-session", "sp-staking", ] [[package]] name = "pallet-identity" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27cd00175e352b8db01de8d9264b95012cc0a649897e77858ba7a559faa09704" +checksum = "8242eef9db0e5dfe182dd620a06de6a48e6abc9bb6b6fb6272e7d244ab67d8dd" dependencies = [ "enumflags2", "frame-benchmarking", @@ -10107,15 +10186,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-im-online" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9703332095a821815caae7085736a63fc217f0763c71ec4ee868c1b12264ad" +checksum = "d68d78e0ffa487644035898b71d00509da1cf606f5cbe425f4ccd36a6293edc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -10124,34 +10203,34 @@ dependencies = [ "pallet-authorship", "parity-scale-codec", "scale-info", - "sp-application-crypto 44.0.0", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-application-crypto 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-staking", ] [[package]] name = "pallet-indices" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd543689836e94eade78c20ac877b55899b13e1f5c8af6a3c99e39d42b9cb009" +checksum = "22e62bb6d6ef419bfaf2df2133a78711101cc7410b5f49220989f6be61553ec9" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-insecure-randomness-collective-flip" -version = "33.0.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a191f1a6c29b89d8683c9a0d07f3490b4489ebea3e63203dbe36872b725db5a7" +checksum = "15e38b42049e8fbd714eee88ae28ae837f30819701422d528fc3627f40ac9887" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10161,9 +10240,9 @@ dependencies = [ [[package]] name = "pallet-membership" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914e1b70cc37a302601d6157e75567b33ec917646e2ae5ed7d3bbe3403138aca" +checksum = "e7ffb8e1f27bd677260ca946a69cc100680f83224b2fcc825b602f5ca207a949" dependencies = [ "frame-benchmarking", "frame-support", @@ -10171,16 +10250,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-message-queue" -version = "48.0.0" +version = "49.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8550d6fdb56dc584c65ea32a3e27bc9840f67b29cca80ce7e74ee60df9e069bc" +checksum = "9f7500c07d99cec54c41b85aa20b82200d272f17a8052f1e5b814d0ea1b4cb58" dependencies = [ "environmental", "frame-benchmarking", @@ -10190,17 +10269,17 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-weights", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-weights 34.0.0", ] [[package]] name = "pallet-migrations" -version = "15.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16cd1a9369cca0dc787abdf396328dd9128b51a9c58c970052cfc4da5adb89" +checksum = "87f08c5d5f67497f2ac389ca0cf196f695cc9272d190754a98e844be2086bbd6" dependencies = [ "docify", "frame-benchmarking", @@ -10211,16 +10290,16 @@ dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-mmr" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7523cb0a62f8b6515df84c215e0d161a8426fcda904a04349e757fe15f394805" +checksum = "9eaf3976b788cd9b0bc2cf6fd122672d70d7355077c8a08eb6b38335445f17e2" dependencies = [ "log", "parity-scale-codec", @@ -10231,9 +10310,9 @@ dependencies = [ [[package]] name = "pallet-multi-asset-bounties" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec85c30618a85266b0f4e59e0d94c633421920e54e595d0bd25be39ea3d2a6bc" +checksum = "106394518f23f3cbbee6fb8496f927ac4e22481adfa3005d05dd7e25d5359638" dependencies = [ "docify", "frame-benchmarking", @@ -10242,16 +10321,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-multisig" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb5c61c65c78314405af4dd939e780f8ed107a2a3a6b660dc44efa5e1076f2cb" +checksum = "99f4771990e65dd266ffa755278ef5394f9146ecc57de84db72abf87eaac74d8" dependencies = [ "log", "parity-scale-codec", @@ -10261,9 +10340,9 @@ dependencies = [ [[package]] name = "pallet-nft-fractionalization" -version = "29.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b273ef43eaebfa201acbf838ec50edab2af47a3e287de48faf328a50b91bb8d" +checksum = "3001113ffda18314eae0e46da5b5904e315457482bee1a9f04ba2bccc9cdbb3e" dependencies = [ "log", "pallet-assets", @@ -10275,9 +10354,9 @@ dependencies = [ [[package]] name = "pallet-nfts" -version = "39.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193b5079a454f3f3e4c878ae8ad2e90136c67364fe92ed1cda9a6ad156f7e304" +checksum = "dfafe97bf97edef49c7deeee2a9cc30c91cc7eb5cc4a00624679133b85646e00" dependencies = [ "enumflags2", "frame-benchmarking", @@ -10286,26 +10365,26 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-nfts-runtime-api" -version = "30.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb0eeb454e3fcd1f5eb8db470834d309d2dc66550082a0803b17459c830da4f1" +checksum = "4bbc195178ec15d0a72786514c1a89b657c97678224622452f5208173e7e07af" dependencies = [ "parity-scale-codec", - "sp-api 40.0.0", + "sp-api 41.0.0", ] [[package]] name = "pallet-nis" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d60103fb001193d1e73cd75213739aab33cc3208f676f0efa2bfc1df6b7dd56d" +checksum = "7f6289edaf6458109179ba2e818598d93b17c124922a336c69731169cae162d2" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10314,9 +10393,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" -version = "43.1.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483e794532aaa7af4dbff671e4aff1d08a86a7b80ffdab6f824f613947cd5281" +checksum = "4a375e8c211bb6a462a8c2c47d8b973606a2b1ed34645f92644488338ceecceb" dependencies = [ "frame-support", "frame-system", @@ -10324,18 +10403,18 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-staking", "sp-tracing", ] [[package]] name = "pallet-nomination-pools-benchmarking" -version = "43.0.1" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde9cb6c00dd2764e23541977d95ad3fccd450a275bbc7d6c2f257c230d4001a" +checksum = "cafb18bc6da561bdfc5af68e35ca32fe83c839d2e5ec8b99d457c8c59b6b48df" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10347,27 +10426,27 @@ dependencies = [ "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", - "sp-runtime-interface 33.0.0", + "sp-runtime 46.0.0", + "sp-runtime-interface 34.0.0", "sp-staking", ] [[package]] name = "pallet-nomination-pools-runtime-api" -version = "41.0.0" +version = "42.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5e99265cecc6dec385dc7e0292ee994c12483708ebcffb05164037bb937c8c" +checksum = "15ccfa965ce321dc7e826c70cc4ad9ee7ad2cd3bda1d8650a491de45d1c6383f" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", - "sp-api 40.0.0", + "sp-api 41.0.0", ] [[package]] name = "pallet-offences" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb7029dda1eb76c25cad8323b217b24021fdd103bdb10d66bd2376008ac95a1f" +checksum = "a7ed8f1dd97a4e2246c5c9bf5cf394c3b725396ad0d514340af37b798b68599b" dependencies = [ "frame-support", "frame-system", @@ -10375,15 +10454,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-staking", ] [[package]] name = "pallet-offences-benchmarking" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef85a73086dd5a4f5f845fcdf3c6170d247528e18ec5b7022b0b8cdda2a8f0b" +checksum = "1cf64ff1b8f5237ddd8e937212ff5d1371f93de8f2efb33529782a001b8a528c" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10396,18 +10475,19 @@ dependencies = [ "pallet-im-online", "pallet-offences", "pallet-session", + "pallet-session-benchmarking", "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-staking", ] [[package]] name = "pallet-parameters" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d65e700108d3a80361fef0ce3feb6f916f2e7f5514bb9695ea96bac444f0a0" +checksum = "ef9959e3c17e4c90e7810c1af0bba1e871f272a266ebed85c8397eab0938660d" dependencies = [ "docify", "frame-benchmarking", @@ -10417,15 +10497,15 @@ dependencies = [ "paste", "scale-info", "serde", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-preimage" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2d614776ca7e0411dd2d1a6cba525d389b4d81c4595a82db3f9d697bedfd367" +checksum = "e06841a0fa11ecc0c8bf1ad4a5ffc938732ec1a953665b3b2222a66889636977" dependencies = [ "frame-benchmarking", "frame-support", @@ -10433,16 +10513,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-proxy" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c105e47d4eedf14e4df1748c9e565494f5ad13b325ca288207838c4f2fb4defc" +checksum = "09ecf8ad569c664330c6b20fe08aefab6f5c0635760c357cc74cfab1d2d472ac" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10451,9 +10531,9 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ea0209ecadc9a8b93d5d9a93ad1fd9abd760542892d833e199b40144725406d" +checksum = "2988271aadcd2995534a982f59c7492c6d6821969b7e7e5ba784383ef98e2a98" dependencies = [ "frame-benchmarking", "frame-support", @@ -10463,9 +10543,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -10511,10 +10591,10 @@ dependencies = [ "polkadot-runtime-parachains", "scale-info", "serde", - "sp-api 40.0.0", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-staking", "sp-std", "staging-xcm", @@ -10524,9 +10604,9 @@ dependencies = [ [[package]] name = "pallet-recovery" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff0e74f1f04c59885cb421ec85225135c63ee793d60411fdb36adfe2518ee1e9" +checksum = "92c12c1ebdef8c9928b298b05d6c63d47b3e75a12974133f650a05aa64e845f5" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10535,9 +10615,9 @@ dependencies = [ [[package]] name = "pallet-referenda" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71ae4df35eb4e9f9183ad1a81842f0f74281d02cdd7fa512cbdb51bbbd9acca5" +checksum = "68e3e46d58a50449a2a807ec1aa691da6f2b097662509bb7db69c75fcefdad63" dependencies = [ "assert_matches", "frame-benchmarking", @@ -10548,8 +10628,8 @@ dependencies = [ "scale-info", "serde", "sp-arithmetic", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -10566,18 +10646,18 @@ dependencies = [ "pallet-utility", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", - "sp-trie 42.0.1", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", + "sp-trie 43.0.0", ] [[package]] name = "pallet-revive" -version = "0.12.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d209de33787726aec35a90e9d793c85a170303f9b76aa94d758b869d8262d4fb" +checksum = "f7d2952877d5334961e9fb5935b37112334e455b0e7802a0f417e7123eb179d0" dependencies = [ "alloy-consensus", "alloy-core", @@ -10603,8 +10683,8 @@ dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "paste", - "polkavm 0.30.0", - "polkavm-common 0.30.0", + "polkavm 0.31.0", + "polkavm-common 0.31.0", "rand 0.8.5", "rand_pcg", "revm", @@ -10613,42 +10693,42 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-arithmetic", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-slots", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-version 43.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-version 44.0.0", "substrate-bn", - "subxt-signer 0.43.0", + "subxt-signer", ] [[package]] name = "pallet-revive-fixtures" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cbc006536339cbfc059bb35714f460c2d480276db2e37e7729d598d9739639a" +checksum = "49e3c6c4a57034fdf13d20aed456a2d5c09f7fd564bebf766939c155edecd17f" dependencies = [ "alloy-core", "anyhow", "cargo_metadata", "hex", "pallet-revive-uapi", - "polkavm-linker", + "polkavm-linker 0.30.0", "serde_json", - "sp-core 39.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", "toml 0.8.23", ] [[package]] name = "pallet-revive-proc-macro" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5168bf2cfdd1307b832fedda9a48cab3ce56056e532e9407aba48657a7617c13" +checksum = "54d78626aaf92f2c5bd0e25f97a16815753e8e2e3328677986564b4155db7667" dependencies = [ "proc-macro2", "quote", @@ -10657,9 +10737,9 @@ dependencies = [ [[package]] name = "pallet-revive-uapi" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2000264018fdde239d46e9dbdcf881f633eeca2341c713b181380db59319aa3a" +checksum = "0b6fbad22d6e4ae82c0a1c1335eb2b5f05fda2eaca4cdb732ec2bf354628c9bf" dependencies = [ "alloy-core", "bitflags 1.3.2", @@ -10673,9 +10753,9 @@ dependencies = [ [[package]] name = "pallet-salary" -version = "30.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b656e0a06f7c64042a3ba261567e7df92885b860886f3a1b283e7246201c5a22" +checksum = "3e20b19635e007cf03fc673f85c04ef03baf691711962f5c88afee975b2a9a28" dependencies = [ "log", "pallet-ranked-collective", @@ -10686,9 +10766,9 @@ dependencies = [ [[package]] name = "pallet-scheduler" -version = "46.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8ca0d512d335163b7d6d8d21534a849e9efe82ec1b0a6b7884cba56756135c" +checksum = "6842877ee48d5256ba0ac42728abea828f78a7010304a0d74d4787c3e74deda8" dependencies = [ "docify", "frame-benchmarking", @@ -10697,16 +10777,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-weights", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-weights 34.0.0", ] [[package]] name = "pallet-session" -version = "45.2.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03d39362f12857e78d799689c68a9ac286013e121dbf51bbc8342800285efed0" +checksum = "714f6a0f4113534ac0be5e8800c469ed456b22d892ba18af81e630d4dcf88f51" dependencies = [ "frame-support", "frame-system", @@ -10716,20 +10796,20 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-session", "sp-staking", - "sp-state-machine 0.49.0", - "sp-trie 42.0.1", + "sp-state-machine 0.50.0", + "sp-trie 43.0.0", ] [[package]] name = "pallet-session-benchmarking" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e07f8b3161092a067a633a03f0cc2a6cb2387ac7c4306be7ff8c66b6edebbe1" +checksum = "f98fa0794eb98a03998a8b277d110f594705d8d7aaadc062be1b15fad58050e0" dependencies = [ "frame-benchmarking", "frame-support", @@ -10738,15 +10818,15 @@ dependencies = [ "pallet-staking", "parity-scale-codec", "rand 0.8.5", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", ] [[package]] name = "pallet-society" -version = "45.1.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb738526ccaf243513c4d93879bfdcfacae3c8c482c0c7107bc84567fb6a539" +checksum = "7251a40722315651fe4fcedf947eff079eb5b28556d83daa92da6ce3d1acb958" dependencies = [ "frame-benchmarking", "frame-support", @@ -10756,15 +10836,15 @@ dependencies = [ "rand_chacha 0.3.1", "scale-info", "sp-arithmetic", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-staking" -version = "45.1.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e13e8ac070c030c2502bf36500c69d0d1d559db62573eabc81f2614e32d352c" +checksum = "aef03a7c7078ffe2760fa937244d8c0b7bab7bd3562a0b7052488042c01e0044" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10777,43 +10857,42 @@ dependencies = [ "rand_chacha 0.3.1", "scale-info", "serde", - "sp-application-crypto 44.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-application-crypto 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-staking", ] [[package]] name = "pallet-staking-async" -version = "0.10.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1983c4fdcdf5437c5f00fcf17cc1b00b47f09c57ef4abd79dd7cec79dc93e098" +checksum = "36eba27f7af3b6bb1d0d1815b54ab6d8c1ca416b1ca52aa8951a0b05eda0e04e" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", "log", - "pallet-dap", "pallet-staking-async-rc-client", "parity-scale-codec", "rand 0.8.5", "rand_chacha 0.3.1", "scale-info", "serde", - "sp-application-crypto 44.0.0", - "sp-core 39.0.0", - "sp-io 44.0.0", + "sp-application-crypto 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", "sp-npos-elections", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-staking", ] [[package]] name = "pallet-staking-async-ah-client" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b5e2596875837e03ce0d911a8bd6011c29164523daafaa2bab81002bfc69d2" +checksum = "cbfed4a065bcd2366fac6af7d393618eaeed54488205e299a6446b9d3ff8dd58" dependencies = [ "frame-benchmarking", "frame-support", @@ -10825,16 +10904,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-staking", ] [[package]] name = "pallet-staking-async-rc-client" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0e0dc41bb39c821ff4ef358686c85d76c1123e1647d6b204bbbff7aa84091" +checksum = "2b88591a93d65023ec21cc0f05efe81ae10c92d9798c1796c07ff35205c4b349" dependencies = [ "frame-benchmarking", "frame-support", @@ -10843,8 +10922,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-staking", "staging-xcm", "staging-xcm-builder", @@ -10865,9 +10944,9 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" -version = "24.0.0" +version = "24.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2dddc795e22484cc18a6c25018d32fb4ad518491d9989edcd9cdd3090638512" +checksum = "e21dcd5108106cee3e8c513d15ea9eadde560dc9271c4475f7cb167f23105942" dependencies = [ "log", "sp-arithmetic", @@ -10875,20 +10954,20 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" -version = "30.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e483f688476415cc1e716755cb88ddd628705ec66fed8087674d0b9306e452b4" +checksum = "44971962494a7aaeeacec7f333b290f9c4285a6fdec609ef0baf502dbf8f1674" dependencies = [ "parity-scale-codec", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-staking", ] [[package]] name = "pallet-state-trie-migration" -version = "50.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3052d81fa0a8d4d562927a277446caae3c94d079ad57d9499a9db7f72ad903c" +checksum = "368619398063e5db5aad3f0a5ec471d78f09ac6bfa37de7235e97261e0eec88d" dependencies = [ "frame-benchmarking", "frame-support", @@ -10896,16 +10975,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-sudo" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad134ab6aa0cd61a3af61ca9b8e82ce40a2020608f0a4b5b816043663fe576d9" +checksum = "01818cacfcb6fd5b175faa6c822738081f63b945c7eb63d0bb5fba42d44cbe25" dependencies = [ "docify", "frame-benchmarking", @@ -10913,15 +10992,15 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-timestamp" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a27830482ee21f4edea07afe13ed14ea04b58a8b2bef0ed7535544b660198bb" +checksum = "c72f687a8ee1d81ad37903541c468abd0f83041d110a3a629bf675d22c66a2c6" dependencies = [ "docify", "frame-benchmarking", @@ -10930,17 +11009,17 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-inherents 40.0.0", - "sp-runtime 45.0.0", - "sp-storage", + "sp-inherents 41.0.0", + "sp-runtime 46.0.0", + "sp-storage 23.0.0", "sp-timestamp", ] [[package]] name = "pallet-transaction-payment" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6be8a43637711ad0bd344e6c6fced72cfcd0e8644b777bda0e2b48a72bf5c66c" +checksum = "a2d3a80999b9a2105794dfe28ca59553b68ba6e00b99ff1f93e82f475f5b28a7" dependencies = [ "frame-benchmarking", "frame-support", @@ -10949,28 +11028,28 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1748d7be740e04b69422053f45439b09d7842deb4522cbdb96431fd21aac52" +checksum = "299009c2f765323c1d45ee20e477fdc73e405db6d36557f77a3a89250dfcae66" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", - "sp-api 40.0.0", - "sp-runtime 45.0.0", - "sp-weights", + "sp-api 41.0.0", + "sp-runtime 46.0.0", + "sp-weights 34.0.0", ] [[package]] name = "pallet-treasury" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "429eb24bd64fd9e15c726f767c78635c5f57ec0caae306bdb07144f86fe31698" +checksum = "b64e1010c6f0bd55702685a686d11298236b978ad3f554428598035dfffc5559" dependencies = [ "docify", "frame-benchmarking", @@ -10982,15 +11061,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-uniques" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0abfb02f788add7a8fdd68d25e777d87ebe08a79c21768a7900c03aa994c91" +checksum = "2db3b27b6d1aacb1a84e261181f274d85a85713792a8e9cf7cc90ed6a5086e48" dependencies = [ "frame-benchmarking", "frame-support", @@ -10998,30 +11077,30 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-utility" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "002e4eb4830616c2e8bfbedbd8dbd65876700ad7dac00289ec66447e4c0d41ce" +checksum = "6f56ed0929cd5b774ec690eb77255f11ea207a637f0f80a841d0f2031ad40077" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-vesting" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8423e521125b0e54275766a092d56cc1be15fc0a1e8990d1d32a72c5424fb4c9" +checksum = "5d02b11d371d82862b3535d4983281efbe5629aab2155e545091182b098a7f54" dependencies = [ "frame-benchmarking", "frame-support", @@ -11029,14 +11108,14 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "pallet-whitelist" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "174ef44f52d18e2edd69635dcd7ebd03fcbb0d9e75a7418cc44e53011ef9d791" +checksum = "72b883685a506fb80693725763c54efc679197f716ae2ce486da2ae738c600b9" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -11045,9 +11124,9 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "25.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf774b5f3815ec75cb20e7e032c58d3a33bb33db2ca969a687c5533b51e8fc1" +checksum = "154d5c722510da6de379b77db69a04b1104dfcb6e3166dd00e6199b2284f9d36" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -11058,9 +11137,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -11070,17 +11149,17 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "25.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7242f9a9e91af5732bb3809e3111d783c1dd9bc5bddf36643e61376350661afd" +checksum = "3ecef005b36b5e3d2ffb230c5daec5314aa0f4e8d4862912616e7d4823d20c22" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -11088,9 +11167,9 @@ dependencies = [ [[package]] name = "pallet-xcm-bridge-hub" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4f34ae0327299223525f56d963b637ab8e0d14a5b3f607fe25db12b218a74f8" +checksum = "92d2edcc9e1602170dbae3f7d089e6c41a79bd8191916c24b2d1b22a468c1138" dependencies = [ "bp-messages", "bp-runtime", @@ -11100,8 +11179,8 @@ dependencies = [ "pallet-bridge-messages", "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -11111,9 +11190,9 @@ dependencies = [ [[package]] name = "pallet-xcm-bridge-hub-router" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2f1b23da1de5f39524091b325ffc15b26b0bcd5a7043555634ae008261772ae" +checksum = "1cb5c7bb5fd695bb510e3a8ca4e6b9a9b3ff421049782a91b3f234973f960cab" dependencies = [ "bp-xcm-bridge-hub-router", "frame-benchmarking", @@ -11122,8 +11201,8 @@ dependencies = [ "parity-scale-codec", "polkadot-runtime-parachains", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -11132,9 +11211,9 @@ dependencies = [ [[package]] name = "pallet-xcm-precompiles" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3049f7fe616c5e3400e74ba62e887c03efbf7637730cf1bff1767984a2dab865" +checksum = "7bab964381251e4b369460a9a83214eb6fc9d9813334848da71166a11f019a1e" dependencies = [ "frame-support", "pallet-revive", @@ -11147,9 +11226,9 @@ dependencies = [ [[package]] name = "parachains-common" -version = "27.1.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f8a0e76b4209e2244d5c9817e16d9faa3ac28c3fc570a38fee42671025d9184" +checksum = "64d25b1306dea2f28db555c1609df0a11a3a10ff9273d30d6b54e2de92e6a152" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -11164,25 +11243,37 @@ dependencies = [ "pallet-multi-asset-bounties", "pallet-treasury", "pallet-xcm", + "parachains-common-types", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", "scale-info", "sp-consensus-aura", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-executor", "tracing", ] +[[package]] +name = "parachains-common-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abcf89556c148ca3285f53af72299f7f8893ff85f21eda8bd25d99acad310c5c" +dependencies = [ + "sp-consensus-aura", + "sp-core 40.0.0", + "sp-runtime 46.0.0", +] + [[package]] name = "parachains-runtimes-test-utils" -version = "28.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedadff09acc539a0b0a9261ddfe64b2a582825590db277d7d3f67babd520268" +checksum = "75802f8b57754b06172d0cd4f14964bbd0593858f281fc08e028e81582898317" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-pallet-xcmp-queue", @@ -11200,9 +11291,9 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives", "sp-consensus-aura", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-tracing", "staging-parachain-info", "staging-xcm", @@ -11224,10 +11315,25 @@ dependencies = [ ] [[package]] -name = "parity-bytes" -version = "0.1.2" +name = "parity-db" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67" +checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" +dependencies = [ + "blake2 0.10.6", + "crc32fast", + "fs2", + "hex", + "libc", + "log", + "lz4", + "memmap2 0.5.10", + "parking_lot 0.12.5", + "rand 0.8.5", + "siphasher 0.3.11", + "snap", + "winapi", +] [[package]] name = "parity-scale-codec" @@ -11382,16 +11488,16 @@ dependencies = [ "parachains-common", "penpal-runtime", "polkadot-emulated-chain", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-keyring", "staging-xcm", ] [[package]] name = "penpal-runtime" -version = "0.35.1" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc989d7ddc420550fc7ce1733535661ad7f0ad8dce17c156bc5549efe7d910df" +checksum = "21373e260e8989b26637ed693c3ea1f9e18bdbaa176ec519eb67461c7031d735" dependencies = [ "assets-common", "cumulus-pallet-aura-ext", @@ -11436,19 +11542,19 @@ dependencies = [ "scale-info", "serde_json", "smallvec", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", "sp-keyring", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", - "sp-storage", + "sp-storage 23.0.0", "sp-transaction-pool", - "sp-version 43.0.0", + "sp-version 44.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -11470,7 +11576,7 @@ dependencies = [ "kusama-runtime-constants", "parachains-common", "people-kusama-runtime", - "sp-core 39.0.0", + "sp-core 40.0.0", ] [[package]] @@ -11493,7 +11599,7 @@ dependencies = [ "parity-scale-codec", "people-kusama-runtime", "polkadot-runtime-common", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "staging-kusama-runtime", "staging-xcm", "staging-xcm-executor", @@ -11550,18 +11656,18 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", - "sp-storage", + "sp-storage 23.0.0", "sp-transaction-pool", - "sp-version 43.0.0", + "sp-version 44.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -11582,7 +11688,7 @@ dependencies = [ "people-polkadot-runtime", "polkadot-emulated-chain", "polkadot-runtime-constants", - "sp-core 39.0.0", + "sp-core 40.0.0", ] [[package]] @@ -11607,8 +11713,8 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-constants", "polkadot-system-emulated-network", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-executor", "xcm-runtime-apis", @@ -11668,18 +11774,18 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", - "sp-storage", + "sp-storage 23.0.0", "sp-transaction-pool", - "sp-version 43.0.0", + "sp-version 44.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -11798,7 +11904,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" dependencies = [ - "siphasher", + "siphasher 1.0.2", ] [[package]] @@ -11878,14 +11984,14 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "21.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc3e1e843b3bab4df488ae15f14822527e8f5003a49efd50b8cdfb55c503a7ee" +checksum = "935a6564a270c421cf44bbb1c1258e8451e657cc80a8ab42a356dc93c087829b" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -11902,15 +12008,15 @@ dependencies = [ "sp-authority-discovery", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "polkadot-parachain-primitives" -version = "20.0.0" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4944ed05ba89885a746af800b34fcf96455601d9d38350666418675d607baf9" +checksum = "da7ad41b206f59740a569b02fba0fc7e1cf0fab8ac1c5d73c4420078da5223b8" dependencies = [ "array-bytes 6.2.3", "bounded-collections", @@ -11919,16 +12025,16 @@ dependencies = [ "polkadot-core-primitives", "scale-info", "serde", - "sp-core 39.0.0", - "sp-runtime 45.0.0", - "sp-weights", + "sp-core 40.0.0", + "sp-runtime 46.0.0", + "sp-weights 34.0.0", ] [[package]] name = "polkadot-primitives" -version = "22.0.0" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a27f1d503aa4da18fdd9c97988624f14be87c38bfa036638babf748edc326fe" +checksum = "2c87e99a74666bd52dc0c20e84ca11ce4c9fcf05444bf42322dd88da1ccf1e96" dependencies = [ "bitvec", "bounded-collections", @@ -11939,16 +12045,16 @@ dependencies = [ "polkadot-parachain-primitives", "scale-info", "serde", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", "sp-arithmetic", "sp-authority-discovery", "sp-consensus-slots", - "sp-core 39.0.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", - "sp-keystore 0.45.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", + "sp-keystore 0.46.0", + "sp-runtime 46.0.0", "sp-staking", "sp-std", "thiserror 1.0.69", @@ -12031,29 +12137,29 @@ dependencies = [ "scale-info", "separator", "serde_json", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 39.0.0", - "sp-debug-derive", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-debug-derive 15.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", "sp-keyring", "sp-npos-elections", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", "sp-staking", - "sp-storage", + "sp-storage 23.0.0", "sp-tracing", "sp-transaction-pool", - "sp-trie 42.0.1", - "sp-version 43.0.0", + "sp-trie 43.0.0", + "sp-version 44.0.0", "ss58-registry", "staging-xcm", "staging-xcm-builder", @@ -12065,9 +12171,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e305084a36de957d83f3fb83601639e5f68b13501b3e334adf14fd37e90ef92" +checksum = "3f6e07ed01b33a926fa3abf3ec50473e56d67e476e1b8e0fc91999f0f5778f36" dependencies = [ "bitvec", "frame-benchmarking", @@ -12099,13 +12205,13 @@ dependencies = [ "scale-info", "serde", "slot-range-helper", - "sp-api 40.0.0", - "sp-core 39.0.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", + "sp-api 41.0.0", + "sp-core 40.0.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", "sp-keyring", "sp-npos-elections", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", "sp-staking", "staging-xcm", @@ -12125,19 +12231,19 @@ dependencies = [ "polkadot-runtime-common", "scale-info", "smallvec", - "sp-core 39.0.0", - "sp-runtime 45.0.0", - "sp-trie 42.0.1", - "sp-weights", + "sp-core 40.0.0", + "sp-runtime 46.0.0", + "sp-trie 43.0.0", + "sp-weights 34.0.0", "staging-xcm", "staging-xcm-builder", ] [[package]] name = "polkadot-runtime-metrics" -version = "25.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96e9b2ff8f63290c2695dd956fb4b482ce8831ac99b7dffc98e74214ed0336f5" +checksum = "8a35c43d769accd579cbffcb88984739e103cc245363604282159d7a9f47e098" dependencies = [ "bs58", "frame-benchmarking", @@ -12148,9 +12254,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66f7b455b9aef20589c96a8a325c6ff0b6645e6b0abc169c21477d7eadf01f3f" +checksum = "40c4af4cf0ccb50b823289ab1f3ee524c2e178b43e5a21daf02d1cc8151413a1" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -12168,6 +12274,7 @@ dependencies = [ "pallet-message-queue", "pallet-mmr", "pallet-session", + "pallet-session-benchmarking", "pallet-staking", "pallet-timestamp", "parity-scale-codec", @@ -12179,14 +12286,14 @@ dependencies = [ "rand_chacha 0.3.1", "scale-info", "serde", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", "sp-arithmetic", - "sp-core 39.0.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", - "sp-keystore 0.45.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", + "sp-keystore 0.46.0", + "sp-runtime 46.0.0", "sp-session", "sp-staking", "sp-std", @@ -12198,9 +12305,9 @@ dependencies = [ [[package]] name = "polkadot-sdk-frame" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b43835ff8d1fd5cbe21b436b3a12771502a3916187927542726d388eac722967" +checksum = "cbb69b7c3aa7bbe73a7c98159ce9bfe5f84d099975a9f923ebbdce5e566cf1bb" dependencies = [ "docify", "frame-benchmarking", @@ -12214,22 +12321,22 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-arithmetic", "sp-block-builder", "sp-consensus-aura", "sp-consensus-grandpa", - "sp-core 39.0.0", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", "sp-keyring", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", - "sp-storage", + "sp-storage 23.0.0", "sp-transaction-pool", - "sp-version 43.0.0", + "sp-version 44.0.0", ] [[package]] @@ -12261,16 +12368,16 @@ dependencies = [ [[package]] name = "polkavm" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4323d016144b2852da47cee55ca5fc33dfe7517be1f52395759f247ecc5695f6" +checksum = "34ddb26cbe473e21bf5c329723e72fdf9208b5f9674e54721bf436e2efdbb26f" dependencies = [ "libc", "log", "picosimd", - "polkavm-assembler 0.30.0", - "polkavm-common 0.30.0", - "polkavm-linux-raw 0.30.0", + "polkavm-assembler 0.31.0", + "polkavm-common 0.31.0", + "polkavm-linux-raw 0.31.0", ] [[package]] @@ -12284,9 +12391,9 @@ dependencies = [ [[package]] name = "polkavm-assembler" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a873fa7ace058d6507debf5fccb1d06bd3279f5b35dbaf70dc7fe94a6c415c" +checksum = "9f9006f0a135c6d035487fa88fa75b97b32a53d1d914c757f131c8e10a2af295" dependencies = [ "log", ] @@ -12306,11 +12413,20 @@ name = "polkavm-common" version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed1b408db93d4f49f5c651a7844682b9d7a561827b4dc6202c10356076c055c9" +dependencies = [ + "picosimd", +] + +[[package]] +name = "polkavm-common" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0a3e43fa1a54b955a2f9422b1690c3cc29252ac8828c02a99d2370b9f2a188e" dependencies = [ "blake3", "log", "picosimd", - "polkavm-assembler 0.30.0", + "polkavm-assembler 0.31.0", ] [[package]] @@ -12331,6 +12447,15 @@ dependencies = [ "polkavm-derive-impl-macro 0.30.0", ] +[[package]] +name = "polkavm-derive" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d944b6b4e792c2a120232b52bd6f2c9dd3071d3f48462afb2b5d00cb9f7ac9" +dependencies = [ + "polkavm-derive-impl-macro 0.31.0", +] + [[package]] name = "polkavm-derive-impl" version = "0.26.0" @@ -12355,6 +12480,18 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "polkavm-derive-impl" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c14b030150f81dfde110997b6fafc19741998130908fdab85f1a66bb735025" +dependencies = [ + "polkavm-common 0.31.0", + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "polkavm-derive-impl-macro" version = "0.26.0" @@ -12375,6 +12512,16 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3fcadb13edfcc3b4046fcd2d292597782f5b7a2af140e6363fbf71fe196b425" +dependencies = [ + "polkavm-derive-impl 0.31.0", + "syn 2.0.114", +] + [[package]] name = "polkavm-linker" version = "0.30.0" @@ -12391,6 +12538,22 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "polkavm-linker" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1ae3f7aff1af110dcd0f105d783b10ff25cd2837abe411ea4d88ae5cd193b49" +dependencies = [ + "dirs", + "gimli 0.31.1", + "hashbrown 0.14.5", + "log", + "object 0.36.7", + "polkavm-common 0.31.0", + "regalloc2 0.9.3", + "rustc-demangle", +] + [[package]] name = "polkavm-linux-raw" version = "0.26.0" @@ -12399,9 +12562,9 @@ checksum = "28919f542476f4158cc71e6c072b1051f38f4b514253594ac3ad80e3c0211fc8" [[package]] name = "polkavm-linux-raw" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604b23cdb201979304449f53d21bfd5fb1724c03e3ea889067c9a3bf7ae33862" +checksum = "cbcd9ed5f77c60f3878289001d3e789da301746249b622bfb2876e2d0fe32c0b" [[package]] name = "polling" @@ -13205,7 +13368,7 @@ version = "1.0.0" dependencies = [ "pallet-staking-reward-fn", "polkadot-primitives", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -13513,17 +13676,17 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "25.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a60176dd81d0f25aa4a5710a0a1ad27dd08dc85d8b12b07f7cd3294bc0abacb8" +checksum = "65ebfa29c290eec677fd6e5ed93ba214f87eeb817b82b595aa4e831e3b773e3e" dependencies = [ "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core 39.0.0", - "sp-runtime 45.0.0", - "sp-weights", + "sp-core 40.0.0", + "sp-runtime 46.0.0", + "sp-weights 34.0.0", "staging-xcm", "staging-xcm-builder", ] @@ -13874,30 +14037,30 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "35.0.0" +version = "36.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ada4a0e199d2554aacb11dc11e97e5a8fdd999b8ca7eb90afb0337febe9adc5" +checksum = "a15660b2682abf8e57ca59fec3d02ca5ab16b35acee560d74279997d2b10aa22" dependencies = [ "log", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-wasm-interface", "thiserror 1.0.69", ] [[package]] name = "sc-block-builder" -version = "0.48.0" +version = "0.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70b0d45264a476977dad2124703e01a284d9d4b9cd722973c100c836f6f17e80" +checksum = "be5ff0d1b4c10df7d93eb461dbc7bf7f334d3abcc3c6aaa412094bf4afc13fd4" dependencies = [ "parity-scale-codec", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-block-builder", - "sp-blockchain 43.0.0", - "sp-core 39.0.0", - "sp-inherents 40.0.0", - "sp-runtime 45.0.0", - "sp-trie 42.0.1", + "sp-blockchain 44.0.0", + "sp-core 40.0.0", + "sp-externalities 0.32.0", + "sp-inherents 41.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -13908,7 +14071,7 @@ checksum = "5962282c6d40861610814dac5159a99a5b4251d89269bb4e828ff766956f1833" dependencies = [ "array-bytes 6.2.3", "docify", - "memmap2", + "memmap2 0.9.9", "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api 42.0.0", @@ -13929,28 +14092,28 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "48.0.0" +version = "49.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b52a39c5ae942a5db75eca82a7c0e50a4d469185651ef52677967860315bc63" +checksum = "a086d2166aaf9447d1249bf6dfa8f31dd2dccc11331c85eb7989621531dbf505" dependencies = [ "array-bytes 6.2.3", "docify", - "memmap2", + "memmap2 0.9.9", "parity-scale-codec", "sc-chain-spec-derive", - "sc-client-api 44.0.0", - "sc-executor 0.47.0", - "sc-network 0.55.1", + "sc-client-api 45.0.0", + "sc-executor 0.48.0", + "sc-network 0.56.0", "sc-telemetry", "serde", "serde_json", - "sp-blockchain 43.0.0", - "sp-core 39.0.0", + "sp-blockchain 44.0.0", + "sp-core 40.0.0", "sp-crypto-hashing", - "sp-genesis-builder 0.21.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", + "sp-genesis-builder 0.22.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", "sp-tracing", ] @@ -13988,67 +14151,95 @@ dependencies = [ "sp-externalities 0.30.0", "sp-runtime 44.0.0", "sp-state-machine 0.48.0", - "sp-storage", + "sp-storage 22.0.0", "sp-trie 41.1.0", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-api" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37040b88b3084ceaabe7e497dcb6fd26b1d8c73b7c236b12dfc4da5fe438eb18" +checksum = "0220e56948897f4ed16ede5648ff89675671ad125104ec5c40534632467ec598" dependencies = [ "fnv", "futures", "log", "parity-scale-codec", "parking_lot 0.12.5", - "sc-executor 0.47.0", - "sc-transaction-pool-api 43.0.0", + "sc-executor 0.48.0", + "sc-transaction-pool-api 44.0.0", "sc-utils", - "sp-api 40.0.0", - "sp-blockchain 43.0.0", - "sp-consensus 0.46.0", - "sp-core 39.0.0", + "sp-api 41.0.0", + "sp-blockchain 44.0.0", + "sp-consensus 0.47.0", + "sp-core 40.0.0", + "sp-database", + "sp-externalities 0.32.0", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", + "sp-storage 23.0.0", + "sp-trie 43.0.0", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-client-db" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f71b6d2f97bc790b97c7d8f4e7f381f1907e018be3419b968d88d26bef7c374" +dependencies = [ + "hash-db", + "kvdb", + "kvdb-memorydb", + "linked-hash-map", + "log", + "parity-db", + "parity-scale-codec", + "parking_lot 0.12.5", + "sc-client-api 45.0.0", + "sc-state-db", + "schnellru", + "sp-arithmetic", + "sp-blockchain 44.0.0", + "sp-core 40.0.0", "sp-database", - "sp-externalities 0.31.0", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", - "sp-storage", - "sp-trie 42.0.1", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", + "sp-trie 43.0.0", "substrate-prometheus-endpoint", + "sysinfo", ] [[package]] name = "sc-consensus" -version = "0.54.0" +version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f1f6d5ef6feff9d8f106eae0fe1258048f8d3bd395b8a14d0d6499aacfd9" +checksum = "d174c8dcf3517470cbbb9269f7d240924cb08fed44d153dc5c6ce9eca0bd8836" dependencies = [ "async-trait", "futures", "log", "mockall", "parking_lot 0.12.5", - "sc-client-api 44.0.0", - "sc-network-types 0.20.1", + "sc-client-api 45.0.0", + "sc-network-types 0.20.2", "sc-utils", "serde", - "sp-blockchain 43.0.0", - "sp-consensus 0.46.0", - "sp-core 39.0.0", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", + "sp-blockchain 44.0.0", + "sp-consensus 0.47.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] [[package]] name = "sc-consensus-grandpa" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fd35b641dc98c0b5e154d1ce8ded71c2d5c1037bea2732f59698c05241d0d8" +checksum = "2f8b9bab63814a10053d5eef9e349b198f69977442b61f8ad70c58dee1d66343" dependencies = [ "ahash", "array-bytes 6.2.3", @@ -14063,28 +14254,29 @@ dependencies = [ "parking_lot 0.12.5", "rand 0.8.5", "sc-block-builder", - "sc-chain-spec 48.0.0", - "sc-client-api 44.0.0", + "sc-chain-spec 49.0.0", + "sc-client-api 45.0.0", + "sc-client-db", "sc-consensus", - "sc-network 0.55.1", - "sc-network-common 0.52.0", + "sc-network 0.56.0", + "sc-network-common 0.53.0", "sc-network-gossip", "sc-network-sync", - "sc-network-types 0.20.1", + "sc-network-types 0.20.2", "sc-telemetry", - "sc-transaction-pool-api 43.0.0", + "sc-transaction-pool-api 44.0.0", "sc-utils", "serde_json", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", "sp-arithmetic", - "sp-blockchain 43.0.0", - "sp-consensus 0.46.0", + "sp-blockchain 44.0.0", + "sp-consensus 0.47.0", "sp-consensus-grandpa", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-crypto-hashing", - "sp-keystore 0.45.0", - "sp-runtime 45.0.0", + "sp-keystore 0.46.0", + "sp-runtime 46.0.0", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -14115,24 +14307,24 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.47.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54bfa8e053012dd4655b68142abadae0ffd396582fdb71ac933a0fe831dcabad" +checksum = "2c53468dcb922f00210899b6a2de3417d9642963e457a162a231f90ef866b76d" dependencies = [ "parity-scale-codec", "parking_lot 0.12.5", - "sc-executor-common 0.43.0", - "sc-executor-polkavm 0.40.0", - "sc-executor-wasmtime 0.43.0", + "sc-executor-common 0.44.0", + "sc-executor-polkavm 0.41.0", + "sc-executor-wasmtime 0.44.0", "schnellru", - "sp-api 40.0.0", - "sp-core 39.0.0", - "sp-externalities 0.31.0", - "sp-io 44.0.0", + "sp-api 41.0.0", + "sp-core 40.0.0", + "sp-externalities 0.32.0", + "sp-io 45.0.0", "sp-panic-handler", - "sp-runtime-interface 33.0.0", - "sp-trie 42.0.1", - "sp-version 43.0.0", + "sp-runtime-interface 34.0.0", + "sp-trie 43.0.0", + "sp-version 44.0.0", "sp-wasm-interface", "tracing", ] @@ -14153,12 +14345,12 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ddd1d656dfac549057ee3adf889c7884848f8f52179c7654d4f8ff6c2f6e49" +checksum = "588cfbcb1eff48c2a6463fbbcc938350028798f1de21e194b1d5612a116edfd4" dependencies = [ - "polkavm 0.26.0", - "sc-allocator 35.0.0", + "polkavm 0.31.0", + "sc-allocator 36.0.0", "sp-maybe-compressed-blob", "sp-wasm-interface", "thiserror 1.0.69", @@ -14179,13 +14371,14 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3946090e5e3ce64304564908bf1886c3ca0992791261a110c83842581833902" +checksum = "4589c0810bf2f2347816d6d1b86fec04be475531246eae371e8bac96df5a4161" dependencies = [ "log", - "polkavm 0.26.0", - "sc-executor-common 0.43.0", + "polkavm 0.31.0", + "sc-executor-common 0.44.0", + "sp-runtime-interface 34.0.0", "sp-wasm-interface", ] @@ -14208,26 +14401,26 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "825b33fc35931913d1308797321d65b4ef5eedd6b412af920c92d67d352dd388" +checksum = "e568f7374a379035d3476bf7be847ea7ba7507652131baf6a87d096694f5d4ff" dependencies = [ "anyhow", "log", "parking_lot 0.12.5", "rustix", - "sc-allocator 35.0.0", - "sc-executor-common 0.43.0", - "sp-runtime-interface 33.0.0", + "sc-allocator 36.0.0", + "sc-executor-common 0.44.0", + "sp-runtime-interface 34.0.0", "sp-wasm-interface", "wasmtime", ] [[package]] name = "sc-mixnet" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baeffff9122f6a2bc74c826994100e3c6e9cdc92d95d9dfcbb5177a3beee0ae0" +checksum = "8619d7cfe58dae6ffdca6185c4dc28870d7e2fb60d8a174d0916af3140a201e0" dependencies = [ "array-bytes 6.2.3", "arrayvec 0.7.6", @@ -14239,16 +14432,16 @@ dependencies = [ "mixnet", "parity-scale-codec", "parking_lot 0.12.5", - "sc-client-api 44.0.0", - "sc-network 0.55.1", - "sc-network-types 0.20.1", - "sc-transaction-pool-api 43.0.0", - "sp-api 40.0.0", - "sp-consensus 0.46.0", - "sp-core 39.0.0", - "sp-keystore 0.45.0", + "sc-client-api 45.0.0", + "sc-network 0.56.0", + "sc-network-types 0.20.2", + "sc-transaction-pool-api 44.0.0", + "sp-api 41.0.0", + "sp-consensus 0.47.0", + "sp-core 40.0.0", + "sp-keystore 0.46.0", "sp-mixnet", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "thiserror 1.0.69", ] @@ -14305,9 +14498,9 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.55.1" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643f4ebc4ed818c403b3605e15c72ec53ead1429071bff43f13fc9d8a8911d21" +checksum = "30436a6408abaa053f8d0ff3506fe83254d0050cdbea5adb3d7d490966649c63" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -14321,7 +14514,7 @@ dependencies = [ "ip_network", "libp2p", "linked_hash_set", - "litep2p 0.13.0", + "litep2p 0.13.3", "log", "mockall", "parity-scale-codec", @@ -14331,18 +14524,18 @@ dependencies = [ "prost 0.12.6", "prost-build 0.13.5", "rand 0.8.5", - "sc-client-api 44.0.0", - "sc-network-common 0.52.0", - "sc-network-types 0.20.1", + "sc-client-api 45.0.0", + "sc-network-common 0.53.0", + "sc-network-types 0.20.2", "sc-utils", "schnellru", "serde", "serde_json", "smallvec", "sp-arithmetic", - "sp-blockchain 43.0.0", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-blockchain 44.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "substrate-prometheus-endpoint", "thiserror 1.0.69", "tokio", @@ -14366,40 +14559,40 @@ dependencies = [ [[package]] name = "sc-network-common" -version = "0.52.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdac0bd4e0a1d77a7e610ab69eb41da04052005b860a83baeee3aba521c7e691" +checksum = "d3c48b06d9a44a9be48c940898d307d196a18808d2f84ee422ac5fbc131d99dc" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "sc-network-gossip" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9a70e26da9413999c7a1de63545b487805f2fa726cc3dd8b9a5021886679051" +checksum = "e9951cebee17b8e27ad61b2fbdc4c379297868e49a67d004a33c91c9898d8c68" dependencies = [ "ahash", "futures", "futures-timer", "log", - "sc-network 0.55.1", - "sc-network-common 0.52.0", + "sc-network 0.56.0", + "sc-network-common 0.53.0", "sc-network-sync", - "sc-network-types 0.20.1", + "sc-network-types 0.20.2", "schnellru", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "sc-network-sync" -version = "0.54.0" +version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffefc6d3dceb20f417a6b4116324a6a3135efa81599eb8ff85831c165fa7440" +checksum = "8387ffb7f5c25f1868c7e75fca813ec7ed49312f68a3de79574c4da68fd85ab9" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -14411,20 +14604,19 @@ dependencies = [ "parity-scale-codec", "prost 0.12.6", "prost-build 0.13.5", - "sc-client-api 44.0.0", + "sc-client-api 45.0.0", "sc-consensus", - "sc-network 0.55.1", - "sc-network-common 0.52.0", - "sc-network-types 0.20.1", + "sc-network 0.56.0", + "sc-network-common 0.53.0", + "sc-network-types 0.20.2", "sc-utils", "schnellru", "smallvec", "sp-arithmetic", - "sp-blockchain 43.0.0", - "sp-consensus 0.46.0", - "sp-consensus-grandpa", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-blockchain 44.0.0", + "sp-consensus 0.47.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "substrate-prometheus-endpoint", "thiserror 1.0.69", "tokio", @@ -14455,16 +14647,16 @@ dependencies = [ [[package]] name = "sc-network-types" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11103f2e35999989326ed5be87f0a7d335269bef6d6a1c0ddd543a7d9aed7788" +checksum = "bf470c59ad6f0d3b5e9d33056456f979d55f95470276e239dda01630b1f31eab" dependencies = [ "bs58", "bytes", "ed25519-dalek", "libp2p-identity", "libp2p-kad", - "litep2p 0.13.0", + "litep2p 0.13.3", "log", "multiaddr 0.18.2", "multihash 0.19.3", @@ -14477,30 +14669,43 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.54.0" +version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455d1000322ee5609c22dbe7879bc8892055a9e02ce731bd08590f6590f89964" +checksum = "7f007ff53957241fa960e174cf5a73232640573a5ec88895927fe95db768f05c" dependencies = [ "jsonrpsee", "parity-scale-codec", - "sc-chain-spec 48.0.0", + "sc-chain-spec 49.0.0", "sc-mixnet", - "sc-transaction-pool-api 43.0.0", + "sc-transaction-pool-api 44.0.0", "scale-info", "serde", "serde_json", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-rpc", - "sp-runtime 45.0.0", - "sp-version 43.0.0", + "sp-runtime 46.0.0", + "sp-statement-store", + "sp-version 44.0.0", "thiserror 1.0.69", ] +[[package]] +name = "sc-state-db" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad565fbf4aea429b80899ef1b1abdf9e118b7be4853498c023ea2d893086919" +dependencies = [ + "log", + "parity-scale-codec", + "parking_lot 0.12.5", + "sp-core 40.0.0", +] + [[package]] name = "sc-telemetry" -version = "30.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "661460d41cb14de3d8ad638bc34f9179eb2dd65791ccf71fa6dc0c572ad8100b" +checksum = "36b14e2a6c9b1542c6e94aa463f6365f7e4ce75ccd8abe4a55717235d2275477" dependencies = [ "chrono", "futures", @@ -14536,9 +14741,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa1bf9a23dfc74491f95787ff1d57bf031ca94f2f656f79a8d47eeea0e2e1b" +checksum = "9e47fed87883b76b0c44b79c55b4699aca17c28e38845b76de4ef45294448ab9" dependencies = [ "async-trait", "futures", @@ -14546,18 +14751,18 @@ dependencies = [ "log", "parity-scale-codec", "serde", - "sp-blockchain 43.0.0", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-blockchain 44.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "strum 0.26.3", "thiserror 1.0.69", ] [[package]] name = "sc-utils" -version = "20.0.0" +version = "20.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d58dbfbc4408b0d210a6b7099c07caf02001e6975f62e316ea5b5c1f5c2108f4" +checksum = "347bdbd75c82b548636988199a24c402c942aade1f092026503a636e4d52fbca" dependencies = [ "async-channel 1.9.0", "futures", @@ -15015,15 +15220,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-big-array" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd31f59f6fe2b0c055371bb2f16d7f0aa7d8881676c04a55b1596d1a17cd10a4" -dependencies = [ - "serde", -] - [[package]] name = "serde-value" version = "0.7.0" @@ -15292,6 +15488,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + [[package]] name = "siphasher" version = "1.0.2" @@ -15312,14 +15514,14 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "21.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8438f5da8b5478363971a4d673bdfa6bc890517cda4b7c4507dfb809029bc17" +checksum = "e20ff1442e2ec0fc5a6f3412ddc0424b102b9fc2caddb42e9a345aeacc7c98b5" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -15392,7 +15594,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "sha3", - "siphasher", + "siphasher 1.0.2", "slab", "smallvec", "soketto", @@ -15431,13 +15633,19 @@ dependencies = [ "rand_chacha 0.3.1", "serde", "serde_json", - "siphasher", + "siphasher 1.0.2", "slab", "smol", "smoldot", "zeroize", ] +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + [[package]] name = "snow" version = "0.9.6" @@ -15467,9 +15675,9 @@ dependencies = [ [[package]] name = "snowbridge-beacon-primitives" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb028a97defaa9f17f81d802a9f3060fba79b7a5ee1cfd12b432c0d61d282530" +checksum = "564b8e407459bfba1cba8450d03e4b8a4b74e1340c3e29569b1e264655a8d928" dependencies = [ "byte-slice-cast", "frame-support", @@ -15478,11 +15686,10 @@ dependencies = [ "rlp 0.6.1", "scale-info", "serde", - "snowbridge-ethereum", "snowbridge-milagro-bls", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "ssz_rs", "ssz_rs_derive", @@ -15490,9 +15697,9 @@ dependencies = [ [[package]] name = "snowbridge-core" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fb58cba2820e72d795e2d75e027e418e969002d085f363909a1934c8b7b4ea4" +checksum = "1433a74db94e906dca4c31b6bfc65e03741a1f5ebcc0662216a77cb3c2c1a773" dependencies = [ "bp-relayers", "frame-support", @@ -15503,9 +15710,9 @@ dependencies = [ "scale-info", "serde", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -15513,50 +15720,26 @@ dependencies = [ "tracing", ] -[[package]] -name = "snowbridge-ethereum" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d0991a761b5d2e1edfb01ad74cf98bfad2c4a1dd176b7fc826170bac9ea60c1" -dependencies = [ - "alloy-consensus", - "alloy-core", - "alloy-primitives", - "alloy-rlp", - "ethabi-decode", - "ethbloom", - "ethereum-types", - "hex-literal", - "parity-bytes", - "parity-scale-codec", - "rlp 0.6.1", - "scale-info", - "serde", - "serde-big-array", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-std", -] - [[package]] name = "snowbridge-inbound-queue-primitives" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d383c8c7e2dc6348280235ef2151ab204da3ad5a099c0c7d1f5d472cb5d5ae57" +checksum = "d1609ac1e617fae1163a9a121245e3248ac1ed7d8d02dd24b290d2da10c04dd9" dependencies = [ "alloy-core", "assets-common", "frame-support", "frame-system", "hex-literal", + "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-verification-primitives", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -15566,14 +15749,14 @@ dependencies = [ [[package]] name = "snowbridge-merkle-tree" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cd5895fd4f0eb8cc97af39310ec0eafcfa18dd54297361c6e60b5fb4fb5f3aa" +checksum = "8c8fb9af2c36d294fe9632f7878bb499a37cd144fe8eaaf8fc8e0be202349abf" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -15593,9 +15776,9 @@ dependencies = [ [[package]] name = "snowbridge-outbound-queue-primitives" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20ba1371768bcf9d0e24a94bc64509226a1ea8d5d4cb413787eb6fd084a9ee3b" +checksum = "84b25b8ea84562dc59a86efa0e08326a740e3a81ab19038c65432e10dbe80120" dependencies = [ "alloy-core", "ethabi-decode", @@ -15608,9 +15791,9 @@ dependencies = [ "snowbridge-core", "snowbridge-verification-primitives", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -15620,39 +15803,40 @@ dependencies = [ [[package]] name = "snowbridge-outbound-queue-runtime-api" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d633e2e1876faac89ab1a0bd6196cdfc3becfd947ee169dfc9f863c3cfbc54" +checksum = "38174886ea89dce68cac3b39222f5bc69eaa4ec5765aae88003e327ddfd733e5" dependencies = [ "frame-support", "parity-scale-codec", "snowbridge-core", "snowbridge-merkle-tree", "snowbridge-outbound-queue-primitives", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-std", ] [[package]] name = "snowbridge-outbound-queue-v2-runtime-api" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aca743fb69380e2792f2092c72fd37a5f8dda575db7a299a733f8e86b20bd4f8" +checksum = "9ca2fe8b3766639db774f374c432db8216cc7f06bf833cd70e494657917801d3" dependencies = [ "frame-support", "parity-scale-codec", "scale-info", "snowbridge-merkle-tree", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-std", ] [[package]] name = "snowbridge-pallet-ethereum-client" -version = "0.18.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "893d6db15aeb440819bc1b1d869f5c50e9e96461ed62a672fe114fa97672a667" +checksum = "7424a1ec870adac3712f03baeb5c13ad96ccf30efd3fd3c5d0375afb6f418940" dependencies = [ + "alloy-primitives", "frame-benchmarking", "frame-support", "frame-system", @@ -15663,12 +15847,11 @@ dependencies = [ "serde", "snowbridge-beacon-primitives", "snowbridge-core", - "snowbridge-ethereum", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-verification-primitives", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "static_assertions", "tracing", @@ -15676,22 +15859,22 @@ dependencies = [ [[package]] name = "snowbridge-pallet-ethereum-client-fixtures" -version = "0.26.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bc58118faf3a4451392958e1e29a641396689ee6b3e64f1fb19e3722bbf0737" +checksum = "3b89ddd368c9c1641575a0d6e98358ad7bf74c3f8bff0969e46d3986c4ab2261" dependencies = [ "hex-literal", "snowbridge-beacon-primitives", "snowbridge-verification-primitives", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-std", ] [[package]] name = "snowbridge-pallet-inbound-queue" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "995eadd6fc62cb4195f25c4d3b850bd731277b3bd3f5bd89a37b76bb5c9f9818" +checksum = "315a64f5a3f5553ab6ee883c5f3fce798b133fbc9da9fbb36efff92ad404e11c" dependencies = [ "alloy-core", "frame-benchmarking", @@ -15705,9 +15888,9 @@ dependencies = [ "snowbridge-core", "snowbridge-inbound-queue-primitives", "snowbridge-pallet-inbound-queue-fixtures", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "staging-xcm-executor", @@ -15716,23 +15899,23 @@ dependencies = [ [[package]] name = "snowbridge-pallet-inbound-queue-fixtures" -version = "0.26.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd3960168a244229f083ad468d7e761e49b3a4b899365b4efe54bbea54c8d01" +checksum = "c1f597fc45425e028904f9eca8de99c44386708ba7a69b65ce6e143ab40f8a96" dependencies = [ "hex-literal", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-inbound-queue-primitives", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-std", ] [[package]] name = "snowbridge-pallet-inbound-queue-v2" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6418b0ecf638f177dcc0d87e65339099d69e93be69eb1056c6d9ff900c54c7ec" +checksum = "d3b171e9d77dea4243ce1daff84dc33b917ed43297651414168a322676bef5b2" dependencies = [ "alloy-core", "bp-relayers", @@ -15747,35 +15930,33 @@ dependencies = [ "snowbridge-core", "snowbridge-inbound-queue-primitives", "snowbridge-pallet-inbound-queue-v2-fixtures", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", "tracing", ] [[package]] name = "snowbridge-pallet-inbound-queue-v2-fixtures" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc188780177df9fcf9079c206703aa006f9881062eb7351754ddc1d1bb7268c" +checksum = "5370d0bdea19a3f4b653a1106c170f4e95f3389d9ffa50f51114833a12fd52b0" dependencies = [ "hex-literal", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-inbound-queue-primitives", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-std", ] [[package]] name = "snowbridge-pallet-outbound-queue" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7d1d2652ad8a2d2aece3575304b39d5dc49a461c830298a795a0489f5e1f6d" +checksum = "d64507a22f5304d02a7b0bc6c7f13ccdc8d41521bdf04e4738d01ff24cb8a416" dependencies = [ "bridge-hub-common", "ethabi-decode", @@ -15789,17 +15970,17 @@ dependencies = [ "snowbridge-merkle-tree", "snowbridge-outbound-queue-primitives", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", ] [[package]] name = "snowbridge-pallet-outbound-queue-v2" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3746a1e30fd7a31ea5d6358a959c1aecb3b7c29845044ab1eb6d037528d35ef" +checksum = "a22b9d70ebb0e00e48b61a4b0a4c82648a5e12f4bd07e870713a3b31506e9331" dependencies = [ "alloy-core", "bp-relayers", @@ -15817,9 +15998,9 @@ dependencies = [ "snowbridge-outbound-queue-primitives", "snowbridge-verification-primitives", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "staging-xcm-builder", @@ -15828,9 +16009,9 @@ dependencies = [ [[package]] name = "snowbridge-pallet-system" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a10b7211bd147fddb99b4b4a8ea53d652fd2e5922d39d80efe4ee9121f095e" +checksum = "e44a446afbc79d48b6c6e73e5860db02ee77c70ebe7dd3e52678e9e6a1b79470" dependencies = [ "frame-benchmarking", "frame-support", @@ -15839,9 +16020,9 @@ dependencies = [ "scale-info", "snowbridge-core", "snowbridge-outbound-queue-primitives", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "staging-xcm-executor", @@ -15850,9 +16031,9 @@ dependencies = [ [[package]] name = "snowbridge-pallet-system-frontend" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ac1ddb2871ad24ce6e6c265b84c4293529cd6bec256d4dbb71dc3a0abe049f" +checksum = "a1d9f3f4376b844379689f9ea0dbcc423513ba6a6e608229394de0ff6afbf4bb" dependencies = [ "frame-benchmarking", "frame-support", @@ -15861,9 +16042,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "snowbridge-core", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "staging-xcm-executor", @@ -15872,9 +16053,9 @@ dependencies = [ [[package]] name = "snowbridge-pallet-system-v2" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe5276f26717bb9f31f09ad2e88aa3ed6febabeb6381eaaa6321205d3138c9e" +checksum = "34a201b843f846bb69c3e892ad6c9173a9423ff407829555eed889e0afffa9ed" dependencies = [ "frame-benchmarking", "frame-support", @@ -15884,9 +16065,9 @@ dependencies = [ "snowbridge-core", "snowbridge-outbound-queue-primitives", "snowbridge-pallet-system", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-std", "staging-xcm", "staging-xcm-executor", @@ -15895,9 +16076,9 @@ dependencies = [ [[package]] name = "snowbridge-runtime-common" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5154421ead4f2509ae6cd3514bdf59e0ecfcd53bdac7c671efcf5a44799fa05a" +checksum = "371788f30d41237083046ad82af54cbb60e24016aff4abe4ddff374d9011a80c" dependencies = [ "frame-support", "frame-system", @@ -15913,9 +16094,9 @@ dependencies = [ [[package]] name = "snowbridge-runtime-test-common" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "019b50252653852f82dad89385b1a85240fa244ff083a6ab70e6c72982ce713e" +checksum = "191493d44cd6cdbd11815fe18d16603124144a20af454c6fef5968dbeea02b57" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -15934,10 +16115,10 @@ dependencies = [ "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", - "sp-core 39.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", "sp-keyring", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-executor", @@ -15945,41 +16126,45 @@ dependencies = [ [[package]] name = "snowbridge-system-runtime-api" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23bda2014835fc38a9d2ed2680e92f6d59fc968203b4f8c769c515ff7f97d7d1" +checksum = "3e1fd30aaa77bd0250bf222597ebe72dd31671f37ea013f0fdbfac594c7ff3bf" dependencies = [ "parity-scale-codec", "snowbridge-core", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-std", "staging-xcm", ] [[package]] name = "snowbridge-system-v2-runtime-api" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d11eb7711133830526ab105c94b49e30e639ae5f683b2bd23c3aa799197c29" +checksum = "eee8e1711c65765a3444dea2cd9bb0a50f079238a9c7a5685ee3bbbe8b77bda5" dependencies = [ "parity-scale-codec", "snowbridge-core", - "sp-api 40.0.0", + "sp-api 41.0.0", "sp-std", "staging-xcm", ] [[package]] name = "snowbridge-verification-primitives" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693e47ce3655db940100caedb027e1069710ca62dd355d86bae50da3af111627" +checksum = "f848fac78031e8fdb169bb66476291c85da202a2faf038643ed17d1dc839a66d" dependencies = [ + "alloy-consensus", + "alloy-primitives", + "alloy-rlp", + "alloy-trie", "frame-support", "parity-scale-codec", "scale-info", "snowbridge-beacon-primitives", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-std", ] @@ -16043,24 +16228,24 @@ dependencies = [ [[package]] name = "sp-api" -version = "40.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de4eb4aada6284b59f42a8da445c729384a514963340af130b4eb01b4835da4d" +checksum = "187cf25fd6768df325bfc104148ef2945bf3ec3242698670637223abf4a763cc" dependencies = [ "docify", "hash-db", "log", "parity-scale-codec", "scale-info", - "sp-api-proc-macro 26.0.0", - "sp-core 39.0.0", - "sp-externalities 0.31.0", + "sp-api-proc-macro 27.0.0", + "sp-core 40.0.0", + "sp-externalities 0.32.0", "sp-metadata-ir", - "sp-runtime 45.0.0", - "sp-runtime-interface 33.0.0", - "sp-state-machine 0.49.0", - "sp-trie 42.0.1", - "sp-version 43.0.0", + "sp-runtime 46.0.0", + "sp-runtime-interface 34.0.0", + "sp-state-machine 0.50.0", + "sp-trie 43.0.0", + "sp-version 44.0.0", "thiserror 1.0.69", ] @@ -16081,9 +16266,9 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "26.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2ae0305276704ca35c4499162a709413e4bca4e47a3c909df50a110930121f" +checksum = "32c95e3a2cadf60408a228d175d10bbacacdd2b1cd4a15115bc97e8d667ab0eb" dependencies = [ "Inflector", "blake2 0.10.6", @@ -16109,22 +16294,22 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33baebe847fc50edccd36d0e0e86df21d4db93876b5d74aadae9d8e96ca35e2" +checksum = "47687573285619b845d812f3fca7ca3cf7ce7c8456765a7736476a218caa3070" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 39.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", ] [[package]] name = "sp-arithmetic" -version = "28.0.0" +version = "28.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f4755af7cc57f4a2a830e134b403fc832caa5d93dacb970ffc7ac717f38c40" +checksum = "4e06588d1c43f60b9bb7f989785689842cc4cc8ce0e19d1c47686b1ff5fe9548" dependencies = [ "docify", "integer-sqrt", @@ -16137,26 +16322,26 @@ dependencies = [ [[package]] name = "sp-authority-discovery" -version = "40.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb086abf5450de480d9d815a393ec2c36295350bdb63ded1a9832dfb6757f0a2" +checksum = "5d53ee63efb5ce91b6c0696a41c9b38dd5be65559b0ee590ea7eddf8d907ad64" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "sp-block-builder" -version = "40.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2263a76570421410cc67e49d057700d2196d00e7c7e1c5b282cee5bd352de94f" +checksum = "6c2cc35ecc1c4978dfa007c887b23f8b6354c50c9b778bc1dcb484ede6bd13cc" dependencies = [ - "sp-api 40.0.0", - "sp-inherents 40.0.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-inherents 41.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -16181,20 +16366,20 @@ dependencies = [ [[package]] name = "sp-blockchain" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fe12508b0274ab1f250621feed7c99ead5d4928788b5b7e15cc372862e0832" +checksum = "8941564df78a2e7829476c2858d3833456341888015bae99ae702c633c9d0b8f" dependencies = [ "futures", "parity-scale-codec", "parking_lot 0.12.5", "schnellru", - "sp-api 40.0.0", - "sp-consensus 0.46.0", - "sp-core 39.0.0", + "sp-api 41.0.0", + "sp-consensus 0.47.0", + "sp-core 40.0.0", "sp-database", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", "thiserror 1.0.69", "tracing", ] @@ -16216,99 +16401,102 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.46.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c3515d414dc7dc7186b87cb2ad9b3070edbfa85754373e56c33b408fbaa3f4e" +checksum = "bfbee2c17ffaffd405a7de5b72803ffe133e1b799c77e0fd659daca921b761b9" dependencies = [ "async-trait", "futures", "log", - "sp-inherents 40.0.0", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", + "sp-api 41.0.0", + "sp-externalities 0.32.0", + "sp-inherents 41.0.0", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", + "sp-trie 43.0.0", "thiserror 1.0.69", ] [[package]] name = "sp-consensus-aura" -version = "0.46.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb79fc4bf40bf12755a62b3bd201bb2f8de974b7393d81bee70cccecf40321f" +checksum = "4faf051693a9830c36e806da779d8e251f4e7019dc16b3bd9dc3734cf5de74d5" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", "sp-consensus-slots", - "sp-inherents 40.0.0", - "sp-runtime 45.0.0", + "sp-inherents 41.0.0", + "sp-runtime 46.0.0", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" -version = "0.46.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb7b73c605282232d12a7c5932fd7118dca87b096e0c053a81d780b3de6ca10" +checksum = "a0e7d258673de490bcca9ef735e84ce2a34aad780170d4884773a7ea8f1aa851" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "serde", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", "sp-consensus-slots", - "sp-core 39.0.0", - "sp-inherents 40.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-inherents 41.0.0", + "sp-runtime 46.0.0", "sp-timestamp", ] [[package]] name = "sp-consensus-beefy" -version = "28.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "813b9f529dca0247d1fc184aebc493b704363e82f3e1d81a69f2f9569be965a0" +checksum = "8f4bf7929296255bf94696c5433b95b76882cad6fb0728513a9223d84044372f" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", - "sp-core 39.0.0", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", + "sp-core 40.0.0", "sp-crypto-hashing", - "sp-io 44.0.0", - "sp-keystore 0.45.0", + "sp-io 45.0.0", + "sp-keystore 0.46.0", "sp-mmr-primitives", - "sp-runtime 45.0.0", - "sp-weights", + "sp-runtime 46.0.0", + "sp-weights 34.0.0", "strum 0.26.3", ] [[package]] name = "sp-consensus-grandpa" -version = "27.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e695150a413205139d93aea2112ff6d2bfdae77b6aae81fbd4aa8c9cee75a5" +checksum = "311ca4c8d49965b47100759a8678a7c19badd6f0eceb2323ee00b7ff0db9036f" dependencies = [ "finality-grandpa", "log", "parity-scale-codec", "scale-info", "serde", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", - "sp-core 39.0.0", - "sp-keystore 0.45.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", + "sp-core 40.0.0", + "sp-keystore 0.46.0", + "sp-runtime 46.0.0", ] [[package]] name = "sp-consensus-slots" -version = "0.46.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740ac0574f072dc388239f78c4d19ca5dea530b24a84bfd1124834ec7dc58aea" +checksum = "b65d468f0ccd29f8435e1a01779a20b2ebdebd852c8c8acaa72b0b46a8ef4513" dependencies = [ "parity-scale-codec", "scale-info", @@ -16352,10 +16540,10 @@ dependencies = [ "serde", "sha2 0.10.9", "sp-crypto-hashing", - "sp-debug-derive", + "sp-debug-derive 14.0.0", "sp-externalities 0.30.0", "sp-std", - "sp-storage", + "sp-storage 22.0.0", "ss58-registry", "substrate-bip39", "thiserror 1.0.69", @@ -16366,9 +16554,9 @@ dependencies = [ [[package]] name = "sp-core" -version = "39.0.0" +version = "40.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0f32d2a9af72fe90bec51076d0e109ef3c25aa1d2a1eef15cf3588acd4a23da" +checksum = "9182532d34684ad8852e7c5036469da9db38f318bc5ba70bb5e1e119d6154fc7" dependencies = [ "ark-vrf", "array-bytes 6.2.3", @@ -16400,10 +16588,10 @@ dependencies = [ "serde", "sha2 0.10.9", "sp-crypto-hashing", - "sp-debug-derive", - "sp-externalities 0.31.0", + "sp-debug-derive 15.0.0", + "sp-externalities 0.32.0", "sp-std", - "sp-storage", + "sp-storage 23.0.0", "ss58-registry", "substrate-bip39", "thiserror 1.0.69", @@ -16458,6 +16646,18 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "sp-debug-derive" +version = "15.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61809bf52be994e4d0a0485bb18a78509ed185e1418736c1ff9011bd1528999" +dependencies = [ + "proc-macro-warning", + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "sp-externalities" version = "0.30.0" @@ -16466,18 +16666,18 @@ checksum = "30cbf059dce180a8bf8b6c8b08b6290fa3d1c7f069a60f1df038ab5dd5fc0ba6" dependencies = [ "environmental", "parity-scale-codec", - "sp-storage", + "sp-storage 22.0.0", ] [[package]] name = "sp-externalities" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76b67582d8eb400e730d4abaa9f8841898fa36782a2c6b7f61676e5dd6f8166c" +checksum = "ccab635fdf03594e8bec6213457df38389ad54ac15ce12fea22e9a88ba039c2f" dependencies = [ "environmental", "parity-scale-codec", - "sp-storage", + "sp-storage 23.0.0", ] [[package]] @@ -16495,15 +16695,15 @@ dependencies = [ [[package]] name = "sp-genesis-builder" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd14bfa3d9980aab810acf6b0d326cddc72e37ab2ef9f0b17efb80d53c985a7" +checksum = "e1a51435d952ef0d838ed053eafab18ddd1e5d54bb2dcc8fdf911149bbcdb962" dependencies = [ "parity-scale-codec", "scale-info", "serde_json", - "sp-api 40.0.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -16522,15 +16722,15 @@ dependencies = [ [[package]] name = "sp-inherents" -version = "40.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5785f49653ece32f136b593a3a83cc0d81472d0eb94e6e8b84cc2635e907bb86" +checksum = "b6a2ce2df5f2a1a36420edb6434d87f759d548a2e6c6f0fe46df32df3e4d902e" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "thiserror 1.0.69", ] @@ -16563,9 +16763,9 @@ dependencies = [ [[package]] name = "sp-io" -version = "44.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c3b7db2a4f180e3362e374754983e3ddc844b7a1cd2c2e5b71ab0bd3673dfe" +checksum = "1d7e77b0b5db4d20623ebcf0e8a130f2db0d8b45c3862fe4817eca6f77df77f4" dependencies = [ "bytes", "docify", @@ -16573,29 +16773,29 @@ dependencies = [ "libsecp256k1", "log", "parity-scale-codec", - "polkavm-derive 0.26.0", + "polkavm-derive 0.31.0", "rustversion", "secp256k1 0.28.2", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-crypto-hashing", - "sp-externalities 0.31.0", - "sp-keystore 0.45.0", - "sp-runtime-interface 33.0.0", - "sp-state-machine 0.49.0", + "sp-externalities 0.32.0", + "sp-keystore 0.46.0", + "sp-runtime-interface 34.0.0", + "sp-state-machine 0.50.0", "sp-tracing", - "sp-trie 42.0.1", + "sp-trie 43.0.0", "tracing", "tracing-core", ] [[package]] name = "sp-keyring" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d3ac79313643baacce1ffebfd0ae78b86ddc9529ef85fa0495e37ef75f13e1d" +checksum = "f2b2c7624805d3c93f70b98fb747ddda4cd2a1f8e5dd57f0c7594843a2c0553d" dependencies = [ - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "strum 0.26.3", ] @@ -16613,14 +16813,14 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.45.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc62157d26f8c6847e2827168f71edea83f9f2c3cc12b8fb694dbe58aefe5972" +checksum = "9662309b140264f45d8dfdfa605d7f6f050b4eb39059bf467f255dbda5f2decf" dependencies = [ "parity-scale-codec", "parking_lot 0.12.5", - "sp-core 39.0.0", - "sp-externalities 0.31.0", + "sp-core 40.0.0", + "sp-externalities 0.32.0", ] [[package]] @@ -16635,9 +16835,9 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e04b85ba986883335edfa80954038e6eaffee0feb2a587d1472b268d91645c51" +checksum = "acb04cf79ea9c576c8cf3f493a9e6e432a81b181e64e9bdcc485b0004505fb5a" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -16646,57 +16846,57 @@ dependencies = [ [[package]] name = "sp-mixnet" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbebcdd1e8055e1cecfec886f226a0339f9af7a2b78c7452a50dd1dfa2cb1287" +checksum = "b933e746c6a9cd9522dbc0b7bf6fc1c7315539398272bd7c433fcb504106631c" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", ] [[package]] name = "sp-mmr-primitives" -version = "40.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec94fa772252d86932a5f01bff70df3e7f170f350dfabf14417b26eb5c9e10c9" +checksum = "42eb6a1dd300f05fee8bce5b46f32ae6b4f749ccd5bcfbd7593b1d07d0540a20" dependencies = [ "log", "parity-scale-codec", "polkadot-ckb-merkle-mountain-range", "scale-info", "serde", - "sp-api 40.0.0", - "sp-core 39.0.0", - "sp-debug-derive", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-core 40.0.0", + "sp-debug-derive 15.0.0", + "sp-runtime 46.0.0", "thiserror 1.0.69", ] [[package]] name = "sp-npos-elections" -version = "40.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9767c2808334b8a5932d314f4ffd16b2cb7b735a75f60231f4590fb50ffbd9bb" +checksum = "bd559dc3d5b3d07878e03d840596a4713248c57508d0903318a625455c8db347" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-arithmetic", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "sp-offchain" -version = "40.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122459d7edab703f86d192fde32338301b998aff9ef81d7a87ffe2cd3a190741" +checksum = "08b235543475ee2d8eff16ea4a78a66b7c6e19e73d0727d324376b148eae1d20" dependencies = [ - "sp-api 40.0.0", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -16711,13 +16911,13 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "37.0.0" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08001f6b51a282cf83ec9386ddd8134d0a417a3ec51c8e641e0181de50d48b4e" +checksum = "3c84ce7913731b0fafdd0edfcb062ac0ed20a3fc83ef6518fc87afedc0b0dc9c" dependencies = [ "rustc-hash 1.1.0", "serde", - "sp-core 39.0.0", + "sp-core 40.0.0", ] [[package]] @@ -16745,16 +16945,16 @@ dependencies = [ "sp-io 43.0.0", "sp-std", "sp-trie 41.1.0", - "sp-weights", + "sp-weights 33.2.0", "tracing", "tuplex", ] [[package]] name = "sp-runtime" -version = "45.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f799c308ab442aa1c80b193db8c76f36dcc5a911408bf8861511987f4e4f2ee" +checksum = "86e3cfbb7a2c4388988868e4212e1a7b2c37fa8d4d562a8047309167f10b9f14" dependencies = [ "binary-merkle-tree", "bytes", @@ -16770,13 +16970,13 @@ dependencies = [ "scale-info", "serde", "simple-mermaid", - "sp-application-crypto 44.0.0", + "sp-application-crypto 45.0.0", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", "sp-std", - "sp-trie 42.0.1", - "sp-weights", + "sp-trie 43.0.0", + "sp-weights 34.0.0", "strum 0.26.3", "tracing", "tuplex", @@ -16793,9 +16993,9 @@ dependencies = [ "parity-scale-codec", "polkavm-derive 0.26.0", "sp-externalities 0.30.0", - "sp-runtime-interface-proc-macro", + "sp-runtime-interface-proc-macro 20.0.0", "sp-std", - "sp-storage", + "sp-storage 22.0.0", "sp-tracing", "sp-wasm-interface", "static_assertions", @@ -16803,18 +17003,18 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "33.0.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22644a2fabb5c246911ecde30fdb7f0801c90f5e611b1147140055ad7b6dabab" +checksum = "97805f3fd193d473704b7d58bc08278d372bb35771811fb9c9c0050c2ab54efe" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "polkavm-derive 0.26.0", - "sp-externalities 0.31.0", - "sp-runtime-interface-proc-macro", + "polkavm-derive 0.31.0", + "sp-externalities 0.32.0", + "sp-runtime-interface-proc-macro 21.0.0", "sp-std", - "sp-storage", + "sp-storage 23.0.0", "sp-tracing", "sp-wasm-interface", "static_assertions", @@ -16834,33 +17034,47 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "21.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d9650b5186fd32bf5198adfe08d8fecc76f2ebe8a8927f28aaf2a537d75b2e" +dependencies = [ + "Inflector", + "expander", + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "sp-session" -version = "42.0.0" +version = "43.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a79f3383169cb7cf58a0b8f76492ba934aa73c3c41a206fe2b47be0ac5a2d11" +checksum = "66476246edf0a2365dc825dc4d5618a702d36b93d206c1fc6a7296f3e39b65f6" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 40.0.0", - "sp-core 39.0.0", - "sp-keystore 0.45.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-core 40.0.0", + "sp-keystore 0.46.0", + "sp-runtime 46.0.0", "sp-staking", ] [[package]] name = "sp-staking" -version = "42.2.0" +version = "43.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11c6b50d5b2b607d6d9d87c71ba2828143f8497be28922545a06d470fe4a4939" +checksum = "da13120b034f92c2ee5a2e079f058e6b49a35a61c90584341e724a1a0d7b7194" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -16881,14 +17095,14 @@ dependencies = [ "sp-trie 41.1.0", "thiserror 1.0.69", "tracing", - "trie-db", + "trie-db 0.30.0", ] [[package]] name = "sp-state-machine" -version = "0.49.0" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bfda052a2fe9be497139e0c5d0a51946873f3cd7c2ff81bdbcb8b446caa37" +checksum = "fe73c014eca2543dfbcdad714bc9ae1d746778a78187b741587037790fcaa7ef" dependencies = [ "hash-db", "log", @@ -16896,13 +17110,40 @@ dependencies = [ "parking_lot 0.12.5", "rand 0.8.5", "smallvec", - "sp-core 39.0.0", - "sp-externalities 0.31.0", + "sp-core 40.0.0", + "sp-externalities 0.32.0", "sp-panic-handler", - "sp-trie 42.0.1", + "sp-trie 43.0.0", "thiserror 1.0.69", "tracing", - "trie-db", + "trie-db 0.31.0", +] + +[[package]] +name = "sp-statement-store" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29a6ba0b6bb901e758ca6e56e98d107ac71148d192624a19db9c9501defd2abb" +dependencies = [ + "aes-gcm", + "curve25519-dalek", + "ed25519-dalek", + "frame-support", + "hkdf", + "parity-scale-codec", + "rand 0.8.5", + "scale-info", + "serde", + "sha2 0.10.9", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", + "sp-core 40.0.0", + "sp-crypto-hashing", + "sp-externalities 0.32.0", + "sp-runtime 46.0.0", + "sp-runtime-interface 34.0.0", + "thiserror 1.0.69", + "x25519-dalek", ] [[package]] @@ -16921,19 +17162,32 @@ dependencies = [ "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive", + "sp-debug-derive 14.0.0", +] + +[[package]] +name = "sp-storage" +version = "23.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5e5c9fb0016b49765f89d23e4869ee616e1317de8f75b59babb721ccc27d2af" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 15.0.0", ] [[package]] name = "sp-timestamp" -version = "40.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81f5dcc250a9b105e732ae43969ae956d88ba8c8de9e3dd3e73155cbc7ab2ead" +checksum = "59cd7895aac9073e3f740cf14d3e08ab43fdcacb7d08be622e3890157e35f23f" dependencies = [ "async-trait", "parity-scale-codec", - "sp-inherents 40.0.0", - "sp-runtime 45.0.0", + "sp-inherents 41.0.0", + "sp-runtime 46.0.0", "thiserror 1.0.69", ] @@ -16952,12 +17206,12 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "40.0.0" +version = "41.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb825fac0981a640d025b7bbc8f3e11147a961df502d399b563a5688ffde1b96" +checksum = "3971b8d878b5f5a984f75a75e80a2fc26270a112bb5c8643ea101499ac678fb2" dependencies = [ - "sp-api 40.0.0", - "sp-runtime 45.0.0", + "sp-api 41.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -16982,15 +17236,15 @@ dependencies = [ "substrate-prometheus-endpoint", "thiserror 1.0.69", "tracing", - "trie-db", + "trie-db 0.30.0", "trie-root", ] [[package]] name = "sp-trie" -version = "42.0.1" +version = "43.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6beed4d77d66f085443eac37171d88b2dbf6f7358d9d3451c11479ddfce60d6e" +checksum = "0566d4f76b5b6b0ababa1b6df67283642bcfa734a13e4cdbbb26aae1ae3a89c5" dependencies = [ "ahash", "foldhash 0.1.5", @@ -17003,12 +17257,12 @@ dependencies = [ "rand 0.8.5", "scale-info", "schnellru", - "sp-core 39.0.0", - "sp-externalities 0.31.0", + "sp-core 40.0.0", + "sp-externalities 0.32.0", "substrate-prometheus-endpoint", "thiserror 1.0.69", "tracing", - "trie-db", + "trie-db 0.31.0", "trie-root", ] @@ -17032,17 +17286,18 @@ dependencies = [ [[package]] name = "sp-version" -version = "43.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd07f9e708698156d941b816582cb5298a3a406d230648fcc8840f118ac423a1" +checksum = "5ca119a22444fddd66531574bfd64e161e8857522cfd72312bffedd4c544f96a" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", + "sp-core 40.0.0", "sp-crypto-hashing-proc-macro", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-std", "sp-version-proc-macro", "thiserror 1.0.69", @@ -17086,7 +17341,22 @@ dependencies = [ "serde", "smallvec", "sp-arithmetic", - "sp-debug-derive", + "sp-debug-derive 14.0.0", +] + +[[package]] +name = "sp-weights" +version = "34.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "364f93051b3b243c6221e51965e2bef465605f1de169a2ebd126fba2576dc3d9" +dependencies = [ + "bounded-collections", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic", + "sp-debug-derive 15.0.0", ] [[package]] @@ -17243,29 +17513,29 @@ dependencies = [ "scale-info", "separator", "serde_json", - "sp-api 40.0.0", - "sp-application-crypto 44.0.0", + "sp-api 41.0.0", + "sp-application-crypto 45.0.0", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core 39.0.0", - "sp-debug-derive", - "sp-genesis-builder 0.21.0", - "sp-inherents 40.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-debug-derive 15.0.0", + "sp-genesis-builder 0.22.0", + "sp-inherents 41.0.0", + "sp-io 45.0.0", "sp-keyring", "sp-npos-elections", "sp-offchain", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "sp-session", "sp-staking", - "sp-storage", + "sp-storage 23.0.0", "sp-tracing", "sp-transaction-pool", - "sp-trie 42.0.1", - "sp-version 43.0.0", + "sp-trie 43.0.0", + "sp-version 44.0.0", "ss58-registry", "staging-xcm", "staging-xcm-builder", @@ -17277,23 +17547,23 @@ dependencies = [ [[package]] name = "staging-parachain-info" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c878a6d9ad844a122ec17446b05a94c16a566e13250a52287f5eb8debf5d89c" +checksum = "aa56171c491509eba5db2aec7e2868edcac80e7783acedc5fca8f88071ac7e23" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] name = "staging-xcm" -version = "21.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da5a04bfec3911a3b5f497b3e6e3e0d4655960d5b6a1f9c28ef22d38ad0af31" +checksum = "ecb0dcfe26176c9a34b4ebca3bc0040e72ef5e6df0c9a577789881cf1bdc7044" dependencies = [ "array-bytes 6.2.3", "bounded-collections", @@ -17305,17 +17575,17 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-runtime 45.0.0", - "sp-weights", + "sp-runtime 46.0.0", + "sp-weights 34.0.0", "tracing", "xcm-procedural", ] [[package]] name = "staging-xcm-builder" -version = "25.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736228eb2316473060b925a71bb626ec38bc88a106a1dc1fc3d012da16e89114" +checksum = "d4d8ebc5b31c6ab3581dcb072ac2636368c1858cf5d8e8a0f6ce44b533b9c567" dependencies = [ "environmental", "frame-support", @@ -17327,10 +17597,10 @@ dependencies = [ "polkadot-parachain-primitives", "scale-info", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-weights", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-weights 34.0.0", "staging-xcm", "staging-xcm-executor", "tracing", @@ -17338,9 +17608,9 @@ dependencies = [ [[package]] name = "staging-xcm-executor" -version = "24.0.1" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e170ec1fc40070d7459aa3348a9e2dae9569aab99fd60986a61b76e3ff36470e" +checksum = "6da998fc8e31fbfacd626789067e2af3730ea8639d0f2a84d9ad6620a0eba886" dependencies = [ "environmental", "frame-benchmarking", @@ -17349,10 +17619,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-arithmetic", - "sp-core 39.0.0", - "sp-io 44.0.0", - "sp-runtime 45.0.0", - "sp-weights", + "sp-core 40.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", + "sp-weights 34.0.0", "staging-xcm", "tracing", ] @@ -17415,9 +17685,9 @@ dependencies = [ [[package]] name = "substrate-bip39" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca58ffd742f693dc13d69bdbb2e642ae239e0053f6aab3b104252892f856700a" +checksum = "d93affb0135879b1b67cbcf6370a256e1772f9eaaece3899ec20966d67ad0492" dependencies = [ "hmac 0.12.1", "pbkdf2", @@ -17479,16 +17749,16 @@ dependencies = [ [[package]] name = "substrate-rpc-client" -version = "0.54.0" +version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b423f09edcf02bba07db91beadee78d1c8977a5461238d2304cd33972cc09564" +checksum = "5438802aa8a85665060d8f0c6b605f75d6b46ecf533feef736651e3c1e64a484" dependencies = [ "async-trait", "jsonrpsee", "log", "sc-rpc-api", "serde", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", ] [[package]] @@ -17503,9 +17773,9 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "31.1.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e84e19e2e219e108876cdf2adef2523670886ec4471d1526930f27cf9de8db" +checksum = "ae3e008946c060c6756a6090ae1d079c69dc0d07b6f97122115b53bf57a29b52" dependencies = [ "array-bytes 6.2.3", "build-helper", @@ -17517,14 +17787,14 @@ dependencies = [ "merkleized-metadata", "parity-scale-codec", "parity-wasm", - "polkavm-linker", - "sc-executor 0.47.0", + "polkavm-linker 0.31.0", + "sc-executor 0.48.0", "shlex", - "sp-core 39.0.0", - "sp-io 44.0.0", + "sp-core 40.0.0", + "sp-io 45.0.0", "sp-maybe-compressed-blob", "sp-tracing", - "sp-version 43.0.0", + "sp-version 44.0.0", "strum 0.26.3", "tempfile", "toml 0.8.23", @@ -17858,36 +18128,6 @@ dependencies = [ "url", ] -[[package]] -name = "subxt-signer" -version = "0.43.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9bd240ae819f64ac6898d7ec99a88c8b838dba2fb9d83b843feb70e77e34c8" -dependencies = [ - "base64 0.22.1", - "bip32", - "bip39", - "cfg-if", - "crypto_secretbox", - "hex", - "hmac 0.12.1", - "keccak-hash", - "parity-scale-codec", - "pbkdf2", - "regex", - "schnorrkel", - "scrypt", - "secp256k1 0.30.0", - "secrecy 0.10.3", - "serde", - "serde_json", - "sha2 0.10.9", - "sp-crypto-hashing", - "subxt-core 0.43.0", - "thiserror 2.0.18", - "zeroize", -] - [[package]] name = "subxt-signer" version = "0.44.2" @@ -17895,11 +18135,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "963a6b53626fabc94544fdd64b03b639d5b9762efcd52e417d5292b119622a15" dependencies = [ "base64 0.22.1", + "bip32", "bip39", "cfg-if", "crypto_secretbox", "hex", "hmac 0.12.1", + "keccak-hash", "parity-scale-codec", "pbkdf2", "regex", @@ -18004,6 +18246,21 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "sysinfo" +version = "0.30.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "rayon", + "windows 0.52.0", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -18048,9 +18305,9 @@ dependencies = [ "parity-scale-codec", "polkadot-primitives", "scale-info", - "sp-api 40.0.0", - "sp-runtime 45.0.0", - "sp-state-machine 0.49.0", + "sp-api 41.0.0", + "sp-runtime 46.0.0", + "sp-state-machine 0.50.0", ] [[package]] @@ -18066,8 +18323,8 @@ dependencies = [ "polkadot-primitives", "polkadot-runtime-constants", "smallvec", - "sp-core 39.0.0", - "sp-runtime 45.0.0", + "sp-core 40.0.0", + "sp-runtime 46.0.0", "staging-xcm", ] @@ -18130,16 +18387,16 @@ checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" [[package]] name = "testnet-parachains-constants" -version = "18.0.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf046c8f3b848f9e394b046a945f323d1068eca9f3aa6132dd9147410c902fe8" +checksum = "a5064ed308510fd5541b71559af09801942e995c1f9acd154c969f821c0a220e" dependencies = [ "cumulus-primitives-core", "frame-support", "polkadot-core-primitives", "rococo-runtime-constants", "smallvec", - "sp-runtime 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", "westend-runtime-constants", ] @@ -18315,17 +18572,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-retry" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" -dependencies = [ - "pin-project", - "rand 0.8.5", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.24.1" @@ -18647,6 +18893,18 @@ dependencies = [ "smallvec", ] +[[package]] +name = "trie-db" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7795f2df2ef744e4ffb2125f09325e60a21d305cc3ecece0adeef03f7a9e560" +dependencies = [ + "hash-db", + "log", + "rustc-hex", + "smallvec", +] + [[package]] name = "trie-root" version = "0.18.0" @@ -19517,17 +19775,17 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "westend-runtime-constants" -version = "25.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f5c91a17bd066a495d3df9ed4098b3238c757361bc4c043101b6d2e0a3e3fe2" +checksum = "605b1fd7258a46eb138b37c33904211087c6accf3f5fd989750585ea915b45c3" dependencies = [ "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core 39.0.0", - "sp-runtime 45.0.0", - "sp-weights", + "sp-core 40.0.0", + "sp-runtime 46.0.0", + "sp-weights 34.0.0", "staging-xcm", "staging-xcm-builder", ] @@ -19599,6 +19857,16 @@ dependencies = [ "wasmtime-internal-math", ] +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core 0.52.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows" version = "0.53.0" @@ -19609,6 +19877,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.53.0" @@ -20093,9 +20370,9 @@ dependencies = [ [[package]] name = "xcm-emulator" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "787ad485a0c770c130d15d7421bcb35e2cd6873568397e2b1180cb1d0451b146" +checksum = "0f7281932261947e1ff33ad975e68e9a6a20070e0c84fdf2d77e62153578ef09" dependencies = [ "array-bytes 6.2.3", "cumulus-pallet-parachain-system", @@ -20117,10 +20394,10 @@ dependencies = [ "polkadot-runtime-parachains", "sp-arithmetic", "sp-consensus-aura", - "sp-core 39.0.0", + "sp-core 40.0.0", "sp-crypto-hashing", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "sp-tracing", "staging-xcm", "staging-xcm-executor", @@ -20142,24 +20419,24 @@ dependencies = [ [[package]] name = "xcm-runtime-apis" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd4fdfa1a38598cb8f49012d2b1f5b0b07d46aaae7c2e19d96f0674c970c4eab" +checksum = "2caa2873b2898c648d123e19519f75a70fd2e99528178994ac0b35dceeef37d1" dependencies = [ "frame-support", "parity-scale-codec", "scale-info", - "sp-api 40.0.0", - "sp-weights", + "sp-api 41.0.0", + "sp-weights 34.0.0", "staging-xcm", "staging-xcm-executor", ] [[package]] name = "xcm-simulator" -version = "25.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77cef52b3a7e1b4209988ba3a5cdbdc11949c312bd6ccc518bb8579bb61b6a7" +checksum = "306b82be42297a838aa72f83e91edc9f477b095f14a36890f4f3a8edf2833190" dependencies = [ "frame-support", "frame-system", @@ -20170,8 +20447,8 @@ dependencies = [ "polkadot-primitives", "polkadot-runtime-parachains", "scale-info", - "sp-io 44.0.0", - "sp-runtime 45.0.0", + "sp-io 45.0.0", + "sp-runtime 46.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -20209,9 +20486,9 @@ dependencies = [ [[package]] name = "yamux" -version = "0.13.8" +version = "0.13.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deab71f2e20691b4728b349c6cee8fc7223880fa67b6b4f92225ec32225447e5" +checksum = "1991f6690292030e31b0144d73f5e8368936c58e45e7068254f7138b23b00672" dependencies = [ "futures", "log", @@ -20407,7 +20684,7 @@ dependencies = [ "sha2 0.10.9", "sp-core 38.1.0", "subxt 0.44.2", - "subxt-signer 0.44.2", + "subxt-signer", "thiserror 1.0.69", "tokio", "tracing", @@ -20471,7 +20748,7 @@ dependencies = [ "futures", "lazy_static", "subxt 0.44.2", - "subxt-signer 0.44.2", + "subxt-signer", "tokio", "zombienet-configuration", "zombienet-orchestrator", diff --git a/Cargo.toml b/Cargo.toml index 75958b7351..3ba210806a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,8 +8,8 @@ license = "GPL-3.0-only" # TODO sp_core::storage::Storage { system: asset_hub_kusama_runtime::SystemConfig::default(), balances: asset_hub_kusama_runtime::BalancesConfig { balances: accounts::init_balances() - .iter() - .cloned() + .into_iter() + .chain([TreasuryAccount::get(), StakingPot::get()]) .map(|k| (k, ED * 4096 * 4096 * 4096)) // pre-fund checking account to avoid pre-funding for every test scenario // teleporting funds to asset hub - .chain(std::iter::once(( - asset_hub_kusama_runtime::xcm_config::CheckingAccount::get(), - ED * 4096 * 4096 * 4096 * 4096, - ))) + .chain(std::iter::once((CheckingAccount::get(), ED * 4096 * 4096 * 4096 * 4096))) .collect(), dev_accounts: None, }, diff --git a/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/src/lib.rs b/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/src/lib.rs index cc4d145905..9bc431b467 100644 --- a/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/src/lib.rs +++ b/integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/src/lib.rs @@ -42,6 +42,7 @@ decl_test_parachains! { LocationToAccountId: asset_hub_kusama_runtime::xcm_config::LocationToAccountId, ParachainInfo: asset_hub_kusama_runtime::ParachainInfo, MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin, + native_total_supply_tracker: true, }, pallets = { PolkadotXcm: asset_hub_kusama_runtime::PolkadotXcm, @@ -50,6 +51,8 @@ decl_test_parachains! { PoolAssets: asset_hub_kusama_runtime::PoolAssets, AssetConversion: asset_hub_kusama_runtime::AssetConversion, Balances: asset_hub_kusama_runtime::Balances, + Treasury: asset_hub_kusama_runtime::Treasury, + AssetRate: asset_hub_kusama_runtime::AssetRate, } }, } 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 46e5990248..a67a4b7537 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 @@ -13,10 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Substrate -use sp_keyring::{Ed25519Keyring, Sr25519Keyring}; - -// Cumulus +use asset_hub_polkadot_runtime::xcm_config::{CheckingAccount, StakingPot, TreasuryAccount}; use emulated_integration_tests_common::{ accounts, build_genesis_storage, xcm_emulator::ConvertLocation, PenpalALocation, PenpalASiblingSovereignAccount, PenpalATeleportableAssetLocation, PenpalBLocation, @@ -25,6 +22,7 @@ use emulated_integration_tests_common::{ }; use integration_tests_helpers::common::snowbridge::{EthLocation, WethLocation, MIN_ETHER_BALANCE}; use parachains_common::{AccountId, Balance}; +use sp_keyring::{Ed25519Keyring, Sr25519Keyring}; use xcm::prelude::*; use xcm_builder::ExternalConsensusLocationsConverterFor; @@ -60,15 +58,12 @@ pub fn genesis() -> sp_core::storage::Storage { system: asset_hub_polkadot_runtime::SystemConfig::default(), balances: asset_hub_polkadot_runtime::BalancesConfig { balances: accounts::init_balances() - .iter() - .cloned() + .into_iter() + .chain([TreasuryAccount::get(), StakingPot::get()]) .map(|k| (k, ED * 4096 * 4096)) // pre-fund checking account to avoid pre-funding for every test scenario // teleporting funds to asset hub - .chain(std::iter::once(( - asset_hub_polkadot_runtime::xcm_config::CheckingAccount::get(), - ED * 4096 * 4096 * 4096, - ))) + .chain(std::iter::once((CheckingAccount::get(), ED * 4096 * 4096 * 4096))) .collect(), dev_accounts: None, }, diff --git a/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/src/lib.rs b/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/src/lib.rs index 6aaa3d9fda..ff1678b872 100644 --- a/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/src/lib.rs +++ b/integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/src/lib.rs @@ -42,6 +42,7 @@ decl_test_parachains! { LocationToAccountId: asset_hub_polkadot_runtime::xcm_config::LocationToAccountId, ParachainInfo: asset_hub_polkadot_runtime::ParachainInfo, MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin, + native_total_supply_tracker: true, }, pallets = { PolkadotXcm: asset_hub_polkadot_runtime::PolkadotXcm, @@ -52,6 +53,8 @@ decl_test_parachains! { AssetConversion: asset_hub_polkadot_runtime::AssetConversion, SnowbridgeSystemFrontend: asset_hub_polkadot_runtime::SnowbridgeSystemFrontend, Preimage: asset_hub_polkadot_runtime::Preimage, + Treasury: asset_hub_polkadot_runtime::Treasury, + AssetRate: asset_hub_polkadot_runtime::AssetRate, } }, } 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 abaaa1e290..6214e874ce 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 @@ -13,14 +13,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Substrate -use sp_keyring::Sr25519Keyring as Keyring; - -// Cumulus +use bridge_hub_kusama_runtime::xcm_config::{RelayTreasuryPalletAccount, StakingPot}; use emulated_integration_tests_common::{ accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, }; use parachains_common::Balance; +use sp_keyring::Sr25519Keyring as Keyring; use xcm::latest::prelude::*; pub const ASSET_HUB_PARA_ID: u32 = 1000; @@ -31,7 +29,11 @@ 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 { - balances: accounts::init_balances().iter().cloned().map(|k| (k, ED * 4096)).collect(), + balances: accounts::init_balances() + .into_iter() + .chain([RelayTreasuryPalletAccount::get(), StakingPot::get()]) + .map(|k| (k, ED * 4096)) + .collect(), dev_accounts: None, }, parachain_info: bridge_hub_kusama_runtime::ParachainInfoConfig { 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 9e79aa2c09..296641221b 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 @@ -13,14 +13,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Substrate -use sp_keyring::Sr25519Keyring as Keyring; - -// Cumulus +use bridge_hub_polkadot_runtime::xcm_config::{StakingPot, TreasuryAccount}; use emulated_integration_tests_common::{ accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, }; use parachains_common::Balance; +use sp_keyring::Sr25519Keyring as Keyring; use xcm::latest::prelude::*; pub const ASSET_HUB_PARA_ID: u32 = 1000; @@ -31,7 +29,11 @@ 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 { - balances: accounts::init_balances().iter().cloned().map(|k| (k, ED * 4096)).collect(), + balances: accounts::init_balances() + .into_iter() + .chain([TreasuryAccount::get(), StakingPot::get()]) + .map(|k| (k, ED * 4096)) + .collect(), dev_accounts: None, }, parachain_info: bridge_hub_polkadot_runtime::ParachainInfoConfig { diff --git a/integration-tests/emulated/chains/parachains/collectives/collectives-polkadot/src/genesis.rs b/integration-tests/emulated/chains/parachains/collectives/collectives-polkadot/src/genesis.rs index bf45b10a7c..8ede0fb79b 100644 --- a/integration-tests/emulated/chains/parachains/collectives/collectives-polkadot/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/collectives/collectives-polkadot/src/genesis.rs @@ -13,14 +13,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Substrate -use sp_core::storage::Storage; - -// Cumulus +use collectives_polkadot_runtime::xcm_config::{RelayTreasuryPalletAccount, StakingPot}; use emulated_integration_tests_common::{ accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, }; use parachains_common::Balance; +use sp_core::storage::Storage; pub const PARA_ID: u32 = 1001; pub const ED: Balance = collectives_polkadot_runtime::ExistentialDeposit::get(); @@ -29,7 +27,11 @@ pub fn genesis() -> Storage { let genesis_config = collectives_polkadot_runtime::RuntimeGenesisConfig { system: collectives_polkadot_runtime::SystemConfig::default(), balances: collectives_polkadot_runtime::BalancesConfig { - balances: accounts::init_balances().iter().cloned().map(|k| (k, ED * 4096)).collect(), + balances: accounts::init_balances() + .into_iter() + .chain([RelayTreasuryPalletAccount::get(), StakingPot::get()]) + .map(|k| (k, ED * 4096)) + .collect(), dev_accounts: None, }, parachain_info: collectives_polkadot_runtime::ParachainInfoConfig { diff --git a/integration-tests/emulated/chains/parachains/coretime/coretime-kusama/src/genesis.rs b/integration-tests/emulated/chains/parachains/coretime/coretime-kusama/src/genesis.rs index e4ab56da05..1639e83fba 100644 --- a/integration-tests/emulated/chains/parachains/coretime/coretime-kusama/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/coretime/coretime-kusama/src/genesis.rs @@ -13,14 +13,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Substrate -use sp_core::storage::Storage; - -// Cumulus +use coretime_kusama_runtime::xcm_config::{RelayTreasuryPalletAccount, StakingPot}; use emulated_integration_tests_common::{ accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, }; use parachains_common::Balance; +use sp_core::storage::Storage; pub const PARA_ID: u32 = 1005; pub const ED: Balance = coretime_kusama_runtime::ExistentialDeposit::get(); @@ -29,7 +27,11 @@ pub fn genesis() -> Storage { let genesis_config = coretime_kusama_runtime::RuntimeGenesisConfig { system: coretime_kusama_runtime::SystemConfig::default(), balances: coretime_kusama_runtime::BalancesConfig { - balances: accounts::init_balances().iter().cloned().map(|k| (k, ED * 4096)).collect(), + balances: accounts::init_balances() + .into_iter() + .chain([RelayTreasuryPalletAccount::get(), StakingPot::get()]) + .map(|k| (k, ED * 4096)) + .collect(), dev_accounts: None, }, parachain_info: coretime_kusama_runtime::ParachainInfoConfig { diff --git a/integration-tests/emulated/chains/parachains/coretime/coretime-polkadot/src/genesis.rs b/integration-tests/emulated/chains/parachains/coretime/coretime-polkadot/src/genesis.rs index bd40537156..124c9217c7 100644 --- a/integration-tests/emulated/chains/parachains/coretime/coretime-polkadot/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/coretime/coretime-polkadot/src/genesis.rs @@ -14,14 +14,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Substrate -use sp_core::storage::Storage; - -// Cumulus +use coretime_polkadot_runtime::xcm_config::{RelayTreasuryPalletAccount, StakingPot}; use emulated_integration_tests_common::{ accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, }; use parachains_common::Balance; +use sp_core::storage::Storage; pub const PARA_ID: u32 = 1005; pub const ED: Balance = coretime_polkadot_runtime::ExistentialDeposit::get(); @@ -30,7 +28,11 @@ pub fn genesis() -> Storage { let genesis_config = coretime_polkadot_runtime::RuntimeGenesisConfig { system: coretime_polkadot_runtime::SystemConfig::default(), balances: coretime_polkadot_runtime::BalancesConfig { - balances: accounts::init_balances().iter().cloned().map(|k| (k, ED * 4096)).collect(), + balances: accounts::init_balances() + .into_iter() + .chain([RelayTreasuryPalletAccount::get(), StakingPot::get()]) + .map(|k| (k, ED * 4096)) + .collect(), dev_accounts: None, }, parachain_info: coretime_polkadot_runtime::ParachainInfoConfig { diff --git a/integration-tests/emulated/chains/parachains/encointer/encointer-kusama/src/genesis.rs b/integration-tests/emulated/chains/parachains/encointer/encointer-kusama/src/genesis.rs index 1e37bad4b9..1ff39ef428 100644 --- a/integration-tests/emulated/chains/parachains/encointer/encointer-kusama/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/encointer/encointer-kusama/src/genesis.rs @@ -13,13 +13,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Substrate - -// Cumulus use emulated_integration_tests_common::{ accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, }; -use encointer_kusama_runtime::{BalanceType, CeremonyPhaseType}; +use encointer_kusama_runtime::{ + xcm_config::{StakingPot, TreasuryAccount}, + BalanceType, CeremonyPhaseType, +}; use parachains_common::Balance; use xcm::prelude::*; @@ -35,8 +35,8 @@ pub fn genesis() -> sp_core::storage::Storage { system: encointer_kusama_runtime::SystemConfig::default(), balances: encointer_kusama_runtime::BalancesConfig { balances: accounts::init_balances() - .iter() - .cloned() + .into_iter() + .chain([TreasuryAccount::get(), StakingPot::get()]) .map(|k| (k, ED * 4096 * 4096)) .collect(), dev_accounts: None, diff --git a/integration-tests/emulated/chains/parachains/people/people-kusama/src/genesis.rs b/integration-tests/emulated/chains/parachains/people/people-kusama/src/genesis.rs index 2af26001c1..97ff32de84 100644 --- a/integration-tests/emulated/chains/parachains/people/people-kusama/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/people/people-kusama/src/genesis.rs @@ -13,16 +13,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Substrate -use sp_core::storage::Storage; - -// Cumulus use cumulus_primitives_core::ParaId; use emulated_integration_tests_common::{ accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, }; use kusama_runtime_constants::currency::UNITS as KSM; use parachains_common::Balance; +use people_kusama_runtime::xcm_config::{RelayTreasuryPalletAccount, StakingPot}; +use sp_core::storage::Storage; const ENDOWMENT: u128 = 1_000 * KSM; pub const PARA_ID: u32 = 1004; @@ -31,7 +29,11 @@ pub const ED: Balance = people_kusama_runtime::ExistentialDeposit::get(); pub fn genesis() -> Storage { let genesis_config = people_kusama_runtime::RuntimeGenesisConfig { balances: people_kusama_runtime::BalancesConfig { - balances: accounts::init_balances().iter().cloned().map(|k| (k, ENDOWMENT)).collect(), + balances: accounts::init_balances() + .into_iter() + .chain([RelayTreasuryPalletAccount::get(), StakingPot::get()]) + .map(|k| (k, ENDOWMENT)) + .collect(), dev_accounts: None, }, system: people_kusama_runtime::SystemConfig::default(), diff --git a/integration-tests/emulated/chains/parachains/people/people-polkadot/src/genesis.rs b/integration-tests/emulated/chains/parachains/people/people-polkadot/src/genesis.rs index fa05578de4..af22d03f83 100644 --- a/integration-tests/emulated/chains/parachains/people/people-polkadot/src/genesis.rs +++ b/integration-tests/emulated/chains/parachains/people/people-polkadot/src/genesis.rs @@ -13,16 +13,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Substrate -use sp_core::storage::Storage; - -// Cumulus use cumulus_primitives_core::ParaId; use emulated_integration_tests_common::{ accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, }; use parachains_common::Balance; +use people_polkadot_runtime::xcm_config::{RelayTreasuryPalletAccount, StakingPot}; use polkadot_runtime_constants::currency::UNITS as DOT; +use sp_core::storage::Storage; const ENDOWMENT: u128 = 1_000 * DOT; pub const PARA_ID: u32 = 1004; @@ -31,7 +29,11 @@ pub const ED: Balance = people_polkadot_runtime::ExistentialDeposit::get(); pub fn genesis() -> Storage { let genesis_config = people_polkadot_runtime::RuntimeGenesisConfig { balances: people_polkadot_runtime::BalancesConfig { - balances: accounts::init_balances().iter().cloned().map(|k| (k, ENDOWMENT)).collect(), + balances: accounts::init_balances() + .into_iter() + .chain([RelayTreasuryPalletAccount::get(), StakingPot::get()]) + .map(|k| (k, ENDOWMENT)) + .collect(), dev_accounts: None, }, system: people_polkadot_runtime::SystemConfig::default(), diff --git a/integration-tests/emulated/chains/relays/kusama/src/lib.rs b/integration-tests/emulated/chains/relays/kusama/src/lib.rs index bcd44c90f9..80a66a30bd 100644 --- a/integration-tests/emulated/chains/relays/kusama/src/lib.rs +++ b/integration-tests/emulated/chains/relays/kusama/src/lib.rs @@ -25,7 +25,7 @@ use emulated_integration_tests_common::{ // Kusama declaration decl_test_relay_chains! { - #[api_version(13)] + #[api_version(16)] pub struct Kusama { genesis = genesis::genesis(), on_init = (), diff --git a/integration-tests/emulated/chains/relays/polkadot/src/lib.rs b/integration-tests/emulated/chains/relays/polkadot/src/lib.rs index b0357f117c..ef2500be7e 100644 --- a/integration-tests/emulated/chains/relays/polkadot/src/lib.rs +++ b/integration-tests/emulated/chains/relays/polkadot/src/lib.rs @@ -25,7 +25,7 @@ use emulated_integration_tests_common::{ // Polkadot declaration decl_test_relay_chains! { - #[api_version(13)] + #[api_version(16)] pub struct Polkadot { genesis = genesis::genesis(), on_init = (), diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/claim_assets.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/claim_assets.rs index f59d121dd5..ff82b63dcf 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/claim_assets.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/claim_assets.rs @@ -17,13 +17,21 @@ use crate::*; -use asset_hub_kusama_runtime::ExistentialDeposit; +use asset_hub_kusama_runtime::{ + xcm_config::XcmConfig as AssetHubKusamaXcmConfig, ExistentialDeposit, +}; use integration_tests_helpers::test_chain_can_claim_assets; #[test] fn assets_can_be_claimed() { let amount = ExistentialDeposit::get(); - let assets: Assets = (Parent, amount).into(); + let assets: Asset = (Parent, amount).into(); - test_chain_can_claim_assets!(AssetHubKusama, RuntimeCall, NetworkId::Kusama, assets, amount); + test_chain_can_claim_assets!( + AssetHubKusama, + AssetHubKusamaXcmConfig, + NetworkId::Kusama, + assets, + amount + ); } 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 d9c80a0b83..c9ccf7e538 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 @@ -36,14 +36,14 @@ fn para_to_para_assethub_hop_assertions(t: ParaToParaThroughAHTest) { vec![ // Withdrawn from sender parachain SA RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == sov_penpal_a_on_ah, amount: *amount == t.args.amount, }, // Deposited to receiver parachain SA RuntimeEvent::Balances( - pallet_balances::Event::Minted { who, .. } + pallet_balances::Event::Deposit { who, .. } ) => { who: *who == sov_penpal_b_on_ah, }, @@ -726,10 +726,10 @@ fn usdt_only_transfer_from_para_to_para_through_asset_hub() { PenpalA, vec![ Event::ForeignAssets( - pallet_assets::Event::Burned { asset_id, balance, .. } + pallet_assets::Event::Withdrawn { asset_id, amount, .. } ) => { asset_id: *asset_id == usdt_location.clone(), - balance: *balance == transfer_amount, + amount: *amount == transfer_amount, }, ] ); @@ -748,11 +748,11 @@ fn usdt_only_transfer_from_para_to_para_through_asset_hub() { vec![ // USDT is burned from sovereign account of PenpalA. Event::Assets( - pallet_assets::Event::Burned { asset_id, owner, balance } + pallet_assets::Event::Withdrawn { asset_id, who, amount } ) => { asset_id: *asset_id == 1984, - owner: *owner == sov_penpal_on_ah, - balance: *balance == transfer_amount, + who: *who == sov_penpal_on_ah, + amount: *amount == transfer_amount, }, // Credit is swapped. Event::AssetConversion( @@ -777,10 +777,10 @@ fn usdt_only_transfer_from_para_to_para_through_asset_hub() { vec![ // Final amount gets deposited to receiver. Event::ForeignAssets( - pallet_assets::Event::Issued { asset_id, owner, .. } + pallet_assets::Event::Deposited { asset_id, who, .. } ) => { asset_id: *asset_id == usdt_location, - owner: *owner == receiver, + who: *who == receiver, }, // Swap was made to pay fees with USDT. Event::AssetConversion( 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 01cf323a47..7cc691d223 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 @@ -49,11 +49,11 @@ fn para_to_relay_sender_assertions(t: ParaToRelayTest) { vec![ // Amount to reserve transfer is transferred to Parachain's Sovereign account RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance, .. } + pallet_assets::Event::Withdrawn { asset_id, who, amount, .. } ) => { asset_id: *asset_id == KsmLocation::get(), - owner: *owner == t.sender.account_id, - balance: *balance == t.args.amount, + who: *who == t.sender.account_id, + amount: *amount == t.args.amount, }, ] ); @@ -96,9 +96,9 @@ pub fn system_para_to_para_receiver_assertions(t: SystemParaToParaTest) { assert_expected_events!( PenpalB, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == relative_id, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, ] ); @@ -111,9 +111,9 @@ fn relay_to_para_assets_receiver_assertions(t: RelayToParaTest) { assert_expected_events!( PenpalA, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == KsmLocation::get(), - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } @@ -133,12 +133,12 @@ fn para_to_relay_receiver_assertions(t: ParaToRelayTest) { vec![ // Amount to reserve transfer is withdrawn from Parachain's Sovereign account RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == sov_penpal_on_relay.clone(), amount: *amount == t.args.amount, }, - RuntimeEvent::Balances(pallet_balances::Event::Minted { .. }) => {}, + RuntimeEvent::Balances(pallet_balances::Event::Deposit { .. }) => {}, RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } ) => {}, @@ -157,11 +157,11 @@ pub fn para_to_system_para_sender_assertions(t: ParaToSystemParaTest) { PenpalA, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance } + pallet_assets::Event::Withdrawn { asset_id, who, amount } ) => { asset_id: *asset_id == expected_id, - owner: *owner == t.sender.account_id, - balance: *balance == asset_amount, + who: *who == t.sender.account_id, + amount: *amount == asset_amount, }, ] ); @@ -179,12 +179,12 @@ pub fn para_to_system_para_receiver_assertions(t: ParaToSystemParaTest) { vec![ // Amount to reserve transfer is withdrawn from Parachain's Sovereign account RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == sov_penpal_on_ahk.clone(), amount: *amount == t.args.amount, }, - RuntimeEvent::Balances(pallet_balances::Event::Minted { .. }) => {}, + RuntimeEvent::Balances(pallet_balances::Event::Deposit { .. }) => {}, RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } ) => {}, @@ -223,18 +223,18 @@ fn para_to_system_para_assets_sender_assertions(t: ParaToSystemParaTest) { vec![ // Fees amount to reserve transfer is burned from Parachains's sender account RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, .. } + pallet_assets::Event::Withdrawn { asset_id, who, .. } ) => { asset_id: *asset_id == system_para_native_asset_location, - owner: *owner == t.sender.account_id, + who: *who == t.sender.account_id, }, // Amount to reserve transfer is burned from Parachains's sender account RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance } + pallet_assets::Event::Withdrawn { asset_id, who, amount } ) => { asset_id: *asset_id == reservable_asset_location, - owner: *owner == t.sender.account_id, - balance: *balance == t.args.amount, + who: *who == t.sender.account_id, + amount: *amount == t.args.amount, }, // Transport fees are paid RuntimeEvent::PolkadotXcm( @@ -252,13 +252,13 @@ fn system_para_to_para_assets_receiver_assertions(t: SystemParaToParaTest) { assert_expected_events!( PenpalA, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == KsmLocation::get(), - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, amount }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, amount }) => { asset_id: *asset_id == system_para_asset_location, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, amount: *amount == t.args.amount, }, ] @@ -275,25 +275,25 @@ fn para_to_system_para_assets_receiver_assertions(t: ParaToSystemParaTest) { AssetHubKusama, vec![ // Amount to reserve transfer is burned from Parachain's Sovereign account - RuntimeEvent::Assets(pallet_assets::Event::Burned { asset_id, .. }) => { + RuntimeEvent::Assets(pallet_assets::Event::Withdrawn { asset_id, .. }) => { asset_id: *asset_id == RESERVABLE_ASSET_ID, // TODO: investigate - // owner: *owner == sov_penpal_on_ahr, - // balance: *balance == t.args.amount, + // who: *who == sov_penpal_on_ahr, + // amount: *amount == t.args.amount, }, // Fee amount is burned from Parachain's Sovereign account - RuntimeEvent::Balances(pallet_balances::Event::Burned { .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { .. }) => { // TODO: investigate // who: *who == sov_penpal_on_ahr, }, // Amount to reserve transfer is issued for beneficiary - RuntimeEvent::Assets(pallet_assets::Event::Issued { asset_id, owner, amount }) => { + RuntimeEvent::Assets(pallet_assets::Event::Deposited { asset_id, who, amount }) => { asset_id: *asset_id == RESERVABLE_ASSET_ID, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, amount: *amount == t.args.amount, }, // Remaining fee amount is minted for for beneficiary - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == t.receiver.account_id, }, ] @@ -312,11 +312,11 @@ pub fn para_to_para_through_hop_sender_assertions(t: Test { asset_id: *asset_id == expected_id, - owner: *owner == t.sender.account_id, - balance: *balance == amount, + who: *who == t.sender.account_id, + transferred_amount: *transferred_amount == amount, }, ] ); @@ -334,14 +334,14 @@ fn para_to_para_relay_hop_assertions(t: ParaToParaThroughRelayTest) { vec![ // Withdrawn from sender parachain SA RuntimeEvent::Balances( - pallet_balances::Event::Withdraw { who, amount } | pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == sov_penpal_a_on_kusama, amount: *amount == t.args.amount, }, // Deposited to receiver parachain SA RuntimeEvent::Balances( - pallet_balances::Event::Deposit { who, .. } | pallet_balances::Event::Minted { who, .. } + pallet_balances::Event::Deposit { who, .. } ) => { who: *who == sov_penpal_b_on_kusama, }, @@ -361,9 +361,9 @@ pub fn para_to_para_through_hop_receiver_assertions(t: Test { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == expected_id, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, ] ); @@ -1220,9 +1220,9 @@ fn system_para_to_penpal_receiver_assertions(t: SystemParaToParaTest) { assert_expected_events!( PenpalB, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == relative_id, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, ] ); @@ -1412,10 +1412,10 @@ fn reserve_transfer_usdt_from_para_to_para_through_asset_hub() { vec![ // Withdrawn from sender parachain SA RuntimeEvent::Assets( - pallet_assets::Event::Burned { owner, balance, .. } + pallet_assets::Event::Withdrawn { who, amount, .. } ) => { - owner: *owner == sov_penpal_a_on_ah, - balance: *balance == asset_amount, + who: *who == sov_penpal_a_on_ah, + amount: *amount == asset_amount, }, RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } @@ -1445,11 +1445,11 @@ fn reserve_transfer_usdt_from_para_to_para_through_asset_hub() { PenpalA, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance }, + pallet_assets::Event::Withdrawn { asset_id, who, amount: transferred_amount }, ) => { asset_id: *asset_id == expected_id, - owner: *owner == t.sender.account_id, - balance: *balance == amount, + who: *who == t.sender.account_id, + transferred_amount: *transferred_amount == amount, }, ] ); @@ -1464,9 +1464,9 @@ fn reserve_transfer_usdt_from_para_to_para_through_asset_hub() { assert_expected_events!( PenpalB, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == expected_id, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, ] ); 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 9b81189440..5382fd4660 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 @@ -95,7 +95,7 @@ pub fn penpal_register_foreign_asset_on_asset_hub(asset_location_on_penpal: Loca AssetHubKusama, vec![ // Burned the fee - RuntimeEvent::Balances(pallet_balances::Event::Burned { who, amount }) => { + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { who, amount }) => { who: *who == penpal_sovereign_account, amount: *amount == fee_amount, }, @@ -325,10 +325,10 @@ fn send_xcm_from_para_to_asset_hub_paying_fee_with_sufficient_asset() { AssetHubKusama, vec![ // Burned the fee - RuntimeEvent::Assets(pallet_assets::Event::Burned { asset_id, owner, balance }) => { + RuntimeEvent::Assets(pallet_assets::Event::Withdrawn { asset_id, who, amount }) => { asset_id: *asset_id == ASSET_ID, - owner: *owner == para_sovereign_account, - balance: *balance == fee_amount, + who: *who == para_sovereign_account, + amount: *amount == fee_amount, }, // Asset created RuntimeEvent::Assets(pallet_assets::Event::Created { asset_id, creator, owner }) => { 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 f51f263e3b..88a0f877eb 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 @@ -32,15 +32,15 @@ fn penpal_to_ah_foreign_assets_sender_assertions(t: ParaToSystemParaTest) { PenpalA, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, .. } + pallet_assets::Event::Withdrawn { asset_id, who, .. } ) => { asset_id: *asset_id == system_para_native_asset_location, - owner: *owner == t.sender.account_id, + who: *who == t.sender.account_id, }, - RuntimeEvent::Assets(pallet_assets::Event::Burned { asset_id, owner, balance }) => { + RuntimeEvent::Assets(pallet_assets::Event::Withdrawn { asset_id, who, amount }) => { asset_id: *asset_id == expected_asset_id, - owner: *owner == t.sender.account_id, - balance: *balance == expected_asset_amount, + who: *who == t.sender.account_id, + amount: *amount == expected_asset_amount, }, ] ); @@ -54,14 +54,13 @@ fn penpal_to_ah_foreign_assets_receiver_assertions(t: ParaToSystemParaTest) { assert_expected_events!( AssetHubKusama, vec![ - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == t.receiver.account_id, }, - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { owner, amount, .. }) => { - owner: *owner == t.receiver.account_id, + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { who, amount, .. }) => { + who: *who == t.receiver.account_id, amount: *amount == expected_foreign_asset_amount, }, - RuntimeEvent::Balances(pallet_balances::Event::Issued { .. }) => {}, ] ); } @@ -75,10 +74,10 @@ fn ah_to_penpal_foreign_assets_sender_assertions(t: SystemParaToParaTest) { AssetHubKusama, vec![ // foreign asset is burned locally as part of teleportation - RuntimeEvent::ForeignAssets(pallet_assets::Event::Burned { asset_id, owner, balance }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Withdrawn { asset_id, who, amount }) => { asset_id: *asset_id == expected_foreign_asset_id, - owner: *owner == t.sender.account_id, - balance: *balance == expected_foreign_asset_amount, + who: *who == t.sender.account_id, + amount: *amount == expected_foreign_asset_amount, }, ] ); @@ -94,15 +93,15 @@ fn ah_to_penpal_foreign_assets_receiver_assertions(t: SystemParaToParaTest) { PenpalA, vec![ // local asset is teleported into account of receiver - RuntimeEvent::Assets(pallet_assets::Event::Issued { asset_id, owner, amount }) => { + RuntimeEvent::Assets(pallet_assets::Event::Deposited { asset_id, who, amount }) => { asset_id: *asset_id == expected_asset_id, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, amount: *amount == expected_asset_amount, }, // native asset for fee is deposited to receiver - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == Location::parent(), - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, ] ); @@ -480,7 +479,7 @@ fn relay_origin_assertions(t: RelayToSystemParaTest) { Kusama, vec![ // Amount to teleport is withdrawn from Sender - RuntimeEvent::Balances(pallet_balances::Event::Burned { who, amount }) => { + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { who, amount }) => { who: *who == t.sender.account_id, amount: *amount == t.args.amount, }, @@ -663,7 +662,7 @@ fn limited_teleport_native_assets_from_relay_to_asset_hub_checking_acc_burn_work who: *who == ::PolkadotXcm::check_account(), amount: *amount == t.args.amount, }, - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == t.receiver.account_id, }, RuntimeEvent::MessageQueue( @@ -738,7 +737,7 @@ fn limited_teleport_native_assets_from_asset_hub_to_relay_checking_acc_mint_work AssetHubKusama, vec![ RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == t.sender.account_id, amount: *amount == t.args.amount, @@ -760,7 +759,7 @@ fn limited_teleport_native_assets_from_asset_hub_to_relay_checking_acc_mint_work RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } ) => {}, - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == t.receiver.account_id, }, ] diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/transact.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/transact.rs index 517847dbd9..8f0814643f 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/transact.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/transact.rs @@ -183,9 +183,9 @@ fn asset_hub_hop_assertions(sender_sa: AccountId) { AssetHubKusama, vec![ RuntimeEvent::Assets( - pallet_assets::Event::Burned { owner, .. } + pallet_assets::Event::Withdrawn { who, .. } ) => { - owner: *owner == sender_sa, + who: *who == sender_sa, }, RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } 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 6ceb5e1a25..e09b32aaff 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 @@ -18,36 +18,27 @@ use crate::*; use emulated_integration_tests_common::accounts::{ALICE, BOB}; use frame_support::traits::fungibles::{Inspect as FungiblesInspect, Mutate}; -use kusama_system_emulated_network::kusama_emulated_chain::kusama_runtime::Dmp; +use parachains_common::pay::VersionedLocatableAccount; use polkadot_runtime_common::impls::VersionedLocatableAsset; -use xcm_executor::traits::ConvertLocation; #[test] fn create_and_claim_treasury_spend_in_usdt() { const USDT_ID: u32 = 1984; const SPEND_AMOUNT: u128 = 10_000_000; - // treasury location from a sibling parachain. - let treasury_location: Location = Location::new(1, PalletInstance(18)); - // treasury account on a sibling parachain. - let treasury_account = - asset_hub_kusama_runtime::xcm_config::LocationToAccountId::convert_location( - &treasury_location, - ) - .unwrap(); - let asset_hub_location = - v5::Location::new(0, v5::Junction::Parachain(AssetHubKusama::para_id().into())); - let root = ::RuntimeOrigin::root(); - // asset kind to be spend from the treasury. + + let treasury_account = asset_hub_kusama_runtime::Treasury::account_id(); + let root = ::RuntimeOrigin::root(); + // asset kind to be spent from the treasury. let asset_kind = VersionedLocatableAsset::V5 { - location: asset_hub_location, + location: Location::new(0, []), asset_id: v5::AssetId( (v5::Junction::PalletInstance(50), v5::Junction::GeneralIndex(USDT_ID.into())).into(), ), }; // treasury spend beneficiary. let alice: AccountId = Kusama::account_id_of(ALICE); - let bob: AccountId = Kusama::account_id_of(BOB); - let bob_signed = ::RuntimeOrigin::signed(bob.clone()); + let bob: AccountId = AssetHubKusama::account_id_of(BOB); + let bob_signed = ::RuntimeOrigin::signed(bob.clone()); AssetHubKusama::execute_with(|| { type Assets = ::Assets; @@ -58,70 +49,41 @@ fn create_and_claim_treasury_spend_in_usdt() { assert_eq!(>::balance(USDT_ID, &alice,), 0u128,); }); - Kusama::execute_with(|| { - type RuntimeEvent = ::RuntimeEvent; - type Treasury = ::Treasury; - type AssetRate = ::AssetRate; + AssetHubKusama::execute_with(|| { + type RuntimeEvent = ::RuntimeEvent; + type Treasury = ::Treasury; + type AssetRate = ::AssetRate; // create a conversion rate from `asset_kind` to the native currency. assert_ok!(AssetRate::create(root.clone(), Box::new(asset_kind.clone()), 2.into())); - Dmp::make_parachain_reachable(1000); // create and approve a treasury spend. assert_ok!(Treasury::spend( root, Box::new(asset_kind), SPEND_AMOUNT, - Box::new(Location::new(0, Into::<[u8; 32]>::into(alice.clone())).into()), + Box::new(VersionedLocatableAccount::V5 { + location: Location::new(0, []), + account_id: Location::new(0, Into::<[u8; 32]>::into(alice.clone())), + }), None, )); // claim the spend. assert_ok!(Treasury::payout(bob_signed.clone(), 0)); + // check the payment status. + assert_ok!(Treasury::check_status(bob_signed, 0)); assert_expected_events!( - Kusama, + AssetHubKusama, vec![ + RuntimeEvent::Treasury(pallet_treasury::Event::AssetSpendApproved { .. }) => {}, RuntimeEvent::Treasury(pallet_treasury::Event::Paid { .. }) => {}, + RuntimeEvent::Treasury(pallet_treasury::Event::SpendProcessed { .. }) => {}, ] ); - }); - AssetHubKusama::execute_with(|| { - type RuntimeEvent = ::RuntimeEvent; - type Assets = ::Assets; - - // assert events triggered by xcm pay program - // 1. treasury asset transferred to spend beneficiary - // 2. response to Relay Chain treasury pallet instance sent back - // 3. XCM program completed - assert_expected_events!( - AssetHubKusama, - vec![ - RuntimeEvent::Assets(pallet_assets::Event::Transferred { asset_id: id, from, to, amount }) => { - id: id == &USDT_ID, - from: from == &treasury_account, - to: to == &alice, - amount: amount == &SPEND_AMOUNT, - }, - RuntimeEvent::ParachainSystem(cumulus_pallet_parachain_system::Event::UpwardMessageSent { .. }) => {}, - RuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: true ,.. }) => {}, - ] - ); // beneficiary received the assets from the treasury. + type Assets = ::Assets; assert_eq!(>::balance(USDT_ID, &alice,), SPEND_AMOUNT,); }); - - Kusama::execute_with(|| { - type RuntimeEvent = ::RuntimeEvent; - type Treasury = ::Treasury; - - // check the payment status to ensure the response from the AssetHub was received. - assert_ok!(Treasury::check_status(bob_signed, 0)); - assert_expected_events!( - Kusama, - vec![ - RuntimeEvent::Treasury(pallet_treasury::Event::SpendProcessed { .. }) => {}, - ] - ); - }); } diff --git a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/xcm_fee_estimation.rs b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/xcm_fee_estimation.rs index 22667f2531..e5cda6503a 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/xcm_fee_estimation.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/xcm_fee_estimation.rs @@ -227,11 +227,11 @@ fn sender_assertions(test: ParaToParaThroughAHTest) { PenpalA, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance } + pallet_assets::Event::Withdrawn { asset_id, who, amount } ) => { asset_id: *asset_id == Location::parent(), - owner: *owner == test.sender.account_id, - balance: *balance == test.args.amount, + who: *who == test.sender.account_id, + amount: *amount == test.args.amount, }, ] ); @@ -245,7 +245,7 @@ fn hop_assertions(test: ParaToParaThroughAHTest) { AssetHubKusama, vec![ RuntimeEvent::Balances( - pallet_balances::Event::Burned { amount, .. } + pallet_balances::Event::Withdraw { amount, .. } ) => { amount: *amount == test.args.amount, }, @@ -261,10 +261,10 @@ fn receiver_assertions(test: ParaToParaThroughAHTest) { PenpalB, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Issued { asset_id, owner, .. } + pallet_assets::Event::Deposited { asset_id, who, .. } ) => { asset_id: *asset_id == Location::parent(), - owner: *owner == test.receiver.account_id, + who: *who == test.receiver.account_id, }, ] ); @@ -317,10 +317,10 @@ fn pay_fees_sender_assertions(test: ParaToParaThroughAHTest) { PenpalA, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, .. } + pallet_assets::Event::Withdrawn { asset_id, who, .. } ) => { asset_id: *asset_id == Location::parent(), - owner: *owner == test.sender.account_id, + who: *who == test.sender.account_id, }, ] ); @@ -334,7 +334,7 @@ fn pay_fees_hop_assertions(_test: ParaToParaThroughAHTest) { AssetHubKusama, vec![ RuntimeEvent::Balances( - pallet_balances::Event::Burned { .. } + pallet_balances::Event::Withdraw { .. } ) => {}, ] ); @@ -348,10 +348,10 @@ fn pay_fees_receiver_assertions(test: ParaToParaThroughAHTest) { PenpalB, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Issued { asset_id, owner, .. } + pallet_assets::Event::Deposited { asset_id, who, .. } ) => { asset_id: *asset_id == Location::parent(), - owner: *owner == test.receiver.account_id, + who: *who == test.receiver.account_id, }, ] ); diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/claim_assets.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/claim_assets.rs index a4c8b3212e..8036b57068 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/claim_assets.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/claim_assets.rs @@ -17,17 +17,19 @@ use crate::*; -use asset_hub_polkadot_runtime::ExistentialDeposit; +use asset_hub_polkadot_runtime::{ + xcm_config::XcmConfig as AssetHubPolkadotXcmConfig, ExistentialDeposit, +}; use integration_tests_helpers::test_chain_can_claim_assets; #[test] fn assets_can_be_claimed() { let amount = ExistentialDeposit::get(); - let assets: Assets = (Parent, amount).into(); + let assets: Asset = (Parent, amount).into(); test_chain_can_claim_assets!( AssetHubPolkadot, - RuntimeCall, + AssetHubPolkadotXcmConfig, NetworkId::Polkadot, assets, amount 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 2b893f86b8..d92eb515ef 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 @@ -36,14 +36,14 @@ fn para_to_para_assethub_hop_assertions(t: ParaToParaThroughAHTest) { vec![ // Withdrawn from sender parachain SA RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == sov_penpal_a_on_ah, amount: *amount == t.args.amount, }, // Deposited to receiver parachain SA RuntimeEvent::Balances( - pallet_balances::Event::Minted { who, .. } + pallet_balances::Event::Deposit { who, .. } ) => { who: *who == sov_penpal_b_on_ah, }, @@ -751,10 +751,10 @@ fn usdt_only_transfer_from_para_to_para_through_asset_hub() { PenpalA, vec![ Event::ForeignAssets( - pallet_assets::Event::Burned { asset_id, balance, .. } + pallet_assets::Event::Withdrawn { asset_id, amount, .. } ) => { asset_id: *asset_id == usdt_location.clone(), - balance: *balance == transfer_amount, + amount: *amount == transfer_amount, }, ] ); @@ -773,11 +773,11 @@ fn usdt_only_transfer_from_para_to_para_through_asset_hub() { vec![ // USDT is burned from sovereign account of PenpalA. Event::Assets( - pallet_assets::Event::Burned { asset_id, owner, balance } + pallet_assets::Event::Withdrawn { asset_id, who, amount } ) => { asset_id: *asset_id == 1984, - owner: *owner == sov_penpal_on_ah, - balance: *balance == transfer_amount, + who: *who == sov_penpal_on_ah, + amount: *amount == transfer_amount, }, // Credit is swapped. Event::AssetConversion( @@ -802,10 +802,10 @@ fn usdt_only_transfer_from_para_to_para_through_asset_hub() { vec![ // Final amount gets deposited to receiver. Event::ForeignAssets( - pallet_assets::Event::Issued { asset_id, owner, .. } + pallet_assets::Event::Deposited { asset_id, who, .. } ) => { asset_id: *asset_id == usdt_location, - owner: *owner == receiver, + who: *who == receiver, }, // Swap was made to pay fees with USDT. Event::AssetConversion( diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/reserve_transfer.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/reserve_transfer.rs index 990cf4b952..24d341a6f4 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/reserve_transfer.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/reserve_transfer.rs @@ -49,11 +49,11 @@ fn para_to_relay_sender_assertions(t: ParaToRelayTest) { vec![ // Amount to reserve transfer is transferred to Parachain's Sovereign account RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance, .. } + pallet_assets::Event::Withdrawn { asset_id, who, amount, .. } ) => { asset_id: *asset_id == DotLocation::get(), - owner: *owner == t.sender.account_id, - balance: *balance == t.args.amount, + who: *who == t.sender.account_id, + amount: *amount == t.args.amount, }, ] ); @@ -96,9 +96,9 @@ pub fn system_para_to_para_receiver_assertions(t: SystemParaToParaTest) { assert_expected_events!( PenpalB, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == relative_id, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, ] ); @@ -111,9 +111,9 @@ fn relay_to_para_assets_receiver_assertions(t: RelayToParaTest) { assert_expected_events!( PenpalB, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == DotLocation::get(), - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } @@ -133,12 +133,12 @@ fn para_to_relay_receiver_assertions(t: ParaToRelayTest) { vec![ // Amount to reserve transfer is withdrawn from Parachain's Sovereign account RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == sov_penpal_on_relay.clone(), amount: *amount == t.args.amount, }, - RuntimeEvent::Balances(pallet_balances::Event::Minted { .. }) => {}, + RuntimeEvent::Balances(pallet_balances::Event::Deposit { .. }) => {}, RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } ) => {}, @@ -157,11 +157,11 @@ pub fn para_to_system_para_sender_assertions(t: ParaToSystemParaTest) { PenpalA, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance } + pallet_assets::Event::Withdrawn { asset_id, who, amount } ) => { asset_id: *asset_id == expected_id, - owner: *owner == t.sender.account_id, - balance: *balance == asset_amount, + who: *who == t.sender.account_id, + amount: *amount == asset_amount, }, ] ); @@ -179,12 +179,12 @@ pub fn para_to_system_para_receiver_assertions(t: ParaToSystemParaTest) { vec![ // Amount to reserve transfer is transferred to Parachain's Sovereign account RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == sov_penpal_on_ahp.clone(), amount: *amount == t.args.amount, }, - RuntimeEvent::Balances(pallet_balances::Event::Minted { .. }) => {}, + RuntimeEvent::Balances(pallet_balances::Event::Deposit { .. }) => {}, RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } ) => {}, @@ -224,18 +224,18 @@ fn para_to_system_para_assets_sender_assertions(t: ParaToSystemParaTest) { vec![ // Fees amount to reserve transfer is burned from Parachains's sender account RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, .. } + pallet_assets::Event::Withdrawn { asset_id, who, .. } ) => { asset_id: *asset_id == system_para_native_asset_location, - owner: *owner == t.sender.account_id, + who: *who == t.sender.account_id, }, // Amount to reserve transfer is burned from Parachains's sender account RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance } + pallet_assets::Event::Withdrawn { asset_id, who, amount } ) => { asset_id: *asset_id == reservable_asset_location, - owner: *owner == t.sender.account_id, - balance: *balance == t.args.amount, + who: *who == t.sender.account_id, + amount: *amount == t.args.amount, }, // Transport fees are paid RuntimeEvent::PolkadotXcm( @@ -253,13 +253,13 @@ fn system_para_to_para_assets_receiver_assertions(t: SystemParaToParaTest) { assert_expected_events!( PenpalB, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == DotLocation::get(), - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, amount }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, amount }) => { asset_id: *asset_id == system_para_asset_location, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, amount: *amount == t.args.amount, }, ] @@ -275,25 +275,25 @@ fn para_to_system_para_assets_receiver_assertions(t: ParaToSystemParaTest) { AssetHubPolkadot, vec![ // Amount to reserve transfer is burned from Parachain's Sovereign account - RuntimeEvent::Assets(pallet_assets::Event::Burned { asset_id, balance, .. }) => { + RuntimeEvent::Assets(pallet_assets::Event::Withdrawn { asset_id, amount, .. }) => { asset_id: *asset_id == RESERVABLE_ASSET_ID, // TODO: investigate - // owner: *owner == sov_penpal_on_ah, - balance: *balance == t.args.amount, + // who: *who == sov_penpal_on_ah, + amount: *amount == t.args.amount, }, // Fee amount is burned from Parachain's Sovereign account - RuntimeEvent::Balances(pallet_balances::Event::Burned { .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { .. }) => { // TODO: investigate // who: *who == sov_penpal_on_ah, }, // Amount to reserve transfer is issued for beneficiary - RuntimeEvent::Assets(pallet_assets::Event::Issued { asset_id, owner, amount }) => { + RuntimeEvent::Assets(pallet_assets::Event::Deposited { asset_id, who, amount }) => { asset_id: *asset_id == RESERVABLE_ASSET_ID, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, amount: *amount == t.args.amount, }, // Remaining fee amount is minted for for beneficiary - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == t.receiver.account_id, }, ] @@ -312,11 +312,11 @@ pub fn para_to_para_through_hop_sender_assertions(t: Test { asset_id: *asset_id == expected_id, - owner: *owner == t.sender.account_id, - balance: *balance == amount, + who: *who == t.sender.account_id, + transferred_amount: *transferred_amount == amount, }, ] ); @@ -334,14 +334,14 @@ fn para_to_para_relay_hop_assertions(t: ParaToParaThroughRelayTest) { vec![ // Withdrawn from sender parachain SA RuntimeEvent::Balances( - pallet_balances::Event::Withdraw { who, amount } | pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == sov_penpal_b_on_polkadot, amount: *amount == t.args.amount, }, // Deposited to receiver parachain SA RuntimeEvent::Balances( - pallet_balances::Event::Deposit { who, .. } | pallet_balances::Event::Minted { who, .. } + pallet_balances::Event::Deposit { who, .. } ) => { who: *who == sov_penpal_a_on_polkadot, }, @@ -361,9 +361,9 @@ pub fn para_to_para_through_hop_receiver_assertions(t: Test { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == expected_id, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, ] ); @@ -1169,9 +1169,9 @@ fn system_para_to_penpal_receiver_assertions(t: SystemParaToParaTest) { assert_expected_events!( PenpalB, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == relative_id, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, ] ); @@ -1361,10 +1361,10 @@ fn reserve_transfer_usdt_from_para_to_para_through_asset_hub() { vec![ // Withdrawn from sender parachain SA RuntimeEvent::Assets( - pallet_assets::Event::Burned { owner, balance, .. } + pallet_assets::Event::Withdrawn { who, amount, .. } ) => { - owner: *owner == sov_penpal_a_on_ah, - balance: *balance == asset_amount, + who: *who == sov_penpal_a_on_ah, + amount: *amount == asset_amount, }, RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } @@ -1394,11 +1394,11 @@ fn reserve_transfer_usdt_from_para_to_para_through_asset_hub() { PenpalA, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance }, + pallet_assets::Event::Withdrawn { asset_id, who, amount: transferred_amount }, ) => { asset_id: *asset_id == expected_id, - owner: *owner == t.sender.account_id, - balance: *balance == amount, + who: *who == t.sender.account_id, + transferred_amount: *transferred_amount == amount, }, ] ); @@ -1413,9 +1413,9 @@ fn reserve_transfer_usdt_from_para_to_para_through_asset_hub() { assert_expected_events!( PenpalB, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == expected_id, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, ] ); 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 b64f7c76b7..fc4c4dc0cc 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 @@ -95,7 +95,7 @@ pub fn penpal_register_foreign_asset_on_asset_hub(asset_location_on_penpal: Loca AssetHubPolkadot, vec![ // Burned the fee - RuntimeEvent::Balances(pallet_balances::Event::Burned { who, amount }) => { + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { who, amount }) => { who: *who == penpal_sovereign_account, amount: *amount == fee_amount, }, @@ -333,10 +333,10 @@ fn send_xcm_from_para_to_asset_hub_paying_fee_with_sufficient_asset() { AssetHubPolkadot, vec![ // Burned the fee - RuntimeEvent::Assets(pallet_assets::Event::Burned { asset_id, owner, balance }) => { + RuntimeEvent::Assets(pallet_assets::Event::Withdrawn { asset_id, who, amount }) => { asset_id: *asset_id == ASSET_ID, - owner: *owner == para_sovereign_account, - balance: *balance == fee_amount, + who: *who == para_sovereign_account, + amount: *amount == fee_amount, }, // Asset created RuntimeEvent::Assets(pallet_assets::Event::Created { asset_id, creator, owner }) => { 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 975354adcf..7f4529ec81 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 @@ -33,15 +33,15 @@ fn penpal_to_ah_foreign_assets_sender_assertions(t: ParaToSystemParaTest) { PenpalB, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, .. } + pallet_assets::Event::Withdrawn { asset_id, who, .. } ) => { asset_id: *asset_id == system_para_native_asset_location, - owner: *owner == t.sender.account_id, + who: *who == t.sender.account_id, }, - RuntimeEvent::Assets(pallet_assets::Event::Burned { asset_id, owner, balance }) => { + RuntimeEvent::Assets(pallet_assets::Event::Withdrawn { asset_id, who, amount }) => { asset_id: *asset_id == expected_asset_id, - owner: *owner == t.sender.account_id, - balance: *balance == expected_asset_amount, + who: *who == t.sender.account_id, + amount: *amount == expected_asset_amount, }, ] ); @@ -56,14 +56,13 @@ fn penpal_to_ah_foreign_assets_receiver_assertions(t: ParaToSystemParaTest) { assert_expected_events!( AssetHubPolkadot, vec![ - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == t.receiver.account_id, }, - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { owner, amount, .. }) => { - owner: *owner == t.receiver.account_id, + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { who, amount, .. }) => { + who: *who == t.receiver.account_id, amount: *amount == expected_foreign_asset_amount, }, - RuntimeEvent::Balances(pallet_balances::Event::Issued { .. }) => {}, ] ); } @@ -77,10 +76,10 @@ fn ah_to_penpal_foreign_assets_sender_assertions(t: SystemParaToParaTest) { AssetHubPolkadot, vec![ // foreign asset is burned locally as part of teleportation - RuntimeEvent::ForeignAssets(pallet_assets::Event::Burned { asset_id, owner, balance }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Withdrawn { asset_id, who, amount }) => { asset_id: *asset_id == expected_foreign_asset_id, - owner: *owner == t.sender.account_id, - balance: *balance == expected_foreign_asset_amount, + who: *who == t.sender.account_id, + amount: *amount == expected_foreign_asset_amount, }, ] ); @@ -96,15 +95,15 @@ fn ah_to_penpal_foreign_assets_receiver_assertions(t: SystemParaToParaTest) { PenpalB, vec![ // local asset is teleported into account of receiver - RuntimeEvent::Assets(pallet_assets::Event::Issued { asset_id, owner, amount }) => { + RuntimeEvent::Assets(pallet_assets::Event::Deposited { asset_id, who, amount }) => { asset_id: *asset_id == expected_asset_id, - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, amount: *amount == expected_asset_amount, }, // native asset for fee is deposited to receiver - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == Location::parent(), - owner: *owner == t.receiver.account_id, + who: *who == t.receiver.account_id, }, ] ); @@ -483,7 +482,7 @@ fn relay_origin_assertions(t: RelayToSystemParaTest) { Polkadot, vec![ // Amount to teleport is withdrawn from Sender - RuntimeEvent::Balances(pallet_balances::Event::Burned { who, amount }) => { + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { who, amount }) => { who: *who == t.sender.account_id, amount: *amount == t.args.amount, }, @@ -666,7 +665,7 @@ fn limited_teleport_native_assets_from_relay_to_asset_hub_checking_acc_burn_work who: *who == ::PolkadotXcm::check_account(), amount: *amount == t.args.amount, }, - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == t.receiver.account_id, }, RuntimeEvent::MessageQueue( @@ -741,7 +740,7 @@ fn limited_teleport_native_assets_from_asset_hub_to_relay_checking_acc_mint_work AssetHubPolkadot, vec![ RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == t.sender.account_id, amount: *amount == t.args.amount, @@ -763,7 +762,7 @@ fn limited_teleport_native_assets_from_asset_hub_to_relay_checking_acc_mint_work RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } ) => {}, - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == t.receiver.account_id, }, ] diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/transact.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/transact.rs index f805d078f7..debef1fb7e 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/transact.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/transact.rs @@ -211,9 +211,9 @@ fn asset_hub_hop_assertions(sender_sa: AccountId) { vec![ // Withdrawn from sender parachain SA RuntimeEvent::Assets( - pallet_assets::Event::Burned { owner, .. } + pallet_assets::Event::Withdrawn { who, .. } ) => { - owner: *owner == sender_sa, + who: *who == sender_sa, }, RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } 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 16ee3aed57..613ab9abce 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 @@ -16,36 +16,27 @@ use crate::*; use emulated_integration_tests_common::accounts::{ALICE, BOB}; use frame_support::traits::fungibles::Mutate; +use parachains_common::pay::VersionedLocatableAccount; use polkadot_runtime_common::impls::VersionedLocatableAsset; -use polkadot_system_emulated_network::polkadot_emulated_chain::polkadot_runtime::Dmp; -use xcm_executor::traits::ConvertLocation; #[test] fn create_and_claim_treasury_spend_in_usdt() { const USDT_ID: u32 = 1984; const SPEND_AMOUNT: u128 = 1_000_000_000; - // treasury location from a sibling parachain. - let treasury_location: Location = Location::new(1, PalletInstance(19)); - // treasury account on a sibling parachain. - let treasury_account = - asset_hub_polkadot_runtime::xcm_config::LocationToAccountId::convert_location( - &treasury_location, - ) - .unwrap(); - let asset_hub_location = - v5::Location::new(0, v5::Junction::Parachain(AssetHubPolkadot::para_id().into())); - let root = ::RuntimeOrigin::root(); - // asset kind to be spend from the treasury. + + let treasury_account = asset_hub_polkadot_runtime::Treasury::account_id(); + let root = ::RuntimeOrigin::root(); + // asset kind to be spent from the treasury. let asset_kind = VersionedLocatableAsset::V5 { - location: asset_hub_location, + location: Location::new(0, []), asset_id: v5::AssetId( (v5::Junction::PalletInstance(50), v5::Junction::GeneralIndex(USDT_ID.into())).into(), ), }; // treasury spend beneficiary. let alice: AccountId = Polkadot::account_id_of(ALICE); - let bob: AccountId = Polkadot::account_id_of(BOB); - let bob_signed = ::RuntimeOrigin::signed(bob.clone()); + let bob: AccountId = AssetHubPolkadot::account_id_of(BOB); + let bob_signed = ::RuntimeOrigin::signed(bob.clone()); AssetHubPolkadot::execute_with(|| { type Assets = ::Assets; @@ -56,70 +47,41 @@ fn create_and_claim_treasury_spend_in_usdt() { assert_eq!(>::balance(USDT_ID, &alice,), 0u128,); }); - Polkadot::execute_with(|| { - type RuntimeEvent = ::RuntimeEvent; - type Treasury = ::Treasury; - type AssetRate = ::AssetRate; + AssetHubPolkadot::execute_with(|| { + type RuntimeEvent = ::RuntimeEvent; + type Treasury = ::Treasury; + type AssetRate = ::AssetRate; // create a conversion rate from `asset_kind` to the native currency. assert_ok!(AssetRate::create(root.clone(), Box::new(asset_kind.clone()), 2.into())); - Dmp::make_parachain_reachable(1000); // create and approve a treasury spend. assert_ok!(Treasury::spend( root, Box::new(asset_kind), SPEND_AMOUNT, - Box::new(Location::new(0, Into::<[u8; 32]>::into(alice.clone())).into()), + Box::new(VersionedLocatableAccount::V5 { + location: Location::new(0, []), + account_id: Location::new(0, Into::<[u8; 32]>::into(alice.clone())), + }), None, )); // claim the spend. assert_ok!(Treasury::payout(bob_signed.clone(), 0)); + // check the payment status. + assert_ok!(Treasury::check_status(bob_signed, 0)); assert_expected_events!( - Polkadot, + AssetHubPolkadot, vec![ + RuntimeEvent::Treasury(pallet_treasury::Event::AssetSpendApproved { .. }) => {}, RuntimeEvent::Treasury(pallet_treasury::Event::Paid { .. }) => {}, + RuntimeEvent::Treasury(pallet_treasury::Event::SpendProcessed { .. }) => {}, ] ); - }); - AssetHubPolkadot::execute_with(|| { - type RuntimeEvent = ::RuntimeEvent; - type Assets = ::Assets; - - // assert events triggered by xcm pay program - // 1. treasury asset transferred to spend beneficiary - // 2. response to Relay Chain treasury pallet instance sent back - // 3. XCM program completed - assert_expected_events!( - AssetHubPolkadot, - vec![ - RuntimeEvent::Assets(pallet_assets::Event::Transferred { asset_id: id, from, to, amount }) => { - id: id == &USDT_ID, - from: from == &treasury_account, - to: to == &alice, - amount: amount == &SPEND_AMOUNT, - }, - RuntimeEvent::ParachainSystem(cumulus_pallet_parachain_system::Event::UpwardMessageSent { .. }) => {}, - RuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: true ,.. }) => {}, - ] - ); // beneficiary received the assets from the treasury. + type Assets = ::Assets; assert_eq!(>::balance(USDT_ID, &alice,), SPEND_AMOUNT,); }); - - Polkadot::execute_with(|| { - type RuntimeEvent = ::RuntimeEvent; - type Treasury = ::Treasury; - - // check the payment status to ensure the response from the AssetHub was received. - assert_ok!(Treasury::check_status(bob_signed, 0)); - assert_expected_events!( - Polkadot, - vec![ - RuntimeEvent::Treasury(pallet_treasury::Event::SpendProcessed { .. }) => {}, - ] - ); - }); } diff --git a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/xcm_fee_estimation.rs b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/xcm_fee_estimation.rs index 95a16ee4b7..57699471b9 100644 --- a/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/xcm_fee_estimation.rs +++ b/integration-tests/emulated/tests/assets/asset-hub-polkadot/src/tests/xcm_fee_estimation.rs @@ -235,11 +235,11 @@ fn sender_assertions(test: ParaToParaThroughAHTest) { PenpalB, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance } + pallet_assets::Event::Withdrawn { asset_id, who, amount } ) => { asset_id: *asset_id == Location::parent(), - owner: *owner == test.sender.account_id, - balance: *balance == test.args.amount, + who: *who == test.sender.account_id, + amount: *amount == test.args.amount, }, ] ); @@ -253,7 +253,7 @@ fn hop_assertions(test: ParaToParaThroughAHTest) { AssetHubPolkadot, vec![ RuntimeEvent::Balances( - pallet_balances::Event::Burned { amount, .. } + pallet_balances::Event::Withdraw { amount, .. } ) => { amount: *amount == test.args.amount, }, @@ -269,10 +269,10 @@ fn receiver_assertions(test: ParaToParaThroughAHTest) { PenpalA, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Issued { asset_id, owner, .. } + pallet_assets::Event::Deposited { asset_id, who, .. } ) => { asset_id: *asset_id == Location::parent(), - owner: *owner == test.receiver.account_id, + who: *who == test.receiver.account_id, }, ] ); @@ -317,10 +317,10 @@ fn pay_fees_sender_assertions(test: ParaToParaThroughAHTest) { PenpalB, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, .. } + pallet_assets::Event::Withdrawn { asset_id, who, .. } ) => { asset_id: *asset_id == Location::parent(), - owner: *owner == test.sender.account_id, + who: *who == test.sender.account_id, }, ] ); @@ -334,7 +334,7 @@ fn pay_fees_hop_assertions(_test: ParaToParaThroughAHTest) { AssetHubPolkadot, vec![ RuntimeEvent::Balances( - pallet_balances::Event::Burned { .. } + pallet_balances::Event::Withdraw { .. } ) => {}, ] ); @@ -348,10 +348,10 @@ fn pay_fees_receiver_assertions(test: ParaToParaThroughAHTest) { PenpalA, vec![ RuntimeEvent::ForeignAssets( - pallet_assets::Event::Issued { asset_id, owner, .. } + pallet_assets::Event::Deposited { asset_id, who, .. } ) => { asset_id: *asset_id == Location::parent(), - owner: *owner == test.receiver.account_id, + who: *who == test.receiver.account_id, }, ] ); 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 4f385fc585..fdba71af39 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 @@ -74,7 +74,7 @@ fn send_assets_from_kusama_chain_through_kusama_ah_to_polkadot_ah(s AssetHubKusama, vec![ // Amount deposited in PAH's sovereign account - RuntimeEvent::Balances(pallet_balances::Event::Minted { .. }) => {}, + RuntimeEvent::Balances(pallet_balances::Event::Deposit { .. }) => {}, RuntimeEvent::XcmpQueue( cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. } ) => {}, @@ -124,9 +124,9 @@ fn send_ksm_from_asset_hub_kusama_to_asset_hub_polkadot() { AssetHubPolkadot, vec![ // issue KSMs on PAH - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == bridged_ksm_at_ah_polkadot, - owner: *owner == AssetHubPolkadotReceiver::get(), + who: *who == AssetHubPolkadotReceiver::get(), }, // message processed successfully RuntimeEvent::MessageQueue( @@ -211,13 +211,13 @@ fn send_back_dot_usdt_and_weth_from_asset_hub_kusama_to_asset_hub_polkadot() { vec![ // DOT is withdrawn from KAH's SA on PAH RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == sov_kah_on_pah, amount: *amount == amount_to_send, }, // DOTs deposited to beneficiary - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: who == &receiver, }, // message processed successfully @@ -316,21 +316,22 @@ fn send_back_dot_usdt_and_weth_from_asset_hub_kusama_to_asset_hub_polkadot() { assets: Wild(AllCounted(assets.len() as u32)), beneficiary: AccountId32Junction { network: None, id: receiver.clone().into() }.into(), }]); - assert_ok!(AssetHubKusama::execute_with(|| { - ::PolkadotXcm::transfer_assets_using_type_and_then( - ::RuntimeOrigin::signed(sender), - bx!(asset_hub_polkadot_location().into()), - bx!(assets.into()), - bx!(TransferType::DestinationReserve), - bx!(fee.into()), - bx!(TransferType::DestinationReserve), - bx!(VersionedXcm::from(custom_xcm_on_dest)), - WeightLimit::Unlimited, - ) - })); - // verify hops (also advances the message through the hops) - assert_bridge_hub_kusama_message_accepted(true); - assert_bridge_hub_polkadot_message_received(); + send_assets_over_bridge(|| { + assert_ok!(AssetHubKusama::execute_with(|| { + ::PolkadotXcm::transfer_assets_using_type_and_then( + ::RuntimeOrigin::signed(sender), + bx!(asset_hub_polkadot_location().into()), + bx!(assets.into()), + bx!(TransferType::DestinationReserve), + bx!(fee.into()), + bx!(TransferType::DestinationReserve), + bx!(VersionedXcm::from(custom_xcm_on_dest)), + WeightLimit::Unlimited, + ) + })); + }); + // Extra BHP block to flush stale XcmpQueue outbound index and deliver the real message + BridgeHubPolkadot::execute_with(|| {}); AssetHubPolkadot::execute_with(|| { AssetHubPolkadot::assert_xcmp_queue_success(None); }); @@ -435,9 +436,9 @@ fn send_ksm_from_kusama_relay_through_asset_hub_kusama_to_asset_hub_polkadot() { AssetHubPolkadot, vec![ // issue KSMs on PAH - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == bridged_ksm_at_ah_polkadot, - owner: *owner == AssetHubPolkadotReceiver::get(), + who: *who == AssetHubPolkadotReceiver::get(), }, // message processed successfully RuntimeEvent::MessageQueue( @@ -523,9 +524,9 @@ fn send_ksm_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkadot() AssetHubPolkadot, vec![ // issue KSMs on PAH - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == Location::new(2, [GlobalConsensus(Kusama)]), - owner: owner == &receiver, + who: who == &receiver, }, // message processed successfully RuntimeEvent::MessageQueue( @@ -669,8 +670,6 @@ fn send_back_dot_from_penpal_kusama_through_asset_hub_kusama_to_asset_hub_polkad assert_expected_events!( AssetHubPolkadot, vec![ - // issue KSMs on PAH - RuntimeEvent::Balances(pallet_balances::Event::Issued { .. }) => {}, // message processed successfully RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/claim_assets.rs b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/claim_assets.rs index eb9020c939..d3f9b5a2df 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/claim_assets.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-kusama/src/tests/claim_assets.rs @@ -17,13 +17,21 @@ use crate::*; -use bridge_hub_kusama_runtime::ExistentialDeposit; +use bridge_hub_kusama_runtime::{ + xcm_config::XcmConfig as BridgeHubKusamaXcmConfig, ExistentialDeposit, +}; use integration_tests_helpers::test_chain_can_claim_assets; #[test] fn assets_can_be_claimed() { let amount = ExistentialDeposit::get(); - let assets: Assets = (Parent, amount).into(); + let assets: Asset = (Parent, amount).into(); - test_chain_can_claim_assets!(AssetHubKusama, RuntimeCall, NetworkId::Kusama, assets, amount); + test_chain_can_claim_assets!( + BridgeHubKusama, + BridgeHubKusamaXcmConfig, + NetworkId::Kusama, + assets, + amount + ); } 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 bad648a8c5..2457d5fccb 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 @@ -235,7 +235,7 @@ pub(crate) fn assert_bridge_hub_kusama_message_accepted(expected_processed: bool BridgeHubKusama, vec![ // pay for bridge fees - RuntimeEvent::Balances(pallet_balances::Event::Burned { .. }) => {}, + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { .. }) => {}, // message exported RuntimeEvent::BridgePolkadotMessages( pallet_bridge_messages::Event::MessageAccepted { .. } 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 e008e6b402..ca9c6940e8 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 @@ -85,7 +85,7 @@ fn register_kusama_asset_on_pah_from_kah() { AssetHubPolkadot, vec![ // Burned the fee - RuntimeEvent::Balances(pallet_balances::Event::Burned { who, amount }) => { + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { who, amount }) => { who: *who == sa_of_kah_on_pah.clone(), amount: *amount == fee_amount, }, @@ -96,7 +96,7 @@ fn register_kusama_asset_on_pah_from_kah() { owner: *owner == sa_of_kah_on_pah, }, // Unspent fee minted to origin - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == sa_of_kah_on_pah.clone(), }, ] 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 1eb548efff..be3dad37c3 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 @@ -75,7 +75,7 @@ fn send_assets_from_polkadot_chain_through_polkadot_ah_to_kusama_ah assert_expected_events!( AssetHubPolkadot, vec![ - RuntimeEvent::Balances(pallet_balances::Event::Minted { .. }) => {}, + RuntimeEvent::Balances(pallet_balances::Event::Deposit { .. }) => {}, RuntimeEvent::XcmpQueue( cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. } ) => {}, @@ -144,9 +144,9 @@ fn send_dot_usdt_and_weth_from_asset_hub_polkadot_to_asset_hub_kusama() { AssetHubKusama, vec![ // issue DOTs on KAH - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == bridged_dot_at_asset_hub_kusama, - owner: *owner == receiver, + who: *who == receiver, }, // message processed successfully RuntimeEvent::MessageQueue( @@ -227,21 +227,22 @@ fn send_dot_usdt_and_weth_from_asset_hub_polkadot_to_asset_hub_kusama() { assets: Wild(AllCounted(assets.len() as u32)), beneficiary: AccountId32Junction { network: None, id: receiver.clone().into() }.into(), }]); - assert_ok!(AssetHubPolkadot::execute_with(|| { - ::PolkadotXcm::transfer_assets_using_type_and_then( - ::RuntimeOrigin::signed(sender), - bx!(asset_hub_kusama_location().into()), - bx!(assets.into()), - bx!(TransferType::LocalReserve), - bx!(fee.into()), - bx!(TransferType::LocalReserve), - bx!(VersionedXcm::from(custom_xcm_on_dest)), - WeightLimit::Unlimited, - ) - })); - // verify hops (also advances the message through the hops) - assert_bridge_hub_polkadot_message_accepted(true); - assert_bridge_hub_kusama_message_received(); + send_assets_over_bridge(|| { + assert_ok!(AssetHubPolkadot::execute_with(|| { + ::PolkadotXcm::transfer_assets_using_type_and_then( + ::RuntimeOrigin::signed(sender), + bx!(asset_hub_kusama_location().into()), + bx!(assets.into()), + bx!(TransferType::LocalReserve), + bx!(fee.into()), + bx!(TransferType::LocalReserve), + bx!(VersionedXcm::from(custom_xcm_on_dest)), + WeightLimit::Unlimited, + ) + })); + }); + // Extra BHK block to flush stale XcmpQueue outbound index and deliver the real message + BridgeHubKusama::execute_with(|| {}); AssetHubKusama::execute_with(|| { AssetHubKusama::assert_xcmp_queue_success(None); }); @@ -315,13 +316,13 @@ fn send_back_ksm_from_asset_hub_polkadot_to_asset_hub_kusama() { vec![ // KSM is withdrawn from PAH's SA on KAH RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == sov_pah_on_kah, amount: *amount == amount_to_send, }, // KSMs deposited to beneficiary - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == receiver, }, // message processed successfully @@ -438,9 +439,9 @@ fn send_dot_from_polkadot_relay_through_asset_hub_polkadot_to_asset_hub_kusama() AssetHubKusama, vec![ // issue DOTs on KAH - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == bridged_dot_at_ah_kusama, - owner: *owner == receiver.clone(), + who: *who == receiver.clone(), }, // message processed successfully RuntimeEvent::MessageQueue( @@ -522,9 +523,9 @@ fn send_dot_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_kusama( AssetHubKusama, vec![ // issue DOTs on KAH - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == Location::new(2, [GlobalConsensus(Polkadot)]), - owner: owner == &receiver, + who: who == &receiver, }, // message processed successfully RuntimeEvent::MessageQueue( @@ -644,7 +645,7 @@ fn send_dot_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_kusama_ AssetHubKusama, vec![ // issue dot on KAH - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) => {}, + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { .. }) => {}, // message processed successfully RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } @@ -802,7 +803,7 @@ fn send_dot_from_polkadot_relay_through_asset_hub_polkadot_to_asset_hub_kusama_t AssetHubPolkadot, vec![ // Amount deposited in KAH's sovereign account - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == sov_kah_on_pah.clone(), }, RuntimeEvent::XcmpQueue( @@ -821,7 +822,7 @@ fn send_dot_from_polkadot_relay_through_asset_hub_polkadot_to_asset_hub_kusama_t AssetHubKusama, vec![ // issue dot on KAH - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) => {}, + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { .. }) => {}, // message processed successfully RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } @@ -971,8 +972,6 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku assert_expected_events!( AssetHubKusama, vec![ - // issue DOTs on KAH - RuntimeEvent::Balances(pallet_balances::Event::Issued { .. }) => {}, // message processed successfully RuntimeEvent::MessageQueue( pallet_message_queue::Event::Processed { success: true, .. } @@ -1125,10 +1124,10 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku vec![ // Amount to reserve transfer is withdrawn from Penpal's sovereign account RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, .. } + pallet_assets::Event::Withdrawn { asset_id, who, .. } ) => { asset_id: asset_id == &ksm_at_polkadot_parachains, - owner: owner == &sov_penpal_on_pah, + who: who == &sov_penpal_on_pah, }, RuntimeEvent::XcmpQueue( cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. } @@ -1151,7 +1150,7 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku vec![ // burn KSMs from PAH's SA on KAH RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, .. } + pallet_balances::Event::Withdraw { who, .. } ) => { who: *who == sov_pah_on_kah.clone(), }, @@ -1317,10 +1316,10 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku vec![ // Amount to reserve transfer is withdrawn from Penpal's sovereign account RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, .. } + pallet_assets::Event::Withdrawn { asset_id, who, .. } ) => { asset_id: asset_id == &ksm_at_polkadot_parachains, - owner: owner == &sov_penpal_on_pah, + who: who == &sov_penpal_on_pah, }, RuntimeEvent::XcmpQueue( cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. } @@ -1343,7 +1342,7 @@ fn send_back_ksm_from_penpal_polkadot_through_asset_hub_polkadot_to_asset_hub_ku vec![ // burn KSMs from PAH's SA on KAH RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, .. } + pallet_balances::Event::Withdraw { who, .. } ) => { who: *who == sov_pah_on_kah.clone(), }, diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/claim_assets.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/claim_assets.rs index 7eeee8f23c..e2d5ce7e1f 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/claim_assets.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/claim_assets.rs @@ -17,17 +17,18 @@ use crate::*; +use asset_hub_polkadot_runtime::xcm_config::XcmConfig as AssetHubPolkadotXcmConfig; use bridge_hub_polkadot_runtime::ExistentialDeposit; use integration_tests_helpers::test_chain_can_claim_assets; #[test] fn assets_can_be_claimed() { let amount = ExistentialDeposit::get(); - let assets: Assets = (Parent, amount).into(); + let assets: Asset = (Parent, amount).into(); test_chain_can_claim_assets!( AssetHubPolkadot, - RuntimeCall, + AssetHubPolkadotXcmConfig, NetworkId::Polkadot, assets, amount 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 7249764b8d..0e5b4ee4f3 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 @@ -179,7 +179,7 @@ pub(crate) fn assert_bridge_hub_polkadot_message_accepted(expected_processed: bo BridgeHubPolkadot, vec![ // pay for bridge fees - RuntimeEvent::Balances(pallet_balances::Event::Burned { .. }) => {}, + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { .. }) => {}, // message exported RuntimeEvent::BridgeKusamaMessages( pallet_bridge_messages::Event::MessageAccepted { .. } 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 472697532a..9c020a1e70 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 @@ -105,7 +105,7 @@ fn register_asset_on_kah_from_pah(bridged_asset_at_kah: Location) { AssetHubKusama, vec![ // Burned the fee - RuntimeEvent::Balances(pallet_balances::Event::Burned { who, amount }) => { + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { who, amount }) => { who: *who == sa_of_pah_on_kah.clone(), amount: *amount == fee_amount, }, @@ -116,7 +116,7 @@ fn register_asset_on_kah_from_pah(bridged_asset_at_kah: Location) { owner: *owner == sa_of_pah_on_kah, }, // Unspent fee minted to origin - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == sa_of_pah_on_kah.clone(), }, ] 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 e45ebebb44..a092e56adf 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 @@ -206,7 +206,7 @@ fn send_token_from_ethereum_to_penpal() { assert_expected_events!( AssetHubPolkadot, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) => {}, + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { .. }) => {}, RuntimeEvent::XcmpQueue(cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. }) => {}, ] ); @@ -218,7 +218,7 @@ fn send_token_from_ethereum_to_penpal() { assert_expected_events!( PenpalB, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) => {}, + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { .. }) => {}, ] ); }); @@ -291,7 +291,7 @@ fn send_weth_from_ethereum_to_asset_hub() { assert_expected_events!( AssetHubPolkadot, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) => {}, + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { .. }) => {}, ] ); }); @@ -385,7 +385,7 @@ fn send_token_from_ethereum_to_asset_hub_and_back_works( assert_expected_events!( AssetHubPolkadot, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, .. }) => { asset_id: *asset_id == asset_location, }, ] @@ -576,6 +576,7 @@ fn make_register_token_message() -> EventFixture { hex!("5f7060e971b0dc81e63f0aa41831091847d97c1a4693ac450cc128c7214e65e0").into(), ], data: hex!("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000").into(), + tx_index: 0, }, proof: Proof { receipt_proof: vec![ @@ -699,7 +700,7 @@ fn send_token_from_ethereum_to_existent_account_on_asset_hub() { assert_expected_events!( AssetHubPolkadot, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) => {}, + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { .. }) => {}, ] ); }); @@ -716,7 +717,7 @@ fn send_token_from_ethereum_to_non_existent_account_on_asset_hub() { assert_expected_events!( AssetHubPolkadot, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) => {}, + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { .. }) => {}, ] ); }); @@ -756,6 +757,8 @@ fn send_token_from_ethereum_to_non_existent_account_on_asset_hub_with_sufficient insufficient_token_amount_in_weth_below_ed, sufficient_fee_in_dot_below_ed, ); + // Flush stale XcmpQueue outbound index to ensure the message is delivered to AHP + BridgeHubPolkadot::execute_with(|| {}); AssetHubPolkadot::execute_with(|| { type RuntimeEvent = ::RuntimeEvent; @@ -771,7 +774,7 @@ fn send_token_from_ethereum_to_non_existent_account_on_asset_hub_with_sufficient assert!( !events.iter().any(|event| matches!( event, - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { .. }) )), "Assets issued, should not happen." ); @@ -923,7 +926,7 @@ fn transfer_relay_token() { assert_expected_events!( AssetHubPolkadot, - vec![RuntimeEvent::Balances(pallet_balances::Event::Burned{ .. }) => {},] + vec![RuntimeEvent::Balances(pallet_balances::Event::Withdraw{ .. }) => {},] ); let events = AssetHubPolkadot::events(); @@ -932,7 +935,7 @@ fn transfer_relay_token() { assert!( events.iter().any(|event| matches!( event, - RuntimeEvent::Balances(pallet_balances::Event::Burned { who, ..}) + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { who, ..}) if *who == ethereum_sovereign.clone(), )), "native token burnt from Ethereum sovereign account." @@ -942,7 +945,7 @@ fn transfer_relay_token() { assert!( events.iter().any(|event| matches!( event, - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, amount }) + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, amount }) if *amount >= TOKEN_AMOUNT && *who == AssetHubPolkadotReceiver::get() )), "Token minted to beneficiary." @@ -1093,7 +1096,7 @@ fn transfer_ah_token() { assert_expected_events!( AssetHubPolkadot, - vec![RuntimeEvent::Assets(pallet_assets::Event::Burned{..}) => {},] + vec![RuntimeEvent::Assets(pallet_assets::Event::Withdrawn{..}) => {},] ); let events = AssetHubPolkadot::events(); @@ -1102,8 +1105,8 @@ fn transfer_ah_token() { assert!( events.iter().any(|event| matches!( event, - RuntimeEvent::Assets(pallet_assets::Event::Burned { owner, .. }) - if *owner == ethereum_sovereign.clone(), + RuntimeEvent::Assets(pallet_assets::Event::Withdrawn { who, .. }) + if *who == ethereum_sovereign.clone(), )), "token burnt from Ethereum sovereign account." ); @@ -1112,8 +1115,8 @@ fn transfer_ah_token() { assert!( events.iter().any(|event| matches!( event, - RuntimeEvent::Assets(pallet_assets::Event::Issued { owner, .. }) - if *owner == AssetHubPolkadotReceiver::get() + RuntimeEvent::Assets(pallet_assets::Event::Deposited { who, .. }) + if *who == AssetHubPolkadotReceiver::get() )), "Token minted to beneficiary." ); @@ -1271,7 +1274,7 @@ fn send_weth_from_ethereum_to_ahp_to_ahk_and_back() { assert_expected_events!( AssetHubPolkadot, vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) => {}, + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { .. }) => {}, ] ); }); @@ -1336,9 +1339,9 @@ fn send_weth_from_ethereum_to_ahp_to_ahk_and_back() { AssetHubKusama, vec![ // Token was issued to beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == weth_location, - owner: *owner == AssetHubKusamaReceiver::get(), + who: *who == AssetHubKusamaReceiver::get(), }, ] ); @@ -1387,7 +1390,7 @@ fn send_weth_from_ethereum_to_ahp_to_ahk_and_back() { BridgeHubKusama, vec![ // pay for bridge fees - RuntimeEvent::Balances(pallet_balances::Event::Burned { .. }) => {}, + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { .. }) => {}, // message exported RuntimeEvent::BridgePolkadotMessages( pallet_bridge_messages::Event::MessageAccepted { .. } @@ -1421,9 +1424,9 @@ fn send_weth_from_ethereum_to_ahp_to_ahk_and_back() { AssetHubPolkadot, vec![ // Token was issued to beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == weth_location, - owner: *owner == AssetHubPolkadotReceiver::get(), + who: *who == AssetHubPolkadotReceiver::get(), }, ] ); diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_common.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_common.rs index 10522f0fde..c9dcef40f4 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_common.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_common.rs @@ -49,7 +49,7 @@ pub const LOCAL_FEE_AMOUNT_IN_DOT: u128 = 80_000_000_000_000; /// Execution weight provided as limited for XCM execute. pub const EXECUTION_WEIGHT: u64 = 800_000_000_000; /// The execution fee (in Ether) for execution on AssetHub. -pub const EXECUTION_IN_ETHER: u128 = 1_500_000_000_000; +pub const EXECUTION_IN_ETHER: u128 = 12_500_000_000_000; /// The reward allocated to the relayer for relaying the message. pub const RELAYER_REWARD_IN_ETHER: u128 = 1_500_000_000_000; /// The base cost for transfers to Ethereum, for Snowbridge V2. diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_inbound.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_inbound.rs index faad3b321a..2caea50288 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_inbound.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_inbound.rs @@ -26,7 +26,7 @@ use polkadot_system_emulated_network::penpal_emulated_chain::PARA_ID_B; use snowbridge_core::{reward::MessageId, TokenIdOf}; use snowbridge_inbound_queue_primitives::v2::{ EthereumAsset::{ForeignTokenERC20, NativeTokenERC20}, - Message, Network, XcmPayload, + Message, Network, Payload as XcmPayload, }; use sp_core::{H160, H256}; use sp_io::hashing::blake2_256; @@ -58,7 +58,7 @@ fn register_token_v2() { nonce: 1, origin, assets: vec![], - xcm: XcmPayload::CreateAsset { token, network: Network::Polkadot }, + payload: XcmPayload::CreateAsset { token, network: Network::Polkadot }, claimer: Some(claimer_bytes), // Used to pay the asset creation deposit. value: TOKEN_AMOUNT, @@ -98,9 +98,9 @@ fn register_token_v2() { owner: *owner == bridge_owner, }, // Check that excess fees were paid to the claimer - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == eth_location(), - owner: *owner == receiver.clone(), + who: *who == receiver.clone(), }, ] ); @@ -166,7 +166,7 @@ fn send_token_v2() { nonce: 1, origin, assets, - xcm: XcmPayload::Raw(versioned_message_xcm.encode()), + payload: XcmPayload::Raw(versioned_message_xcm.encode()), claimer: Some(claimer_bytes), value: TOKEN_AMOUNT, execution_fee: EXECUTION_IN_ETHER, @@ -207,14 +207,14 @@ fn send_token_v2() { id: *id == topic_id.into(), }, // Check that the token was received and issued as a foreign asset on AssetHub - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == token_location, - owner: *owner == beneficiary_acc_bytes.into(), + who: *who == beneficiary_acc_bytes.into(), }, // Check that excess fees were paid to the claimer, which was set by the UX - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == eth_location(), - owner: *owner == receiver.clone(), + who: *who == receiver.clone(), }, ] ); @@ -267,7 +267,7 @@ fn send_weth_v2() { nonce: 1, origin, assets, - xcm: XcmPayload::Raw(versioned_message_xcm.encode()), + payload: XcmPayload::Raw(versioned_message_xcm.encode()), claimer: Some(claimer_bytes), value: TOKEN_AMOUNT, execution_fee: EXECUTION_IN_ETHER, @@ -301,14 +301,14 @@ fn send_weth_v2() { pallet_message_queue::Event::Processed { success: true, .. } ) => {}, // Check that the token was received and issued as a foreign asset on AssetHub - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == weth_location(), - owner: *owner == beneficiary_acc_bytes.into(), + who: *who == beneficiary_acc_bytes.into(), }, // Check that excess fees were paid to the beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == eth_location(), - owner: *owner == beneficiary_acc_bytes.into(), + who: *who == beneficiary_acc_bytes.into(), }, ] ); @@ -417,7 +417,7 @@ fn register_and_send_token_in_one_transaction_fails() { nonce: 1, origin, assets, - xcm: XcmPayload::Raw(versioned_message_xcm.encode()), + payload: XcmPayload::Raw(versioned_message_xcm.encode()), claimer: Some(claimer_bytes), value: eth_asset_value, execution_fee: EXECUTION_IN_ETHER * 10, // Since this is a more expensive operation @@ -546,7 +546,7 @@ fn send_token_to_penpal_v2() { nonce: 1, origin, assets, - xcm: XcmPayload::Raw(versioned_message_xcm.encode()), + payload: XcmPayload::Raw(versioned_message_xcm.encode()), claimer: Some(claimer_bytes), value: TOKEN_AMOUNT * 2, execution_fee: EXECUTION_IN_ETHER, @@ -585,14 +585,14 @@ fn send_token_to_penpal_v2() { pallet_message_queue::Event::Processed { success: true, .. } ) => {}, // Ether was issued to beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == eth_location(), - owner: *owner == penpal_sov_on_ah, + who: *who == penpal_sov_on_ah, }, // Token was issued to beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == token_location, - owner: *owner == penpal_sov_on_ah, + who: *who == penpal_sov_on_ah, }, RuntimeEvent::XcmpQueue(cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. }) => {}, ] @@ -612,14 +612,14 @@ fn send_token_to_penpal_v2() { pallet_message_queue::Event::Processed { success: true, .. } ) => {}, // Token was issued to beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == token_location, - owner: *owner == beneficiary_acc_bytes.into(), + who: *who == beneficiary_acc_bytes.into(), }, // Leftover fees was deposited to beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == eth_location(), - owner: *owner == beneficiary_acc_bytes.into(), + who: *who == beneficiary_acc_bytes.into(), }, ] ); @@ -703,9 +703,9 @@ fn send_foreign_erc20_token_back_to_polkadot() { nonce: 1, origin, assets, - xcm: XcmPayload::Raw(versioned_message_xcm.encode()), + payload: XcmPayload::Raw(versioned_message_xcm.encode()), claimer: Some(claimer_bytes), - value: 1_500_000_000_000u128, + value: 12_000_000_000_000u128, execution_fee: EXECUTION_IN_ETHER, relayer_fee: RELAYER_REWARD_IN_ETHER, }; @@ -725,13 +725,15 @@ fn send_foreign_erc20_token_back_to_polkadot() { ] ); }); + // Flush stale XcmpQueue outbound index to ensure the message is delivered to AHP + BridgeHubPolkadot::execute_with(|| {}); AssetHubPolkadot::execute_with(|| { type RuntimeEvent = ::RuntimeEvent; assert_expected_events!( AssetHubPolkadot, - vec![RuntimeEvent::Assets(pallet_assets::Event::Burned{..}) => {},] + vec![RuntimeEvent::Assets(pallet_assets::Event::Withdrawn{..}) => {},] ); assert_expected_events!( @@ -742,12 +744,12 @@ fn send_foreign_erc20_token_back_to_polkadot() { pallet_message_queue::Event::Processed { success: true, .. } ) => {}, // Check that the native token burnt from some reserved account - RuntimeEvent::Assets(pallet_assets::Event::Burned { owner, .. }) => { - owner: *owner == ethereum_sovereign.clone(), + RuntimeEvent::Assets(pallet_assets::Event::Withdrawn { who, .. }) => { + who: *who == ethereum_sovereign.clone(), }, // Check that the token was minted to beneficiary - RuntimeEvent::Assets(pallet_assets::Event::Issued { owner, .. }) => { - owner: *owner == AssetHubPolkadotReceiver::get(), + RuntimeEvent::Assets(pallet_assets::Event::Deposited { who, .. }) => { + who: *who == AssetHubPolkadotReceiver::get(), }, ] ); @@ -784,7 +786,7 @@ fn invalid_xcm_traps_funds_on_ah() { nonce: 1, origin, assets, - xcm: XcmPayload::Raw(instructions.to_vec()), + payload: XcmPayload::Raw(instructions.to_vec()), claimer: Some(claimer_bytes), value: EXECUTION_IN_ETHER, execution_fee: EXECUTION_IN_ETHER, @@ -848,7 +850,7 @@ fn invalid_claimer_does_not_fail_the_message() { nonce: 1, origin, assets, - xcm: XcmPayload::Raw(versioned_message_xcm.encode()), + payload: XcmPayload::Raw(versioned_message_xcm.encode()), // Set an invalid claimer claimer: Some(hex!("2b7ce7bc7e87e4d6619da21487c7a53f").to_vec()), value: TOKEN_AMOUNT, @@ -880,14 +882,14 @@ fn invalid_claimer_does_not_fail_the_message() { AssetHubPolkadot, vec![ // Token was issued to beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == weth_location(), - owner: *owner == beneficiary_acc.into(), + who: *who == beneficiary_acc.into(), }, // Leftover fees deposited to beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == eth_location(), - owner: *owner == beneficiary_acc.into(), + who: *who == beneficiary_acc.into(), }, ] ); diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_inbound_to_kusama.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_inbound_to_kusama.rs index 5ce1fcec40..9d6e6347be 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_inbound_to_kusama.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_inbound_to_kusama.rs @@ -30,7 +30,7 @@ use frame_support::BoundedVec; use snowbridge_core::TokenIdOf; use snowbridge_inbound_queue_primitives::v2::{ EthereumAsset::{ForeignTokenERC20, NativeTokenERC20}, - Message, XcmPayload, + Message, Payload as XcmPayload, }; use sp_core::{H160, H256}; use xcm::opaque::latest::AssetTransferFilter::{ReserveDeposit, ReserveWithdraw}; @@ -146,7 +146,7 @@ fn send_token_to_kusama_v2() { nonce: 1, origin, assets, - xcm: XcmPayload::Raw(versioned_message_xcm.encode()), + payload: XcmPayload::Raw(versioned_message_xcm.encode()), claimer: Some(claimer_bytes), value: TOKEN_AMOUNT, execution_fee: MIN_ETHER_BALANCE * 3, @@ -199,14 +199,14 @@ fn send_token_to_kusama_v2() { pallet_message_queue::Event::Processed { success: true, .. } ) => {}, // Token was issued to beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == token_location, - owner: *owner == beneficiary_acc_bytes.into(), + who: *who == beneficiary_acc_bytes.into(), }, // Leftover fees was deposited to beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == eth_location(), - owner: *owner == beneficiary_acc_bytes.into(), + who: *who == beneficiary_acc_bytes.into(), }, ] ); @@ -284,7 +284,7 @@ fn send_ether_to_kusama_v2() { nonce: 1, origin, assets: vec![], - xcm: XcmPayload::Raw(versioned_message_xcm.encode()), + payload: XcmPayload::Raw(versioned_message_xcm.encode()), claimer: Some(claimer_bytes), value: TOKEN_AMOUNT, execution_fee: MIN_ETHER_BALANCE * 2, @@ -337,9 +337,9 @@ fn send_ether_to_kusama_v2() { pallet_message_queue::Event::Processed { success: true, .. } ) => {}, // Ether was deposited to beneficiary - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == eth_location(), - owner: *owner == beneficiary_acc_bytes.into(), + who: *who == beneficiary_acc_bytes.into(), }, ] ); @@ -382,7 +382,7 @@ fn send_ksm_from_ethereum_to_kusama() { BridgeHubPolkadot::force_xcm_version(asset_hub_kusama_location(), XCM_VERSION); AssetHubPolkadot::force_xcm_version(asset_hub_kusama_location(), XCM_VERSION); - let eth_fee_kusama_ah: Asset = (eth_location(), MIN_ETHER_BALANCE).into(); + let eth_fee_kusama_ah: Asset = (eth_location(), MIN_ETHER_BALANCE * 2).into(); let ksm = Location::new(1, [GlobalConsensus(Kusama)]); let token_id = TokenIdOf::convert_location(&ksm).unwrap(); @@ -448,7 +448,7 @@ fn send_ksm_from_ethereum_to_kusama() { nonce: 1, origin, assets, - xcm: XcmPayload::Raw(versioned_message_xcm.encode()), + payload: XcmPayload::Raw(versioned_message_xcm.encode()), claimer: Some(claimer_bytes), value: TOKEN_AMOUNT, execution_fee: MIN_ETHER_BALANCE * 2, @@ -470,6 +470,8 @@ fn send_ksm_from_ethereum_to_kusama() { ] ); }); + // Flush stale XcmpQueue outbound index to ensure the message is delivered to AHP + BridgeHubPolkadot::execute_with(|| {}); AssetHubPolkadot::execute_with(|| { type RuntimeEvent = ::RuntimeEvent; @@ -488,6 +490,8 @@ fn send_ksm_from_ethereum_to_kusama() { ensure_no_assets_trapped_on_pah(); assert_bridge_hub_polkadot_message_accepted(true); assert_bridge_hub_kusama_message_received(); + // Extra BHK block to flush stale XcmpQueue outbound index + BridgeHubKusama::execute_with(|| {}); AssetHubKusama::execute_with(|| { type RuntimeEvent = ::RuntimeEvent; @@ -497,13 +501,13 @@ fn send_ksm_from_ethereum_to_kusama() { vec![ // ROC is withdrawn from AHW's SA on AHR RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } + pallet_balances::Event::Withdraw { who, amount } ) => { who: *who == sov_ahw_on_ahr, amount: *amount == TOKEN_AMOUNT, }, // ROCs deposited to beneficiary - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => { who: *who == AssetHubKusamaReceiver::get(), }, // message processed successfully diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound.rs index b699ca751c..0b148c5e95 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound.rs @@ -382,7 +382,7 @@ fn transfer_relay_token_from_ah() { assert!( events.iter().any(|event| matches!( event, - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, amount}) + RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, amount}) if *who == ethereum_sovereign.clone() && *amount == TOKEN_AMOUNT, )), "native token reserved to Ethereum sovereign account." @@ -759,7 +759,7 @@ fn register_token_from_penpal() { type RuntimeEvent = ::RuntimeEvent; assert_expected_events!( AssetHubPolkadot, - vec![RuntimeEvent::ForeignAssets(pallet_assets::Event::Burned { .. }) => {},] + vec![RuntimeEvent::ForeignAssets(pallet_assets::Event::Withdrawn { .. }) => {},] ); }); @@ -907,7 +907,7 @@ fn send_message_from_penpal_to_ethereum(sudo: bool) { ); assert_expected_events!( AssetHubPolkadot, - vec![RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) => {},] + vec![RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { .. }) => {},] ); }); diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound_edge_case.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound_edge_case.rs index 71d66d231f..3139937e4b 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound_edge_case.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound_edge_case.rs @@ -108,7 +108,7 @@ fn register_penpal_a_asset_from_penpal_b_will_fail() { type RuntimeEvent = ::RuntimeEvent; assert_expected_events!( AssetHubPolkadot, - vec![RuntimeEvent::ForeignAssets(pallet_assets::Event::Burned { .. }) => {},] + vec![RuntimeEvent::ForeignAssets(pallet_assets::Event::Withdrawn { .. }) => {},] ); }); diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound_from_kusama.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound_from_kusama.rs index 4e8f09879c..0d74071257 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound_from_kusama.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_outbound_from_kusama.rs @@ -96,7 +96,7 @@ pub(crate) fn assert_bridge_hub_kusama_message_accepted(expected_processed: bool BridgeHubKusama, vec![ // pay for bridge fees - RuntimeEvent::Balances(pallet_balances::Event::Burned { .. }) => {}, + RuntimeEvent::Balances(pallet_balances::Event::Withdraw { .. }) => {}, // message exported RuntimeEvent::BridgePolkadotMessages( pallet_bridge_messages::Event::MessageAccepted { .. } diff --git a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_rewards.rs b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_rewards.rs index 65438f4f06..5e15f44db1 100644 --- a/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_rewards.rs +++ b/integration-tests/emulated/tests/bridges/bridge-hub-polkadot/src/tests/snowbridge_v2_rewards.rs @@ -94,9 +94,9 @@ fn claim_rewards_works() { AssetHubPolkadot, vec![ // Check that the reward was paid on AH - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + RuntimeEvent::ForeignAssets(pallet_assets::Event::Deposited { asset_id, who, .. }) => { asset_id: *asset_id == eth_location(), - owner: *owner == reward_address.clone(), + who: *who == reward_address.clone(), }, ] ); diff --git a/integration-tests/emulated/tests/coretime/coretime-kusama/src/tests/claim_assets.rs b/integration-tests/emulated/tests/coretime/coretime-kusama/src/tests/claim_assets.rs index d1d176e241..f955c5244c 100644 --- a/integration-tests/emulated/tests/coretime/coretime-kusama/src/tests/claim_assets.rs +++ b/integration-tests/emulated/tests/coretime/coretime-kusama/src/tests/claim_assets.rs @@ -17,12 +17,19 @@ use crate::*; +use coretime_kusama_runtime::xcm_config::XcmConfig as CoretimeKusamaXcmConfig; use integration_tests_helpers::test_chain_can_claim_assets; #[test] fn assets_can_be_claimed() { let amount = CoretimeExistentialDeposit::get(); - let assets: Assets = (Parent, amount).into(); + let assets: Asset = (Parent, amount).into(); - test_chain_can_claim_assets!(CoretimeKusama, RuntimeCall, NetworkId::Kusama, assets, amount); + test_chain_can_claim_assets!( + CoretimeKusama, + CoretimeKusamaXcmConfig, + NetworkId::Kusama, + assets, + amount + ); } diff --git a/integration-tests/emulated/tests/coretime/coretime-polkadot/src/tests/claim_assets.rs b/integration-tests/emulated/tests/coretime/coretime-polkadot/src/tests/claim_assets.rs index e54386774a..078918b3a2 100644 --- a/integration-tests/emulated/tests/coretime/coretime-polkadot/src/tests/claim_assets.rs +++ b/integration-tests/emulated/tests/coretime/coretime-polkadot/src/tests/claim_assets.rs @@ -17,16 +17,17 @@ use crate::*; +use coretime_polkadot_runtime::xcm_config::XcmConfig as CoretimePolkadotXcmConfig; use integration_tests_helpers::test_chain_can_claim_assets; #[test] fn assets_can_be_claimed() { let amount = CoretimeExistentialDeposit::get(); - let assets: Assets = (Parent, amount).into(); + let assets: Asset = (Parent, amount).into(); test_chain_can_claim_assets!( CoretimePolkadot, - RuntimeCall, + CoretimePolkadotXcmConfig, NetworkId::Polkadot, assets, amount diff --git a/integration-tests/emulated/tests/people/people-kusama/src/tests/claim_assets.rs b/integration-tests/emulated/tests/people/people-kusama/src/tests/claim_assets.rs index c054a559b0..206a593c3e 100644 --- a/integration-tests/emulated/tests/people/people-kusama/src/tests/claim_assets.rs +++ b/integration-tests/emulated/tests/people/people-kusama/src/tests/claim_assets.rs @@ -17,11 +17,18 @@ use crate::*; use integration_tests_helpers::test_chain_can_claim_assets; +use people_kusama_runtime::xcm_config::XcmConfig as PeopleKusamaXcmConfig; #[test] fn assets_can_be_claimed() { let amount = PeopleKusamaExistentialDeposit::get(); - let assets: Assets = (Parent, amount).into(); + let assets: Asset = (Parent, amount).into(); - test_chain_can_claim_assets!(PeopleKusama, RuntimeCall, NetworkId::Kusama, assets, amount); + test_chain_can_claim_assets!( + PeopleKusama, + PeopleKusamaXcmConfig, + NetworkId::Kusama, + assets, + amount + ); } diff --git a/integration-tests/emulated/tests/people/people-polkadot/src/tests/claim_assets.rs b/integration-tests/emulated/tests/people/people-polkadot/src/tests/claim_assets.rs index def09e9d5e..c051044eb2 100644 --- a/integration-tests/emulated/tests/people/people-polkadot/src/tests/claim_assets.rs +++ b/integration-tests/emulated/tests/people/people-polkadot/src/tests/claim_assets.rs @@ -18,11 +18,18 @@ use crate::*; use integration_tests_helpers::test_chain_can_claim_assets; +use people_polkadot_runtime::xcm_config::XcmConfig as PeoplePolkadotXcmConfig; #[test] fn assets_can_be_claimed() { let amount = PeoplePolkadotExistentialDeposit::get(); - let assets: Assets = (Parent, amount).into(); + let assets: Asset = (Parent, amount).into(); - test_chain_can_claim_assets!(PeoplePolkadot, RuntimeCall, NetworkId::Polkadot, assets, amount); + test_chain_can_claim_assets!( + PeoplePolkadot, + PeoplePolkadotXcmConfig, + NetworkId::Polkadot, + assets, + amount + ); } diff --git a/pallets/ah-ops/src/lib.rs b/pallets/ah-ops/src/lib.rs index 6aadf43b42..c68b1e1ba9 100644 --- a/pallets/ah-ops/src/lib.rs +++ b/pallets/ah-ops/src/lib.rs @@ -493,7 +493,6 @@ pub mod pallet { Ok(()) } - // TODO: @ggwpez Test this fn contributions_withdrawn(block: BlockNumberFor, para_id: ParaId) -> bool { let mut contrib_iter = RcCrowdloanContribution::::iter_prefix((block, para_id)); contrib_iter.next().is_none() diff --git a/pallets/ah-ops/src/mock.rs b/pallets/ah-ops/src/mock.rs index 29b2e5abcc..86ecdcb3c3 100644 --- a/pallets/ah-ops/src/mock.rs +++ b/pallets/ah-ops/src/mock.rs @@ -112,7 +112,6 @@ impl pallet_staking_async::Config for Runtime { type HistoryDepth = (); type MaxControllersInDeprecationBatch = (); type EventListeners = (); - type MaxInvulnerables = (); type PlanningEraOffset = (); type RcClientInterface = Self; type MaxEraDuration = (); @@ -226,8 +225,8 @@ impl frame_election_provider_support::ElectionProvider for Runtime { Ok(()) } - fn status() -> Result { - Ok(true) + fn status() -> Result, ()> { + Ok(None) } } diff --git a/pallets/rc-migrator/src/lib.rs b/pallets/rc-migrator/src/lib.rs index 6cd390f06d..383e0ebeb6 100644 --- a/pallets/rc-migrator/src/lib.rs +++ b/pallets/rc-migrator/src/lib.rs @@ -46,15 +46,7 @@ use sp_runtime::AccountId32; /// The state for the Relay Chain accounts. #[derive( - Encode, - DecodeWithMemTracking, - Decode, - Clone, - PartialEq, - Eq, - RuntimeDebug, - TypeInfo, - MaxEncodedLen, + Encode, DecodeWithMemTracking, Decode, Clone, PartialEq, Eq, Debug, TypeInfo, MaxEncodedLen, )] pub enum AccountState { /// The account should be migrated to AH and removed on RC. diff --git a/pallets/remote-proxy/src/lib.rs b/pallets/remote-proxy/src/lib.rs index 71f22a9430..d6cb437fc2 100644 --- a/pallets/remote-proxy/src/lib.rs +++ b/pallets/remote-proxy/src/lib.rs @@ -227,6 +227,11 @@ pub mod pallet { } fn on_validation_code_applied() {} + fn on_relay_state_proof( + _relay_state_proof: &cumulus_pallet_parachain_system::relay_state_snapshot::RelayChainStateProof, + ) -> frame_support::weights::Weight { + Default::default() + } } #[pallet::error] diff --git a/relay/kusama/src/genesis_config_presets.rs b/relay/kusama/src/genesis_config_presets.rs index 15b40a1870..1fc0d858c2 100644 --- a/relay/kusama/src/genesis_config_presets.rs +++ b/relay/kusama/src/genesis_config_presets.rs @@ -119,7 +119,7 @@ fn default_parachains_host_configuration() -> HostConfiguration HostConfiguration(_); #[derive( - PartialEq, - Eq, - Clone, - MaxEncodedLen, - Encode, - Decode, - DecodeWithMemTracking, - TypeInfo, - RuntimeDebug, + PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, DecodeWithMemTracking, TypeInfo, Debug, )] #[pallet::origin] pub enum Origin { diff --git a/relay/kusama/src/lib.rs b/relay/kusama/src/lib.rs index a56d8dcea4..73ad1aeb9d 100644 --- a/relay/kusama/src/lib.rs +++ b/relay/kusama/src/lib.rs @@ -92,7 +92,6 @@ use polkadot_runtime_common::{ CurrencyToVote, SlowAdjustingFeeUpdate, U256ToBalance, }; use runtime_parachains::{ - assigner_coretime as parachains_assigner_coretime, configuration::{ self as parachains_configuration, ActiveConfigHrmpChannelSizeAndCapacityRatio, }, @@ -103,7 +102,9 @@ use runtime_parachains::{ initializer as parachains_initializer, on_demand as parachains_on_demand, origin as parachains_origin, paras as parachains_paras, paras_inherent as parachains_paras_inherent, reward_points as parachains_reward_points, - runtime_api_impl::v13 as parachains_runtime_api_impl, + runtime_api_impl::{ + v13 as parachains_runtime_api_impl, vstaging as parachains_staging_runtime_api_impl, + }, scheduler as parachains_scheduler, session_info as parachains_session_info, shared as parachains_shared, }; @@ -118,8 +119,7 @@ use sp_runtime::{ Get, IdentityLookup, Keccak256, OpaqueKeys, SaturatedConversion, Verify, }, transaction_validity::{TransactionPriority, TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, FixedU128, KeyTypeId, OpaqueValue, Perbill, Percent, Permill, - RuntimeDebug, + ApplyExtrinsicResult, Debug, FixedU128, KeyTypeId, OpaqueValue, Perbill, Percent, Permill, }; use sp_staking::{EraIndex, SessionIndex}; #[cfg(any(feature = "std", test))] @@ -509,6 +509,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + parameter_types! { pub const MinimumPeriod: u64 = SLOT_DURATION / 2; } @@ -1027,7 +1030,7 @@ impl Get for TreasuryBurnHandler { pub type TreasuryPaymaster = PayOverXcm< TreasuryInteriorLocation, - crate::xcm_config::XcmRouter, + crate::xcm_config::XcmConfig, crate::XcmPallet, ConstU32<{ 6 * HOURS }>, ::Beneficiary, @@ -1084,6 +1087,7 @@ impl pallet_bounties::Config for Runtime { type MaximumReasonLength = MaximumReasonLength; type OnSlash = Treasury; type WeightInfo = weights::pallet_bounties::WeightInfo; + type TransferAllAssets = (); // not used on the relay } parameter_types! { @@ -1324,7 +1328,7 @@ parameter_types! { Encode, Decode, DecodeWithMemTracking, - RuntimeDebug, + Debug, MaxEncodedLen, Default, )] @@ -1515,7 +1519,7 @@ impl parachains_paras::Config for Runtime { type QueueFootprinter = ParaInclusion; type NextSessionRotation = Babe; type OnNewHead = Registrar; - type AssignCoretime = CoretimeAssignmentProvider; + type AssignCoretime = ParaScheduler; type Fungible = Balances; // Per day the cooldown is removed earlier, it should cost 1000. type CooldownRemovalMultiplier = ConstUint<{ 1000 * UNITS / DAYS as u128 }>; @@ -1602,11 +1606,7 @@ impl parachains_paras_inherent::Config for Runtime { type WeightInfo = weights::runtime_parachains_paras_inherent::WeightInfo; } -impl parachains_scheduler::Config for Runtime { - // If you change this, make sure the `Assignment` type of the new provider is binary compatible, - // otherwise provide a migration. - type AssignmentProvider = CoretimeAssignmentProvider; -} +impl parachains_scheduler::Config for Runtime {} parameter_types! { pub const BrokerId: u32 = system_parachain::BROKER_ID; @@ -1655,8 +1655,6 @@ impl parachains_on_demand::Config for Runtime { type PalletId = OnDemandPalletId; } -impl parachains_assigner_coretime::Config for Runtime {} - impl parachains_initializer::Config for Runtime { type Randomness = pallet_babe::RandomnessFromOneEpochAgo; type ForceOrigin = EnsureRoot; @@ -2061,7 +2059,6 @@ construct_runtime! { ParasDisputes: parachains_disputes = 62, ParasSlashing: parachains_slashing = 63, OnDemandAssignmentProvider: parachains_on_demand = 64, - CoretimeAssignmentProvider: parachains_assigner_coretime = 65, // Parachain Onboarding Pallets. Start indices at 70 to leave room. Registrar: paras_registrar = 70, @@ -2131,7 +2128,12 @@ pub mod migrations { use super::*; /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = ( + parachains_on_demand::migration::MigrateV1ToV2, + parachains_scheduler::migration::MigrateV3ToV4, + parachains_configuration::migration::v13::MigrateToV13, + parachains_shared::migration::MigrateToV2, + ); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; @@ -2206,7 +2208,6 @@ mod benches { [frame_system_extensions, SystemExtensionsBench::] [pallet_timestamp, Timestamp] [pallet_transaction_payment, TransactionPayment] - [pallet_treasury, Treasury] [pallet_utility, Utility] [pallet_vesting, Vesting] [pallet_whitelist, Whitelist] @@ -2219,7 +2220,12 @@ mod benches { ); use xcm_config::{AssetHubLocation, SovereignAccountOf, TokenLocation, XcmConfig}; - impl pallet_session_benchmarking::Config for Runtime {} + impl pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } impl pallet_offences_benchmarking::Config for Runtime {} impl pallet_election_provider_support_benchmarking::Config for Runtime {} impl frame_system_benchmarking::Config for Runtime {} @@ -2301,10 +2307,15 @@ mod benches { fn valid_destination() -> Result { Ok(AssetHubLocation::get()) } - fn worst_case_holding(_depositable_count: u32) -> Assets { + fn worst_case_holding(_depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // Kusama only knows about KSM. - vec![Asset { id: AssetId(TokenLocation::get()), fun: Fungible(1_000_000 * UNITS) }] - .into() + let mut holding = xcm_executor::AssetsInHolding::new(); + holding.fungible.insert( + AssetId(TokenLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000 * UNITS)), + ); + holding } } @@ -2483,7 +2494,7 @@ sp_api::impl_runtime_apis! { } } - #[api_version(13)] + #[api_version(16)] impl polkadot_primitives::runtime_api::ParachainHost for Runtime { fn validators() -> Vec { parachains_runtime_api_impl::validators::() @@ -2596,6 +2607,11 @@ sp_api::impl_runtime_apis! { parachains_runtime_api_impl::unapplied_slashes::() } + fn unapplied_slashes_v2( + ) -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)> { + parachains_runtime_api_impl::unapplied_slashes_v2::() + } + fn key_ownership_proof( validator_id: ValidatorId, ) -> Option { @@ -2661,6 +2677,21 @@ sp_api::impl_runtime_apis! { fn scheduling_lookahead() -> u32 { parachains_runtime_api_impl::scheduling_lookahead::() } + + fn para_ids() -> Vec { + parachains_staging_runtime_api_impl::para_ids::() + } + + fn max_relay_parent_session_age() -> u32 { + parachains_staging_runtime_api_impl::max_relay_parent_session_age::() + } + + fn ancestor_relay_parent_info( + session_index: SessionIndex, + relay_parent: Hash, + ) -> Option> { + parachains_staging_runtime_api_impl::ancestor_relay_parent_info::(session_index, relay_parent) + } } impl beefy_primitives::BeefyApi for Runtime { @@ -2872,8 +2903,8 @@ sp_api::impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( @@ -3271,26 +3302,25 @@ mod remote_tests { use super::*; use frame_try_runtime::{runtime_decl_for_try_runtime::TryRuntime, UpgradeCheckSelect}; use remote_externalities::{ - Builder, Mode, OfflineConfig, OnlineConfig, RemoteExternalities, SnapshotConfig, Transport, + Builder, Mode, OfflineConfig, OnlineConfig, RemoteExternalities, SnapshotConfig, }; use std::env::var; async fn remote_ext_test_setup() -> RemoteExternalities { - let transport: Transport = - var("WS").unwrap_or("wss://kusama-rpc.dwellir.com".to_string()).into(); + let transport: String = var("WS").unwrap_or("wss://kusama-rpc.dwellir.com".to_string()); let maybe_state_snapshot: Option = var("SNAP").map(|s| s.into()).ok(); Builder::::default() .mode(if let Some(state_snapshot) = maybe_state_snapshot { Mode::OfflineOrElseOnline( OfflineConfig { state_snapshot: state_snapshot.clone() }, OnlineConfig { - transport, + transport_uris: vec![transport], state_snapshot: Some(state_snapshot), ..Default::default() }, ) } else { - Mode::Online(OnlineConfig { transport, ..Default::default() }) + Mode::Online(OnlineConfig { transport_uris: vec![transport], ..Default::default() }) }) .build() .await @@ -3337,11 +3367,10 @@ mod remote_tests { } use hex_literal::hex; sp_tracing::try_init_simple(); - let transport: Transport = - var("WS").unwrap_or("wss://rpc.dotters.network/kusama".to_string()).into(); + let transport: String = var("WS").unwrap_or("wss://rpc.dotters.network/kusama".to_string()); let mut ext = Builder::::default() .mode(Mode::Online(OnlineConfig { - transport, + transport_uris: vec![transport], hashed_prefixes: vec![ // entire nis pallet hex!("928fa8b8d92aa31f47ed74f188a43f70").to_vec(), @@ -3406,21 +3435,20 @@ mod remote_tests { #[ignore = "this test is meant to be executed manually"] async fn try_fast_unstake_all() { sp_tracing::try_init_simple(); - let transport: Transport = - var("WS").unwrap_or("wss://kusama-rpc.polkadot.io:443".to_string()).into(); + let transport: String = var("WS").unwrap_or("wss://kusama-rpc.polkadot.io:443".to_string()); let maybe_state_snapshot: Option = var("SNAP").map(|s| s.into()).ok(); let mut ext = Builder::::default() .mode(if let Some(state_snapshot) = maybe_state_snapshot { Mode::OfflineOrElseOnline( OfflineConfig { state_snapshot: state_snapshot.clone() }, OnlineConfig { - transport, + transport_uris: vec![transport], state_snapshot: Some(state_snapshot), ..Default::default() }, ) } else { - Mode::Online(OnlineConfig { transport, ..Default::default() }) + Mode::Online(OnlineConfig { transport_uris: vec![transport], ..Default::default() }) }) .build() .await diff --git a/relay/kusama/src/weights/runtime_parachains_on_demand.rs b/relay/kusama/src/weights/runtime_parachains_on_demand.rs index 8a62a56cea..83afdd2200 100644 --- a/relay/kusama/src/weights/runtime_parachains_on_demand.rs +++ b/relay/kusama/src/weights/runtime_parachains_on_demand.rs @@ -59,7 +59,7 @@ impl runtime_parachains::on_demand::WeightInfo for Weig /// Storage: `OnDemandAssignmentProvider::FreeEntries` (r:1 w:1) /// Proof: `OnDemandAssignmentProvider::FreeEntries` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `s` is `[1, 9999]`. - fn place_order_keep_alive(s: u32, ) -> Weight { + fn place_order_keep_alive() -> Weight { // Proof Size summary in bytes: // Measured: `237 + s * (8 ±0)` // Estimated: `3700 + s * (8 ±0)` @@ -67,10 +67,10 @@ impl runtime_parachains::on_demand::WeightInfo for Weig Weight::from_parts(72_842_997, 0) .saturating_add(Weight::from_parts(0, 3700)) // Standard Error: 116 - .saturating_add(Weight::from_parts(17_967, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(17_967, 0)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(0, 8)) } /// Storage: `OnDemandAssignmentProvider::QueueStatus` (r:1 w:1) /// Proof: `OnDemandAssignmentProvider::QueueStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -83,7 +83,7 @@ impl runtime_parachains::on_demand::WeightInfo for Weig /// Storage: `OnDemandAssignmentProvider::FreeEntries` (r:1 w:1) /// Proof: `OnDemandAssignmentProvider::FreeEntries` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `s` is `[1, 9999]`. - fn place_order_allow_death(s: u32, ) -> Weight { + fn place_order_allow_death() -> Weight { // Proof Size summary in bytes: // Measured: `237 + s * (8 ±0)` // Estimated: `3700 + s * (8 ±0)` @@ -91,10 +91,10 @@ impl runtime_parachains::on_demand::WeightInfo for Weig Weight::from_parts(72_959_995, 0) .saturating_add(Weight::from_parts(0, 3700)) // Standard Error: 100 - .saturating_add(Weight::from_parts(17_734, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(17_734, 0)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(0, 8)) } /// Storage: `OnDemandAssignmentProvider::QueueStatus` (r:1 w:1) /// Proof: `OnDemandAssignmentProvider::QueueStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -107,7 +107,7 @@ impl runtime_parachains::on_demand::WeightInfo for Weig /// Storage: `OnDemandAssignmentProvider::FreeEntries` (r:1 w:1) /// Proof: `OnDemandAssignmentProvider::FreeEntries` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `s` is `[1, 9999]`. - fn place_order_with_credits(s: u32, ) -> Weight { + fn place_order_with_credits() -> Weight { // Proof Size summary in bytes: // Measured: `271 + s * (8 ±0)` // Estimated: `3734 + s * (8 ±0)` @@ -115,9 +115,9 @@ impl runtime_parachains::on_demand::WeightInfo for Weig Weight::from_parts(42_385_715, 0) .saturating_add(Weight::from_parts(0, 3734)) // Standard Error: 97 - .saturating_add(Weight::from_parts(17_257, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(17_257, 0)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(0, 8)) } } diff --git a/relay/kusama/src/xcm_config.rs b/relay/kusama/src/xcm_config.rs index ccf5e6a5a3..b08ee4c0cc 100644 --- a/relay/kusama/src/xcm_config.rs +++ b/relay/kusama/src/xcm_config.rs @@ -224,7 +224,6 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = XcmPallet; type AssetLocker = (); type AssetExchanger = (); - type AssetClaims = XcmPallet; type SubscriptionService = XcmPallet; type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; diff --git a/relay/polkadot/constants/src/lib.rs b/relay/polkadot/constants/src/lib.rs index dffc703e63..9312ea7368 100644 --- a/relay/polkadot/constants/src/lib.rs +++ b/relay/polkadot/constants/src/lib.rs @@ -360,7 +360,7 @@ mod tests { Encode, Decode, DecodeWithMemTracking, - sp_runtime::RuntimeDebug, + sp_runtime::Debug, )] pub enum OldProxyType { Any, diff --git a/relay/polkadot/src/genesis_config_presets.rs b/relay/polkadot/src/genesis_config_presets.rs index 1aa799aac6..32fac472dc 100644 --- a/relay/polkadot/src/genesis_config_presets.rs +++ b/relay/polkadot/src/genesis_config_presets.rs @@ -119,7 +119,7 @@ fn default_parachains_host_configuration() -> HostConfiguration HostConfiguration(_); #[derive( - PartialEq, - Eq, - Clone, - MaxEncodedLen, - Encode, - Decode, - DecodeWithMemTracking, - TypeInfo, - RuntimeDebug, + PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, DecodeWithMemTracking, TypeInfo, Debug, )] #[pallet::origin] pub enum Origin { diff --git a/relay/polkadot/src/lib.rs b/relay/polkadot/src/lib.rs index e972344251..3e52be24c6 100644 --- a/relay/polkadot/src/lib.rs +++ b/relay/polkadot/src/lib.rs @@ -90,7 +90,7 @@ use sp_runtime::traits::Convert; use pallet_staking_async_ah_client as ah_client; use pallet_staking_async_rc_client as rc_client; use runtime_parachains::{ - assigner_coretime as parachains_assigner_coretime, configuration as parachains_configuration, + configuration as parachains_configuration, configuration::ActiveConfigHrmpChannelSizeAndCapacityRatio, coretime, disputes as parachains_disputes, disputes::slashing as parachains_slashing, @@ -99,7 +99,9 @@ use runtime_parachains::{ initializer as parachains_initializer, on_demand as parachains_on_demand, origin as parachains_origin, paras as parachains_paras, paras_inherent as parachains_paras_inherent, reward_points as parachains_reward_points, - runtime_api_impl::v13 as parachains_runtime_api_impl, + runtime_api_impl::{ + v13 as parachains_runtime_api_impl, vstaging as parachains_staging_runtime_api_impl, + }, scheduler as parachains_scheduler, session_info as parachains_session_info, shared as parachains_shared, }; @@ -113,8 +115,7 @@ use sp_runtime::{ IdentityLookup, Keccak256, OpaqueKeys, SaturatedConversion, Verify, }, transaction_validity::{TransactionPriority, TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, FixedU128, KeyTypeId, OpaqueValue, Perbill, Percent, Permill, - RuntimeDebug, + ApplyExtrinsicResult, Debug, FixedU128, KeyTypeId, OpaqueValue, Perbill, Percent, Permill, }; use sp_staking::{EraIndex, SessionIndex}; #[cfg(any(feature = "std", test))] @@ -501,6 +502,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + parameter_types! { pub const MinimumPeriod: u64 = SLOT_DURATION / 2; } @@ -863,7 +867,7 @@ parameter_types! { pub type TreasuryPaymaster = PayOverXcm< TreasuryInteriorLocation, - crate::xcm_config::XcmRouter, + crate::xcm_config::XcmConfig, crate::XcmPallet, ConstU32<{ 6 * HOURS }>, ::Beneficiary, @@ -920,6 +924,7 @@ impl pallet_bounties::Config for Runtime { type DataDepositPerByte = DataDepositPerByte; type MaximumReasonLength = MaximumReasonLength; type OnSlash = Treasury; + type TransferAllAssets = (); // not used on the relay type WeightInfo = weights::pallet_bounties::WeightInfo; } @@ -1132,7 +1137,7 @@ parameter_types! { Encode, Decode, DecodeWithMemTracking, - RuntimeDebug, + Debug, MaxEncodedLen, Default, )] @@ -1304,7 +1309,7 @@ impl parachains_paras::Config for Runtime { type QueueFootprinter = ParaInclusion; type NextSessionRotation = Babe; type OnNewHead = Registrar; - type AssignCoretime = CoretimeAssignmentProvider; + type AssignCoretime = ParaScheduler; type Fungible = Balances; // Per day the cooldown is removed earlier, it should cost 5000. type CooldownRemovalMultiplier = ConstUint<{ 5000 * UNITS / DAYS as u128 }>; @@ -1391,11 +1396,7 @@ impl parachains_paras_inherent::Config for Runtime { type WeightInfo = weights::runtime_parachains_paras_inherent::WeightInfo; } -impl parachains_scheduler::Config for Runtime { - // If you change this, make sure the `Assignment` type of the new provider is binary compatible, - // otherwise provide a migration. - type AssignmentProvider = CoretimeAssignmentProvider; -} +impl parachains_scheduler::Config for Runtime {} parameter_types! { pub const BrokerId: u32 = system_parachain::BROKER_ID; @@ -1444,8 +1445,6 @@ impl parachains_on_demand::Config for Runtime { type PalletId = OnDemandPalletId; } -impl parachains_assigner_coretime::Config for Runtime {} - impl parachains_initializer::Config for Runtime { type Randomness = pallet_babe::RandomnessFromOneEpochAgo; type ForceOrigin = EnsureRoot; @@ -1861,7 +1860,6 @@ construct_runtime! { ParasDisputes: parachains_disputes = 62, ParasSlashing: parachains_slashing = 63, OnDemand: parachains_on_demand = 64, - CoretimeAssignmentProvider: parachains_assigner_coretime = 65, // Parachain Onboarding Pallets. Start indices at 70 to leave room. Registrar: paras_registrar = 70, @@ -1935,7 +1933,12 @@ pub mod migrations { use super::*; /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = ( + parachains_on_demand::migration::MigrateV1ToV2, + parachains_scheduler::migration::MigrateV3ToV4, + parachains_configuration::migration::v13::MigrateToV13, + parachains_shared::migration::MigrateToV2, + ); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; @@ -2004,7 +2007,6 @@ mod benches { [frame_system_extensions, SystemExtensionsBench::] [pallet_timestamp, Timestamp] [pallet_transaction_payment, TransactionPayment] - [pallet_treasury, Treasury] [pallet_utility, Utility] [pallet_vesting, Vesting] [pallet_conviction_voting, ConvictionVoting] @@ -2034,7 +2036,12 @@ mod benches { use polkadot_runtime_constants::system_parachain::AssetHubParaId; use xcm_config::{AssetHubLocation, SovereignAccountOf, TokenLocation, XcmConfig}; - impl pallet_session_benchmarking::Config for Runtime {} + impl pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } impl pallet_offences_benchmarking::Config for Runtime {} impl pallet_election_provider_support_benchmarking::Config for Runtime {} impl frame_system_benchmarking::Config for Runtime {} @@ -2116,13 +2123,15 @@ mod benches { fn valid_destination() -> Result { Ok(AssetHubLocation::get()) } - fn worst_case_holding(_depositable_count: u32) -> Assets { + fn worst_case_holding(_depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // Polkadot only knows about DOT - vec![Asset { - id: AssetId(TokenLocation::get()), - fun: Fungible(1_000_000_000_000 * UNITS), - }] - .into() + let mut holding = xcm_executor::AssetsInHolding::new(); + holding.fungible.insert( + AssetId(TokenLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000_000 * UNITS)), + ); + holding } } @@ -2346,7 +2355,7 @@ sp_api::impl_runtime_apis! { } } - #[api_version(13)] + #[api_version(16)] impl polkadot_primitives::runtime_api::ParachainHost for Runtime { fn validators() -> Vec { parachains_runtime_api_impl::validators::() @@ -2459,6 +2468,11 @@ sp_api::impl_runtime_apis! { parachains_runtime_api_impl::unapplied_slashes::() } + fn unapplied_slashes_v2( + ) -> Vec<(SessionIndex, CandidateHash, slashing::PendingSlashes)> { + parachains_runtime_api_impl::unapplied_slashes_v2::() + } + fn key_ownership_proof( validator_id: ValidatorId, ) -> Option { @@ -2524,6 +2538,21 @@ sp_api::impl_runtime_apis! { fn scheduling_lookahead() -> u32 { parachains_runtime_api_impl::scheduling_lookahead::() } + + fn para_ids() -> Vec { + parachains_staging_runtime_api_impl::para_ids::() + } + + fn max_relay_parent_session_age() -> u32 { + parachains_staging_runtime_api_impl::max_relay_parent_session_age::() + } + + fn ancestor_relay_parent_info( + session_index: SessionIndex, + relay_parent: Hash, + ) -> Option> { + parachains_staging_runtime_api_impl::ancestor_relay_parent_info::(session_index, relay_parent) + } } impl beefy_primitives::BeefyApi for Runtime { @@ -2734,8 +2763,8 @@ sp_api::impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( @@ -3375,26 +3404,25 @@ mod remote_tests { use super::*; use frame_try_runtime::{runtime_decl_for_try_runtime::TryRuntime, UpgradeCheckSelect}; use remote_externalities::{ - Builder, Mode, OfflineConfig, OnlineConfig, RemoteExternalities, SnapshotConfig, Transport, + Builder, Mode, OfflineConfig, OnlineConfig, RemoteExternalities, SnapshotConfig, }; use std::env::var; async fn remote_ext_test_setup() -> RemoteExternalities { - let transport: Transport = - var("WS").unwrap_or("wss://polkadot-rpc.dwellir.com".to_string()).into(); + let transport: String = var("WS").unwrap_or("wss://polkadot-rpc.dwellir.com".to_string()); let maybe_state_snapshot: Option = var("SNAP").map(|s| s.into()).ok(); Builder::::default() .mode(if let Some(state_snapshot) = maybe_state_snapshot { Mode::OfflineOrElseOnline( OfflineConfig { state_snapshot: state_snapshot.clone() }, OnlineConfig { - transport, + transport_uris: vec![transport], state_snapshot: Some(state_snapshot), ..Default::default() }, ) } else { - Mode::Online(OnlineConfig { transport, ..Default::default() }) + Mode::Online(OnlineConfig { transport_uris: vec![transport], ..Default::default() }) }) .build() .await @@ -3499,11 +3527,11 @@ mod remote_tests { } use hex_literal::hex; sp_tracing::try_init_simple(); - let transport: Transport = - var("WS").unwrap_or("wss://rpc.dotters.network/polkadot".to_string()).into(); + let transport: String = + var("WS").unwrap_or("wss://rpc.dotters.network/polkadot".to_string()); let mut ext = Builder::::default() .mode(Mode::Online(OnlineConfig { - transport, + transport_uris: vec![transport], hashed_prefixes: vec![ // staking eras total stake hex!("5f3e4907f716ac89b6347d15ececedcaa141c4fe67c2d11f4a10c6aca7a79a04") diff --git a/relay/polkadot/src/weights/runtime_parachains_on_demand.rs b/relay/polkadot/src/weights/runtime_parachains_on_demand.rs index 69543220dd..963370881d 100644 --- a/relay/polkadot/src/weights/runtime_parachains_on_demand.rs +++ b/relay/polkadot/src/weights/runtime_parachains_on_demand.rs @@ -59,7 +59,7 @@ impl runtime_parachains::on_demand::WeightInfo for Weig /// Storage: `OnDemand::FreeEntries` (r:1 w:1) /// Proof: `OnDemand::FreeEntries` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `s` is `[1, 9999]`. - fn place_order_keep_alive(s: u32, ) -> Weight { + fn place_order_keep_alive() -> Weight { // TODO @ggwpez // Proof Size summary in bytes: // Measured: `132 + s * (8 ±0)` // Estimated: `3595 + s * (8 ±0)` @@ -67,10 +67,10 @@ impl runtime_parachains::on_demand::WeightInfo for Weig Weight::from_parts(38_323_240, 0) .saturating_add(Weight::from_parts(0, 3595)) // Standard Error: 219 - .saturating_add(Weight::from_parts(25_418, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(25_418, 0)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(0, 8)) } /// Storage: `OnDemand::QueueStatus` (r:1 w:1) /// Proof: `OnDemand::QueueStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -83,7 +83,7 @@ impl runtime_parachains::on_demand::WeightInfo for Weig /// Storage: `OnDemand::FreeEntries` (r:1 w:1) /// Proof: `OnDemand::FreeEntries` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `s` is `[1, 9999]`. - fn place_order_allow_death(s: u32, ) -> Weight { + fn place_order_allow_death() -> Weight { // TODO @ggwpez // Proof Size summary in bytes: // Measured: `132 + s * (8 ±0)` // Estimated: `3595 + s * (8 ±0)` @@ -91,10 +91,10 @@ impl runtime_parachains::on_demand::WeightInfo for Weig Weight::from_parts(37_765_771, 0) .saturating_add(Weight::from_parts(0, 3595)) // Standard Error: 204 - .saturating_add(Weight::from_parts(26_052, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(26_052, 0)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(0, 8)) } /// Storage: `OnDemand::QueueStatus` (r:1 w:1) /// Proof: `OnDemand::QueueStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -107,7 +107,7 @@ impl runtime_parachains::on_demand::WeightInfo for Weig /// Storage: `OnDemand::FreeEntries` (r:1 w:1) /// Proof: `OnDemand::FreeEntries` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `s` is `[1, 9999]`. - fn place_order_with_credits(s: u32, ) -> Weight { + fn place_order_with_credits() -> Weight { // TODO @ggwpez // Proof Size summary in bytes: // Measured: `166 + s * (8 ±0)` // Estimated: `3629 + s * (8 ±0)` @@ -115,9 +115,9 @@ impl runtime_parachains::on_demand::WeightInfo for Weig Weight::from_parts(13_341_399, 0) .saturating_add(Weight::from_parts(0, 3629)) // Standard Error: 221 - .saturating_add(Weight::from_parts(24_934, 0).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(24_934, 0)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) - .saturating_add(Weight::from_parts(0, 8).saturating_mul(s.into())) + .saturating_add(Weight::from_parts(0, 8)) } } diff --git a/relay/polkadot/src/xcm_config.rs b/relay/polkadot/src/xcm_config.rs index 7a4be3daea..fe8e76f0c2 100644 --- a/relay/polkadot/src/xcm_config.rs +++ b/relay/polkadot/src/xcm_config.rs @@ -238,7 +238,6 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = XcmPallet; type AssetLocker = (); type AssetExchanger = (); - type AssetClaims = XcmPallet; type SubscriptionService = XcmPallet; type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/governance/origins.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/governance/origins.rs index 4d6cbfd6fb..3d8d171809 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/governance/origins.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/governance/origins.rs @@ -30,15 +30,7 @@ pub mod pallet_custom_origins { pub struct Pallet(_); #[derive( - PartialEq, - Eq, - Clone, - MaxEncodedLen, - Encode, - Decode, - DecodeWithMemTracking, - TypeInfo, - RuntimeDebug, + PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, DecodeWithMemTracking, TypeInfo, Debug, )] #[pallet::origin] pub enum Origin { 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 886b91641e..fa8e45550f 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/lib.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/lib.rs @@ -73,7 +73,7 @@ use frame_system::{ }; use governance::{pallet_custom_origins, FellowshipAdmin, GeneralAdmin, StakingAdmin, Treasurer}; use kusama_runtime_constants::time::{DAYS as RC_DAYS, HOURS as RC_HOURS, MINUTES as RC_MINUTES}; -use pallet_assets_precompiles::{InlineIdConfig, ERC20}; +use pallet_assets_precompiles::{ForeignAssetId, ForeignIdConfig, InlineIdConfig, ERC20}; use pallet_nfts::PalletFeatures; use pallet_nomination_pools::PoolId; use pallet_proxy::ProxyDefinition; @@ -96,7 +96,7 @@ use sp_runtime::{ Get, Verify, }, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, FixedU128, Perbill, Permill, Perquintill, RuntimeDebug, + ApplyExtrinsicResult, Debug, FixedU128, Perbill, Permill, Perquintill, }; #[cfg(feature = "std")] use sp_version::NativeVersion; @@ -165,7 +165,12 @@ pub fn native_version() -> NativeVersion { parameter_types! { pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + BlockLength::builder() + .max_length(5 * 1024 * 1024) + .modify_max_length_for_class(DispatchClass::Normal, |m| { + *m = NORMAL_DISPATCH_RATIO * *m + }) + .build(); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() .base_block(BlockExecutionWeight::get()) .for_class(DispatchClass::all(), |weights| { @@ -320,6 +325,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + parameter_types! { pub const AssetDeposit: Balance = system_para_deposit(1, 190); pub const AssetAccountDeposit: Balance = system_para_deposit(1, 16); @@ -503,7 +511,7 @@ impl pallet_assets::Config for Runtime { type Holder = (); type Extra = (); type WeightInfo = weights::pallet_assets_foreign::WeightInfo; - type CallbackHandle = (); + type CallbackHandle = (ForeignAssetId,); type AssetAccountDeposit = ForeignAssetsAssetAccountDeposit; type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; type ReserveData = ForeignAssetReserveData; @@ -576,7 +584,7 @@ parameter_types! { Encode, Decode, DecodeWithMemTracking, - RuntimeDebug, + Debug, MaxEncodedLen, scale_info::TypeInfo, Default, @@ -1233,15 +1241,13 @@ impl pallet_revive::Config for Runtime { type WeightInfo = pallet_revive::weights::SubstrateWeight; type Precompiles = ( ERC20, TrustBackedAssetsInstance>, - // We will add ForeignAssetsInstance at <0x220> once we have Location to Id mapping - // ERC20, ForeignAssetsInstance>, ERC20, PoolAssetsInstance>, + ERC20, ForeignAssetsInstance>, XcmPrecompile, ); type AddressMapper = pallet_revive::AccountId32Mapper; type RuntimeMemory = ConstU32<{ 128 * 1024 * 1024 }>; type PVFMemory = ConstU32<{ 512 * 1024 * 1024 }>; - type UnsafeUnstableInterface = ConstBool; type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; type RuntimeHoldReason = RuntimeHoldReason; @@ -1255,6 +1261,19 @@ impl pallet_revive::Config for Runtime { // Must be set to `false` in a live chain type DebugEnabled = ConstBool; type GasScale = ConstU32<100_000>; + type OnBurn = (); +} + +impl pallet_assets_precompiles::ForeignAssetsConfig for Runtime { + // must match the AssetId type used by the `ForeignAssets` instance + type ForeignAssetId = >::AssetId; + #[cfg(feature = "runtime-benchmarks")] + type AssetsInstance = ForeignAssetsInstance; +} + +impl pallet_assets_precompiles::PermitConfig for Runtime { + type ChainId = ::ChainId; + type WeightInfo = pallet_assets_precompiles::weights::SubstrateWeight; } parameter_types! { @@ -1623,6 +1642,9 @@ construct_runtime!( Revive: pallet_revive = 60, + AssetsPrecompiles: pallet_assets_precompiles::pallet = 61, + AssetsPrecompilesPermit: pallet_assets_precompiles::permit::pallet = 62, + // State trie migration pallet, only temporary. StateTrieMigration: pallet_state_trie_migration = 70, @@ -1803,6 +1825,7 @@ mod benches { [pallet_assets, Local] [pallet_assets, Foreign] [pallet_assets, Pool] + [pallet_assets_precompiles, AssetsPrecompiles] [pallet_asset_conversion, AssetConversion] // TODO: Somehow, benchmarks for this pallet are not visible outside the pallet [pallet_asset_conversion_tx_payment, AssetTxPayment] @@ -1816,11 +1839,9 @@ mod benches { [pallet_parameters, Parameters] [pallet_preimage, Preimage] [pallet_proxy, Proxy] - [pallet_recovery, Revive] [pallet_remote_proxy, RemoteProxyRelayChain] [pallet_scheduler, Scheduler] - // TODO(#840): uncomment this so that pallet-revive is also benchmarked with this runtime - // [pallet_revive, Revive] + [pallet_revive, Revive] [pallet_session, SessionBench::] [pallet_uniques, Uniques] [pallet_utility, Utility] @@ -1866,7 +1887,7 @@ mod benches { use frame_benchmarking::BenchmarkError; use xcm::latest::prelude::{ AccountId32, Asset, Assets as XcmAssets, Fungible, Here, InteriorLocation, Junction, - Location, NetworkId, NonFungible, Parent, ParentThen, Response, XCM_VERSION, + Location, NetworkId, Parent, ParentThen, Response, XCM_VERSION, }; impl frame_system_benchmarking::Config for Runtime { @@ -1882,7 +1903,12 @@ mod benches { } } - impl cumulus_pallet_session_benchmarking::Config for Runtime {} + impl cumulus_pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } use pallet_xcm_benchmarks::asset_instance_from; use xcm_config::{KsmLocation, MaxAssetsIntoHolding}; @@ -1906,9 +1932,10 @@ mod benches { [AccountId32 { network: None, id: account.into() }].into() } - fn generate_session_keys_and_proof(_owner: Self::AccountId) -> (Vec, Vec) { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Vec, Vec) { use staking::RelayChainSessionKeys; - (RelayChainSessionKeys::generate(None), vec![]) + let keys = RelayChainSessionKeys::generate(&owner.encode(), None); + (keys.keys.encode(), keys.proof.encode()) } fn setup_validator() -> Self::AccountId { @@ -2074,32 +2101,40 @@ mod benches { fn valid_destination() -> Result { Ok(PeopleLocation::get()) } - fn worst_case_holding(depositable_count: u32) -> XcmAssets { + fn worst_case_holding(depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // A mix of fungible, non-fungible, and concrete assets. let holding_non_fungibles = MaxAssetsIntoHolding::get() / 2 - depositable_count; - let holding_fungibles = holding_non_fungibles.saturating_sub(2); // -2 for two `iter::once` bellow + let holding_fungibles = holding_non_fungibles - 2; // -2 for two `iter::once` below let fungibles_amount: u128 = 100; - (0..holding_fungibles) - .map(|i| { - Asset { - id: AssetId(GeneralIndex(i as u128).into()), - fun: Fungible(fungibles_amount * (i + 1) as u128), // non-zero amount - } - }) - .chain(core::iter::once(Asset { - id: AssetId(Here.into()), - fun: Fungible(u128::MAX), - })) - .chain(core::iter::once(Asset { - id: AssetId(KsmLocation::get()), - fun: Fungible(1_000_000 * UNITS), - })) - .chain((0..holding_non_fungibles).map(|i| Asset { - id: AssetId(GeneralIndex(i as u128).into()), - fun: NonFungible(asset_instance_from(i)), - })) - .collect::>() - .into() + + let mut holding = xcm_executor::AssetsInHolding::new(); + + // Add fungible assets with MockCredit + for i in 0..holding_fungibles { + holding.fungible.insert( + AssetId(GeneralIndex(i as u128).into()), + alloc::boxed::Box::new(MockCredit(fungibles_amount * (i + 1) as u128)), + ); + } + + // Add two more fungible assets + holding + .fungible + .insert(AssetId(Here.into()), alloc::boxed::Box::new(MockCredit(u128::MAX))); + holding.fungible.insert( + AssetId(KsmLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000 * UNITS)), + ); + + // Add non-fungible assets + for i in 0..holding_non_fungibles { + holding + .non_fungible + .insert((AssetId(GeneralIndex(i as u128).into()), asset_instance_from(i))); + } + + holding } } @@ -2425,8 +2460,8 @@ pallet_revive::impl_runtime_apis_plus_revive_traits!( } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/migrations.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/migrations.rs index e8cbcdc68b..161a7c1fac 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/migrations.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/migrations.rs @@ -16,7 +16,10 @@ //! The runtime migrations per release. /// Unreleased migrations. Add new ones here: -pub type Unreleased = (RemoveAhMigratorPallet,); +pub type Unreleased = ( + RemoveAhMigratorPallet, + cumulus_pallet_xcmp_queue::migration::v6::MigrateV5ToV6, +); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; @@ -52,12 +55,18 @@ mod multiblock_migrations { use xcm_builder::StartsWith; /// MBM migrations to apply on runtime upgrade. - pub type MbmMigrations = + pub type MbmMigrations = ( assets_common::migrations::foreign_assets_reserves::ForeignAssetsReservesMigration< Runtime, ForeignAssetsInstance, AssetHubKusamaForeignAssetsReservesProvider, - >; + >, + pallet_assets_precompiles::MigrateForeignAssetPrecompileMappings< + Runtime, + ForeignAssetsInstance, + pallet_assets_precompiles::weights::SubstrateWeight, + >, + ); /// This type provides reserves information for `asset_id`. Meant to be used in a migration /// running on the Asset Hub Kusama upgrade which changes the Foreign Assets reserve-transfers diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/staking/mod.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/staking/mod.rs index a6cea285a8..582645994d 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/staking/mod.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/staking/mod.rs @@ -179,6 +179,7 @@ impl multi_block::Config for Runtime { // Clean all data on round rotation. Later on, we can move to lazy deletion. type OnRoundRotation = multi_block::CleanRound; type WeightInfo = weights::pallet_election_provider_multi_block::WeightInfo; + type Signed = MultiBlockElectionSigned; } impl multi_block::verifier::Config for Runtime { @@ -186,8 +187,6 @@ impl multi_block::verifier::Config for Runtime { type MaxBackersPerWinner = MaxBackersPerWinner; type MaxBackersPerWinnerFinal = MaxBackersPerWinnerFinal; type SolutionDataProvider = MultiBlockElectionSigned; - // Deliberate choice: we want any solution, even an epsilon better, to be considered superior. - type SolutionImprovementThreshold = (); type WeightInfo = weights::pallet_election_provider_multi_block_verifier::WeightInfo; } @@ -407,8 +406,6 @@ impl pallet_staking_async::Config for Runtime { type HistoryDepth = frame_support::traits::ConstU32<84>; type MaxControllersInDeprecationBatch = MaxControllersInDeprecationBatch; type EventListeners = (NominationPools, DelegatedStaking); - // Note used; don't care. - type MaxInvulnerables = frame_support::traits::ConstU32<20>; // This will start election for the next era as soon as an era starts. type PlanningEraOffset = ConstU32<6>; type RcClientInterface = StakingRcClient; @@ -840,7 +837,7 @@ mod tests { use multi_block::WeightInfo; analyze_weight( "snapshot_msp", - ::WeightInfo::on_initialize_into_snapshot_msp(), + ::WeightInfo::per_block_snapshot_msp(), ::BlockWeights::get().max_block, Some(Percent::from_percent(75)), ); @@ -851,7 +848,7 @@ mod tests { use multi_block::WeightInfo; analyze_weight( "snapshot_rest", - ::WeightInfo::on_initialize_into_snapshot_rest(), + ::WeightInfo::per_block_snapshot_rest(), ::BlockWeights::get().max_block, Some(Percent::from_percent(75)), ); @@ -862,14 +859,15 @@ mod tests { use multi_block::verifier::WeightInfo; analyze_weight( "verifier valid terminal", - ::WeightInfo::on_initialize_valid_terminal(), + ::WeightInfo::verification_valid_terminal( + ), ::BlockWeights::get().max_block, Some(Percent::from_percent(75)), ); analyze_weight( "verifier invalid terminal", - ::WeightInfo::on_initialize_invalid_terminal(), + ::WeightInfo::verification_invalid_terminal(), ::BlockWeights::get().max_block, Some(Percent::from_percent(75)), ); diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/treasury.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/treasury.rs index f8355bac6d..ad44645c8c 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/treasury.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/treasury.rs @@ -23,6 +23,7 @@ use frame_support::traits::{ fungible::HoldConsideration, tokens::UnityOrOuterConversion, Currency, FromContains, Get, OnUnbalanced, }; +use pallet_bounties::TransferAllFungibles; use parachains_common::pay::{AccountIdToLocalLocation, LocalPay, VersionedLocatableAccount}; use polkadot_runtime_common::impls::{ContainsParts, VersionedLocatableAsset}; use scale_info::TypeInfo; @@ -121,8 +122,23 @@ impl pallet_treasury::Config for Runtime { } parameter_types! { - // where `176` is the size of the `Bounty` struct in bytes. - pub const BountyDepositBase: Balance = system_para_deposit(0, 176); + // Assets that legacy bounties can hold: native KSM, USDT (1984), RMRK (8). + pub BountyRelevantAssets: Vec = vec![ + xcm_config::KsmLocation::get(), // KSM + xcm::latest::Location::new( // USDT + 0, + [xcm::latest::Junction::PalletInstance( + xcm_config::TrustBackedAssetsPalletIndex::get(), + ), xcm::latest::Junction::GeneralIndex(1984)], + ), + xcm::latest::Location::new( // RMRK + 0, + [xcm::latest::Junction::PalletInstance( + xcm_config::TrustBackedAssetsPalletIndex::get(), + ), xcm::latest::Junction::GeneralIndex(8)], + ), + ]; + pub const BountyDepositBase: Balance = 10 * QUID; // per byte for the bounty description. pub const DataDepositPerByte: Balance = system_para_deposit(0, 1); pub const BountyDepositPayoutDelay: BlockNumber = 0; @@ -148,6 +164,7 @@ impl pallet_bounties::Config for Runtime { type DataDepositPerByte = DataDepositPerByte; type MaximumReasonLength = MaximumReasonLength; type OnSlash = Treasury; + type TransferAllAssets = TransferAllFungibles; type WeightInfo = weights::pallet_bounties::WeightInfo; } diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/cumulus_pallet_parachain_system.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/cumulus_pallet_parachain_system.rs index a281efd7cd..b3a31e83d7 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/cumulus_pallet_parachain_system.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/cumulus_pallet_parachain_system.rs @@ -48,30 +48,41 @@ use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_parachain_system::WeightInfo for WeightInfo { - /// Storage: `ParachainSystem::LastDmqMqcHead` (r:1 w:1) - /// Proof: `ParachainSystem::LastDmqMqcHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) - /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) - /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) - /// Storage: `ParachainSystem::LastProcessedDownwardMessage` (r:0 w:1) - /// Proof: `ParachainSystem::LastProcessedDownwardMessage` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::ProcessedDownwardMessages` (r:0 w:1) - /// Proof: `ParachainSystem::ProcessedDownwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `MessageQueue::Pages` (r:0 w:1000) - /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) + /// Storage: ParachainSystem LastDmqMqcHead (r:1 w:1) + /// Proof Skipped: ParachainSystem LastDmqMqcHead (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem ReservedDmpWeightOverride (r:1 w:0) + /// Proof Skipped: ParachainSystem ReservedDmpWeightOverride (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue ServiceHead (r:1 w:1) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Storage: ParachainSystem ProcessedDownwardMessages (r:0 w:1) + /// Proof Skipped: ParachainSystem ProcessedDownwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: MessageQueue Pages (r:0 w:16) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) /// The range of component `n` is `[0, 1000]`. fn enqueue_inbound_downward_messages(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `218` - // Estimated: `3517` - // Minimum execution time: 4_700_000 picoseconds. - Weight::from_parts(137_585_437, 0) - .saturating_add(Weight::from_parts(0, 3517)) - // Standard Error: 100_215 - .saturating_add(Weight::from_parts(134_922_157, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(5)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + // Measured: `12` + // Estimated: `8013` + // Minimum execution time: 1_625_000 picoseconds. + Weight::from_parts(1_735_000, 8013) + // Standard Error: 14_563 + .saturating_add(Weight::from_parts(25_300_108, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } + + fn block_weight_tx_extension_max_weight() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_stays_fraction_of_core() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_full_core() -> Weight { + Weight::zero() + } + // TODO @ggwpez rerun } diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_foreign.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_foreign.rs index e17b002377..256b876d5e 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_foreign.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_foreign.rs @@ -48,6 +48,9 @@ use core::marker::PhantomData; /// Weight functions for `pallet_assets`. pub struct WeightInfo(PhantomData); impl pallet_assets::WeightInfo for WeightInfo { + fn get_metadata() -> Weight { + Weight::from_parts(0, 10000) // TODO @ggwpez + } /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ForeignAssets::Asset` (r:1 w:1) diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_local.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_local.rs index a71e1dd497..128841d5ef 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_local.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_local.rs @@ -48,6 +48,9 @@ use core::marker::PhantomData; /// Weight functions for `pallet_assets`. pub struct WeightInfo(PhantomData); impl pallet_assets::WeightInfo for WeightInfo { + fn get_metadata() -> Weight { + Weight::from_parts(0, 10000) // TODO @ggwpez + } /// Storage: `Assets::Asset` (r:1 w:1) /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) /// Storage: `Assets::NextAssetId` (r:1 w:0) diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_pool.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_pool.rs index 641f68fcca..749abc1fc1 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_pool.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_assets_pool.rs @@ -48,6 +48,9 @@ use core::marker::PhantomData; /// Weight functions for `pallet_assets`. pub struct WeightInfo(PhantomData); impl pallet_assets::WeightInfo for WeightInfo { + fn get_metadata() -> Weight { + Weight::from_parts(0, 10000) // TODO @ggwpez + } /// Storage: `PoolAssets::Asset` (r:1 w:1) /// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) /// Storage: `PoolAssets::NextAssetId` (r:1 w:0) diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_election_provider_multi_block.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_election_provider_multi_block.rs index 426617a70c..e42d1b2e27 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_election_provider_multi_block.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_election_provider_multi_block.rs @@ -48,168 +48,6 @@ use core::marker::PhantomData; /// Weight functions for `pallet_election_provider_multi_block`. pub struct WeightInfo(PhantomData); impl pallet_election_provider_multi_block::WeightInfo for WeightInfo { - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:1 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `Measured`) - fn on_initialize_nothing() -> Weight { - // Proof Size summary in bytes: - // Measured: `121` - // Estimated: `3586` - // Minimum execution time: 10_580_000 picoseconds. - Weight::from_parts(11_150_000, 0) - .saturating_add(Weight::from_parts(0, 3586)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Staking::ValidatorCount` (r:1 w:0) - /// Proof: `Staking::ValidatorCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:2 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `Measured`) - /// Storage: `Staking::CounterForValidators` (r:1 w:0) - /// Proof: `Staking::CounterForValidators` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `Staking::Validators` (r:2501 w:0) - /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElection::DesiredTargets` (r:0 w:1) - /// Proof: `MultiBlockElection::DesiredTargets` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshotHash` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedTargetSnapshotHash` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshot` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedTargetSnapshot` (`max_values`: None, `max_size`: Some(80026), added: 82501, mode: `Measured`) - fn on_initialize_into_snapshot_msp() -> Weight { - // Proof Size summary in bytes: - // Measured: `119010` - // Estimated: `6309975` - // Minimum execution time: 15_443_176_000 picoseconds. - Weight::from_parts(16_517_621_000, 0) - .saturating_add(Weight::from_parts(0, 6309975)) - .saturating_add(T::DbWeight::get().reads(2508)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:2 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `Measured`) - /// Storage: `Staking::VoterSnapshotStatus` (r:1 w:1) - /// Proof: `Staking::VoterSnapshotStatus` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `Measured`) - /// Storage: `VoterList::CounterForListNodes` (r:1 w:0) - /// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `VoterList::ListBags` (r:1 w:0) - /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `Measured`) - /// Storage: `VoterList::ListNodes` (r:784 w:0) - /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `Measured`) - /// Storage: `Staking::Bonded` (r:782 w:0) - /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Staking::Ledger` (r:782 w:0) - /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(753), added: 3228, mode: `Measured`) - /// Storage: `Staking::Nominators` (r:782 w:0) - /// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(814), added: 3289, mode: `Measured`) - /// Storage: `Staking::Validators` (r:490 w:0) - /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Staking::MinimumActiveStake` (r:0 w:1) - /// Proof: `Staking::MinimumActiveStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `Measured`) - /// Storage: `VoterList::Lock` (r:0 w:1) - /// Proof: `VoterList::Lock` (`max_values`: Some(1), `max_size`: Some(0), added: 495, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(632664), added: 635139, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshotHash` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedVoterSnapshotHash` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `Measured`) - fn on_initialize_into_snapshot_rest() -> Weight { - // Proof Size summary in bytes: - // Measured: `1398366` - // Estimated: `3339756` - // Minimum execution time: 31_841_379_000 picoseconds. - Weight::from_parts(33_834_880_000, 0) - .saturating_add(Weight::from_parts(0, 3339756)) - .saturating_add(T::DbWeight::get().reads(3628)) - .saturating_add(T::DbWeight::get().writes(6)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `Measured`) - /// Storage: `Staking::VoterSnapshotStatus` (r:1 w:1) - /// Proof: `Staking::VoterSnapshotStatus` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `Measured`) - /// Storage: `VoterList::CounterForListNodes` (r:1 w:0) - /// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `VoterList::ListNodes` (r:784 w:0) - /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `Measured`) - /// Storage: `Staking::Bonded` (r:782 w:0) - /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Staking::Ledger` (r:782 w:0) - /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(753), added: 3228, mode: `Measured`) - /// Storage: `Staking::Nominators` (r:782 w:0) - /// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(814), added: 3289, mode: `Measured`) - /// Storage: `VoterList::ListBags` (r:1 w:0) - /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `Measured`) - /// Storage: `Staking::Validators` (r:196 w:0) - /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Staking::MinimumActiveStake` (r:0 w:1) - /// Proof: `Staking::MinimumActiveStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `Measured`) - /// Storage: `VoterList::Lock` (r:0 w:1) - /// Proof: `VoterList::Lock` (`max_values`: Some(1), `max_size`: Some(0), added: 495, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(632664), added: 635139, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshotHash` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedVoterSnapshotHash` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `Measured`) - fn on_initialize_into_signed() -> Weight { - // Proof Size summary in bytes: - // Measured: `1602332` - // Estimated: `3543722` - // Minimum execution time: 31_863_189_000 picoseconds. - Weight::from_parts(33_057_403_000, 0) - .saturating_add(Weight::from_parts(0, 3543722)) - .saturating_add(T::DbWeight::get().reads(3335)) - .saturating_add(T::DbWeight::get().writes(6)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:1 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - fn on_initialize_into_signed_validation() -> Weight { - // Proof Size summary in bytes: - // Measured: `315` - // Estimated: `3780` - // Minimum execution time: 42_859_000 picoseconds. - Weight::from_parts(48_090_000, 0) - .saturating_add(Weight::from_parts(0, 3780)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:2 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `Measured`) - fn on_initialize_into_unsigned() -> Weight { - // Proof Size summary in bytes: - // Measured: `315` - // Estimated: `6255` - // Minimum execution time: 42_020_000 picoseconds. - Weight::from_parts(47_009_000, 0) - .saturating_add(Weight::from_parts(0, 6255)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(1)) - } /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) /// Storage: `MultiBlockElection::Round` (r:1 w:0) @@ -342,4 +180,16 @@ impl pallet_election_provider_multi_block::WeightInfo f .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } + fn per_block_nothing() -> Weight { + Weight::zero() + } + fn per_block_snapshot_msp() -> Weight { + Weight::zero() + } + fn per_block_snapshot_rest() -> Weight { + Weight::zero() + } + fn per_block_start_signed_validation() -> Weight { + Weight::zero() + } // TODO @ggwpez rerun } diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_election_provider_multi_block_verifier.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_election_provider_multi_block_verifier.rs index c6ceb4151e..2c16c79482 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_election_provider_multi_block_verifier.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_election_provider_multi_block_verifier.rs @@ -48,164 +48,16 @@ use core::marker::PhantomData; /// Weight functions for `pallet_election_provider_multi_block::verifier`. pub struct WeightInfo(PhantomData); impl pallet_election_provider_multi_block::verifier::WeightInfo for WeightInfo { - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SortedScores` (r:1 w:0) - /// Proof: `MultiBlockElectionSigned::SortedScores` (`max_values`: None, `max_size`: Some(1293), added: 3768, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionSigned::SubmissionStorage` (`max_values`: None, `max_size`: Some(76724), added: 79199, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedTargetSnapshot` (`max_values`: None, `max_size`: Some(80026), added: 82501, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(632664), added: 635139, mode: `Measured`) - /// Storage: `MultiBlockElection::DesiredTargets` (r:1 w:0) - /// Proof: `MultiBlockElection::DesiredTargets` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedValidVariant` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::QueuedValidVariant` (`max_values`: None, `max_size`: Some(13), added: 2488, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionX` (r:0 w:1) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionX` (`max_values`: None, `max_size`: Some(37586026), added: 37588501, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionBackings` (r:0 w:1) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionBackings` (`max_values`: None, `max_size`: Some(52026), added: 54501, mode: `Measured`) - fn on_initialize_valid_non_terminal() -> Weight { - // Proof Size summary in bytes: - // Measured: `361292` - // Estimated: `369707` - // Minimum execution time: 5_409_953_000 picoseconds. - Weight::from_parts(5_563_103_000, 0) - .saturating_add(Weight::from_parts(0, 369707)) - .saturating_add(T::DbWeight::get().reads(12)) - .saturating_add(T::DbWeight::get().writes(4)) + fn verification_valid_non_terminal() -> Weight { + Weight::zero() } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SortedScores` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SortedScores` (`max_values`: None, `max_size`: Some(1293), added: 3768, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionStorage` (r:16 w:16) - /// Proof: `MultiBlockElectionSigned::SubmissionStorage` (`max_values`: None, `max_size`: Some(76724), added: 79199, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedTargetSnapshot` (`max_values`: None, `max_size`: Some(80026), added: 82501, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(632664), added: 635139, mode: `Measured`) - /// Storage: `MultiBlockElection::DesiredTargets` (r:1 w:0) - /// Proof: `MultiBlockElection::DesiredTargets` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedValidVariant` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::QueuedValidVariant` (`max_values`: None, `max_size`: Some(13), added: 2488, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionBackings` (r:17 w:16) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionBackings` (`max_values`: None, `max_size`: Some(52026), added: 54501, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionScore` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionScore` (`max_values`: None, `max_size`: Some(60), added: 2535, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionMetadataStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SubmissionMetadataStorage` (`max_values`: None, `max_size`: Some(165), added: 2640, mode: `Measured`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionX` (r:0 w:1) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionX` (`max_values`: None, `max_size`: Some(37586026), added: 37588501, mode: `Measured`) - fn on_initialize_valid_terminal() -> Weight { - // Proof Size summary in bytes: - // Measured: `1339791` - // Estimated: `1382856` - // Minimum execution time: 37_677_500_000 picoseconds. - Weight::from_parts(38_742_165_000, 0) - .saturating_add(Weight::from_parts(0, 1382856)) - .saturating_add(T::DbWeight::get().reads(47)) - .saturating_add(T::DbWeight::get().writes(40)) + fn verification_valid_terminal() -> Weight { + Weight::zero() } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SortedScores` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SortedScores` (`max_values`: None, `max_size`: Some(1293), added: 3768, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionStorage` (r:16 w:16) - /// Proof: `MultiBlockElectionSigned::SubmissionStorage` (`max_values`: None, `max_size`: Some(76724), added: 79199, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedTargetSnapshot` (`max_values`: None, `max_size`: Some(80026), added: 82501, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(632664), added: 635139, mode: `Measured`) - /// Storage: `MultiBlockElection::DesiredTargets` (r:1 w:0) - /// Proof: `MultiBlockElection::DesiredTargets` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedValidVariant` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::QueuedValidVariant` (`max_values`: None, `max_size`: Some(13), added: 2488, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionBackings` (r:17 w:16) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionBackings` (`max_values`: None, `max_size`: Some(52026), added: 54501, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionMetadataStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SubmissionMetadataStorage` (`max_values`: None, `max_size`: Some(165), added: 2640, mode: `Measured`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::Invulnerables` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::Invulnerables` (`max_values`: Some(1), `max_size`: Some(513), added: 1008, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionX` (r:15 w:16) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionX` (`max_values`: None, `max_size`: Some(37586026), added: 37588501, mode: `Measured`) - fn on_initialize_invalid_terminal() -> Weight { - // Proof Size summary in bytes: - // Measured: `1340140` - // Estimated: `1383205` - // Minimum execution time: 37_567_920_000 picoseconds. - Weight::from_parts(39_159_242_000, 0) - .saturating_add(Weight::from_parts(0, 1383205)) - .saturating_add(T::DbWeight::get().reads(62)) - .saturating_add(T::DbWeight::get().writes(54)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SortedScores` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SortedScores` (`max_values`: None, `max_size`: Some(1293), added: 3768, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionStorage` (r:16 w:16) - /// Proof: `MultiBlockElectionSigned::SubmissionStorage` (`max_values`: None, `max_size`: Some(76724), added: 79199, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedTargetSnapshot` (`max_values`: None, `max_size`: Some(80026), added: 82501, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(632664), added: 635139, mode: `Measured`) - /// Storage: `MultiBlockElection::DesiredTargets` (r:1 w:0) - /// Proof: `MultiBlockElection::DesiredTargets` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedValidVariant` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::QueuedValidVariant` (`max_values`: None, `max_size`: Some(13), added: 2488, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionX` (r:15 w:15) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionX` (`max_values`: None, `max_size`: Some(37586026), added: 37588501, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionBackings` (r:15 w:15) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionBackings` (`max_values`: None, `max_size`: Some(52026), added: 54501, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionMetadataStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SubmissionMetadataStorage` (`max_values`: None, `max_size`: Some(165), added: 2640, mode: `Measured`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::Invulnerables` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::Invulnerables` (`max_values`: Some(1), `max_size`: Some(513), added: 1008, mode: `Measured`) - /// The range of component `v` is `[0, 15]`. - fn on_initialize_invalid_non_terminal(v: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `626674 + v * (176 ±0)` - // Estimated: `637934 + v * (6537 ±1_334)` - // Minimum execution time: 868_196_000 picoseconds. - Weight::from_parts(1_108_962_338, 0) - .saturating_add(Weight::from_parts(0, 637934)) - // Standard Error: 787_105 - .saturating_add(Weight::from_parts(6_350_283, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().reads(30)) - .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(v.into()))) - .saturating_add(T::DbWeight::get().writes(22)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(v.into()))) - .saturating_add(Weight::from_parts(0, 6537).saturating_mul(v.into())) + fn verification_invalid_terminal() -> Weight { + Weight::zero() } + fn verification_invalid_non_terminal(_: u32, ) -> Weight { + Weight::zero() + } // TODO @ggwpez rerun } diff --git a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_staking_async.rs b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_staking_async.rs index c756f5296a..557393137a 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_staking_async.rs +++ b/system-parachains/asset-hubs/asset-hub-kusama/src/weights/pallet_staking_async.rs @@ -425,20 +425,6 @@ impl pallet_staking_async::WeightInfo for WeightInfo .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Staking::Invulnerables` (r:0 w:1) - /// Proof: `Staking::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `v` is `[0, 20]`. - fn set_invulnerables(v: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_160_000 picoseconds. - Weight::from_parts(4_279_403, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_092 - .saturating_add(Weight::from_parts(1_408, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().writes(1)) - } /// Storage: `Staking::Ledger` (r:1024 w:1024) /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(753), added: 3228, mode: `MaxEncodedLen`) /// Storage: `Staking::Bonded` (r:512 w:512) 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 a189940e80..9491e4fe4c 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 @@ -88,6 +88,7 @@ parameter_types! { PalletInstance(::index() as u8).into(); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); pub RelayTreasuryLocation: Location = (Parent, PalletInstance(kusama_runtime_constants::TREASURY_PALLET_ID)).into(); + // TODO: replace this with DAP account (for collecting fees) #1137 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,6 +103,7 @@ parameter_types! { pub SelfParaId: ParaId = ParachainInfo::parachain_id(); } +// TODO: replace this with DAP account (for collecting fees) #1137 /// Treasury account that changes once migration ends. pub type TreasuryAccount = PostMigrationTreasuryAccount; @@ -401,7 +403,6 @@ impl xcm_executor::Config for XcmConfig { ); type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; 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 548905f927..680a5b6bfe 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 @@ -73,12 +73,15 @@ fn test_buy_and_refund_weight_with_native() { // init trader and buy weight. let mut trader = ::Trader::new(); - let unused_asset = - trader.buy_weight(weight, payment.into(), &ctx).expect("Expected Ok"); + let unused_asset = trader + .buy_weight(weight, asset_to_holding_withdraw(payment, &bob), &ctx) + .expect("Expected Ok"); // assert. - let unused_amount = - unused_asset.fungible.get(&native_location.clone().into()).map_or(0, |a| *a); + let unused_amount = unused_asset + .fungible + .get(&native_location.clone().into()) + .map_or(0, |a| a.amount()); assert_eq!(unused_amount, extra_amount); assert_eq!(Balances::total_issuance(), total_issuance); @@ -88,7 +91,8 @@ fn test_buy_and_refund_weight_with_native() { // refund. let actual_refund = trader.refund_weight(refund_weight, &ctx).unwrap(); - assert_eq!(actual_refund, (native_location, refund).into()); + let expected_refund = asset_to_holding((native_location, refund).into()); + assert_eq!(actual_refund, expected_refund); // assert. assert_eq!(Balances::balance(&staking_pot), initial_balance); @@ -96,7 +100,9 @@ fn test_buy_and_refund_weight_with_native() { // account. drop(trader); assert_eq!(Balances::balance(&staking_pot), initial_balance + fee - refund); - assert_eq!(Balances::total_issuance(), total_issuance + fee - refund); + // Balanced operations: fee is transferred, not minted, so total issuance + // stays the same. + assert_eq!(Balances::total_issuance(), total_issuance); }) } @@ -148,7 +154,7 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { pool_liquidity, 1, 1, - bob, + bob.clone(), )); // keep initial total issuance to assert later. @@ -167,28 +173,31 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { // init trader and buy weight. let mut trader = ::Trader::new(); - let unused_asset = - trader.buy_weight(weight, payment.into(), &ctx).expect("Expected Ok"); + let unused_asset = trader + .buy_weight(weight, asset_to_holding_withdraw(payment, &bob), &ctx) + .expect("Expected Ok"); // assert. let unused_amount = unused_asset .fungible - .get(&asset_1_location_latest.clone().into()) - .map_or(0, |a| *a); + .get(&asset_1_location.clone().into()) + .map_or(0, |a| a.amount()); assert_eq!(unused_amount, extra_amount); - assert_eq!(Assets::total_issuance(asset_1), asset_total_issuance + asset_fee); + assert_eq!(Assets::total_issuance(asset_1), asset_total_issuance); // prepare input to refund weight. let refund_weight = Weight::from_parts(1_000_000_000, 0); let refund = WeightToFee::weight_to_fee(&refund_weight); let (reserve1, reserve2) = - AssetConversion::get_reserves(native_location, asset_1_location.clone()).unwrap(); + AssetConversion::get_reserves(native_location.clone(), asset_1_location.clone()) + .unwrap(); let asset_refund = AssetConversion::get_amount_out(&refund, &reserve1, &reserve2).unwrap(); // refund. let actual_refund = trader.refund_weight(refund_weight, &ctx).unwrap(); - assert_eq!(actual_refund, (asset_1_location_latest, asset_refund).into()); + let expected_refund = asset_to_holding((asset_1_location, asset_refund).into()); + assert_eq!(actual_refund, expected_refund); // assert. assert_eq!(Balances::balance(&staking_pot), initial_balance); @@ -196,10 +205,8 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { // account. drop(trader); assert_eq!(Balances::balance(&staking_pot), initial_balance + fee - refund); - assert_eq!( - Assets::total_issuance(asset_1), - asset_total_issuance + asset_fee - asset_refund - ); + // Balanced operations: swap doesn't change total issuance. + assert_eq!(Assets::total_issuance(asset_1), asset_total_issuance); assert_eq!(Balances::total_issuance(), native_total_issuance); }) } @@ -250,7 +257,7 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { pool_liquidity, 1, 1, - bob, + bob.clone(), )); // keep initial total issuance to assert later. @@ -268,30 +275,34 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { // init trader and buy weight. let mut trader = ::Trader::new(); - let unused_asset = - trader.buy_weight(weight, payment.into(), &ctx).expect("Expected Ok"); + let unused_asset = trader + .buy_weight(weight, asset_to_holding_withdraw(payment, &bob), &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(&foreign_location.clone().into()) + .map_or(0, |a| a.amount()); assert_eq!(unused_amount, extra_amount); assert_eq!( ForeignAssets::total_issuance(foreign_location.clone()), - asset_total_issuance + asset_fee + asset_total_issuance ); // prepare input to refund weight. let refund_weight = Weight::from_parts(1_000_000_000, 0); let refund = WeightToFee::weight_to_fee(&refund_weight); let (reserve1, reserve2) = - AssetConversion::get_reserves(native_location, foreign_location.clone()).unwrap(); + AssetConversion::get_reserves(native_location.clone(), foreign_location.clone()) + .unwrap(); let asset_refund = AssetConversion::get_amount_out(&refund, &reserve1, &reserve2).unwrap(); // refund. let actual_refund = trader.refund_weight(refund_weight, &ctx).unwrap(); - let asset: Asset = (foreign_location.clone(), asset_refund).into(); - assert_eq!(actual_refund, asset); + let expected_refund = asset_to_holding((foreign_location.clone(), asset_refund).into()); + assert_eq!(actual_refund, expected_refund); // assert. assert_eq!(Balances::balance(&staking_pot), initial_balance); @@ -299,10 +310,27 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { // account. drop(trader); assert_eq!(Balances::balance(&staking_pot), initial_balance + fee - refund); - assert_eq!( - ForeignAssets::total_issuance(foreign_location), - asset_total_issuance + asset_fee - asset_refund - ); + // Balanced operations: swap doesn't change total issuance. + assert_eq!(ForeignAssets::total_issuance(foreign_location), asset_total_issuance); assert_eq!(Balances::total_issuance(), native_total_issuance); }) } + +/// Helper to convert a single Asset into AssetsInHolding for tests +/// This creates a proper AssetsInHolding by withdrawing from an account +fn asset_to_holding_withdraw(asset: Asset, who: &AccountId) -> xcm_executor::AssetsInHolding { + use xcm_executor::traits::TransactAsset; + let who_location: Location = + Junction::AccountId32 { network: None, id: who.clone().into() }.into(); + ::AssetTransactor::withdraw_asset( + &asset, + &who_location, + None, + ) + .expect("failed to withdraw asset") +} + +/// Helper to convert a single Asset into AssetsInHolding for tests (mock version for error tests) +fn asset_to_holding(asset: Asset) -> xcm_executor::AssetsInHolding { + xcm_executor::test_helpers::mock_asset_to_holding(asset) +} diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/governance/origins.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/governance/origins.rs index 0a16ef7444..bdac236b4b 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/governance/origins.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/governance/origins.rs @@ -31,15 +31,7 @@ pub mod pallet_custom_origins { pub struct Pallet(_); #[derive( - PartialEq, - Eq, - Clone, - MaxEncodedLen, - Encode, - Decode, - DecodeWithMemTracking, - TypeInfo, - RuntimeDebug, + PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, DecodeWithMemTracking, TypeInfo, Debug, )] #[pallet::origin] pub enum Origin { 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 d9e3a1571d..592451ec29 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/lib.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/lib.rs @@ -135,7 +135,7 @@ use frame_system::{ pallet_prelude::BlockNumberFor, EnsureRoot, EnsureSigned, EnsureSignedBy, }; -use pallet_assets_precompiles::{InlineIdConfig, ERC20}; +use pallet_assets_precompiles::{ForeignAssetId, ForeignIdConfig, InlineIdConfig, ERC20}; use pallet_nfts::PalletFeatures; use pallet_nomination_pools::PoolId; use pallet_xcm_precompiles::XcmPrecompile; @@ -143,7 +143,7 @@ use parachains_common::{ message_queue::*, AccountId, AssetHubPolkadotAuraId as AuraId, AssetIdForTrustBackedAssets, Balance, BlockNumber, Hash, Header, Nonce, Signature, }; -use sp_runtime::RuntimeDebug; +use sp_runtime::Debug; use system_parachains_common::ForceUnstuckOnFailedMigration; pub use system_parachains_constants::async_backing::SLOT_DURATION; use system_parachains_constants::{ @@ -215,7 +215,12 @@ pub fn native_version() -> NativeVersion { parameter_types! { pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + BlockLength::builder() + .max_length(5 * 1024 * 1024) + .modify_max_length_for_class(DispatchClass::Normal, |m| { + *m = NORMAL_DISPATCH_RATIO * *m + }) + .build(); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() .base_block(BlockExecutionWeight::get()) .for_class(DispatchClass::all(), |weights| { @@ -364,6 +369,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + parameter_types! { pub const AssetDeposit: Balance = system_para_deposit(1, 190); pub const AssetAccountDeposit: Balance = system_para_deposit(1, 16); @@ -453,7 +461,7 @@ impl pallet_assets::Config for Runtime { type Holder = (); type Extra = (); type WeightInfo = weights::pallet_assets_foreign::WeightInfo; - type CallbackHandle = (); + type CallbackHandle = (ForeignAssetId,); type AssetAccountDeposit = ForeignAssetsAssetAccountDeposit; type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; type ReserveData = ForeignAssetReserveData; @@ -527,7 +535,7 @@ parameter_types! { Encode, Decode, DecodeWithMemTracking, - RuntimeDebug, + Debug, MaxEncodedLen, scale_info::TypeInfo, )] @@ -1431,15 +1439,13 @@ impl pallet_revive::Config for Runtime { type WeightInfo = pallet_revive::weights::SubstrateWeight; type Precompiles = ( ERC20, TrustBackedAssetsInstance>, - // We will add ForeignAssetsInstance at <0x220> once we have Location to Id mapping - // ERC20, ForeignAssetsInstance>, ERC20, PoolAssetsInstance>, + ERC20, ForeignAssetsInstance>, XcmPrecompile, ); type AddressMapper = pallet_revive::AccountId32Mapper; type RuntimeMemory = ConstU32<{ 128 * 1024 * 1024 }>; type PVFMemory = ConstU32<{ 512 * 1024 * 1024 }>; - type UnsafeUnstableInterface = ConstBool; type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; type RuntimeHoldReason = RuntimeHoldReason; @@ -1453,6 +1459,19 @@ impl pallet_revive::Config for Runtime { // Must be set to `false` in a live chain type DebugEnabled = ConstBool; type GasScale = ConstU32<80_000>; + type OnBurn = Dap; +} + +impl pallet_assets_precompiles::ForeignAssetsConfig for Runtime { + // must match the AssetId type used by the `ForeignAssets` instance + type ForeignAssetId = >::AssetId; + #[cfg(feature = "runtime-benchmarks")] + type AssetsInstance = ForeignAssetsInstance; +} + +impl pallet_assets_precompiles::PermitConfig for Runtime { + type ChainId = ::ChainId; + type WeightInfo = pallet_assets_precompiles::weights::SubstrateWeight; } impl cumulus_pallet_weight_reclaim::Config for Runtime { @@ -1537,9 +1556,12 @@ construct_runtime!( MultiBlockElectionSigned: pallet_election_provider_multi_block::signed = 88, Staking: pallet_staking_async = 89, - // Contracts + // Contracts in the 90s Revive: pallet_revive = 90, + AssetsPrecompiles: pallet_assets_precompiles::pallet = 91, + AssetsPrecompilesPermit: pallet_assets_precompiles::permit::pallet = 92, + // Asset Hub Migration in the 250s AhOps: pallet_ah_ops = 254, } @@ -1695,6 +1717,7 @@ mod benches { [pallet_assets, Local] [pallet_assets, Foreign] [pallet_assets, Pool] + [pallet_assets_precompiles, AssetsPrecompiles] [pallet_asset_conversion, AssetConversion] [pallet_asset_conversion_tx_payment, AssetTxPayment] [pallet_balances, Balances] @@ -1755,7 +1778,7 @@ mod benches { use xcm::latest::prelude::{ AccountId32, Asset, Assets as XcmAssets, Fungible, Here, InteriorLocation, Junction, - Location, NetworkId, NonFungible, Parent, ParentThen, Response, XCM_VERSION, + Location, NetworkId, Parent, ParentThen, Response, XCM_VERSION, }; impl frame_system_benchmarking::Config for Runtime { @@ -1771,7 +1794,12 @@ mod benches { } } - impl cumulus_pallet_session_benchmarking::Config for Runtime {} + impl cumulus_pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } use pallet_xcm_benchmarks::asset_instance_from; use xcm_config::{DotLocation, MaxAssetsIntoHolding}; @@ -1795,9 +1823,10 @@ mod benches { [AccountId32 { network: None, id: account.into() }].into() } - fn generate_session_keys_and_proof(_owner: Self::AccountId) -> (Vec, Vec) { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Vec, Vec) { use staking::RelayChainSessionKeys; - (RelayChainSessionKeys::generate(None), vec![]) + let keys = RelayChainSessionKeys::generate(&owner.encode(), None); + (keys.keys.encode(), keys.proof.encode()) } fn setup_validator() -> Self::AccountId { @@ -1963,32 +1992,40 @@ mod benches { fn valid_destination() -> Result { Ok(PeopleLocation::get()) } - fn worst_case_holding(depositable_count: u32) -> XcmAssets { + fn worst_case_holding(depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // A mix of fungible, non-fungible, and concrete assets. let holding_non_fungibles = MaxAssetsIntoHolding::get() / 2 - depositable_count; - let holding_fungibles = holding_non_fungibles.saturating_sub(2); // -2 for two `iter::once` bellow + let holding_fungibles = holding_non_fungibles - 2; // -2 for two `iter::once` below let fungibles_amount: u128 = 100; - (0..holding_fungibles) - .map(|i| { - Asset { - id: AssetId(GeneralIndex(i as u128).into()), - fun: Fungible(fungibles_amount * (i + 1) as u128), // non-zero amount - } - }) - .chain(core::iter::once(Asset { - id: AssetId(Here.into()), - fun: Fungible(u128::MAX), - })) - .chain(core::iter::once(Asset { - id: AssetId(DotLocation::get()), - fun: Fungible(1_000_000 * UNITS), - })) - .chain((0..holding_non_fungibles).map(|i| Asset { - id: AssetId(GeneralIndex(i as u128).into()), - fun: NonFungible(asset_instance_from(i)), - })) - .collect::>() - .into() + + let mut holding = xcm_executor::AssetsInHolding::new(); + + // Add fungible assets with MockCredit + for i in 0..holding_fungibles { + holding.fungible.insert( + AssetId(GeneralIndex(i as u128).into()), + alloc::boxed::Box::new(MockCredit(fungibles_amount * (i + 1) as u128)), + ); + } + + // Add two more fungible assets + holding + .fungible + .insert(AssetId(Here.into()), alloc::boxed::Box::new(MockCredit(u128::MAX))); + holding.fungible.insert( + AssetId(DotLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000 * UNITS)), + ); + + // Add non-fungible assets + for i in 0..holding_non_fungibles { + holding + .non_fungible + .insert((AssetId(GeneralIndex(i as u128).into()), asset_instance_from(i))); + } + + holding } } @@ -2317,8 +2354,8 @@ pallet_revive::impl_runtime_apis_plus_revive_traits!( } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/migrations.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/migrations.rs index c817ed1082..bd22640c40 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/migrations.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/migrations.rs @@ -44,6 +44,7 @@ pub type Unreleased = ( RemoveAhMigratorPallet, // Remove an old staking value. crate::staking::RemoveMarchTIValue, + cumulus_pallet_xcmp_queue::migration::v6::MigrateV5ToV6, ); /// Migrations/checks that do not need to be versioned and can run on every update. @@ -74,12 +75,18 @@ mod multiblock_migrations { use xcm_builder::StartsWith; /// MBM migrations to apply on runtime upgrade. - pub type MbmMigrations = + pub type MbmMigrations = ( assets_common::migrations::foreign_assets_reserves::ForeignAssetsReservesMigration< Runtime, ForeignAssetsInstance, AssetHubPolkadotForeignAssetsReservesProvider, - >; + >, + pallet_assets_precompiles::MigrateForeignAssetPrecompileMappings< + Runtime, + ForeignAssetsInstance, + pallet_assets_precompiles::weights::SubstrateWeight, + >, + ); /// This type provides reserves information for `asset_id`. Meant to be used in a migration /// running on the Asset Hub Polkadot upgrade which changes the Foreign Assets diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/staking/mod.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/staking/mod.rs index d7172c9905..e2082a2512 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/staking/mod.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/staking/mod.rs @@ -178,6 +178,7 @@ impl multi_block::Config for Runtime { type AreWeDone = multi_block::RevertToSignedIfNotQueuedOf; type OnRoundRotation = multi_block::CleanRound; type WeightInfo = weights::pallet_election_provider_multi_block::WeightInfo; + type Signed = MultiBlockElectionSigned; } impl multi_block::verifier::Config for Runtime { @@ -185,7 +186,6 @@ impl multi_block::verifier::Config for Runtime { type MaxBackersPerWinner = MaxBackersPerWinner; type MaxBackersPerWinnerFinal = MaxBackersPerWinnerFinal; type SolutionDataProvider = MultiBlockElectionSigned; - type SolutionImprovementThreshold = (); type WeightInfo = weights::pallet_election_provider_multi_block_verifier::WeightInfo; } @@ -440,7 +440,6 @@ impl pallet_staking_async::Config for Runtime { type HistoryDepth = frame_support::traits::ConstU32<84>; type MaxControllersInDeprecationBatch = MaxControllersInDeprecationBatch; type EventListeners = (NominationPools, DelegatedStaking); - type MaxInvulnerables = frame_support::traits::ConstU32<20>; // This will start election for the next era as soon as an era starts. type PlanningEraOffset = ConstU32<6>; type RcClientInterface = StakingRcClient; @@ -705,7 +704,9 @@ pub struct RemoveMarchTIValue; impl frame_support::traits::OnRuntimeUpgrade for RemoveMarchTIValue { #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { - frame_support::ensure!(March2026TI::exists(), "March2026TI value should exist"); + if !March2026TI::exists() { + return Ok(Vec::new()); // Migration already ran + } frame_support::ensure!( March2026TI::get().unwrap() == EraPayout::MARCH_2026_TI, "New value should match the old." @@ -1071,7 +1072,7 @@ mod tests { use multi_block::WeightInfo; analyze_weight( "snapshot_msp", - ::WeightInfo::on_initialize_into_snapshot_msp(), + ::WeightInfo::per_block_snapshot_msp(), ::BlockWeights::get().max_block, Some(Percent::from_percent(75)), ); @@ -1082,7 +1083,7 @@ mod tests { use multi_block::WeightInfo; analyze_weight( "snapshot_rest", - ::WeightInfo::on_initialize_into_snapshot_rest(), + ::WeightInfo::per_block_snapshot_rest(), ::BlockWeights::get().max_block, Some(Percent::from_percent(75)), ); @@ -1093,14 +1094,15 @@ mod tests { use multi_block::verifier::WeightInfo; analyze_weight( "verifier valid terminal", - ::WeightInfo::on_initialize_valid_terminal(), + ::WeightInfo::verification_valid_terminal( + ), ::BlockWeights::get().max_block, Some(Percent::from_percent(75)), ); analyze_weight( "verifier invalid terminal", - ::WeightInfo::on_initialize_invalid_terminal(), + ::WeightInfo::verification_invalid_terminal(), ::BlockWeights::get().max_block, Some(Percent::from_percent(75)), ); diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/staking/stepped_curve.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/staking/stepped_curve.rs index 507a7be538..d43df76818 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/staking/stepped_curve.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/staking/stepped_curve.rs @@ -45,7 +45,7 @@ use sp_runtime::{ /// Move towards a desired value by a percentage of the remaining difference at each step. /// /// Step size will be (target_total - current_value) * pct. -#[derive(PartialEq, Eq, sp_core::RuntimeDebug, TypeInfo, Clone, Default)] +#[derive(PartialEq, Eq, Debug, TypeInfo, Clone, Default)] pub struct RemainingPct { /// The asymptote the curve will move towards. pub target: FixedU128, @@ -57,7 +57,7 @@ pub struct RemainingPct { /// /// Steps every `period` from the `initial_value` as defined by `step`. /// First step from `initial_value` takes place at `start` + `period`. -#[derive(PartialEq, Eq, sp_core::RuntimeDebug, TypeInfo, Clone, Default)] +#[derive(PartialEq, Eq, Debug, TypeInfo, Clone, Default)] pub struct SteppedCurve { /// The starting point for the curve. pub start: FixedU128, diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/treasury.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/treasury.rs index c39bcdd20d..1a6a3bec3b 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/treasury.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/treasury.rs @@ -17,6 +17,7 @@ use crate::{governance::Treasurer, *}; use frame_support::traits::{ fungible::HoldConsideration, tokens::UnityOrOuterConversion, FromContains, }; +use pallet_bounties::TransferAllFungibles; use parachains_common::pay::{AccountIdToLocalLocation, LocalPay, VersionedLocatableAccount}; use polkadot_runtime_common::impls::{ContainsParts, VersionedLocatableAsset}; @@ -62,8 +63,35 @@ impl pallet_treasury::Config for Runtime { } parameter_types! { - // where `176` is the size of the `Bounty` struct in bytes. - pub const BountyDepositBase: Balance = system_para_deposit(0, 176); + // Assets that legacy bounties can hold. + pub BountyRelevantAssets: Vec = vec![ + xcm_config::DotLocation::get(), // DOT + xcm::latest::Location::new( // USDT + 0, + [xcm::latest::Junction::PalletInstance( + xcm_config::TrustBackedAssetsPalletIndex::get(), + ), xcm::latest::Junction::GeneralIndex(1984)], + ), + xcm::latest::Location::new( // USDC + 0, + [xcm::latest::Junction::PalletInstance( + xcm_config::TrustBackedAssetsPalletIndex::get(), + ), xcm::latest::Junction::GeneralIndex(1337)], + ), + xcm::latest::Location::new( // DED + 0, + [xcm::latest::Junction::PalletInstance( + xcm_config::TrustBackedAssetsPalletIndex::get(), + ), xcm::latest::Junction::GeneralIndex(30)], + ), + xcm::latest::Location::new( // MYTH + 1, + xcm::latest::Junctions::X1( + [xcm::latest::Junction::Parachain(3369)].into() + ), + ), + ]; + pub const BountyDepositBase: Balance = 10 * DOLLARS; // per byte for the bounty description. pub const DataDepositPerByte: Balance = system_para_deposit(0, 1); pub const BountyDepositPayoutDelay: BlockNumber = 0; @@ -90,6 +118,7 @@ impl pallet_bounties::Config for Runtime { type MaximumReasonLength = MaximumReasonLength; type OnSlash = Treasury; type WeightInfo = weights::pallet_bounties::WeightInfo; + type TransferAllAssets = TransferAllFungibles; } parameter_types! { diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/cumulus_pallet_parachain_system.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/cumulus_pallet_parachain_system.rs index f7d0cf5b75..39700acacb 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/cumulus_pallet_parachain_system.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/cumulus_pallet_parachain_system.rs @@ -74,4 +74,14 @@ impl cumulus_pallet_parachain_system::WeightInfo for We .saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) } + + fn block_weight_tx_extension_max_weight() -> Weight { + Weight::zero() + } + fn block_weight_tx_extension_stays_fraction_of_core() -> Weight { + Weight::zero() + } + fn block_weight_tx_extension_full_core() -> Weight { + Weight::zero() + } // TODO @ggwpez rerun } diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs index d12e5e4da3..a8da754bb9 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_foreign.rs @@ -48,6 +48,9 @@ use core::marker::PhantomData; /// Weight functions for `pallet_assets`. pub struct WeightInfo(PhantomData); impl pallet_assets::WeightInfo for WeightInfo { + fn get_metadata() -> Weight { + Weight::from_parts(0, 10000) // TODO @ggwpez + } /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ForeignAssets::Asset` (r:1 w:1) diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_local.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_local.rs index 4a039a28ba..8e96fa34b7 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_local.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_local.rs @@ -48,6 +48,9 @@ use core::marker::PhantomData; /// Weight functions for `pallet_assets`. pub struct WeightInfo(PhantomData); impl pallet_assets::WeightInfo for WeightInfo { + fn get_metadata() -> Weight { + Weight::from_parts(0, 10000) // TODO @ggwpez + } /// Storage: `Assets::Asset` (r:1 w:1) /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) /// Storage: `Assets::NextAssetId` (r:1 w:0) diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_pool.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_pool.rs index d2f49a9676..845327f66b 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_pool.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_assets_pool.rs @@ -48,6 +48,9 @@ use core::marker::PhantomData; /// Weight functions for `pallet_assets`. pub struct WeightInfo(PhantomData); impl pallet_assets::WeightInfo for WeightInfo { + fn get_metadata() -> Weight { + Weight::from_parts(0, 10000) // TODO @ggwpez + } fn create() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_election_provider_multi_block.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_election_provider_multi_block.rs index f7ad6cecec..54ec4cadbb 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_election_provider_multi_block.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_election_provider_multi_block.rs @@ -48,168 +48,6 @@ use core::marker::PhantomData; /// Weight functions for `pallet_election_provider_multi_block`. pub struct WeightInfo(PhantomData); impl pallet_election_provider_multi_block::WeightInfo for WeightInfo { - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:1 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `Measured`) - fn on_initialize_nothing() -> Weight { - // Proof Size summary in bytes: - // Measured: `122` - // Estimated: `3587` - // Minimum execution time: 9_605_000 picoseconds. - Weight::from_parts(9_824_000, 0) - .saturating_add(Weight::from_parts(0, 3587)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Staking::ValidatorCount` (r:1 w:0) - /// Proof: `Staking::ValidatorCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:2 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `Measured`) - /// Storage: `Staking::CounterForValidators` (r:1 w:0) - /// Proof: `Staking::CounterForValidators` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `Staking::Validators` (r:2001 w:0) - /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElection::DesiredTargets` (r:0 w:1) - /// Proof: `MultiBlockElection::DesiredTargets` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshotHash` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedTargetSnapshotHash` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshot` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedTargetSnapshot` (`max_values`: None, `max_size`: Some(64026), added: 66501, mode: `Measured`) - fn on_initialize_into_snapshot_msp() -> Weight { - // Proof Size summary in bytes: - // Measured: `95120` - // Estimated: `5048585` - // Minimum execution time: 9_281_438_000 picoseconds. - Weight::from_parts(9_367_813_000, 0) - .saturating_add(Weight::from_parts(0, 5048585)) - .saturating_add(T::DbWeight::get().reads(2008)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:2 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `Measured`) - /// Storage: `Staking::VoterSnapshotStatus` (r:1 w:1) - /// Proof: `Staking::VoterSnapshotStatus` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `Measured`) - /// Storage: `VoterList::CounterForListNodes` (r:1 w:0) - /// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `VoterList::ListBags` (r:1 w:0) - /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `Measured`) - /// Storage: `VoterList::ListNodes` (r:706 w:0) - /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `Measured`) - /// Storage: `Staking::Bonded` (r:704 w:0) - /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Staking::Ledger` (r:704 w:0) - /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(753), added: 3228, mode: `Measured`) - /// Storage: `Staking::Nominators` (r:704 w:0) - /// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `Measured`) - /// Storage: `Staking::Validators` (r:216 w:0) - /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Staking::MinimumActiveStake` (r:0 w:1) - /// Proof: `Staking::MinimumActiveStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `Measured`) - /// Storage: `VoterList::Lock` (r:0 w:1) - /// Proof: `VoterList::Lock` (`max_values`: Some(1), `max_size`: Some(0), added: 495, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(389338), added: 391813, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshotHash` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedVoterSnapshotHash` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `Measured`) - fn on_initialize_into_snapshot_rest() -> Weight { - // Proof Size summary in bytes: - // Measured: `1466776` - // Estimated: `3215116` - // Minimum execution time: 21_815_844_000 picoseconds. - Weight::from_parts(22_020_670_000, 0) - .saturating_add(Weight::from_parts(0, 3215116)) - .saturating_add(T::DbWeight::get().reads(3042)) - .saturating_add(T::DbWeight::get().writes(6)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `Measured`) - /// Storage: `Staking::VoterSnapshotStatus` (r:1 w:1) - /// Proof: `Staking::VoterSnapshotStatus` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `Measured`) - /// Storage: `VoterList::CounterForListNodes` (r:1 w:0) - /// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `VoterList::ListNodes` (r:706 w:0) - /// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `Measured`) - /// Storage: `Staking::Bonded` (r:704 w:0) - /// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Staking::Ledger` (r:704 w:0) - /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(753), added: 3228, mode: `Measured`) - /// Storage: `Staking::Nominators` (r:704 w:0) - /// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `Measured`) - /// Storage: `VoterList::ListBags` (r:1 w:0) - /// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `Measured`) - /// Storage: `Staking::Validators` (r:38 w:0) - /// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Staking::MinimumActiveStake` (r:0 w:1) - /// Proof: `Staking::MinimumActiveStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `Measured`) - /// Storage: `VoterList::Lock` (r:0 w:1) - /// Proof: `VoterList::Lock` (`max_values`: Some(1), `max_size`: Some(0), added: 495, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(389338), added: 391813, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshotHash` (r:0 w:1) - /// Proof: `MultiBlockElection::PagedVoterSnapshotHash` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `Measured`) - fn on_initialize_into_signed() -> Weight { - // Proof Size summary in bytes: - // Measured: `1536721` - // Estimated: `3285061` - // Minimum execution time: 21_815_198_000 picoseconds. - Weight::from_parts(21_971_865_000, 0) - .saturating_add(Weight::from_parts(0, 3285061)) - .saturating_add(T::DbWeight::get().reads(2865)) - .saturating_add(T::DbWeight::get().writes(6)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:1 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - fn on_initialize_into_signed_validation() -> Weight { - // Proof Size summary in bytes: - // Measured: `316` - // Estimated: `3781` - // Minimum execution time: 34_338_000 picoseconds. - Weight::from_parts(36_110_000, 0) - .saturating_add(Weight::from_parts(0, 3781)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:2 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `Measured`) - fn on_initialize_into_unsigned() -> Weight { - // Proof Size summary in bytes: - // Measured: `316` - // Estimated: `6256` - // Minimum execution time: 35_724_000 picoseconds. - Weight::from_parts(36_925_000, 0) - .saturating_add(Weight::from_parts(0, 6256)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(1)) - } /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) /// Storage: `MultiBlockElection::Round` (r:1 w:0) @@ -342,4 +180,17 @@ impl pallet_election_provider_multi_block::WeightInfo f .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) } + // missing `per_block_nothing`, `per_block_snapshot_msp`, `per_block_snapshot_rest`, `per_block_start_signed_validation` in implementation + fn per_block_nothing() -> Weight { + Weight::zero() + } + fn per_block_snapshot_msp() -> Weight { + Weight::zero() + } + fn per_block_snapshot_rest() -> Weight { + Weight::zero() + } + fn per_block_start_signed_validation() -> Weight { + Weight::zero() + } // TODO @ggwpez rerun } diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_election_provider_multi_block_verifier.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_election_provider_multi_block_verifier.rs index 8033d589f3..e41d0bc27d 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_election_provider_multi_block_verifier.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_election_provider_multi_block_verifier.rs @@ -48,164 +48,16 @@ use core::marker::PhantomData; /// Weight functions for `pallet_election_provider_multi_block::verifier`. pub struct WeightInfo(PhantomData); impl pallet_election_provider_multi_block::verifier::WeightInfo for WeightInfo { - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SortedScores` (r:1 w:0) - /// Proof: `MultiBlockElectionSigned::SortedScores` (`max_values`: None, `max_size`: Some(1293), added: 3768, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionStorage` (r:1 w:0) - /// Proof: `MultiBlockElectionSigned::SubmissionStorage` (`max_values`: None, `max_size`: Some(46544), added: 49019, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedTargetSnapshot` (`max_values`: None, `max_size`: Some(64026), added: 66501, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(389338), added: 391813, mode: `Measured`) - /// Storage: `MultiBlockElection::DesiredTargets` (r:1 w:0) - /// Proof: `MultiBlockElection::DesiredTargets` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedValidVariant` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::QueuedValidVariant` (`max_values`: None, `max_size`: Some(13), added: 2488, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionX` (r:0 w:1) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionX` (`max_values`: None, `max_size`: Some(33842026), added: 33844501, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionBackings` (r:0 w:1) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionBackings` (`max_values`: None, `max_size`: Some(52026), added: 54501, mode: `Measured`) - fn on_initialize_valid_non_terminal() -> Weight { - // Proof Size summary in bytes: - // Measured: `361947` - // Estimated: `370362` - // Minimum execution time: 3_273_420_000 picoseconds. - Weight::from_parts(3_336_039_000, 0) - .saturating_add(Weight::from_parts(0, 370362)) - .saturating_add(T::DbWeight::get().reads(12)) - .saturating_add(T::DbWeight::get().writes(4)) + fn verification_valid_non_terminal() -> Weight { + Weight::zero() } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SortedScores` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SortedScores` (`max_values`: None, `max_size`: Some(1293), added: 3768, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionStorage` (r:32 w:32) - /// Proof: `MultiBlockElectionSigned::SubmissionStorage` (`max_values`: None, `max_size`: Some(46544), added: 49019, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedTargetSnapshot` (`max_values`: None, `max_size`: Some(64026), added: 66501, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(389338), added: 391813, mode: `Measured`) - /// Storage: `MultiBlockElection::DesiredTargets` (r:1 w:0) - /// Proof: `MultiBlockElection::DesiredTargets` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedValidVariant` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::QueuedValidVariant` (`max_values`: None, `max_size`: Some(13), added: 2488, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionBackings` (r:33 w:32) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionBackings` (`max_values`: None, `max_size`: Some(52026), added: 54501, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionScore` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionScore` (`max_values`: None, `max_size`: Some(60), added: 2535, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionMetadataStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SubmissionMetadataStorage` (`max_values`: None, `max_size`: Some(181), added: 2656, mode: `Measured`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(229), added: 2704, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionX` (r:0 w:1) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionX` (`max_values`: None, `max_size`: Some(33842026), added: 33844501, mode: `Measured`) - fn on_initialize_valid_terminal() -> Weight { - // Proof Size summary in bytes: - // Measured: `1416316` - // Estimated: `1498981` - // Minimum execution time: 30_703_219_000 picoseconds. - Weight::from_parts(30_979_636_000, 0) - .saturating_add(Weight::from_parts(0, 1498981)) - .saturating_add(T::DbWeight::get().reads(79)) - .saturating_add(T::DbWeight::get().writes(72)) + fn verification_valid_terminal() -> Weight { + Weight::zero() } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SortedScores` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SortedScores` (`max_values`: None, `max_size`: Some(1293), added: 3768, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionStorage` (r:32 w:32) - /// Proof: `MultiBlockElectionSigned::SubmissionStorage` (`max_values`: None, `max_size`: Some(46544), added: 49019, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedTargetSnapshot` (`max_values`: None, `max_size`: Some(64026), added: 66501, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(389338), added: 391813, mode: `Measured`) - /// Storage: `MultiBlockElection::DesiredTargets` (r:1 w:0) - /// Proof: `MultiBlockElection::DesiredTargets` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedValidVariant` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::QueuedValidVariant` (`max_values`: None, `max_size`: Some(13), added: 2488, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionBackings` (r:33 w:32) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionBackings` (`max_values`: None, `max_size`: Some(52026), added: 54501, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionMetadataStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SubmissionMetadataStorage` (`max_values`: None, `max_size`: Some(181), added: 2656, mode: `Measured`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(229), added: 2704, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::Invulnerables` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::Invulnerables` (`max_values`: Some(1), `max_size`: Some(513), added: 1008, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionX` (r:31 w:32) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionX` (`max_values`: None, `max_size`: Some(33842026), added: 33844501, mode: `Measured`) - fn on_initialize_invalid_terminal() -> Weight { - // Proof Size summary in bytes: - // Measured: `1417337` - // Estimated: `1500002` - // Minimum execution time: 30_441_825_000 picoseconds. - Weight::from_parts(30_746_293_000, 0) - .saturating_add(Weight::from_parts(0, 1500002)) - .saturating_add(T::DbWeight::get().reads(110)) - .saturating_add(T::DbWeight::get().writes(102)) - } - /// Storage: `MultiBlockElection::CurrentPhase` (r:1 w:1) - /// Proof: `MultiBlockElection::CurrentPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::StatusStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionVerifier::StatusStorage` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `Measured`) - /// Storage: `MultiBlockElection::Round` (r:1 w:0) - /// Proof: `MultiBlockElection::Round` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SortedScores` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SortedScores` (`max_values`: None, `max_size`: Some(1293), added: 3768, mode: `Measured`) - /// Storage: `Parameters::Parameters` (r:3 w:0) - /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionStorage` (r:32 w:32) - /// Proof: `MultiBlockElectionSigned::SubmissionStorage` (`max_values`: None, `max_size`: Some(46544), added: 49019, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedTargetSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedTargetSnapshot` (`max_values`: None, `max_size`: Some(64026), added: 66501, mode: `Measured`) - /// Storage: `MultiBlockElection::PagedVoterSnapshot` (r:1 w:0) - /// Proof: `MultiBlockElection::PagedVoterSnapshot` (`max_values`: None, `max_size`: Some(389338), added: 391813, mode: `Measured`) - /// Storage: `MultiBlockElection::DesiredTargets` (r:1 w:0) - /// Proof: `MultiBlockElection::DesiredTargets` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedValidVariant` (r:1 w:0) - /// Proof: `MultiBlockElectionVerifier::QueuedValidVariant` (`max_values`: None, `max_size`: Some(13), added: 2488, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionX` (r:31 w:31) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionX` (`max_values`: None, `max_size`: Some(33842026), added: 33844501, mode: `Measured`) - /// Storage: `MultiBlockElectionVerifier::QueuedSolutionBackings` (r:31 w:31) - /// Proof: `MultiBlockElectionVerifier::QueuedSolutionBackings` (`max_values`: None, `max_size`: Some(52026), added: 54501, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::SubmissionMetadataStorage` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::SubmissionMetadataStorage` (`max_values`: None, `max_size`: Some(181), added: 2656, mode: `Measured`) - /// Storage: `Balances::Holds` (r:1 w:1) - /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(229), added: 2704, mode: `Measured`) - /// Storage: `MultiBlockElectionSigned::Invulnerables` (r:1 w:1) - /// Proof: `MultiBlockElectionSigned::Invulnerables` (`max_values`: Some(1), `max_size`: Some(513), added: 1008, mode: `Measured`) - /// The range of component `v` is `[0, 31]`. - fn on_initialize_invalid_non_terminal(v: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `451404 + v * (102 ±0)` - // Estimated: `521180 + v * (2230 ±149)` - // Minimum execution time: 661_861_000 picoseconds. - Weight::from_parts(743_022_755, 0) - .saturating_add(Weight::from_parts(0, 521180)) - // Standard Error: 88_611 - .saturating_add(Weight::from_parts(3_331_508, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().reads(46)) - .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(v.into()))) - .saturating_add(T::DbWeight::get().writes(38)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(v.into()))) - .saturating_add(Weight::from_parts(0, 2230).saturating_mul(v.into())) + fn verification_invalid_terminal() -> Weight { + Weight::zero() } + fn verification_invalid_non_terminal(_: u32, ) -> Weight { + Weight::zero() + } // TODO @ggwpez rerun } diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_staking_async.rs b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_staking_async.rs index a29ceda6eb..651601358e 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_staking_async.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/src/weights/pallet_staking_async.rs @@ -425,20 +425,6 @@ impl pallet_staking_async::WeightInfo for WeightInfo .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Staking::Invulnerables` (r:0 w:1) - /// Proof: `Staking::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `v` is `[0, 20]`. - fn set_invulnerables(v: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 3_542_000 picoseconds. - Weight::from_parts(3_942_856, 0) - .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 474 - .saturating_add(Weight::from_parts(9_306, 0).saturating_mul(v.into())) - .saturating_add(T::DbWeight::get().writes(1)) - } /// Storage: `Staking::Ledger` (r:1024 w:1024) /// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(753), added: 3228, mode: `MaxEncodedLen`) /// Storage: `Staking::Bonded` (r:512 w:512) 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 e426e88dd5..64c405f606 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 @@ -90,6 +90,7 @@ parameter_types! { pub RelayTreasuryLocation: Location = (Parent, PalletInstance(polkadot_runtime_constants::TREASURY_PALLET_ID)).into(); pub PoolAssetsPalletLocation: Location = PalletInstance(::index() as u8).into(); + // TODO: replace this with DAP account (for collecting fees) #1137 pub StakingPot: AccountId = CollatorSelection::account_id(); pub PostMigrationTreasuryAccount: AccountId = treasury::TreasuryAccount::get(); /// The Checking Account along with the indication that the local chain is able to mint tokens. @@ -105,6 +106,7 @@ parameter_types! { .unwrap_or(treasury::TreasuryAccount::get()); } +// TODO: replace this with DAP account (for collecting fees) #1137 /// Treasury account that changes once migration ends. pub type TreasuryAccount = PostMigrationTreasuryAccount; @@ -501,7 +503,6 @@ impl xcm_executor::Config for XcmConfig { ); type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; 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 4091a5443a..405c6c4e80 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/tests/tests.rs +++ b/system-parachains/asset-hubs/asset-hub-polkadot/tests/tests.rs @@ -19,8 +19,9 @@ use asset_hub_polkadot_runtime::{ xcm_config::{ - bridging, CheckingAccount, DotLocation, LocationToAccountId, RelayChainLocation, - StakingPot, TrustBackedAssetsPalletLocation, XcmConfig, + bridging, bridging::XcmBridgeHubRouterFeeAssetId, CheckingAccount, DotLocation, + LocationToAccountId, RelayChainLocation, RelayTreasuryPalletAccount, StakingPot, + TrustBackedAssetsPalletLocation, XcmConfig, }, AllPalletsWithoutSystem, AssetDeposit, Assets, Balances, Block, Dap, ExistentialDeposit, ForeignAssets, ForeignAssetsInstance, MetadataDepositBase, MetadataDepositPerByte, @@ -361,11 +362,8 @@ fn bridging_to_asset_hub_kusama() -> TestBridgingConfig { } } -/* // FIXME @karol FAIL-CI #[test] fn limited_reserve_transfer_assets_for_native_asset_to_asset_hub_kusama_works() { - use sp_runtime::traits::Get; - asset_test_utils::test_cases_over_bridge::limited_reserve_transfer_assets_for_native_asset_works::< Runtime, AllPalletsWithoutSystem, @@ -393,9 +391,9 @@ fn limited_reserve_transfer_assets_for_native_asset_to_asset_hub_kusama_works() bridging_to_asset_hub_kusama, WeightLimit::Unlimited, Some(XcmBridgeHubRouterFeeAssetId::get()), - Some(TreasuryAccount::get()), + Some(RelayTreasuryPalletAccount::get()), ) -} */ +} #[test] fn receive_reserve_asset_deposited_ksm_from_asset_hub_kusama_fees_paid_by_pool_swap_works() { 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 ef626bdc59..aab0f71991 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 @@ -73,12 +73,15 @@ fn test_buy_and_refund_weight_with_native() { // init trader and buy weight. let mut trader = ::Trader::new(); - let unused_asset = - trader.buy_weight(weight, payment.into(), &ctx).expect("Expected Ok"); + let unused_asset = trader + .buy_weight(weight, asset_to_holding_withdraw(payment, &bob), &ctx) + .expect("Expected Ok"); // assert. - let unused_amount = - unused_asset.fungible.get(&native_location.clone().into()).map_or(0, |a| *a); + let unused_amount = unused_asset + .fungible + .get(&native_location.clone().into()) + .map_or(0, |a| a.amount()); assert_eq!(unused_amount, extra_amount); assert_eq!(Balances::total_issuance(), total_issuance); @@ -88,7 +91,8 @@ fn test_buy_and_refund_weight_with_native() { // refund. let actual_refund = trader.refund_weight(refund_weight, &ctx).unwrap(); - assert_eq!(actual_refund, (native_location, refund).into()); + let expected_refund = asset_to_holding((native_location, refund).into()); + assert_eq!(actual_refund, expected_refund); // assert. assert_eq!(Balances::balance(&staking_pot), initial_balance); @@ -96,7 +100,9 @@ fn test_buy_and_refund_weight_with_native() { // account. drop(trader); assert_eq!(Balances::balance(&staking_pot), initial_balance + fee - refund); - assert_eq!(Balances::total_issuance(), total_issuance + fee - refund); + // Balanced operations: fee is transferred, not minted, so total issuance + // stays the same. + assert_eq!(Balances::total_issuance(), total_issuance); }) } @@ -146,7 +152,7 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { pool_liquidity, 1, 1, - bob, + bob.clone(), )); // keep initial total issuance to assert later. @@ -165,16 +171,17 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { // init trader and buy weight. let mut trader = ::Trader::new(); - let unused_asset = - trader.buy_weight(weight, payment.into(), &ctx).expect("Expected Ok"); + let unused_asset = trader + .buy_weight(weight, asset_to_holding_withdraw(payment, &bob), &ctx) + .expect("Expected Ok"); // assert. let unused_amount = unused_asset .fungible - .get(&asset_1_location_latest.clone().into()) - .map_or(0, |a| *a); + .get(&asset_1_location.clone().into()) + .map_or(0, |a| a.amount()); assert_eq!(unused_amount, extra_amount); - assert_eq!(Assets::total_issuance(asset_1), asset_total_issuance + asset_fee); + assert_eq!(Assets::total_issuance(asset_1), asset_total_issuance); // prepare input to refund weight. let refund_weight = Weight::from_parts(1_000_000_000, 0); @@ -186,7 +193,8 @@ 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_latest, asset_refund).into()); + let expected_refund = asset_to_holding((asset_1_location, asset_refund).into()); + assert_eq!(actual_refund, expected_refund); // assert. assert_eq!(Balances::balance(&staking_pot), initial_balance); @@ -194,10 +202,8 @@ fn test_buy_and_refund_weight_with_swap_local_asset_xcm_trader() { // account. drop(trader); assert_eq!(Balances::balance(&staking_pot), initial_balance + fee - refund); - assert_eq!( - Assets::total_issuance(asset_1), - asset_total_issuance + asset_fee - asset_refund - ); + // Balanced operations: swap doesn't change total issuance. + assert_eq!(Assets::total_issuance(asset_1), asset_total_issuance); assert_eq!(Balances::total_issuance(), native_total_issuance); }) } @@ -249,7 +255,7 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { pool_liquidity, 1, 1, - bob, + bob.clone(), )); // keep initial total issuance to assert later. @@ -267,16 +273,19 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { // init trader and buy weight. let mut trader = ::Trader::new(); - let unused_asset = - trader.buy_weight(weight, payment.into(), &ctx).expect("Expected Ok"); + let unused_asset = trader + .buy_weight(weight, asset_to_holding_withdraw(payment, &bob), &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(&foreign_location.clone().into()) + .map_or(0, |a| a.amount()); assert_eq!(unused_amount, extra_amount); assert_eq!( ForeignAssets::total_issuance(foreign_location.clone()), - asset_total_issuance + asset_fee + asset_total_issuance ); // prepare input to refund weight. @@ -289,8 +298,8 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { // refund. let actual_refund = trader.refund_weight(refund_weight, &ctx).unwrap(); - let asset: Asset = (foreign_location.clone(), asset_refund).into(); - assert_eq!(actual_refund, asset); + let expected_refund = asset_to_holding((foreign_location.clone(), asset_refund).into()); + assert_eq!(actual_refund, expected_refund); // assert. assert_eq!(Balances::balance(&staking_pot), initial_balance); @@ -298,10 +307,27 @@ fn test_buy_and_refund_weight_with_swap_foreign_asset_xcm_trader() { // account. drop(trader); assert_eq!(Balances::balance(&staking_pot), initial_balance + fee - refund); - assert_eq!( - ForeignAssets::total_issuance(foreign_location), - asset_total_issuance + asset_fee - asset_refund - ); + // Balanced operations: swap doesn't change total issuance. + assert_eq!(ForeignAssets::total_issuance(foreign_location), asset_total_issuance); assert_eq!(Balances::total_issuance(), native_total_issuance); }) } + +/// Helper to convert a single Asset into AssetsInHolding for tests +/// This creates a proper AssetsInHolding by withdrawing from an account +fn asset_to_holding_withdraw(asset: Asset, who: &AccountId) -> xcm_executor::AssetsInHolding { + use xcm_executor::traits::TransactAsset; + let who_location: Location = + Junction::AccountId32 { network: None, id: who.clone().into() }.into(); + ::AssetTransactor::withdraw_asset( + &asset, + &who_location, + None, + ) + .expect("failed to withdraw asset") +} + +/// Helper to convert a single Asset into AssetsInHolding for tests (mock version for error tests) +fn asset_to_holding(asset: Asset) -> xcm_executor::AssetsInHolding { + xcm_executor::test_helpers::mock_asset_to_holding(asset) +} 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 c95b4bc251..85530f1432 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 @@ -30,10 +30,10 @@ use frame_support::{ dispatch::DispatchClass, sp_runtime::{MultiAddress, MultiSigner}, }; -use sp_runtime::{FixedPointNumber, FixedU128, RuntimeDebug, Saturating, StateVersion}; +use sp_runtime::{Debug, FixedPointNumber, FixedU128, Saturating, StateVersion}; /// BridgeHubKusama parachain. -#[derive(RuntimeDebug)] +#[derive(Debug)] pub struct BridgeHubKusama; impl Chain for BridgeHubKusama { 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 85a9a792e4..3ec4e2288c 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/src/lib.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/lib.rs @@ -147,7 +147,7 @@ pub mod migrations { use super::*; /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = (cumulus_pallet_xcmp_queue::migration::v6::MigrateV5ToV6,); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; @@ -195,7 +195,12 @@ pub fn native_version() -> NativeVersion { parameter_types! { pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + BlockLength::builder() + .max_length(5 * 1024 * 1024) + .modify_max_length_for_class(DispatchClass::Normal, |m| { + *m = NORMAL_DISPATCH_RATIO * *m + }) + .build(); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() .base_block(BlockExecutionWeight::get()) .for_class(DispatchClass::all(), |weights| { @@ -326,6 +331,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + parameter_types! { pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); @@ -730,7 +738,12 @@ mod benches { } } - impl cumulus_pallet_session_benchmarking::Config for Runtime {} + impl cumulus_pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } parameter_types! { pub ExistentialDepositAsset: Option = Some(( @@ -793,13 +806,15 @@ mod benches { fn valid_destination() -> Result { Ok(AssetHubLocation::get()) } - fn worst_case_holding(_depositable_count: u32) -> Assets { + fn worst_case_holding(_depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // just concrete assets according to relay chain. - let assets: Vec = vec![Asset { - id: AssetId(RelayChainLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }]; - assets.into() + let mut holding = xcm_executor::AssetsInHolding::new(); + holding.fungible.insert( + AssetId(RelayChainLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000 * UNITS)), + ); + holding } } @@ -1201,8 +1216,8 @@ impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_parachain_system.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_parachain_system.rs index b72d7503c2..914a7b66d1 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_parachain_system.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_parachain_system.rs @@ -74,4 +74,16 @@ impl cumulus_pallet_parachain_system::WeightInfo for We .saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) } + fn block_weight_tx_extension_max_weight() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_stays_fraction_of_core() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_full_core() -> Weight { + Weight::zero() + } + // TODO @ggwpez rerun } diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs b/system-parachains/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs index 318075f3bc..cc2468873e 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs @@ -62,13 +62,16 @@ parameter_types! { [GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())].into(); pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; + // TODO: replace this with DAP account (for collecting fees) #1137 pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); pub RelayTreasuryLocation: Location = (Parent, PalletInstance(kusama_runtime_constants::TREASURY_PALLET_ID)).into(); + // TODO: replace this with DAP account (for collecting fees) #1137 // Test [`crate::tests::treasury_pallet_account_not_none`] ensures that the result of location // conversion is not `None`. pub RelayTreasuryPalletAccount: AccountId = LocationToAccountId::convert_location(&RelayTreasuryLocation::get()) .unwrap_or(TreasuryAccount::get()); + // TODO: replace this with DAP account (for collecting fees) #1137 pub StakingPot: AccountId = CollatorSelection::account_id(); } @@ -216,7 +219,6 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetLocker = (); type AssetExchanger = (); - type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; 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 eed0e784ce..e1e94c9f13 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/tests/tests.rs +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/tests/tests.rs @@ -261,6 +261,7 @@ fn handle_export_message_from_system_parachain_add_to_outbound_queue_works() { Runtime, XcmConfig, WithBridgeHubPolkadotMessagesInstance, + LocationToAccountId, >( collator_session_keys(), bp_bridge_hub_kusama::BRIDGE_HUB_KUSAMA_PARACHAIN_ID, 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 381aee44f6..0376248c87 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 @@ -27,10 +27,10 @@ use bp_runtime::{ decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis, Chain, ChainId, Parachain, }; use frame_support::dispatch::DispatchClass; -use sp_runtime::{FixedPointNumber, FixedU128, RuntimeDebug, Saturating, StateVersion}; +use sp_runtime::{Debug, FixedPointNumber, FixedU128, Saturating, StateVersion}; /// BridgeHubPolkadot parachain. -#[derive(RuntimeDebug)] +#[derive(Debug)] pub struct BridgeHubPolkadot; impl Chain for BridgeHubPolkadot { diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/bridge_to_ethereum_config.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/bridge_to_ethereum_config.rs index fedd39af79..32b315a87d 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/bridge_to_ethereum_config.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/bridge_to_ethereum_config.rs @@ -35,7 +35,13 @@ use parachains_common::{AccountId, Balance}; use polkadot_runtime_constants::system_parachain::AssetHubParaId; use snowbridge_beacon_primitives::{Fork, ForkVersions}; use snowbridge_core::AllowSiblingsOnly; -use snowbridge_inbound_queue_primitives::{v1::MessageToXcm, v2::CreateAssetCallInfo}; +use snowbridge_inbound_queue_primitives::{ + v1::MessageToXcm, + v2::{ + CreateAssetCallInfo, MessageToXcm as MessageV2ToXcm, + XcmMessageProcessor as InboundXcmMessageProcessor, + }, +}; use snowbridge_outbound_queue_primitives::{ v1::{ConstantGasMeter, EthereumBlobExporter}, v2::{ConstantGasMeter as ConstantGasMeterV2, EthereumBlobExporter as EthereumBlobExporterV2}, @@ -74,6 +80,7 @@ parameter_types! { pub InboundQueueV2Location: InteriorLocation = [PalletInstance(InboundQueueV2PalletInstance::get())].into(); pub const SnowbridgeReward: BridgeReward = BridgeReward::Snowbridge; pub SnowbridgeFrontendLocation: Location = Location::new(1, [Parachain(polkadot_runtime_constants::system_parachain::ASSET_HUB_ID), PalletInstance(SystemFrontendPalletInstance::get())]); + pub TargetLocation: Location = Location::new(1, [Parachain(AssetHubParaId::get().into())]); pub CreateAssetCall: CreateAssetCallInfo = CreateAssetCallInfo { create_call: CreateAssetCallIndex::get(), deposit: bp_asset_hub_polkadot::CreateForeignAssetDeposit::get(), @@ -112,20 +119,13 @@ impl snowbridge_pallet_inbound_queue::Config for Runtime { type AssetTransactor = ::AssetTransactor; } -impl snowbridge_pallet_inbound_queue_v2::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Verifier = EthereumBeaconClient; - #[cfg(not(feature = "runtime-benchmarks"))] - type XcmSender = xcm_config::XcmRouter; - #[cfg(feature = "runtime-benchmarks")] - type XcmSender = benchmark_helpers::DoNothingRouter; - type GatewayAddress = EthereumGatewayAddress; - #[cfg(feature = "runtime-benchmarks")] - type Helper = Runtime; - type WeightInfo = crate::weights::snowbridge_pallet_inbound_queue_v2::WeightInfo; - type AssetHubParaId = AssetHubParaId; - type XcmExecutor = XcmExecutor; - type MessageConverter = snowbridge_inbound_queue_primitives::v2::MessageToXcm< +/// Processes inbound XCM messages from Ethereum, converting them via [`MessageV2ToXcm`] and +/// routing them to their destination through the XCM router. +pub type XcmMessageProcessor = InboundXcmMessageProcessor< + Runtime, + xcm_config::XcmRouter, + XcmExecutor, + MessageV2ToXcm< CreateAssetCall, EthereumNetwork, RelayNetwork, @@ -134,14 +134,25 @@ impl snowbridge_pallet_inbound_queue_v2::Config for Runtime { AssetHubParaId, EthereumSystem, AccountId, - >; - type AccountToLocation = xcm_builder::AliasesIntoAccountId32< - xcm_config::RelayNetwork, - ::AccountId, - >; + >, + xcm_builder::AliasesIntoAccountId32::AccountId>, + TargetLocation, +>; + +impl snowbridge_pallet_inbound_queue_v2::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Verifier = EthereumBeaconClient; + type GatewayAddress = EthereumGatewayAddress; + #[cfg(feature = "runtime-benchmarks")] + type Helper = Runtime; + type WeightInfo = crate::weights::snowbridge_pallet_inbound_queue_v2::WeightInfo; type RewardKind = BridgeReward; type DefaultRewardKind = SnowbridgeReward; type RewardPayment = BridgeRelayers; + #[cfg(feature = "runtime-benchmarks")] + type MessageProcessor = benchmark_helpers::DummyXcmProcessor; + #[cfg(not(feature = "runtime-benchmarks"))] + type MessageProcessor = XcmMessageProcessor; } impl snowbridge_pallet_outbound_queue::Config for Runtime { @@ -303,11 +314,16 @@ impl snowbridge_pallet_system_v2::Config for Runtime { #[cfg(feature = "runtime-benchmarks")] pub mod benchmark_helpers { - use super::{EthereumGatewayAddress, RelayTreasuryPalletAccount, Runtime}; - use crate::{Balances, EthereumBeaconClient, ExistentialDeposit, RuntimeOrigin}; + use super::{ + CreateAssetCall, EthereumGatewayAddress, EthereumNetwork, EthereumSystem, + InboundQueueV2Location, InboundXcmMessageProcessor, MessageV2ToXcm, RelayNetwork, + RelayTreasuryPalletAccount, Runtime, TargetLocation, + }; + use crate::{xcm_config, Balances, EthereumBeaconClient, ExistentialDeposit, RuntimeOrigin}; use codec::Encode; use frame_support::{parameter_types, traits::fungible}; use hex_literal::hex; + use polkadot_runtime_constants::system_parachain::AssetHubParaId; use snowbridge_beacon_primitives::BeaconHeader; use snowbridge_inbound_queue_primitives::EventFixture; use snowbridge_pallet_inbound_queue::BenchmarkHelper; @@ -317,6 +333,7 @@ pub mod benchmark_helpers { use snowbridge_pallet_outbound_queue_v2::BenchmarkHelper as OutboundQueueBenchmarkHelperV2; use sp_core::{H160, H256}; use xcm::latest::{Assets, Location, SendError, SendResult, SendXcm, Xcm, XcmHash}; + use xcm_executor::XcmExecutor; parameter_types! { // The fixture data for benchmark tests in the Polkadot SDK relies on these gateway addresses, @@ -374,6 +391,27 @@ pub mod benchmark_helpers { } } + pub type DummyXcmProcessor = InboundXcmMessageProcessor< + Runtime, + DoNothingRouter, + XcmExecutor, + MessageV2ToXcm< + CreateAssetCall, + EthereumNetwork, + RelayNetwork, + EthereumGatewayAddress, + InboundQueueV2Location, + AssetHubParaId, + EthereumSystem, + ::AccountId, + >, + xcm_builder::AliasesIntoAccountId32< + RelayNetwork, + ::AccountId, + >, + TargetLocation, + >; + impl snowbridge_pallet_system::BenchmarkHelper for Runtime { fn make_xcm_origin(location: Location) -> RuntimeOrigin { // Drip ED to the `TreasuryAccount` 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 5440b8f116..77fc2216ac 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/lib.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/lib.rs @@ -159,7 +159,7 @@ pub mod migrations { use super::*; /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = (cumulus_pallet_xcmp_queue::migration::v6::MigrateV5ToV6,); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; @@ -207,7 +207,12 @@ pub fn native_version() -> NativeVersion { parameter_types! { pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + BlockLength::builder() + .max_length(5 * 1024 * 1024) + .modify_max_length_for_class(DispatchClass::Normal, |m| { + *m = NORMAL_DISPATCH_RATIO * *m + }) + .build(); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() .base_block(BlockExecutionWeight::get()) .for_class(DispatchClass::all(), |weights| { @@ -338,6 +343,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + parameter_types! { pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); @@ -769,7 +777,12 @@ mod benches { } } - impl cumulus_pallet_session_benchmarking::Config for Runtime {} + impl cumulus_pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } use xcm_config::DotRelayLocation; @@ -835,13 +848,15 @@ mod benches { fn valid_destination() -> Result { Ok(AssetHubLocation::get()) } - fn worst_case_holding(_depositable_count: u32) -> Assets { + fn worst_case_holding(_depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // just concrete assets according to relay chain. - let assets: Vec = vec![Asset { - id: AssetId(DotRelayLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }]; - assets.into() + let mut holding = xcm_executor::AssetsInHolding::new(); + holding.fungible.insert( + AssetId(DotRelayLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000 * UNITS)), + ); + holding } } @@ -1255,8 +1270,8 @@ impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_parachain_system.rs b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_parachain_system.rs index f1e7097c2d..f9c8ac6994 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_parachain_system.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_parachain_system.rs @@ -74,4 +74,15 @@ impl cumulus_pallet_parachain_system::WeightInfo for We .saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) } + fn block_weight_tx_extension_max_weight() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_stays_fraction_of_core() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_full_core() -> Weight { + Weight::zero() + } // TODO @ggwpez rerun } 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 a98608d587..76cdc9e3c0 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 @@ -70,12 +70,15 @@ parameter_types! { pub const MaxAssetsIntoHolding: u32 = 64; pub FellowshipLocation: Location = Location::new(1, Parachain(system_parachain::COLLECTIVES_ID)); pub RelayTreasuryLocation: Location = (Parent, PalletInstance(polkadot_runtime_constants::TREASURY_PALLET_ID)).into(); + // TODO: replace this with DAP account (for collecting fees) #1137 pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); + // TODO: replace this with DAP account (for collecting fees) #1137 // Test [`crate::tests::treasury_pallet_account_not_none`] ensures that the result of location // conversion is not `None`. pub RelayTreasuryPalletAccount: AccountId = LocationToAccountId::convert_location(&RelayTreasuryLocation::get()) .unwrap_or(TreasuryAccount::get()); + // TODO: replace this with DAP account (for collecting fees) #1137 pub StakingPot: AccountId = CollatorSelection::account_id(); } @@ -238,7 +241,6 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetLocker = (); type AssetExchanger = (); - type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; 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 7551a50f7a..a9e015c9d0 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/snowbridge.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/snowbridge.rs @@ -50,7 +50,10 @@ use sp_runtime::{ }; use xcm::latest::prelude::*; use xcm_builder::{HandleFee, XcmFeeManagerFromComponents}; -use xcm_executor::traits::{ConvertLocation, FeeManager, FeeReason}; +use xcm_executor::{ + traits::{ConvertLocation, FeeManager, FeeReason}, + AssetsInHolding, +}; parameter_types! { pub const DefaultBridgeHubEthereumBaseFee: Balance = 3_833_568_200_000; @@ -177,7 +180,11 @@ impl Contains for MockWaivedLocations { struct MockFeeHandler; impl HandleFee for MockFeeHandler { - fn handle_fee(fee: Assets, _context: Option<&XcmContext>, _reason: FeeReason) -> Assets { + fn handle_fee( + fee: AssetsInHolding, + _context: Option<&XcmContext>, + _reason: FeeReason, + ) -> AssetsInHolding { fee } } 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 8f233aa7bb..b12c1e0ebd 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/tests.rs +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/tests/tests.rs @@ -266,6 +266,7 @@ fn handle_export_message_from_system_parachain_add_to_outbound_queue_works() { Runtime, XcmConfig, WithBridgeHubKusamaMessagesInstance, + LocationToAccountId, >( collator_session_keys(), bp_bridge_hub_polkadot::BRIDGE_HUB_POLKADOT_PARACHAIN_ID, @@ -279,7 +280,7 @@ fn handle_export_message_from_system_parachain_add_to_outbound_queue_works() { || ExportMessage { network: Kusama, destination: Parachain(kusama_runtime_constants::system_parachain::ASSET_HUB_ID).into(), xcm: Xcm(vec![]) }, Some((DotRelayLocation::get(), ExistentialDeposit::get()).into()), // value should be >= than value generated by `can_calculate_weight_for_paid_export_message_with_reserve_transfer` - Some((DotRelayLocation::get(), bp_bridge_hub_polkadot::BridgeHubPolkadotBaseXcmFeeInDots::get()).into()), + Some((DotRelayLocation::get(), bp_bridge_hub_polkadot::BridgeHubPolkadotBaseXcmFeeInDots::get().max(ExistentialDeposit::get())).into()), || { PolkadotXcm::force_xcm_version(RuntimeOrigin::root(), Box::new(BridgeHubKusamaLocation::get()), XCM_VERSION).expect("version saved!"); diff --git a/system-parachains/collectives/collectives-polkadot/src/ambassador/mod.rs b/system-parachains/collectives/collectives-polkadot/src/ambassador/mod.rs index 8985795256..8d6b80b1e2 100644 --- a/system-parachains/collectives/collectives-polkadot/src/ambassador/mod.rs +++ b/system-parachains/collectives/collectives-polkadot/src/ambassador/mod.rs @@ -257,7 +257,7 @@ const USDT_UNITS: u128 = 1_000_000; /// [`PayOverXcm`] setup to pay the Ambassador salary on the AssetHub in USDt. pub type AmbassadorSalaryPaymaster = PayOverXcm< AmbassadorSalaryLocation, - crate::xcm_config::XcmRouter, + crate::xcm_config::XcmConfig, crate::PolkadotXcm, ConstU32<{ 6 * HOURS }>, AccountId, @@ -315,7 +315,7 @@ parameter_types! { /// [`PayOverXcm`] setup to pay the Ambasssador Treasury. pub type AmbassadorTreasuryPaymaster = PayOverXcm< AmbassadorTreasuryInteriorLocation, - crate::xcm_config::XcmRouter, + crate::xcm_config::XcmConfig, crate::PolkadotXcm, ConstU32<{ 6 * HOURS }>, VersionedLocation, diff --git a/system-parachains/collectives/collectives-polkadot/src/ambassador/origins.rs b/system-parachains/collectives/collectives-polkadot/src/ambassador/origins.rs index 7ff5ef4b1d..31456f24b2 100644 --- a/system-parachains/collectives/collectives-polkadot/src/ambassador/origins.rs +++ b/system-parachains/collectives/collectives-polkadot/src/ambassador/origins.rs @@ -29,15 +29,7 @@ pub mod pallet_origins { pub trait Config: frame_system::Config {} #[derive( - PartialEq, - Eq, - Clone, - MaxEncodedLen, - Encode, - Decode, - DecodeWithMemTracking, - TypeInfo, - RuntimeDebug, + PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, DecodeWithMemTracking, TypeInfo, Debug, )] #[pallet::origin] pub enum Origin { diff --git a/system-parachains/collectives/collectives-polkadot/src/fellowship/mod.rs b/system-parachains/collectives/collectives-polkadot/src/fellowship/mod.rs index edf1111ac5..e29b16771c 100644 --- a/system-parachains/collectives/collectives-polkadot/src/fellowship/mod.rs +++ b/system-parachains/collectives/collectives-polkadot/src/fellowship/mod.rs @@ -252,7 +252,7 @@ pub const USDT_UNITS: u128 = 1_000_000; /// [`PayOverXcm`] setup to pay the Fellowship salary on the AssetHub in USDT. pub type FellowshipSalaryPaymaster = PayOverXcm< FellowshipSalaryInteriorLocation, - crate::xcm_config::XcmRouter, + crate::xcm_config::XcmConfig, crate::PolkadotXcm, ConstU32<{ 6 * HOURS }>, AccountId, @@ -304,7 +304,7 @@ parameter_types! { /// [`PayOverXcm`] setup to pay the Fellowship Treasury. pub type FellowshipTreasuryPaymaster = PayOverXcm< FellowshipTreasuryInteriorLocation, - crate::xcm_config::XcmRouter, + crate::xcm_config::XcmConfig, crate::PolkadotXcm, ConstU32<{ 6 * HOURS }>, VersionedLocation, diff --git a/system-parachains/collectives/collectives-polkadot/src/fellowship/origins.rs b/system-parachains/collectives/collectives-polkadot/src/fellowship/origins.rs index e8a0fd1fa0..c96c6408e1 100644 --- a/system-parachains/collectives/collectives-polkadot/src/fellowship/origins.rs +++ b/system-parachains/collectives/collectives-polkadot/src/fellowship/origins.rs @@ -32,15 +32,7 @@ pub mod pallet_origins { pub struct Pallet(_); #[derive( - PartialEq, - Eq, - Clone, - MaxEncodedLen, - Encode, - Decode, - DecodeWithMemTracking, - TypeInfo, - RuntimeDebug, + PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, DecodeWithMemTracking, TypeInfo, Debug, )] #[pallet::origin] pub enum Origin { diff --git a/system-parachains/collectives/collectives-polkadot/src/lib.rs b/system-parachains/collectives/collectives-polkadot/src/lib.rs index efb8e9d362..a60243df3f 100644 --- a/system-parachains/collectives/collectives-polkadot/src/lib.rs +++ b/system-parachains/collectives/collectives-polkadot/src/lib.rs @@ -94,7 +94,7 @@ use frame_system::{ use parachains_common::{ message_queue::*, AccountId, AuraId, Balance, BlockNumber, Hash, Header, Nonce, Signature, }; -use sp_runtime::RuntimeDebug; +use sp_runtime::Debug; use system_parachains_constants::{ polkadot::{account::*, consensus::*, currency::*, fee::WeightToFee}, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, MINUTES, NORMAL_DISPATCH_RATIO, @@ -152,7 +152,12 @@ pub type RootOrAllianceTwoThirdsMajority = EitherOfDiverse< parameter_types! { pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + BlockLength::builder() + .max_length(5 * 1024 * 1024) + .modify_max_length_for_class(DispatchClass::Normal, |m| { + *m = NORMAL_DISPATCH_RATIO * *m + }) + .build(); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() .base_block(BlockExecutionWeight::get()) .for_class(DispatchClass::all(), |weights| { @@ -259,6 +264,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + parameter_types! { // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. pub const DepositBase: Balance = system_para_deposit(1, 88); @@ -306,7 +314,7 @@ parameter_types! { Decode, DecodeWithMemTracking, Default, - RuntimeDebug, + Debug, MaxEncodedLen, scale_info::TypeInfo, )] @@ -850,7 +858,7 @@ pub mod migrations { use super::*; /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = (cumulus_pallet_xcmp_queue::migration::v6::MigrateV5ToV6,); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; @@ -930,7 +938,12 @@ mod benches { } } - impl cumulus_pallet_session_benchmarking::Config for Runtime {} + impl cumulus_pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } use xcm_config::DotLocation; @@ -996,11 +1009,15 @@ mod benches { fn valid_destination() -> Result { Ok(AssetHubLocation::get()) } - fn worst_case_holding(_depositable_count: u32) -> Assets { + fn worst_case_holding(_depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // just concrete assets according to relay chain. - let assets: Vec = - vec![Asset { id: AssetId(DotLocation::get()), fun: Fungible(1_000_000 * UNITS) }]; - assets.into() + let mut holding = xcm_executor::AssetsInHolding::new(); + holding.fungible.insert( + AssetId(DotLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000 * UNITS)), + ); + holding } } @@ -1194,8 +1211,8 @@ impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( diff --git a/system-parachains/collectives/collectives-polkadot/src/weights/cumulus_pallet_parachain_system.rs b/system-parachains/collectives/collectives-polkadot/src/weights/cumulus_pallet_parachain_system.rs index 2d53bede41..05adb933f4 100644 --- a/system-parachains/collectives/collectives-polkadot/src/weights/cumulus_pallet_parachain_system.rs +++ b/system-parachains/collectives/collectives-polkadot/src/weights/cumulus_pallet_parachain_system.rs @@ -74,4 +74,17 @@ impl cumulus_pallet_parachain_system::WeightInfo for We .saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) } + + fn block_weight_tx_extension_max_weight() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_stays_fraction_of_core() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_full_core() -> Weight { + Weight::zero() + } + // TODO @ggwpez rerun } diff --git a/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs b/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs index fcaac1d531..5b15591815 100644 --- a/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs +++ b/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs @@ -20,6 +20,7 @@ use super::{ }; use cumulus_primitives_core::ParaId; use frame_support::{ + pallet_prelude::PalletInfoAccess, parameter_types, traits::{ fungible::HoldConsideration, tokens::imbalance::ResolveTo, ConstU32, Contains, @@ -67,8 +68,10 @@ parameter_types! { [GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())].into(); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); pub RelayTreasuryLocation: Location = (Parent, PalletInstance(polkadot_runtime_constants::TREASURY_PALLET_ID)).into(); + // TODO: replace this with DAP account (for collecting fees) #1137 pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); pub const TreasurerBodyId: BodyId = BodyId::Treasury; + // TODO: replace this with DAP account (for collecting fees) #1137 // Test [`treasury_pallet_account_not_none`] ensures that the result of location conversion is // not `None`. pub RelayTreasuryPalletAccount: AccountId = @@ -79,6 +82,7 @@ parameter_types! { location: AssetHubLocation::get(), asset_id: (PalletInstance(50), GeneralIndex(1984)).into(), }; + // TODO: replace this with DAP account (for collecting fees) #1137 pub StakingPot: AccountId = CollatorSelection::account_id(); pub SelfParaId: ParaId = ParachainInfo::parachain_id(); } @@ -195,6 +199,19 @@ pub type Barrier = TrailingSetTopicAsId< >, >; +parameter_types! { + pub FellowshipTreasuryLocation: Location = + PalletInstance(::index() as u8).into(); + pub FellowshipSalaryLocation: Location = + PalletInstance(::index() as u8).into(); + pub SecretarySalaryLocation: Location = + PalletInstance(::index() as u8).into(); + pub AmbassadorSalaryLocation: Location = + PalletInstance(::index() as u8).into(); + pub AmbassadorTreasuryLocation: Location = + PalletInstance(::index() as u8).into(); +} + /// Locations that will not be charged fees in the executor, /// either execution or delivery. /// We only waive fees for system functions, which these locations represent. @@ -202,6 +219,11 @@ pub type WaivedLocations = ( Equals, RelayOrOtherSystemParachains, Equals, + Equals, + Equals, + Equals, + Equals, + Equals, LocalPlurality, ); @@ -249,7 +271,6 @@ impl xcm_executor::Config for XcmConfig { >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; diff --git a/system-parachains/coretime/coretime-kusama/src/coretime.rs b/system-parachains/coretime/coretime-kusama/src/coretime.rs index ddf6cd984a..49f15bd7c8 100644 --- a/system-parachains/coretime/coretime-kusama/src/coretime.rs +++ b/system-parachains/coretime/coretime-kusama/src/coretime.rs @@ -98,9 +98,7 @@ fn burn_at_relay(stash: &AccountId, value: Balance) -> Result<(), XcmError> { // TODO https://github.com/polkadot-fellows/runtimes/issues/404 AssetTransactor::can_check_out(&dest, &asset, &dummy_xcm_context)?; - let parent_assets = Into::::into(withdrawn) - .reanchored(&dest, &Here) - .defensive_map_err(|_| XcmError::ReanchorFailed)?; + let parent_assets = withdrawn.reanchored_assets(&dest, &Here); PolkadotXcm::send_xcm( Here, diff --git a/system-parachains/coretime/coretime-kusama/src/lib.rs b/system-parachains/coretime/coretime-kusama/src/lib.rs index 07a9c40837..6252d51499 100644 --- a/system-parachains/coretime/coretime-kusama/src/lib.rs +++ b/system-parachains/coretime/coretime-kusama/src/lib.rs @@ -66,7 +66,7 @@ use sp_runtime::{ generic, impl_opaque_keys, traits::{BlakeTwo256, Block as BlockT, BlockNumberProvider}, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, MultiAddress, Perbill, RuntimeDebug, + ApplyExtrinsicResult, Debug, MultiAddress, Perbill, }; #[cfg(feature = "std")] use sp_version::NativeVersion; @@ -123,7 +123,7 @@ pub mod migrations { use super::*; /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = (cumulus_pallet_xcmp_queue::migration::v6::MigrateV5ToV6,); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; @@ -168,7 +168,12 @@ pub fn native_version() -> NativeVersion { parameter_types! { pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + BlockLength::builder() + .max_length(5 * 1024 * 1024) + .modify_max_length_for_class(DispatchClass::Normal, |m| { + *m = NORMAL_DISPATCH_RATIO * *m + }) + .build(); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() .base_block(BlockExecutionWeight::get()) .for_class(DispatchClass::all(), |weights| { @@ -309,6 +314,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + parameter_types! { pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); @@ -511,7 +519,7 @@ impl pallet_multisig::Config for Runtime { Encode, Decode, DecodeWithMemTracking, - RuntimeDebug, + Debug, MaxEncodedLen, scale_info::TypeInfo, )] @@ -724,7 +732,12 @@ mod benches { } } - impl cumulus_pallet_session_benchmarking::Config for Runtime {} + impl cumulus_pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } parameter_types! { pub ExistentialDepositAsset: Option = Some(( @@ -819,13 +832,15 @@ mod benches { fn valid_destination() -> Result { Ok(AssetHubLocation::get()) } - fn worst_case_holding(_depositable_count: u32) -> Assets { + fn worst_case_holding(_depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // just concrete assets according to relay chain. - let assets: Vec = vec![Asset { - id: AssetId(RelayChainLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }]; - assets.into() + let mut holding = xcm_executor::AssetsInHolding::new(); + holding.fungible.insert( + AssetId(RelayChainLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000 * UNITS)), + ); + holding } } @@ -1016,8 +1031,8 @@ impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( diff --git a/system-parachains/coretime/coretime-kusama/src/weights/cumulus_pallet_parachain_system.rs b/system-parachains/coretime/coretime-kusama/src/weights/cumulus_pallet_parachain_system.rs index 3ccf13e234..2a563be95a 100644 --- a/system-parachains/coretime/coretime-kusama/src/weights/cumulus_pallet_parachain_system.rs +++ b/system-parachains/coretime/coretime-kusama/src/weights/cumulus_pallet_parachain_system.rs @@ -48,6 +48,17 @@ use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_parachain_system::WeightInfo for WeightInfo { + fn block_weight_tx_extension_max_weight() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_stays_fraction_of_core() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_full_core() -> Weight { + Weight::zero() + } /// Storage: `ParachainSystem::LastDmqMqcHead` (r:1 w:1) /// Proof: `ParachainSystem::LastDmqMqcHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) diff --git a/system-parachains/coretime/coretime-kusama/src/weights/pallet_broker.rs b/system-parachains/coretime/coretime-kusama/src/weights/pallet_broker.rs index 51684628a7..7812bbe182 100644 --- a/system-parachains/coretime/coretime-kusama/src/weights/pallet_broker.rs +++ b/system-parachains/coretime/coretime-kusama/src/weights/pallet_broker.rs @@ -48,6 +48,28 @@ use core::marker::PhantomData; /// Weight functions for `pallet_broker`. pub struct WeightInfo(PhantomData); impl pallet_broker::WeightInfo for WeightInfo { + /// Storage: `Broker::PotentialRenewals` (r:1 w:1) + /// Proof: `Broker::PotentialRenewals` (`max_values`: None, `max_size`: Some(1233), added: 3708, mode: `MaxEncodedLen`) + fn remove_potential_renewal() -> Weight { + // Proof Size summary in bytes: + // Measured: `450` + // Estimated: `4698` + // Minimum execution time: 21_575_000 picoseconds. + Weight::from_parts(22_584_000, 4698) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Broker::Regions` (r:1 w:1) + /// Proof: `Broker::Regions` (`max_values`: None, `max_size`: Some(86), added: 2561, mode: `MaxEncodedLen`) + fn force_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `496` + // Estimated: `3551` + // Minimum execution time: 22_866_000 picoseconds. + Weight::from_parts(23_961_000, 3551) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } // TODO @ggwpez /// Storage: `Broker::Configuration` (r:0 w:1) /// Proof: `Broker::Configuration` (`max_values`: Some(1), `max_size`: Some(31), added: 526, mode: `MaxEncodedLen`) fn configure() -> Weight { diff --git a/system-parachains/coretime/coretime-kusama/src/xcm_config.rs b/system-parachains/coretime/coretime-kusama/src/xcm_config.rs index b11603e494..ee44a2ce7d 100644 --- a/system-parachains/coretime/coretime-kusama/src/xcm_config.rs +++ b/system-parachains/coretime/coretime-kusama/src/xcm_config.rs @@ -65,6 +65,7 @@ parameter_types! { PalletInstance(::index() as u8).into(); pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; + // TODO: replace this with DAP account (for collecting fees) #1137 pub StakingPot: AccountId = CollatorSelection::account_id(); } @@ -184,7 +185,9 @@ pub type Barrier = TrailingSetTopicAsId< parameter_types! { pub RelayTreasuryLocation: Location = (Parent, PalletInstance(kusama_runtime_constants::TREASURY_PALLET_ID)).into(); + // TODO: replace this with DAP account (for collecting fees) #1137 pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); + // TODO: replace this with DAP account (for collecting fees) #1137 // Test [`crate::tests::treasury_pallet_account_not_none`] ensures that the result of location // conversion is not `None`. pub RelayTreasuryPalletAccount: AccountId = @@ -241,7 +244,6 @@ impl xcm_executor::Config for XcmConfig { >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; diff --git a/system-parachains/coretime/coretime-polkadot/src/coretime.rs b/system-parachains/coretime/coretime-polkadot/src/coretime.rs index 5e821721e9..46e82bd787 100644 --- a/system-parachains/coretime/coretime-polkadot/src/coretime.rs +++ b/system-parachains/coretime/coretime-polkadot/src/coretime.rs @@ -98,9 +98,7 @@ fn burn_at_relay(stash: &AccountId, value: Balance) -> Result<(), XcmError> { // TODO https://github.com/polkadot-fellows/runtimes/issues/404 AssetTransactor::can_check_out(&dest, &asset, &dummy_xcm_context)?; - let parent_assets = Into::::into(withdrawn) - .reanchored(&dest, &Here) - .defensive_map_err(|_| XcmError::ReanchorFailed)?; + let parent_assets = withdrawn.reanchored_assets(&dest, &Here); PolkadotXcm::send_xcm( Here, diff --git a/system-parachains/coretime/coretime-polkadot/src/lib.rs b/system-parachains/coretime/coretime-polkadot/src/lib.rs index 1c485b7ef2..874b689536 100644 --- a/system-parachains/coretime/coretime-polkadot/src/lib.rs +++ b/system-parachains/coretime/coretime-polkadot/src/lib.rs @@ -67,7 +67,7 @@ use sp_runtime::{ generic, impl_opaque_keys, traits::{BlakeTwo256, Block as BlockT, BlockNumberProvider}, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, MultiAddress, Perbill, RuntimeDebug, + ApplyExtrinsicResult, Debug, MultiAddress, Perbill, }; #[cfg(feature = "std")] use sp_version::NativeVersion; @@ -125,7 +125,7 @@ pub mod migrations { use super::*; /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = (cumulus_pallet_xcmp_queue::migration::v6::MigrateV5ToV6,); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; @@ -170,7 +170,12 @@ pub fn native_version() -> NativeVersion { parameter_types! { pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + BlockLength::builder() + .max_length(5 * 1024 * 1024) + .modify_max_length_for_class(DispatchClass::Normal, |m| { + *m = NORMAL_DISPATCH_RATIO * *m + }) + .build(); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() .base_block(BlockExecutionWeight::get()) .for_class(DispatchClass::all(), |weights| { @@ -317,6 +322,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + parameter_types! { pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); @@ -514,7 +522,7 @@ impl pallet_multisig::Config for Runtime { Encode, Decode, DecodeWithMemTracking, - RuntimeDebug, + Debug, MaxEncodedLen, scale_info::TypeInfo, Default, @@ -731,7 +739,12 @@ mod benches { } } - impl cumulus_pallet_session_benchmarking::Config for Runtime {} + impl cumulus_pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } use xcm_config::DotRelayLocation; @@ -827,13 +840,15 @@ mod benches { fn valid_destination() -> Result { Ok(AssetHubLocation::get()) } - fn worst_case_holding(_depositable_count: u32) -> Assets { + fn worst_case_holding(_depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // just concrete assets according to relay chain. - let assets: Vec = vec![Asset { - id: AssetId(DotRelayLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }]; - assets.into() + let mut holding = xcm_executor::AssetsInHolding::new(); + holding.fungible.insert( + AssetId(DotRelayLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000 * UNITS)), + ); + holding } } @@ -1024,8 +1039,8 @@ impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( diff --git a/system-parachains/coretime/coretime-polkadot/src/weights/cumulus_pallet_parachain_system.rs b/system-parachains/coretime/coretime-polkadot/src/weights/cumulus_pallet_parachain_system.rs index 848ccc2a50..293a8e06c0 100644 --- a/system-parachains/coretime/coretime-polkadot/src/weights/cumulus_pallet_parachain_system.rs +++ b/system-parachains/coretime/coretime-polkadot/src/weights/cumulus_pallet_parachain_system.rs @@ -74,4 +74,17 @@ impl cumulus_pallet_parachain_system::WeightInfo for We .saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) } + + fn block_weight_tx_extension_max_weight() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_stays_fraction_of_core() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_full_core() -> Weight { + Weight::zero() + } + // TODO @ggwpez rerun } diff --git a/system-parachains/coretime/coretime-polkadot/src/weights/pallet_broker.rs b/system-parachains/coretime/coretime-polkadot/src/weights/pallet_broker.rs index 4d7cae7af4..5fbd5f327d 100644 --- a/system-parachains/coretime/coretime-polkadot/src/weights/pallet_broker.rs +++ b/system-parachains/coretime/coretime-polkadot/src/weights/pallet_broker.rs @@ -83,6 +83,12 @@ impl pallet_broker::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } + fn remove_potential_renewal() -> Weight { + Weight::zero() + } + fn force_transfer() -> Weight { + Weight::zero() + } // TODO @ggwpez rerun /// Storage: `Broker::Leases` (r:1 w:1) /// Proof: `Broker::Leases` (`max_values`: Some(1), `max_size`: Some(441), added: 936, mode: `MaxEncodedLen`) /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) diff --git a/system-parachains/coretime/coretime-polkadot/src/xcm_config.rs b/system-parachains/coretime/coretime-polkadot/src/xcm_config.rs index 621ff9443c..33ea1be55a 100644 --- a/system-parachains/coretime/coretime-polkadot/src/xcm_config.rs +++ b/system-parachains/coretime/coretime-polkadot/src/xcm_config.rs @@ -68,6 +68,7 @@ parameter_types! { pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; pub FellowshipLocation: Location = Location::new(1, Parachain(system_parachain::COLLECTIVES_ID)); + // TODO: replace this with DAP account (for collecting fees) #1137 pub StakingPot: AccountId = CollatorSelection::account_id(); } @@ -191,7 +192,9 @@ pub type Barrier = TrailingSetTopicAsId< parameter_types! { pub RelayTreasuryLocation: Location = (Parent, PalletInstance(polkadot_runtime_constants::TREASURY_PALLET_ID)).into(); + // TODO: replace this with DAP account (for collecting fees) #1137 pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); + // TODO: replace this with DAP account (for collecting fees) #1137 // Test [`crate::tests::treasury_pallet_account_not_none`] ensures that the result of location // conversion is not `None`. pub RelayTreasuryPalletAccount: AccountId = @@ -249,7 +252,6 @@ impl xcm_executor::Config for XcmConfig { >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; diff --git a/system-parachains/encointer/src/lib.rs b/system-parachains/encointer/src/lib.rs index 9568a60847..e481ce59a0 100644 --- a/system-parachains/encointer/src/lib.rs +++ b/system-parachains/encointer/src/lib.rs @@ -104,7 +104,7 @@ use sp_runtime::{ generic, impl_opaque_keys, traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, Verify}, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, Perbill, RuntimeDebug, + ApplyExtrinsicResult, Debug, Perbill, }; #[cfg(feature = "std")] @@ -183,7 +183,7 @@ parameter_types! { Encode, Decode, DecodeWithMemTracking, - RuntimeDebug, + Debug, scale_info::TypeInfo, MaxEncodedLen, )] @@ -259,7 +259,12 @@ impl pallet_proxy::Config for Runtime { parameter_types! { pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + BlockLength::builder() + .max_length(5 * 1024 * 1024) + .modify_max_length_for_class(DispatchClass::Normal, |m| { + *m = NORMAL_DISPATCH_RATIO * *m + }) + .build(); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() .base_block(BlockExecutionWeight::get()) .for_class(DispatchClass::all(), |weights| { @@ -374,6 +379,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + impl pallet_utility::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; @@ -946,7 +954,10 @@ pub mod migrations { use super::*; /// Unreleased migrations. Add new ones here: - pub type Unreleased = (pallet_encointer_democracy::migrations::v2::MigrateV1toV2,); + pub type Unreleased = ( + pallet_encointer_democracy::migrations::v2::MigrateV1toV2, + cumulus_pallet_xcmp_queue::migration::v6::MigrateV5ToV6, + ); /// All migrations that will run on the next runtime upgrade. pub type SingleBlockMigrations = (Unreleased, Permanent); @@ -1005,7 +1016,12 @@ mod benches { [pallet_xcm_benchmarks::generic, XcmGeneric] ); - impl cumulus_pallet_session_benchmarking::Config for Runtime {} + impl cumulus_pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } impl frame_system_benchmarking::Config for Runtime { fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); @@ -1082,13 +1098,15 @@ mod benches { fn valid_destination() -> Result { Ok(AssetHubLocation::get()) } - fn worst_case_holding(_depositable_count: u32) -> Assets { + fn worst_case_holding(_depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // just concrete assets according to relay chain. - let assets: Vec = vec![Asset { - id: AssetId(KsmRelayLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }]; - assets.into() + let mut holding = xcm_executor::AssetsInHolding::new(); + holding.fungible.insert( + AssetId(KsmRelayLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000 * UNITS)), + ); + holding } } @@ -1277,8 +1295,8 @@ impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( diff --git a/system-parachains/encointer/src/tests/mock.rs b/system-parachains/encointer/src/tests/mock.rs index 2f3747b1ed..fa9850bdb8 100644 --- a/system-parachains/encointer/src/tests/mock.rs +++ b/system-parachains/encointer/src/tests/mock.rs @@ -22,13 +22,11 @@ use frame_support::{ tokens::imbalance::ResolveTo, AsEnsureOriginWithArg, ConstU32, Disabled, Everything, IsInVec, Nothing, }, - weights::WeightToFee, }; use frame_system::{EnsureRoot, EnsureSigned}; use parachains_common::xcm_config::ParentRelayOrSiblingParachains; use polkadot_primitives::{AccountIndex, BlakeTwo256, Signature}; use sp_runtime::{generic, traits::MaybeEquivalence, AccountId32, BuildStorage}; -use system_parachains_constants::kusama::fee::WeightToFee as KusamaWeightToFee; use xcm::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, @@ -38,8 +36,8 @@ use xcm_builder::{ WithComputedOrigin, }; use xcm_executor::{ - traits::{ConvertLocation, JustTry, WeightTrader}, - AssetsInHolding, XcmExecutor, + traits::{ConvertLocation, JustTry}, + XcmExecutor, }; pub type TxExtension = ( @@ -228,40 +226,6 @@ pub type Barrier = ( // AllowSubscriptionsFrom>, ); -#[derive(Clone)] -pub struct TestTrader { - weight_bought_so_far: Weight, -} -impl WeightTrader for TestTrader { - fn new() -> Self { - Self { weight_bought_so_far: Weight::zero() } - } - - fn buy_weight( - &mut self, - weight: Weight, - payment: AssetsInHolding, - _context: &XcmContext, - ) -> Result { - let amount = KusamaWeightToFee::::weight_to_fee(&weight); - let required: Asset = (Here, amount).into(); - let unused = payment.checked_sub(required).map_err(|_| XcmError::TooExpensive)?; - self.weight_bought_so_far.saturating_add(weight); - Ok(unused) - } - - fn refund_weight(&mut self, weight: Weight, _context: &XcmContext) -> Option { - let weight = weight.min(self.weight_bought_so_far); - let amount = KusamaWeightToFee::::weight_to_fee(&weight); - self.weight_bought_so_far -= weight; - if amount > 0 { - Some((Here, amount).into()) - } else { - None - } - } -} - parameter_types! { pub XcmFeePot: AccountId = AccountId32::new([0u8; 32]); } @@ -288,7 +252,6 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = XcmPallet; type AssetLocker = (); type AssetExchanger = (); - type AssetClaims = XcmPallet; type SubscriptionService = XcmPallet; type PalletInstancesInfo = (); type MaxAssetsIntoHolding = MaxAssetsIntoHolding; diff --git a/system-parachains/encointer/src/tests/xcm_mock.rs b/system-parachains/encointer/src/tests/xcm_mock.rs index 24e1151d74..15c248ec49 100644 --- a/system-parachains/encointer/src/tests/xcm_mock.rs +++ b/system-parachains/encointer/src/tests/xcm_mock.rs @@ -43,6 +43,7 @@ use xcm_builder::{ RespectSuspension, TakeWeightCredit, TrailingSetTopicAsId, }; pub use xcm_executor::{ + test_helpers::mock_asset_to_holding, traits::{ AssetExchange, AssetLock, CheckSuspension, ConvertOrigin, Enact, ExportXcm, FeeManager, FeeReason, LockError, OnResponse, Properties, QueryHandler, QueryResponseStatus, @@ -239,13 +240,20 @@ thread_local! { pub static ASSETS: RefCell> = const { RefCell::new(BTreeMap::new()) }; } pub fn assets(who: impl Into) -> AssetsInHolding { - ASSETS.with(|a| a.borrow().get(&who.into()).cloned()).unwrap_or_default() + ASSETS + .with(|a| a.borrow().get(&who.into()).map(clone_assets_in_holding)) + .unwrap_or_else(AssetsInHolding::new) } pub fn asset_list(who: impl Into) -> Vec { - Assets::from(assets(who)).into_inner() + assets(who).assets_iter().collect() } pub fn add_asset(who: impl Into, what: impl Into) { - ASSETS.with(|a| a.borrow_mut().entry(who.into()).or_default().subsume(what.into())); + ASSETS.with(|a| { + a.borrow_mut() + .entry(who.into()) + .or_insert_with(AssetsInHolding::new) + .subsume_assets(mock_asset_to_holding(what.into())) + }); } pub fn clear_assets(who: impl Into) { ASSETS.with(|a| a.borrow_mut().remove(&who.into())); @@ -254,11 +262,16 @@ pub fn clear_assets(who: impl Into) { pub struct TestAssetTransactor; impl TransactAsset for TestAssetTransactor { fn deposit_asset( - what: &Asset, + what: AssetsInHolding, who: &Location, _context: Option<&XcmContext>, - ) -> Result<(), XcmError> { - add_asset(who.clone(), what.clone()); + ) -> Result<(), (AssetsInHolding, XcmError)> { + ASSETS.with(|a| { + a.borrow_mut() + .entry(who.clone()) + .or_insert_with(AssetsInHolding::new) + .subsume_assets(what) + }); Ok(()) } @@ -527,7 +540,7 @@ impl FeeManager for TestFeeManager { IS_WAIVED.with(|l| l.borrow().contains(&r)) } - fn handle_fee(_: Assets, _: Option<&XcmContext>, _: FeeReason) {} + fn handle_fee(_: AssetsInHolding, _: Option<&XcmContext>, _: FeeReason) {} } #[derive(Clone, Eq, PartialEq, Debug)] @@ -555,8 +568,8 @@ pub fn allow_unlock( ALLOWED_UNLOCKS.with(|l| { l.borrow_mut() .entry((owner.into(), unlocker.into())) - .or_default() - .subsume(asset.into()) + .or_insert_with(AssetsInHolding::new) + .subsume_assets(mock_asset_to_holding(asset.into())) }); } pub fn disallow_unlock( @@ -567,7 +580,7 @@ pub fn disallow_unlock( ALLOWED_UNLOCKS.with(|l| { l.borrow_mut() .entry((owner.into(), unlocker.into())) - .or_default() + .or_insert_with(AssetsInHolding::new) .saturating_take(asset.into().into()) }); } @@ -586,8 +599,8 @@ pub fn allow_request_unlock( ALLOWED_REQUEST_UNLOCKS.with(|l| { l.borrow_mut() .entry((owner.into(), locker.into())) - .or_default() - .subsume(asset.into()) + .or_insert_with(AssetsInHolding::new) + .subsume_assets(mock_asset_to_holding(asset.into())) }); } pub fn disallow_request_unlock( @@ -598,7 +611,7 @@ pub fn disallow_request_unlock( ALLOWED_REQUEST_UNLOCKS.with(|l| { l.borrow_mut() .entry((owner.into(), locker.into())) - .or_default() + .or_insert_with(AssetsInHolding::new) .saturating_take(asset.into().into()) }); } @@ -671,12 +684,6 @@ impl AssetLock for TestAssetLock { thread_local! { pub static EXCHANGE_ASSETS: RefCell = RefCell::new(AssetsInHolding::new()); } -pub fn set_exchange_assets(assets: impl Into) { - EXCHANGE_ASSETS.with(|a| a.replace(assets.into().into())); -} -pub fn exchange_assets() -> Assets { - EXCHANGE_ASSETS.with(|a| a.borrow().clone().into()) -} pub struct TestAssetExchange; impl AssetExchange for TestAssetExchange { fn exchange_asset( @@ -685,7 +692,7 @@ impl AssetExchange for TestAssetExchange { want: &Assets, maximal: bool, ) -> Result { - let mut have = EXCHANGE_ASSETS.with(|l| l.borrow().clone()); + let mut have = EXCHANGE_ASSETS.with(|l| clone_assets_in_holding(&l.borrow())); ensure!(have.contains_assets(want), give); let get = if maximal { std::mem::replace(&mut have, AssetsInHolding::new()) @@ -698,7 +705,7 @@ impl AssetExchange for TestAssetExchange { } fn quote_exchange_price(give: &Assets, want: &Assets, maximal: bool) -> Option { - let mut have = EXCHANGE_ASSETS.with(|l| l.borrow().clone()); + let mut have = EXCHANGE_ASSETS.with(|l| clone_assets_in_holding(&l.borrow())); if !have.contains_assets(want) { return None; } @@ -712,6 +719,17 @@ impl AssetExchange for TestAssetExchange { } } +fn clone_assets_in_holding(assets: &AssetsInHolding) -> AssetsInHolding { + AssetsInHolding { + fungible: assets + .fungible + .iter() + .map(|(id, accounting)| (id.clone(), accounting.unsafe_clone())) + .collect(), + non_fungible: assets.non_fungible.clone(), + } +} + pub struct SiblingPrefix; impl Contains for SiblingPrefix { fn contains(loc: &Location) -> bool { @@ -752,7 +770,6 @@ impl Config for TestConfig { type AssetTrap = TestAssetTrap; type AssetLocker = TestAssetLock; type AssetExchanger = TestAssetExchange; - type AssetClaims = TestAssetTrap; type SubscriptionService = TestSubscriptionService; type PalletInstancesInfo = TestPalletsInfo; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; diff --git a/system-parachains/encointer/src/weights/cumulus_pallet_parachain_system.rs b/system-parachains/encointer/src/weights/cumulus_pallet_parachain_system.rs index 679cb03b23..8ead44ce31 100644 --- a/system-parachains/encointer/src/weights/cumulus_pallet_parachain_system.rs +++ b/system-parachains/encointer/src/weights/cumulus_pallet_parachain_system.rs @@ -48,30 +48,41 @@ use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_parachain_system::WeightInfo for WeightInfo { - /// Storage: `ParachainSystem::LastDmqMqcHead` (r:1 w:1) - /// Proof: `ParachainSystem::LastDmqMqcHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) - /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) - /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) - /// Storage: `ParachainSystem::LastProcessedDownwardMessage` (r:0 w:1) - /// Proof: `ParachainSystem::LastProcessedDownwardMessage` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::ProcessedDownwardMessages` (r:0 w:1) - /// Proof: `ParachainSystem::ProcessedDownwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `MessageQueue::Pages` (r:0 w:1000) - /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) + /// Storage: ParachainSystem LastDmqMqcHead (r:1 w:1) + /// Proof Skipped: ParachainSystem LastDmqMqcHead (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem ReservedDmpWeightOverride (r:1 w:0) + /// Proof Skipped: ParachainSystem ReservedDmpWeightOverride (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue ServiceHead (r:1 w:1) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Storage: ParachainSystem ProcessedDownwardMessages (r:0 w:1) + /// Proof Skipped: ParachainSystem ProcessedDownwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: MessageQueue Pages (r:0 w:16) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) /// The range of component `n` is `[0, 1000]`. fn enqueue_inbound_downward_messages(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `48` - // Estimated: `3517` - // Minimum execution time: 3_150_000 picoseconds. - Weight::from_parts(3_360_000, 0) - .saturating_add(Weight::from_parts(0, 3517)) - // Standard Error: 84_887 - .saturating_add(Weight::from_parts(134_662_539, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(5)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + // Measured: `12` + // Estimated: `8013` + // Minimum execution time: 1_625_000 picoseconds. + Weight::from_parts(1_735_000, 8013) + // Standard Error: 14_563 + .saturating_add(Weight::from_parts(25_300_108, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } + + fn block_weight_tx_extension_max_weight() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_stays_fraction_of_core() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_full_core() -> Weight { + Weight::zero() + } + // TODO @ggwpez rerun } diff --git a/system-parachains/encointer/src/xcm_config.rs b/system-parachains/encointer/src/xcm_config.rs index ead2c140da..2aebed66d6 100644 --- a/system-parachains/encointer/src/xcm_config.rs +++ b/system-parachains/encointer/src/xcm_config.rs @@ -30,11 +30,12 @@ use frame_support::{ use frame_system::EnsureRoot; use pallet_xcm::{AuthorizedAliasers, XcmPassthrough}; use parachains_common::xcm_config::{ - AliasAccountId32FromSiblingSystemChain, ConcreteAssetFromSystem, ParentRelayOrSiblingParachains, + AliasAccountId32FromSiblingSystemChain, AllSiblingSystemParachains, ConcreteAssetFromSystem, + ParentRelayOrSiblingParachains, RelayOrOtherSystemParachains, }; use polkadot_parachain_primitives::primitives::Sibling; - use sp_core::ConstU32; +use sp_runtime::traits::AccountIdConversion; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AliasChildLocation, AliasOriginRootUsingFilter, @@ -42,10 +43,10 @@ use xcm_builder::{ AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, DescribeAllTerminal, DescribeFamily, DescribeTerminus, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsConcrete, - LocationAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, - WeightInfoBounds, WithComputedOrigin, + LocationAsSuperuser, ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, + SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, + SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, + UsingComponents, WeightInfoBounds, WithComputedOrigin, XcmFeeManagerFromComponents, }; use xcm_executor::XcmExecutor; @@ -54,6 +55,7 @@ pub use system_parachains_constants::kusama::locations::{ }; parameter_types! { + pub const RootLocation: Location = Location::here(); pub const KsmLocation: Location = Location::parent(); pub const RelayNetwork: NetworkId = NetworkId::Kusama; pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); @@ -61,7 +63,10 @@ parameter_types! { pub CheckingAccount: AccountId = PolkadotXcm::check_account(); pub UniversalLocation: InteriorLocation = [GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())].into(); + // TODO: replace this with DAP account (for collecting fees) #1137 pub StakingPot: AccountId = CollatorSelection::account_id(); + // TODO: replace this with DAP account (for collecting fees) #1137 + pub TreasuryAccount: AccountId = parachains_common::TREASURY_PALLET_ID.into_account_truncating(); } /// Type for specifying how a `Location` can be converted into an `AccountId`. @@ -173,6 +178,11 @@ parameter_types! { pub const KsmRelayLocation: Location = Location::parent(); } +/// Locations that will not be charged fees in the executor, neither for execution nor delivery. We +/// only waive fees for system functions, which these locations represent. +pub type WaivedLocations = + (Equals, RelayOrOtherSystemParachains); + /// Cases where a remote origin is accepted as trusted Teleporter for a given asset: /// - KSM with the parent Relay Chain and sibling parachains. pub type TrustedTeleporters = ConcreteAssetFromSystem; @@ -215,13 +225,15 @@ impl xcm_executor::Config for XcmConfig { >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; type PalletInstancesInfo = crate::AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; type AssetLocker = (); type AssetExchanger = (); - type FeeManager = (); + type FeeManager = XcmFeeManagerFromComponents< + WaivedLocations, + SendXcmFeeToAccount, + >; type MessageExporter = (); type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; diff --git a/system-parachains/gluttons/glutton-kusama/src/lib.rs b/system-parachains/gluttons/glutton-kusama/src/lib.rs index 90db18bb7c..d07dcfe5cb 100644 --- a/system-parachains/gluttons/glutton-kusama/src/lib.rs +++ b/system-parachains/gluttons/glutton-kusama/src/lib.rs @@ -123,7 +123,12 @@ parameter_types! { pub const BlockHashCount: BlockNumber = 4096; pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + BlockLength::builder() + .max_length(5 * 1024 * 1024) + .modify_max_length_for_class(DispatchClass::Normal, |m| { + *m = NORMAL_DISPATCH_RATIO * *m + }) + .build(); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() .base_block(BlockExecutionWeight::get()) .for_class(DispatchClass::all(), |weights| { @@ -408,8 +413,8 @@ impl_runtime_apis! { Some(Vec::new()) } - fn generate_session_keys(_: Option>) -> Vec { - Vec::new() + fn generate_session_keys(_owner: Vec, _seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + sp_session::OpaqueGeneratedSessionKeys { keys: Default::default(), proof: Default::default() } } } diff --git a/system-parachains/gluttons/glutton-kusama/src/weights/cumulus_pallet_parachain_system.rs b/system-parachains/gluttons/glutton-kusama/src/weights/cumulus_pallet_parachain_system.rs index 7f250fcad4..0b33a5c9c7 100644 --- a/system-parachains/gluttons/glutton-kusama/src/weights/cumulus_pallet_parachain_system.rs +++ b/system-parachains/gluttons/glutton-kusama/src/weights/cumulus_pallet_parachain_system.rs @@ -48,6 +48,17 @@ use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_parachain_system::WeightInfo for WeightInfo { + fn block_weight_tx_extension_max_weight() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_stays_fraction_of_core() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_full_core() -> Weight { + Weight::zero() + } /// Storage: `ParachainSystem::LastDmqMqcHead` (r:1 w:1) /// Proof: `ParachainSystem::LastDmqMqcHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) diff --git a/system-parachains/gluttons/glutton-kusama/src/xcm_config.rs b/system-parachains/gluttons/glutton-kusama/src/xcm_config.rs index b2578077ea..c56a501a2d 100644 --- a/system-parachains/gluttons/glutton-kusama/src/xcm_config.rs +++ b/system-parachains/gluttons/glutton-kusama/src/xcm_config.rs @@ -73,7 +73,6 @@ impl xcm_executor::Config for XcmConfig { type Trader = (); // balances not supported type ResponseHandler = (); // Don't handle responses for now. type AssetTrap = (); // don't trap for now - type AssetClaims = (); // don't claim for now type SubscriptionService = (); // don't handle subscriptions for now type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; diff --git a/system-parachains/people/people-kusama/src/lib.rs b/system-parachains/people/people-kusama/src/lib.rs index 3a7350a3c4..246e5da7e0 100644 --- a/system-parachains/people/people-kusama/src/lib.rs +++ b/system-parachains/people/people-kusama/src/lib.rs @@ -63,7 +63,7 @@ use sp_runtime::{ generic, impl_opaque_keys, traits::{BlakeTwo256, Block as BlockT}, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, RuntimeDebug, + ApplyExtrinsicResult, Debug, }; pub use sp_runtime::{MultiAddress, Perbill, Permill}; #[cfg(feature = "std")] @@ -143,7 +143,7 @@ pub mod migrations { use super::*; /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = (cumulus_pallet_xcmp_queue::migration::v6::MigrateV5ToV6,); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; @@ -191,7 +191,12 @@ pub fn native_version() -> NativeVersion { parameter_types! { pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + BlockLength::builder() + .max_length(5 * 1024 * 1024) + .modify_max_length_for_class(DispatchClass::Normal, |m| { + *m = NORMAL_DISPATCH_RATIO * *m + }) + .build(); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() .base_block(BlockExecutionWeight::get()) .for_class(DispatchClass::all(), |weights| { @@ -285,6 +290,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + parameter_types! { pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); @@ -468,7 +476,7 @@ impl pallet_multisig::Config for Runtime { Encode, Decode, DecodeWithMemTracking, - RuntimeDebug, + Debug, MaxEncodedLen, scale_info::TypeInfo, )] @@ -706,7 +714,12 @@ mod benches { } } - impl cumulus_pallet_session_benchmarking::Config for Runtime {} + impl cumulus_pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } impl pallet_xcm::benchmarking::Config for Runtime { type DeliveryHelper = polkadot_runtime_common::xcm_sender::ToParachainDeliveryHelper< @@ -770,13 +783,15 @@ mod benches { fn valid_destination() -> Result { Ok(AssetHubLocation::get()) } - fn worst_case_holding(_depositable_count: u32) -> Assets { + fn worst_case_holding(_depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // just concrete assets according to relay chain. - let assets: Vec = vec![Asset { - id: AssetId(RelayChainLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }]; - assets.into() + let mut holding = xcm_executor::AssetsInHolding::new(); + holding.fungible.insert( + AssetId(RelayChainLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000 * UNITS)), + ); + holding } } @@ -967,8 +982,8 @@ impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( diff --git a/system-parachains/people/people-kusama/src/people.rs b/system-parachains/people/people-kusama/src/people.rs index a949f4aafd..76ab1f2d4f 100644 --- a/system-parachains/people/people-kusama/src/people.rs +++ b/system-parachains/people/people-kusama/src/people.rs @@ -17,15 +17,13 @@ use super::*; use crate::xcm_config::LocationToAccountId; use codec::{Decode, DecodeWithMemTracking, Encode, MaxEncodedLen}; use enumflags2::{bitflags, BitFlags}; -use frame_support::{ - parameter_types, CloneNoBound, EqNoBound, PartialEqNoBound, RuntimeDebugNoBound, -}; +use frame_support::{parameter_types, CloneNoBound, DebugNoBound, EqNoBound, PartialEqNoBound}; use pallet_identity::{Data, IdentityInformationProvider}; use parachains_common::impls::ToParentTreasury; use scale_info::TypeInfo; use sp_runtime::{ traits::{AccountIdConversion, Verify}, - RuntimeDebug, + Debug, }; parameter_types! { @@ -79,7 +77,7 @@ impl pallet_identity::Config for Runtime { /// in the `IdentityInfo` struct. #[bitflags] #[repr(u64)] -#[derive(Clone, Copy, PartialEq, Eq, RuntimeDebug)] +#[derive(Clone, Copy, PartialEq, Eq, Debug)] pub enum IdentityField { Display, Legal, @@ -102,7 +100,7 @@ pub enum IdentityField { EqNoBound, MaxEncodedLen, PartialEqNoBound, - RuntimeDebugNoBound, + DebugNoBound, TypeInfo, )] #[codec(mel_bound())] diff --git a/system-parachains/people/people-kusama/src/weights/cumulus_pallet_parachain_system.rs b/system-parachains/people/people-kusama/src/weights/cumulus_pallet_parachain_system.rs index b2b4cc2031..c550e7a6a7 100644 --- a/system-parachains/people/people-kusama/src/weights/cumulus_pallet_parachain_system.rs +++ b/system-parachains/people/people-kusama/src/weights/cumulus_pallet_parachain_system.rs @@ -48,6 +48,17 @@ use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_parachain_system::WeightInfo for WeightInfo { + fn block_weight_tx_extension_max_weight() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_stays_fraction_of_core() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_full_core() -> Weight { + Weight::zero() + } /// Storage: `ParachainSystem::LastDmqMqcHead` (r:1 w:1) /// Proof: `ParachainSystem::LastDmqMqcHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) diff --git a/system-parachains/people/people-kusama/src/xcm_config.rs b/system-parachains/people/people-kusama/src/xcm_config.rs index 97f030ffe3..fe6bc8fb43 100644 --- a/system-parachains/people/people-kusama/src/xcm_config.rs +++ b/system-parachains/people/people-kusama/src/xcm_config.rs @@ -67,12 +67,15 @@ parameter_types! { pub FeeAssetId: AssetId = AssetId(RelayChainLocation::get()); /// The base fee for the message delivery fees. pub const BaseDeliveryFee: u128 = CENTS.saturating_mul(3); + // TODO: replace this with DAP account (for collecting fees) #1137 pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); pub RelayTreasuryLocation: Location = (Parent, PalletInstance(kusama_runtime_constants::TREASURY_PALLET_ID)).into(); + // TODO: replace this with DAP account (for collecting fees) #1137 pub RelayTreasuryPalletAccount: AccountId = LocationToAccountId::convert_location(&RelayTreasuryLocation::get()) .unwrap_or(TreasuryAccount::get()); + // TODO: replace this with DAP account (for collecting fees) #1137 pub StakingPot: AccountId = CollatorSelection::account_id(); } @@ -243,7 +246,6 @@ impl xcm_executor::Config for XcmConfig { >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding; diff --git a/system-parachains/people/people-polkadot/src/lib.rs b/system-parachains/people/people-polkadot/src/lib.rs index 1e0244e61a..29f2e64ce5 100644 --- a/system-parachains/people/people-polkadot/src/lib.rs +++ b/system-parachains/people/people-polkadot/src/lib.rs @@ -66,7 +66,7 @@ use sp_runtime::{ generic, impl_opaque_keys, traits::{BlakeTwo256, Block as BlockT}, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, RuntimeDebug, + ApplyExtrinsicResult, Debug, }; pub use sp_runtime::{MultiAddress, Perbill, Permill}; #[cfg(feature = "std")] @@ -134,7 +134,7 @@ pub mod migrations { use super::*; /// Unreleased migrations. Add new ones here: - pub type Unreleased = (); + pub type Unreleased = (cumulus_pallet_xcmp_queue::migration::v6::MigrateV5ToV6,); /// Migrations/checks that do not need to be versioned and can run on every update. pub type Permanent = pallet_xcm::migration::MigrateToLatestXcmVersion; @@ -182,7 +182,12 @@ pub fn native_version() -> NativeVersion { parameter_types! { pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = - BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + BlockLength::builder() + .max_length(5 * 1024 * 1024) + .modify_max_length_for_class(DispatchClass::Normal, |m| { + *m = NORMAL_DISPATCH_RATIO * *m + }) + .build(); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() .base_block(BlockExecutionWeight::get()) .for_class(DispatchClass::all(), |weights| { @@ -276,6 +281,9 @@ impl pallet_transaction_payment::Config for Runtime { type WeightInfo = weights::pallet_transaction_payment::WeightInfo; } +#[cfg(feature = "runtime-benchmarks")] +impl pallet_transaction_payment::BenchmarkConfig for Runtime {} + parameter_types! { pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); @@ -451,7 +459,7 @@ impl pallet_multisig::Config for Runtime { Encode, Decode, DecodeWithMemTracking, - RuntimeDebug, + Debug, MaxEncodedLen, scale_info::TypeInfo, )] @@ -660,6 +668,7 @@ mod benches { PriceForSiblingParachainDelivery, Runtime, RuntimeCall, System, XcmConfig, UNITS, }; use alloc::{boxed::Box, vec::Vec}; + use codec::Encode; use polkadot_runtime_constants::system_parachain::AssetHubParaId; use system_parachains_constants::polkadot::locations::AssetHubLocation; @@ -704,7 +713,12 @@ mod benches { } } - impl cumulus_pallet_session_benchmarking::Config for Runtime {} + impl cumulus_pallet_session_benchmarking::Config for Runtime { + fn generate_session_keys_and_proof(owner: Self::AccountId) -> (Self::Keys, Vec) { + let keys = crate::SessionKeys::generate(&owner.encode(), None); + (keys.keys, keys.proof.encode()) + } + } impl pallet_xcm::benchmarking::Config for Runtime { type DeliveryHelper = polkadot_runtime_common::xcm_sender::ToParachainDeliveryHelper< @@ -769,11 +783,15 @@ mod benches { fn valid_destination() -> Result { Ok(AssetHubLocation::get()) } - fn worst_case_holding(_depositable_count: u32) -> Assets { + fn worst_case_holding(_depositable_count: u32) -> xcm_executor::AssetsInHolding { + use pallet_xcm_benchmarks::MockCredit; // just concrete assets according to relay chain. - let assets: Vec = - vec![Asset { id: AssetId(RelayLocation::get()), fun: Fungible(1_000_000 * UNITS) }]; - assets.into() + let mut holding = xcm_executor::AssetsInHolding::new(); + holding.fungible.insert( + AssetId(RelayLocation::get()), + alloc::boxed::Box::new(MockCredit(1_000_000 * UNITS)), + ); + holding } } @@ -967,8 +985,8 @@ impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + fn generate_session_keys(owner: Vec, seed: Option>) -> sp_session::OpaqueGeneratedSessionKeys { + SessionKeys::generate(&owner, seed).into() } fn decode_session_keys( diff --git a/system-parachains/people/people-polkadot/src/people.rs b/system-parachains/people/people-polkadot/src/people.rs index b489adf723..157e2d4ba6 100644 --- a/system-parachains/people/people-polkadot/src/people.rs +++ b/system-parachains/people/people-polkadot/src/people.rs @@ -17,15 +17,13 @@ use super::*; use crate::xcm_config::LocationToAccountId; use codec::{Decode, Encode, MaxEncodedLen}; use enumflags2::{bitflags, BitFlags}; -use frame_support::{ - parameter_types, CloneNoBound, EqNoBound, PartialEqNoBound, RuntimeDebugNoBound, -}; +use frame_support::{parameter_types, CloneNoBound, DebugNoBound, EqNoBound, PartialEqNoBound}; use pallet_identity::{Data, IdentityInformationProvider}; use parachains_common::{impls::ToParentTreasury, DAYS}; use scale_info::TypeInfo; use sp_runtime::{ traits::{AccountIdConversion, Verify}, - RuntimeDebug, + Debug, }; use xcm::latest::prelude::BodyId; @@ -80,7 +78,7 @@ impl pallet_identity::Config for Runtime { /// in the `IdentityInfo` struct. #[bitflags] #[repr(u64)] -#[derive(Clone, Copy, PartialEq, Eq, RuntimeDebug)] +#[derive(Clone, Copy, PartialEq, Eq, Debug)] pub enum IdentityField { Display, Legal, @@ -103,7 +101,7 @@ pub enum IdentityField { EqNoBound, MaxEncodedLen, PartialEqNoBound, - RuntimeDebugNoBound, + DebugNoBound, TypeInfo, )] #[codec(mel_bound())] diff --git a/system-parachains/people/people-polkadot/src/weights/cumulus_pallet_parachain_system.rs b/system-parachains/people/people-polkadot/src/weights/cumulus_pallet_parachain_system.rs index 7979b05006..3e7b71a722 100644 --- a/system-parachains/people/people-polkadot/src/weights/cumulus_pallet_parachain_system.rs +++ b/system-parachains/people/people-polkadot/src/weights/cumulus_pallet_parachain_system.rs @@ -74,4 +74,15 @@ impl cumulus_pallet_parachain_system::WeightInfo for We .saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) } + fn block_weight_tx_extension_max_weight() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_stays_fraction_of_core() -> Weight { + Weight::zero() + } + + fn block_weight_tx_extension_full_core() -> Weight { + Weight::zero() + } // TODO @ggwpez rerun } diff --git a/system-parachains/people/people-polkadot/src/weights/pallet_assets.rs b/system-parachains/people/people-polkadot/src/weights/pallet_assets.rs index cffbb484ac..610f69d705 100644 --- a/system-parachains/people/people-polkadot/src/weights/pallet_assets.rs +++ b/system-parachains/people/people-polkadot/src/weights/pallet_assets.rs @@ -48,6 +48,9 @@ use core::marker::PhantomData; /// Weight functions for `pallet_assets`. pub struct WeightInfo(PhantomData); impl pallet_assets::WeightInfo for WeightInfo { + fn get_metadata() -> Weight { + Weight::from_parts(0, 10000) // TODO @ggwpez + } fn create() -> 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 b49ee9f4cf..d8f47ebdb3 100644 --- a/system-parachains/people/people-polkadot/src/xcm_config.rs +++ b/system-parachains/people/people-polkadot/src/xcm_config.rs @@ -74,13 +74,16 @@ parameter_types! { pub FeeAssetId: AssetId = AssetId(RelayLocation::get()); /// The base fee for the message delivery fees. pub const BaseDeliveryFee: u128 = CENTS.saturating_mul(3); + // TODO: replace this with DAP account (for collecting fees) #1137 pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); pub RelayTreasuryLocation: Location = (Parent, PalletInstance(polkadot_runtime_constants::TREASURY_PALLET_ID)).into(); + // TODO: replace this with DAP account (for collecting fees) #1137 pub RelayTreasuryPalletAccount: AccountId = LocationToAccountId::convert_location(&RelayTreasuryLocation::get()) .unwrap_or(TreasuryAccount::get()); + // TODO: replace this with DAP account (for collecting fees) #1137 pub StakingPot: AccountId = CollatorSelection::account_id(); } @@ -311,7 +314,6 @@ impl xcm_executor::Config for XcmConfig { type Trader = Traders; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; type PalletInstancesInfo = AllPalletsWithSystem; type MaxAssetsIntoHolding = MaxAssetsIntoHolding;