From b252e327376c390fc34920b026926e0f356eae6c Mon Sep 17 00:00:00 2001 From: eNDdy Date: Fri, 2 May 2025 18:34:35 -0600 Subject: [PATCH 01/31] first xcm test --- Cargo.lock | 2661 +++++++++++++---- Cargo.toml | 19 + emulated-test/Cargo.toml | 29 + .../chains/frequency-westend/Cargo.toml | 23 + .../chains/frequency-westend/src/genesis.rs | 69 + .../chains/frequency-westend/src/lib.rs | 52 + emulated-test/networks/westend/Cargo.toml | 14 + emulated-test/networks/westend/src/lib.rs | 30 + emulated-test/src/genesis.rs | 78 + emulated-test/src/lib.rs | 46 + .../test/frequency-westend/Cargo.toml | 23 + .../test/frequency-westend/src/lib.rs | 40 + .../test/frequency-westend/src/tests/mod.rs | 1 + .../frequency-westend/src/tests/teleport.rs | 24 + runtime/frequency/src/lib.rs | 12 +- runtime/frequency/src/xcm_config.rs | 4 +- 16 files changed, 2593 insertions(+), 532 deletions(-) create mode 100644 emulated-test/Cargo.toml create mode 100644 emulated-test/chains/frequency-westend/Cargo.toml create mode 100644 emulated-test/chains/frequency-westend/src/genesis.rs create mode 100644 emulated-test/chains/frequency-westend/src/lib.rs create mode 100644 emulated-test/networks/westend/Cargo.toml create mode 100644 emulated-test/networks/westend/src/lib.rs create mode 100644 emulated-test/src/genesis.rs create mode 100644 emulated-test/src/lib.rs create mode 100644 emulated-test/test/frequency-westend/Cargo.toml create mode 100644 emulated-test/test/frequency-westend/src/lib.rs create mode 100644 emulated-test/test/frequency-westend/src/tests/mod.rs create mode 100644 emulated-test/test/frequency-westend/src/tests/teleport.rs diff --git a/Cargo.lock b/Cargo.lock index 00379d6cf7..8fdeae0170 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -105,6 +105,156 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" +[[package]] +name = "alloy-core" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d8bcce99ad10fe02640cfaec1c6bc809b837c783c1d52906aa5af66e2a196f6" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-rlp", + "alloy-sol-types", +] + +[[package]] +name = "alloy-dyn-abi" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb8e762aefd39a397ff485bc86df673465c4ad3ec8819cc60833a8a3ba5cdc87" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-type-parser", + "alloy-sol-types", + "const-hex", + "itoa", + "serde", + "serde_json", + "winnow", +] + +[[package]] +name = "alloy-json-abi" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe6beff64ad0aa6ad1019a3db26fef565aefeb011736150ab73ed3366c3cfd1b" +dependencies = [ + "alloy-primitives", + "alloy-sol-type-parser", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-primitives" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c77490fe91a0ce933a1f219029521f20fc28c2c0ca95d53fa4da9c00b8d9d4e" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 2.0.1", + "foldhash", + "hashbrown 0.15.2", + "indexmap 2.9.0", + "itoa", + "k256", + "keccak-asm", + "paste", + "proptest", + "rand 0.8.5", + "ruint", + "rustc-hash 2.1.1", + "serde", + "sha3", + "tiny-keccak", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6c1d995bff8d011f7cd6c81820d51825e6e06d6db73914c1630ecf544d83d6" +dependencies = [ + "arrayvec 0.7.6", + "bytes", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10ae8e9a91d328ae954c22542415303919aabe976fe7a92eb06db1b68fd59f2" +dependencies = [ + "alloy-sol-macro-expander", + "alloy-sol-macro-input", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83ad5da86c127751bc607c174d6c9fe9b85ef0889a9ca0c641735d77d4f98f26" +dependencies = [ + "alloy-sol-macro-input", + "const-hex", + "heck 0.5.0", + "indexmap 2.9.0", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.100", + "syn-solidity", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3d30f0d3f9ba3b7686f3ff1de9ee312647aac705604417a2f40c604f409a9e" +dependencies = [ + "const-hex", + "dunce", + "heck 0.5.0", + "macro-string", + "proc-macro2", + "quote", + "syn 2.0.100", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-type-parser" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d162f8524adfdfb0e4bd0505c734c985f3e2474eb022af32eef0d52a4f3935c" +dependencies = [ + "serde", + "winnow", +] + +[[package]] +name = "alloy-sol-types" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d43d5e60466a440230c07761aa67671d4719d46f43be8ea6e7ed334d8db4a9ab" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-macro", + "const-hex", + "serde", +] + [[package]] name = "always-assert" version = "0.1.3" @@ -316,6 +466,24 @@ dependencies = [ "ark-std 0.5.0", ] +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.3.3", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.4.2" @@ -332,7 +500,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rustc_version", + "rustc_version 0.4.1", "zeroize", ] @@ -356,6 +524,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +dependencies = [ + "quote", + "syn 1.0.109", +] + [[package]] name = "ark-ff-asm" version = "0.4.2" @@ -376,6 +554,18 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +dependencies = [ + "num-bigint", + "num-traits", + "quote", + "syn 1.0.109", +] + [[package]] name = "ark-ff-macros" version = "0.4.2" @@ -430,6 +620,16 @@ dependencies = [ "hashbrown 0.15.2", ] +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +dependencies = [ + "ark-std 0.3.0", + "digest 0.9.0", +] + [[package]] name = "ark-serialize" version = "0.4.2" @@ -477,6 +677,16 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + [[package]] name = "ark-std" version = "0.4.0" @@ -630,6 +840,170 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "asset-hub-westend-emulated-chain" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "asset-hub-westend-runtime", + "bp-bridge-hub-westend", + "cumulus-primitives-core", + "emulated-integration-tests-common", + "frame-support", + "parachains-common", + "sp-core", + "sp-keyring", + "staging-xcm", + "staging-xcm-builder", + "testnet-parachains-constants", + "westend-emulated-chain", +] + +[[package]] +name = "asset-hub-westend-runtime" +version = "0.29.2" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "assets-common", + "bp-asset-hub-rococo", + "bp-asset-hub-westend", + "bp-bridge-hub-rococo", + "bp-bridge-hub-westend", + "cumulus-pallet-aura-ext", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-weight-reclaim", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-aura", + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-metadata-hash-extension", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-asset-conversion", + "pallet-asset-conversion-ops", + "pallet-asset-conversion-tx-payment", + "pallet-asset-rewards", + "pallet-assets", + "pallet-assets-freezer", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-message-queue", + "pallet-migrations", + "pallet-multisig", + "pallet-nft-fractionalization", + "pallet-nfts", + "pallet-nfts-runtime-api", + "pallet-proxy", + "pallet-revive", + "pallet-session", + "pallet-state-trie-migration", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-uniques", + "pallet-utility", + "pallet-xcm", + "pallet-xcm-benchmarks", + "pallet-xcm-bridge-hub-router", + "parachains-common", + "parity-scale-codec", + "polkadot-parachain-primitives", + "polkadot-runtime-common", + "primitive-types 0.13.1", + "scale-info", + "serde_json", + "snowbridge-inbound-queue-primitives", + "snowbridge-outbound-queue-primitives", + "snowbridge-pallet-system-frontend", + "snowbridge-runtime-common", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-keyring", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", + "testnet-parachains-constants", + "westend-runtime-constants", + "xcm-runtime-apis", +] + +[[package]] +name = "asset-test-utils" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "cumulus-pallet-parachain-system", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "frame-support", + "frame-system", + "pallet-asset-conversion", + "pallet-assets", + "pallet-balances", + "pallet-collator-selection", + "pallet-session", + "pallet-timestamp", + "pallet-xcm", + "pallet-xcm-bridge-hub-router", + "parachains-common", + "parachains-runtimes-test-utils", + "parity-scale-codec", + "sp-io", + "sp-runtime", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "xcm-runtime-apis", +] + +[[package]] +name = "assets-common" +version = "0.21.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "impl-trait-for-tuples", + "pallet-asset-conversion", + "pallet-assets", + "pallet-xcm", + "parachains-common", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-runtime", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "tracing", +] + [[package]] name = "async-channel" version = "1.9.0" @@ -890,6 +1264,17 @@ dependencies = [ "url", ] +[[package]] +name = "auto_impl" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "autocfg" version = "1.4.0" @@ -979,7 +1364,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "hash-db", "log", @@ -1034,15 +1419,30 @@ dependencies = [ ] [[package]] -name = "bip39" -version = "2.1.0" +name = "bip39" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" +dependencies = [ + "bitcoin_hashes 0.13.0", + "serde", + "unicode-normalization", +] + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" -dependencies = [ - "bitcoin_hashes 0.13.0", - "serde", - "unicode-normalization", -] +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitcoin-internals" @@ -1219,10 +1619,216 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "bp-asset-hub-rococo" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-bridge-hub-cumulus", + "bp-messages", + "bp-runtime", + "bp-xcm-bridge-hub-router", + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-core", + "staging-xcm", + "testnet-parachains-constants", +] + +[[package]] +name = "bp-asset-hub-westend" +version = "0.16.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-bridge-hub-cumulus", + "bp-messages", + "bp-runtime", + "bp-xcm-bridge-hub-router", + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-core", + "staging-xcm", + "testnet-parachains-constants", +] + +[[package]] +name = "bp-bridge-hub-cumulus" +version = "0.21.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-messages", + "bp-polkadot-core", + "bp-runtime", + "frame-support", + "frame-system", + "polkadot-primitives", + "sp-api", + "sp-std", +] + +[[package]] +name = "bp-bridge-hub-rococo" +version = "0.21.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-bridge-hub-cumulus", + "bp-messages", + "bp-runtime", + "bp-xcm-bridge-hub", + "frame-support", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-bridge-hub-westend" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-bridge-hub-cumulus", + "bp-messages", + "bp-runtime", + "bp-xcm-bridge-hub", + "frame-support", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-header-chain" +version = "0.20.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-runtime", + "finality-grandpa", + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-consensus-grandpa", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-messages" +version = "0.20.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-header-chain", + "bp-runtime", + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-std", +] + +[[package]] +name = "bp-parachains" +version = "0.20.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-header-chain", + "bp-polkadot-core", + "bp-runtime", + "frame-support", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-polkadot-core" +version = "0.20.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-messages", + "bp-runtime", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-relayers" +version = "0.20.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-header-chain", + "bp-messages", + "bp-parachains", + "bp-runtime", + "frame-support", + "frame-system", + "pallet-utility", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-runtime" +version = "0.20.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "frame-support", + "frame-system", + "hash-db", + "impl-trait-for-tuples", + "log", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "trie-db", +] + +[[package]] +name = "bp-xcm-bridge-hub" +version = "0.6.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-messages", + "bp-runtime", + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-std", + "staging-xcm", +] + [[package]] name = "bp-xcm-bridge-hub-router" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "scale-info", @@ -1285,6 +1891,9 @@ name = "bytes" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +dependencies = [ + "serde", +] [[package]] name = "bzip2-sys" @@ -1452,18 +2061,6 @@ dependencies = [ "unsigned-varint 0.7.2", ] -[[package]] -name = "cid" -version = "0.10.1" -source = "git+https://github.com/multiformats/rust-cid?tag=v0.10.1#1df4e3fe0f6bcb8845655d2ccefd9da5ef81a1cd" -dependencies = [ - "core2", - "multibase", - "multihash 0.18.1", - "serde", - "unsigned-varint 0.7.2", -] - [[package]] name = "cid" version = "0.11.1" @@ -1471,6 +2068,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" dependencies = [ "core2", + "multibase", "multihash 0.19.3", "unsigned-varint 0.8.0", ] @@ -2056,7 +2654,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "clap", "parity-scale-codec", @@ -2073,7 +2671,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -2096,7 +2694,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "cumulus-client-collator", @@ -2143,7 +2741,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -2173,7 +2771,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "anyhow", "async-trait", @@ -2188,7 +2786,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -2214,7 +2812,7 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2234,7 +2832,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2260,7 +2858,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.23.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -2297,7 +2895,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -2314,7 +2912,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2349,7 +2947,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -2360,7 +2958,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -2373,7 +2971,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-weight-reclaim" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cumulus-primitives-storage-weight-reclaim", "derive-where", @@ -2392,7 +2990,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.19.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2407,7 +3005,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -2432,7 +3030,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "sp-api", "sp-consensus-aura", @@ -2441,7 +3039,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.18.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2457,7 +3055,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.18.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2471,7 +3069,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "sp-externalities", "sp-runtime-interface", @@ -2481,7 +3079,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -2498,7 +3096,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -2508,7 +3106,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2525,7 +3123,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.23.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2549,7 +3147,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2568,7 +3166,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.23.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "async-trait", @@ -2602,7 +3200,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2642,7 +3240,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2663,7 +3261,7 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version", + "rustc_version 0.4.1", "subtle 2.6.1", "zeroize", ] @@ -2920,7 +3518,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version", + "rustc_version 0.4.1", "syn 2.0.100", ] @@ -2930,7 +3528,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "derive_more-impl", + "derive_more-impl 1.0.0", +] + +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl 2.0.1", ] [[package]] @@ -2945,6 +3552,18 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "unicode-xid", +] + [[package]] name = "diff" version = "0.1.13" @@ -3088,6 +3707,12 @@ version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "dyn-clonable" version = "0.9.2" @@ -3208,6 +3833,42 @@ dependencies = [ "zeroize", ] +[[package]] +name = "emulated-integration-tests-common" +version = "20.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "asset-test-utils", + "bp-messages", + "bp-xcm-bridge-hub", + "cumulus-pallet-parachain-system", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "frame-support", + "hex-literal", + "pallet-assets", + "pallet-balances", + "pallet-bridge-messages", + "pallet-message-queue", + "pallet-xcm", + "pallet-xcm-bridge-hub", + "parachains-common", + "parity-scale-codec", + "paste", + "polkadot-parachain-primitives", + "polkadot-primitives", + "polkadot-runtime-parachains", + "sc-consensus-grandpa", + "sp-authority-discovery", + "sp-consensus-babe", + "sp-consensus-beefy", + "sp-core", + "sp-keyring", + "sp-runtime", + "staging-xcm", + "xcm-emulator", +] + [[package]] name = "encode_unicode" version = "1.0.0" @@ -3335,6 +3996,47 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "ethabi-decode" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52029c4087f9f01108f851d0d02df9c21feb5660a19713466724b7f95bd2d773" +dependencies = [ + "ethereum-types", + "tiny-keccak", +] + +[[package]] +name = "ethbloom" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c321610643004cf908ec0f5f2aa0d8f1f8e14b540562a2887a1111ff1ecbf7b" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec 0.7.1", + "impl-rlp", + "impl-serde 0.5.0", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ab15ed80916029f878e0267c3a9f92b67df55e79af370bf66199059ae2b4ee3" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec 0.7.1", + "impl-rlp", + "impl-serde 0.5.0", + "primitive-types 0.13.1", + "scale-info", + "uint 0.10.0", +] + [[package]] name = "event-listener" version = "2.5.3" @@ -3424,6 +4126,28 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec 0.7.6", + "auto_impl", + "bytes", +] + +[[package]] +name = "fastrlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" +dependencies = [ + "arrayvec 0.7.6", + "auto_impl", + "bytes", +] + [[package]] name = "fatality" version = "0.1.1" @@ -3561,7 +4285,7 @@ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "fork-tree" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", ] @@ -3594,7 +4318,7 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "frame-support-procedural", @@ -3618,7 +4342,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "47.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "Inflector", "array-bytes", @@ -3692,7 +4416,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "16.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -3703,7 +4427,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -3719,7 +4443,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "aquamarine", "frame-support", @@ -3761,7 +4485,7 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "const-hex", @@ -3777,7 +4501,7 @@ dependencies = [ [[package]] name = "frame-support" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "aquamarine", "array-bytes", @@ -3818,7 +4542,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "33.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "Inflector", "cfg-expr", @@ -3838,7 +4562,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.3.0", @@ -3850,7 +4574,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "proc-macro2", "quote", @@ -3860,7 +4584,7 @@ dependencies = [ [[package]] name = "frame-system" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cfg-if", "docify", @@ -3879,7 +4603,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -3893,7 +4617,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "parity-scale-codec", @@ -3903,7 +4627,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.46.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "parity-scale-codec", @@ -3973,6 +4697,23 @@ dependencies = [ "substrate-build-script-utils", ] +[[package]] +name = "frequency-emulated-chain" +version = "0.0.0" +dependencies = [ + "cumulus-primitives-core", + "emulated-integration-tests-common", + "frame-support", + "frequency-runtime", + "parachains-common", + "polkadot-primitives", + "sp-core", + "sp-keyring", + "sp-runtime", + "staging-xcm", + "xcm-emulator", +] + [[package]] name = "frequency-runtime" version = "0.0.0" @@ -4158,6 +4899,24 @@ dependencies = [ "tokio", ] +[[package]] +name = "frequency-westend-integration-tests" +version = "0.0.0" +dependencies = [ + "asset-test-utils", + "emulated-integration-tests-common", + "frame-support", + "pallet-balances", + "pallet-message-queue", + "pallet-xcm", + "parachains-common", + "sp-runtime", + "staging-xcm", + "staging-xcm-executor", + "westend-runtime", + "westend-system-emulated-network", +] + [[package]] name = "fs-err" version = "2.11.0" @@ -4298,7 +5057,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.23.26", + "rustls", "rustls-pki-types", ] @@ -4594,6 +5353,7 @@ dependencies = [ "allocator-api2", "equivalent", "foldhash", + "serde", ] [[package]] @@ -4640,6 +5400,9 @@ name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] [[package]] name = "hex-conservative" @@ -4888,7 +5651,7 @@ dependencies = [ "hyper 1.6.0", "hyper-util", "log", - "rustls 0.23.26", + "rustls", "rustls-native-certs", "rustls-pki-types", "tokio", @@ -5137,6 +5900,15 @@ dependencies = [ "xmltree", ] +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + [[package]] name = "impl-codec" version = "0.7.1" @@ -5157,6 +5929,15 @@ dependencies = [ "uint 0.10.0", ] +[[package]] +name = "impl-rlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ed8ad1f3877f7e775b8cbf30ed1bd3209a95401817f19a0eb4402d13f8cf90" +dependencies = [ + "rlp 0.6.1", +] + [[package]] name = "impl-serde" version = "0.4.0" @@ -5224,6 +6005,7 @@ checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", "hashbrown 0.15.2", + "serde", ] [[package]] @@ -5464,7 +6246,7 @@ dependencies = [ "http 1.3.1", "jsonrpsee-core", "pin-project", - "rustls 0.23.26", + "rustls", "rustls-pki-types", "rustls-platform-verifier", "soketto 0.8.1", @@ -5590,13 +6372,23 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "keccak-asm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + [[package]] name = "keccak-hash" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e1b8590eb6148af2ea2d75f38e7d29f5ca970d5a4df456b3ef19b8b415d0264" dependencies = [ - "primitive-types", + "primitive-types 0.13.1", "tiny-keccak", ] @@ -5655,6 +6447,9 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin 0.9.8", +] [[package]] name = "lazycell" @@ -5981,7 +6776,7 @@ dependencies = [ "quinn", "rand 0.8.5", "ring 0.17.14", - "rustls 0.23.26", + "rustls", "socket2 0.5.9", "thiserror 1.0.69", "tokio", @@ -6071,9 +6866,9 @@ dependencies = [ "futures-rustls", "libp2p-core", "libp2p-identity", - "rcgen 0.11.3", + "rcgen", "ring 0.17.14", - "rustls 0.23.26", + "rustls", "rustls-webpki 0.101.7", "thiserror 1.0.69", "x509-parser 0.16.0", @@ -6294,18 +7089,17 @@ checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "litep2p" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa3aa5628ae2b2283aa01dfa58947f1926aedba0160dd25041e2cd4bc71534c9" +checksum = "d71056c23c896bb0e18113b2d2f1989be95135e6bdeedb0b757422ee21a073eb" dependencies = [ "async-trait", "bs58", "bytes", - "cid 0.10.1", + "cid 0.11.1", "ed25519-dalek", "futures", "futures-timer", - "hex-literal", "hickory-resolver", "indexmap 2.9.0", "libc", @@ -6315,12 +7109,9 @@ dependencies = [ "network-interface", "parking_lot 0.12.3", "pin-project", - "prost 0.12.6", + "prost 0.13.5", "prost-build", "rand 0.8.5", - "rcgen 0.10.0", - "ring 0.16.20", - "rustls 0.20.9", "serde", "sha2 0.10.8", "simple-dns", @@ -6411,6 +7202,17 @@ dependencies = [ "libc", ] +[[package]] +name = "macro-string" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "macro_magic" version = "0.5.1" @@ -6609,7 +7411,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "log", @@ -6628,7 +7430,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -6738,23 +7540,6 @@ dependencies = [ "unsigned-varint 0.7.2", ] -[[package]] -name = "multihash" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" -dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive", - "sha2 0.10.8", - "sha3", - "unsigned-varint 0.7.2", -] - [[package]] name = "multihash" version = "0.19.3" @@ -6895,9 +7680,9 @@ dependencies = [ [[package]] name = "network-interface" -version = "1.1.4" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1" +checksum = "c3329f515506e4a2de3aa6e07027a6758e22e0f0e8eaf64fa47261cec2282602" dependencies = [ "cc", "libc", @@ -7206,7 +7991,7 @@ dependencies = [ [[package]] name = "pallet-asset-conversion" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7221,24 +8006,75 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-asset-conversion-ops" +version = "0.8.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-asset-conversion", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", +] + +[[package]] +name = "pallet-asset-conversion-tx-payment" +version = "22.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-asset-conversion", + "pallet-transaction-payment", + "parity-scale-codec", + "scale-info", + "sp-runtime", +] + [[package]] name = "pallet-asset-rate" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "pallet-asset-rewards" +version = "0.2.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", + "sp-api", + "sp-arithmetic", "sp-core", + "sp-io", "sp-runtime", + "sp-std", ] [[package]] name = "pallet-asset-tx-payment" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7255,7 +8091,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7268,10 +8104,22 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-assets-freezer" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "log", + "pallet-assets", + "parity-scale-codec", + "polkadot-sdk-frame", + "scale-info", +] + [[package]] name = "pallet-aura" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "frame-system", @@ -7287,7 +8135,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "frame-system", @@ -7302,7 +8150,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "frame-system", @@ -7315,7 +8163,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7338,7 +8186,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "aquamarine", "docify", @@ -7359,7 +8207,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "41.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-benchmarking", @@ -7375,7 +8223,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "41.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "frame-system", @@ -7394,7 +8242,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -7419,7 +8267,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7433,10 +8281,29 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-bridge-messages" +version = "0.20.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-header-chain", + "bp-messages", + "bp-runtime", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", + "sp-trie", +] + [[package]] name = "pallet-broker" version = "0.19.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bitvec", "frame-benchmarking", @@ -7483,7 +8350,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7501,7 +8368,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7520,7 +8387,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-benchmarking", @@ -7537,7 +8404,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "assert_matches", "frame-benchmarking", @@ -7553,7 +8420,7 @@ dependencies = [ [[package]] name = "pallet-delegated-staking" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "frame-system", @@ -7568,7 +8435,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7585,7 +8452,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7607,7 +8474,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7620,7 +8487,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "41.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7638,7 +8505,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-benchmarking", @@ -7709,7 +8576,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7779,7 +8646,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "enumflags2", "frame-benchmarking", @@ -7795,7 +8662,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7814,7 +8681,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7829,7 +8696,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7845,7 +8712,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "43.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "environmental", "frame-benchmarking", @@ -7912,7 +8779,7 @@ dependencies = [ [[package]] name = "pallet-meta-tx" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-benchmarking", @@ -7930,7 +8797,7 @@ dependencies = [ [[package]] name = "pallet-migrations" version = "10.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-benchmarking", @@ -7949,7 +8816,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "log", "parity-scale-codec", @@ -8019,7 +8886,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "log", "parity-scale-codec", @@ -8027,10 +8894,52 @@ dependencies = [ "scale-info", ] +[[package]] +name = "pallet-nft-fractionalization" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-assets", + "pallet-nfts", + "parity-scale-codec", + "scale-info", + "sp-runtime", +] + +[[package]] +name = "pallet-nfts" +version = "34.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "enumflags2", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", +] + +[[package]] +name = "pallet-nfts-runtime-api" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "parity-scale-codec", + "sp-api", +] + [[package]] name = "pallet-nis" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -8040,7 +8949,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "frame-system", @@ -8058,7 +8967,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8078,7 +8987,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -8088,7 +8997,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "frame-system", @@ -8103,7 +9012,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8126,7 +9035,7 @@ dependencies = [ [[package]] name = "pallet-parameters" version = "0.11.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-benchmarking", @@ -8167,7 +9076,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -8183,7 +9092,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -8193,57 +9102,139 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", +] + +[[package]] +name = "pallet-recovery" +version = "40.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", +] + +[[package]] +name = "pallet-referenda" +version = "40.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "assert_matches", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic", + "sp-io", + "sp-runtime", +] + +[[package]] +name = "pallet-revive" +version = "0.5.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ + "alloy-core", + "derive_more 0.99.20", + "environmental", + "ethabi-decode", + "ethereum-types", "frame-benchmarking", "frame-support", "frame-system", + "hex-literal", "impl-trait-for-tuples", "log", + "num-bigint", + "num-integer", + "num-traits", + "pallet-revive-fixtures", + "pallet-revive-proc-macro", + "pallet-revive-uapi", + "pallet-transaction-payment", "parity-scale-codec", + "paste", + "polkavm 0.21.0", + "polkavm-common 0.21.0", + "rand 0.8.5", + "ripemd", + "rlp 0.6.1", "scale-info", + "serde", + "sp-api", "sp-arithmetic", + "sp-consensus-aura", + "sp-consensus-babe", + "sp-consensus-slots", "sp-core", "sp-io", "sp-runtime", + "staging-xcm", + "staging-xcm-builder", + "substrate-bn", + "subxt-signer", ] [[package]] -name = "pallet-recovery" -version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +name = "pallet-revive-fixtures" +version = "0.3.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", + "anyhow", + "cargo_metadata", + "pallet-revive-uapi", + "polkavm-linker 0.21.0", + "sp-core", "sp-io", - "sp-runtime", + "toml 0.8.20", ] [[package]] -name = "pallet-referenda" -version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +name = "pallet-revive-proc-macro" +version = "0.3.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ - "assert_matches", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "pallet-revive-uapi" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bitflags 1.3.2", + "pallet-revive-proc-macro", "parity-scale-codec", + "polkavm-derive 0.21.0", "scale-info", - "serde", - "sp-arithmetic", - "sp-io", - "sp-runtime", ] [[package]] name = "pallet-root-testing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "frame-system", @@ -8257,7 +9248,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-benchmarking", @@ -8327,7 +9318,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "frame-system", @@ -8348,7 +9339,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -8364,7 +9355,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -8381,7 +9372,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8403,7 +9394,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "22.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "log", "sp-arithmetic", @@ -8412,7 +9403,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "sp-api", @@ -8422,7 +9413,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "44.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -8488,7 +9479,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-benchmarking", @@ -8524,7 +9515,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-benchmarking", @@ -8543,7 +9534,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -8561,7 +9552,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -8577,7 +9568,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -8593,7 +9584,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -8626,7 +9617,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-benchmarking", @@ -8642,10 +9633,24 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-uniques" +version = "40.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", +] + [[package]] name = "pallet-utility" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -8660,7 +9665,7 @@ dependencies = [ [[package]] name = "pallet-verify-signature" version = "0.3.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -8676,7 +9681,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -8690,7 +9695,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -8700,7 +9705,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "19.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -8723,7 +9728,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-benchmarking", "frame-support", @@ -8737,10 +9742,51 @@ dependencies = [ "staging-xcm-executor", ] +[[package]] +name = "pallet-xcm-bridge-hub" +version = "0.16.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-messages", + "bp-runtime", + "bp-xcm-bridge-hub", + "frame-support", + "frame-system", + "log", + "pallet-bridge-messages", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", +] + +[[package]] +name = "pallet-xcm-bridge-hub-router" +version = "0.18.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-xcm-bridge-hub-router", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", +] + [[package]] name = "parachains-common" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -8766,6 +9812,37 @@ dependencies = [ "staging-xcm-executor", ] +[[package]] +name = "parachains-runtimes-test-utils" +version = "22.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "cumulus-pallet-parachain-system", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-test-relay-sproof-builder", + "frame-support", + "frame-system", + "pallet-balances", + "pallet-collator-selection", + "pallet-session", + "pallet-timestamp", + "pallet-xcm", + "parachains-common", + "parity-scale-codec", + "polkadot-parachain-primitives", + "sp-consensus-aura", + "sp-core", + "sp-io", + "sp-runtime", + "sp-tracing", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-executor", + "xcm-runtime-apis", +] + [[package]] name = "parity-bip39" version = "2.0.1" @@ -8779,6 +9856,12 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "parity-bytes" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67" + [[package]] name = "parity-db" version = "0.4.13" @@ -8929,15 +10012,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - [[package]] name = "pem" version = "3.0.5" @@ -9123,7 +10197,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "polkadot-approval-distribution" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "futures-timer", @@ -9141,7 +10215,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "futures-timer", @@ -9156,7 +10230,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "fatality", "futures", @@ -9179,7 +10253,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "fatality", @@ -9212,7 +10286,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "clap", "frame-benchmarking-cli", @@ -9236,7 +10310,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bitvec", "fatality", @@ -9259,7 +10333,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "scale-info", @@ -9270,7 +10344,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "fatality", "futures", @@ -9292,7 +10366,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -9306,7 +10380,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "futures-timer", @@ -9327,7 +10401,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "always-assert", "async-trait", @@ -9350,7 +10424,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "parity-scale-codec", @@ -9368,7 +10442,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "bitvec", @@ -9400,7 +10474,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting-parallel" version = "0.5.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "futures", @@ -9424,7 +10498,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bitvec", "futures", @@ -9443,7 +10517,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bitvec", "fatality", @@ -9464,7 +10538,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "polkadot-node-subsystem", @@ -9479,7 +10553,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "futures", @@ -9501,7 +10575,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "polkadot-node-metrics", @@ -9515,7 +10589,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "futures-timer", @@ -9531,7 +10605,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "fatality", "futures", @@ -9549,7 +10623,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "futures", @@ -9566,7 +10640,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "fatality", "futures", @@ -9580,7 +10654,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bitvec", "fatality", @@ -9597,7 +10671,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "always-assert", "array-bytes", @@ -9625,7 +10699,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "polkadot-node-subsystem", @@ -9638,7 +10712,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cpu-time", "futures", @@ -9664,7 +10738,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "polkadot-node-metrics", @@ -9679,7 +10753,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bs58", "futures", @@ -9696,7 +10770,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -9721,7 +10795,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bitvec", "bounded-vec", @@ -9745,7 +10819,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "polkadot-node-subsystem-types", "polkadot-overseer", @@ -9754,7 +10828,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "derive_more 0.99.20", @@ -9782,7 +10856,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "fatality", "futures", @@ -9813,7 +10887,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "futures", @@ -9833,7 +10907,7 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "16.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bounded-collections", "derive_more 0.99.20", @@ -9849,7 +10923,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "18.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bitvec", "hex-literal", @@ -9877,7 +10951,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -9910,7 +10984,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "19.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bitvec", "frame-benchmarking", @@ -9960,7 +11034,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bs58", "frame-benchmarking", @@ -9972,7 +11046,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "19.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -10028,7 +11102,7 @@ dependencies = [ [[package]] name = "polkadot-sdk-frame" version = "0.9.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-benchmarking", @@ -10063,7 +11137,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "frame-benchmarking", @@ -10171,7 +11245,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -10194,7 +11268,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -10209,9 +11283,22 @@ checksum = "dd044ab1d3b11567ab6b98ca71259a992b4034220d5972988a0e96518e5d343d" dependencies = [ "libc", "log", - "polkavm-assembler", - "polkavm-common", - "polkavm-linux-raw", + "polkavm-assembler 0.18.0", + "polkavm-common 0.18.0", + "polkavm-linux-raw 0.18.0", +] + +[[package]] +name = "polkavm" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd34e2f74206fff33482ae1718e275f11365ef8c4de7f0e69217f8845303867" +dependencies = [ + "libc", + "log", + "polkavm-assembler 0.21.0", + "polkavm-common 0.21.0", + "polkavm-linux-raw 0.21.0", ] [[package]] @@ -10223,6 +11310,15 @@ dependencies = [ "log", ] +[[package]] +name = "polkavm-assembler" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f512bc80cb10439391a7c13a9eb2d37cf66b7305e7df0a06d662eff4f5b07625" +dependencies = [ + "log", +] + [[package]] name = "polkavm-common" version = "0.18.0" @@ -10230,7 +11326,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31ff33982a807d8567645d4784b9b5d7ab87bcb494f534a57cadd9012688e102" dependencies = [ "log", - "polkavm-assembler", + "polkavm-assembler 0.18.0", +] + +[[package]] +name = "polkavm-common" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c16b809cfd398f861261c045a8745e6c78b71ea7e0d3ef6f7cc553eb27bc17e" +dependencies = [ + "blake3", + "log", + "polkavm-assembler 0.21.0", ] [[package]] @@ -10239,7 +11346,16 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2eb703f3b6404c13228402e98a5eae063fd16b8f58afe334073ec105ee4117e" dependencies = [ - "polkavm-derive-impl-macro", + "polkavm-derive-impl-macro 0.18.0", +] + +[[package]] +name = "polkavm-derive" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47239245f87329541932c0d7fec750a66a75b13aa87dfe4fbfd637bab86ad387" +dependencies = [ + "polkavm-derive-impl-macro 0.21.0", ] [[package]] @@ -10248,7 +11364,19 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f2116a92e6e96220a398930f4c8a6cda1264206f3e2034fc9982bfd93f261f7" dependencies = [ - "polkavm-common", + "polkavm-common 0.18.0", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24fd6c6215450c3e57511df5c38a82eb4bde208de15ee15046ac33852f3c3eaa" +dependencies = [ + "polkavm-common 0.21.0", "proc-macro2", "quote", "syn 2.0.100", @@ -10260,7 +11388,17 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c16669ddc7433e34c1007d31080b80901e3e8e523cb9d4b441c3910cf9294b" dependencies = [ - "polkavm-derive-impl", + "polkavm-derive-impl 0.18.1", + "syn 2.0.100", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36837f6b7edfd6f4498f8d25d81da16cf03bd6992c3e56f3d477dfc90f4fefca" +dependencies = [ + "polkavm-derive-impl 0.21.0", "syn 2.0.100", ] @@ -10275,7 +11413,23 @@ dependencies = [ "hashbrown 0.14.5", "log", "object 0.36.7", - "polkavm-common", + "polkavm-common 0.18.0", + "regalloc2 0.9.3", + "rustc-demangle", +] + +[[package]] +name = "polkavm-linker" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23bc764986c4a63f9ab9890c3f4eb9b4c13b6ff80d79685bd48ade147234aab4" +dependencies = [ + "dirs", + "gimli 0.31.1", + "hashbrown 0.14.5", + "log", + "object 0.36.7", + "polkavm-common 0.21.0", "regalloc2 0.9.3", "rustc-demangle", ] @@ -10286,6 +11440,12 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23eff02c070c70f31878a3d915e88a914ecf3e153741e2fb572dde28cce20fde" +[[package]] +name = "polkavm-linux-raw" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be6cd1d48c5e7814d287a3e12a339386a5dfa2f3ac72f932335f4cf56467f1b3" + [[package]] name = "polling" version = "2.8.0" @@ -10425,6 +11585,17 @@ dependencies = [ "elliptic-curve", ] +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec 0.6.0", + "uint 0.9.5", +] + [[package]] name = "primitive-types" version = "0.13.1" @@ -10432,8 +11603,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" dependencies = [ "fixed-hash", - "impl-codec", + "impl-codec 0.7.1", "impl-num-traits", + "impl-rlp", "impl-serde 0.5.0", "scale-info", "uint 0.10.0", @@ -10583,6 +11755,8 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ + "bit-set", + "bit-vec", "bitflags 2.9.0", "lazy_static", "num-traits", @@ -10590,6 +11764,8 @@ dependencies = [ "rand_chacha 0.3.1", "rand_xorshift", "regex-syntax 0.8.5", + "rusty-fork", + "tempfile", "unarray", ] @@ -10698,6 +11874,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + [[package]] name = "quick-protobuf" version = "0.8.1" @@ -10733,7 +11915,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.26", + "rustls", "socket2 0.5.9", "thiserror 2.0.12", "tokio", @@ -10752,7 +11934,7 @@ dependencies = [ "rand 0.9.1", "ring 0.17.14", "rustc-hash 2.1.1", - "rustls 0.23.26", + "rustls", "rustls-pki-types", "slab", "thiserror 2.0.12", @@ -10805,6 +11987,7 @@ dependencies = [ "libc", "rand_chacha 0.3.1", "rand_core 0.6.4", + "serde", ] [[package]] @@ -10918,25 +12101,13 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "rcgen" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" -dependencies = [ - "pem 1.1.1", - "ring 0.16.20", - "time", - "yasna", -] - [[package]] name = "rcgen" version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6" dependencies = [ - "pem 3.0.5", + "pem", "ring 0.16.20", "time", "yasna", @@ -11141,6 +12312,26 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rustc-hex", +] + +[[package]] +name = "rlp" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" +dependencies = [ + "bytes", + "rustc-hex", +] + [[package]] name = "rocksdb" version = "0.21.0" @@ -11154,7 +12345,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "22.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "binary-merkle-tree", "bitvec", @@ -11252,7 +12443,7 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "polkadot-primitives", @@ -11301,13 +12492,67 @@ dependencies = [ ] [[package]] -name = "rtoolbox" -version = "0.0.3" +name = "rtoolbox" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "ruint" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78a46eb779843b2c4f21fac5773e25d6d5b7c8f0922876c91541790d2ca27eef" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp 0.3.1", + "fastrlp 0.4.0", + "num-bigint", + "num-integer", + "num-traits", + "parity-scale-codec", + "primitive-types 0.12.2", + "proptest", + "rand 0.8.5", + "rand 0.9.1", + "rlp 0.5.2", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "runtime-integration-tests" +version = "0.0.0" dependencies = [ - "libc", - "windows-sys 0.52.0", + "asset-hub-westend-emulated-chain", + "emulated-integration-tests-common", + "frequency-runtime", + "parachains-common", + "polkadot-primitives", + "sc-consensus-grandpa", + "sp-authority-discovery", + "sp-consensus-babe", + "sp-consensus-beefy", + "sp-core", + "sp-runtime", + "westend-emulated-chain", + "westend-runtime", + "westend-runtime-constants", + "xcm-emulator", ] [[package]] @@ -11334,6 +12579,15 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + [[package]] name = "rustc_version" version = "0.4.1" @@ -11406,17 +12660,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "rustls" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" -dependencies = [ - "ring 0.16.20", - "sct", - "webpki", -] - [[package]] name = "rustls" version = "0.23.26" @@ -11464,7 +12707,7 @@ dependencies = [ "jni", "log", "once_cell", - "rustls 0.23.26", + "rustls", "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki 0.103.1", @@ -11507,6 +12750,18 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + [[package]] name = "ruzstd" version = "0.4.0" @@ -11575,7 +12830,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "log", "sp-core", @@ -11586,7 +12841,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "futures", @@ -11614,7 +12869,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "log", @@ -11635,7 +12890,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "sp-api", @@ -11650,7 +12905,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "docify", @@ -11676,7 +12931,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -11687,7 +12942,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.51.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "chrono", @@ -11729,7 +12984,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "fnv", "futures", @@ -11755,7 +13010,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.46.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "hash-db", "kvdb", @@ -11781,7 +13036,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "futures", @@ -11804,7 +13059,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "futures", @@ -11833,7 +13088,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "fork-tree", @@ -11869,7 +13124,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "jsonrpsee", @@ -11891,7 +13146,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -11925,7 +13180,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "jsonrpsee", @@ -11945,7 +13200,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "fork-tree", "parity-scale-codec", @@ -11958,7 +13213,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "ahash", "array-bytes", @@ -12002,7 +13257,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "finality-grandpa", "futures", @@ -12022,7 +13277,7 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "assert_matches", "async-trait", @@ -12057,7 +13312,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "futures", @@ -12080,7 +13335,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.42.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -12103,9 +13358,9 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ - "polkavm", + "polkavm 0.18.0", "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface", @@ -12116,10 +13371,10 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "log", - "polkavm", + "polkavm 0.18.0", "sc-executor-common", "sp-wasm-interface", ] @@ -12127,7 +13382,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "anyhow", "log", @@ -12143,7 +13398,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "console", "futures", @@ -12159,7 +13414,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "parking_lot 0.12.3", @@ -12173,7 +13428,7 @@ dependencies = [ [[package]] name = "sc-mixnet" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "arrayvec 0.7.6", @@ -12200,8 +13455,8 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +version = "0.49.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -12251,7 +13506,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -12261,7 +13516,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "ahash", "futures", @@ -12280,7 +13535,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -12301,7 +13556,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -12336,7 +13591,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "futures", @@ -12355,7 +13610,7 @@ dependencies = [ [[package]] name = "sc-network-types" version = "0.15.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bs58", "bytes", @@ -12374,7 +13629,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bytes", "fnv", @@ -12389,7 +13644,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "rand 0.8.5", - "rustls 0.23.26", + "rustls", "sc-client-api", "sc-network", "sc-network-types", @@ -12408,7 +13663,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -12417,7 +13672,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "jsonrpsee", @@ -12449,7 +13704,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12469,7 +13724,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "dyn-clone", "forwarded-header-value", @@ -12492,8 +13747,8 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" -version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +version = "0.49.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "futures", @@ -12525,7 +13780,7 @@ dependencies = [ [[package]] name = "sc-runtime-utilities" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "sc-executor", @@ -12540,7 +13795,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "directories", @@ -12604,7 +13859,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "log", "parity-scale-codec", @@ -12615,7 +13870,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.24.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "clap", "fs4", @@ -12628,7 +13883,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12647,7 +13902,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "derive_more 0.99.20", "futures", @@ -12667,7 +13922,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "28.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "chrono", "futures", @@ -12686,7 +13941,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "chrono", "console", @@ -12713,8 +13968,8 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +version = "11.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -12725,7 +13980,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "futures", @@ -12757,7 +14012,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "futures", @@ -12774,7 +14029,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "18.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-channel 1.9.0", "futures", @@ -12818,7 +14073,7 @@ checksum = "f8ae9cc099ae85ff28820210732b00f019546f36f33225f509fe25d5816864a0" dependencies = [ "derive_more 1.0.0", "parity-scale-codec", - "primitive-types", + "primitive-types 0.13.1", "scale-bits", "scale-decode-derive", "scale-type-resolver", @@ -12845,7 +14100,7 @@ checksum = "5f9271284d05d0749c40771c46180ce89905fd95aa72a2a2fddb4b7c0aa424db" dependencies = [ "derive_more 1.0.0", "parity-scale-codec", - "primitive-types", + "primitive-types 0.13.1", "scale-bits", "scale-encode-derive", "scale-type-resolver", @@ -13013,16 +14268,6 @@ dependencies = [ "sha2 0.10.8", ] -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", -] - [[package]] name = "sec1" version = "0.7.3" @@ -13150,7 +14395,16 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537" dependencies = [ - "semver-parser", + "semver-parser 0.7.0", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser 0.10.3", ] [[package]] @@ -13168,6 +14422,15 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +[[package]] +name = "semver-parser" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" +dependencies = [ + "pest", +] + [[package]] name = "serde" version = "1.0.219" @@ -13177,6 +14440,15 @@ 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_bytes" version = "0.11.17" @@ -13309,6 +14581,16 @@ dependencies = [ "keccak", ] +[[package]] +name = "sha3-asm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +dependencies = [ + "cc", + "cfg-if", +] + [[package]] name = "sharded-slab" version = "0.1.7" @@ -13401,7 +14683,7 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "enumn", "parity-scale-codec", @@ -13567,98 +14849,294 @@ dependencies = [ ] [[package]] -name = "smoldot-light" -version = "0.9.0" +name = "smoldot-light" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33" +dependencies = [ + "async-channel 1.9.0", + "async-lock 2.8.0", + "base64 0.21.7", + "blake2-rfc", + "derive_more 0.99.20", + "either", + "event-listener 2.5.3", + "fnv", + "futures-channel", + "futures-lite 1.13.0", + "futures-util", + "hashbrown 0.14.5", + "hex", + "itertools 0.11.0", + "log", + "lru 0.11.1", + "no-std-net", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_json", + "siphasher 0.3.11", + "slab", + "smol 1.3.0", + "smoldot 0.11.0", + "zeroize", +] + +[[package]] +name = "smoldot-light" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a33b06891f687909632ce6a4e3fd7677b24df930365af3d0bcb078310129f3f" +dependencies = [ + "async-channel 2.3.1", + "async-lock 3.4.0", + "base64 0.22.1", + "blake2-rfc", + "bs58", + "derive_more 0.99.20", + "either", + "event-listener 5.4.0", + "fnv", + "futures-channel", + "futures-lite 2.6.0", + "futures-util", + "hashbrown 0.14.5", + "hex", + "itertools 0.13.0", + "log", + "lru 0.12.5", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_json", + "siphasher 1.0.1", + "slab", + "smol 2.0.2", + "smoldot 0.18.0", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" +dependencies = [ + "aes-gcm", + "blake2 0.10.6", + "chacha20poly1305", + "curve25519-dalek", + "rand_core 0.6.4", + "ring 0.17.14", + "rustc_version 0.4.1", + "sha2 0.10.8", + "subtle 2.6.1", +] + +[[package]] +name = "snowbridge-amcl" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5" +dependencies = [ + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "snowbridge-beacon-primitives" +version = "0.13.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "byte-slice-cast", + "frame-support", + "hex", + "parity-scale-codec", + "rlp 0.6.1", + "scale-info", + "serde", + "snowbridge-ethereum", + "snowbridge-milagro-bls", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "ssz_rs", + "ssz_rs_derive", +] + +[[package]] +name = "snowbridge-core" +version = "0.13.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "bp-relayers", + "ethabi-decode", + "frame-support", + "frame-system", + "hex-literal", + "log", + "parity-scale-codec", + "polkadot-parachain-primitives", + "scale-info", + "serde", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", +] + +[[package]] +name = "snowbridge-ethereum" +version = "0.12.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "ethabi-decode", + "ethbloom", + "ethereum-types", + "hex-literal", + "parity-bytes", + "parity-scale-codec", + "rlp 0.6.1", + "scale-info", + "serde", + "serde-big-array", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "snowbridge-inbound-queue-primitives" +version = "0.2.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "alloy-core", + "frame-support", + "frame-system", + "hex-literal", + "log", + "parity-scale-codec", + "scale-info", + "snowbridge-beacon-primitives", + "snowbridge-core", + "snowbridge-verification-primitives", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", +] + +[[package]] +name = "snowbridge-milagro-bls" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33" +checksum = "026aa8638f690a53e3f7676024b9e913b1cab0111d1b7b92669d40a188f9d7e6" dependencies = [ - "async-channel 1.9.0", - "async-lock 2.8.0", - "base64 0.21.7", - "blake2-rfc", - "derive_more 0.99.20", - "either", - "event-listener 2.5.3", - "fnv", - "futures-channel", - "futures-lite 1.13.0", - "futures-util", - "hashbrown 0.14.5", "hex", - "itertools 0.11.0", - "log", - "lru 0.11.1", - "no-std-net", - "parking_lot 0.12.3", - "pin-project", + "lazy_static", + "parity-scale-codec", "rand 0.8.5", - "rand_chacha 0.3.1", - "serde", - "serde_json", - "siphasher 0.3.11", - "slab", - "smol 1.3.0", - "smoldot 0.11.0", + "scale-info", + "snowbridge-amcl", "zeroize", ] [[package]] -name = "smoldot-light" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a33b06891f687909632ce6a4e3fd7677b24df930365af3d0bcb078310129f3f" +name = "snowbridge-outbound-queue-primitives" +version = "0.2.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ - "async-channel 2.3.1", - "async-lock 3.4.0", - "base64 0.22.1", - "blake2-rfc", - "bs58", - "derive_more 0.99.20", - "either", - "event-listener 5.4.0", - "fnv", - "futures-channel", - "futures-lite 2.6.0", - "futures-util", - "hashbrown 0.14.5", - "hex", - "itertools 0.13.0", + "alloy-core", + "ethabi-decode", + "frame-support", + "frame-system", + "hex-literal", "log", - "lru 0.12.5", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "rand_chacha 0.3.1", - "serde", - "serde_json", - "siphasher 1.0.1", - "slab", - "smol 2.0.2", - "smoldot 0.18.0", - "zeroize", + "parity-scale-codec", + "polkadot-parachain-primitives", + "scale-info", + "snowbridge-core", + "snowbridge-verification-primitives", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", ] [[package]] -name = "snap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" +name = "snowbridge-pallet-system-frontend" +version = "0.2.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-xcm", + "parity-scale-codec", + "scale-info", + "snowbridge-core", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-executor", + "tracing", +] [[package]] -name = "snow" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" +name = "snowbridge-runtime-common" +version = "0.13.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ - "aes-gcm", - "blake2 0.10.6", - "chacha20poly1305", - "curve25519-dalek", - "rand_core 0.6.4", - "ring 0.17.14", - "rustc_version", - "sha2 0.10.8", - "subtle 2.6.1", + "frame-support", + "frame-system", + "log", + "pallet-xcm", + "parity-scale-codec", + "snowbridge-core", + "snowbridge-outbound-queue-primitives", + "sp-arithmetic", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", +] + +[[package]] +name = "snowbridge-verification-primitives" +version = "0.2.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "snowbridge-beacon-primitives", + "sp-core", + "sp-std", ] [[package]] @@ -13715,7 +15193,7 @@ dependencies = [ [[package]] name = "sp-api" version = "36.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "hash-db", @@ -13737,7 +15215,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "Inflector", "blake2 0.10.6", @@ -13751,7 +15229,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "scale-info", @@ -13763,7 +15241,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "26.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "integer-sqrt", @@ -13777,7 +15255,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "scale-info", @@ -13789,7 +15267,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "sp-api", "sp-inherents", @@ -13799,7 +15277,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "futures", "parity-scale-codec", @@ -13818,7 +15296,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.42.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "futures", @@ -13832,7 +15310,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.42.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "parity-scale-codec", @@ -13848,7 +15326,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.42.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "parity-scale-codec", @@ -13866,7 +15344,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "24.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "scale-info", @@ -13886,7 +15364,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "23.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "finality-grandpa", "log", @@ -13903,7 +15381,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.42.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "scale-info", @@ -13914,7 +15392,7 @@ dependencies = [ [[package]] name = "sp-core" version = "36.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "ark-vrf", "array-bytes", @@ -13937,7 +15415,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "paste", - "primitive-types", + "primitive-types 0.13.1", "rand 0.8.5", "scale-info", "schnorrkel 0.11.4", @@ -13975,7 +15453,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "blake2b_simd", "byteorder", @@ -13988,7 +15466,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "quote", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2503)", @@ -13998,7 +15476,7 @@ dependencies = [ [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -14007,7 +15485,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "proc-macro2", "quote", @@ -14017,7 +15495,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "environmental", "parity-scale-codec", @@ -14027,7 +15505,7 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "scale-info", @@ -14039,7 +15517,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -14051,8 +15529,8 @@ dependencies = [ [[package]] name = "sp-io" -version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +version = "40.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bytes", "docify", @@ -14060,7 +15538,7 @@ dependencies = [ "libsecp256k1", "log", "parity-scale-codec", - "polkavm-derive", + "polkavm-derive 0.18.0", "rustversion", "secp256k1 0.28.2", "sp-core", @@ -14078,7 +15556,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "sp-core", "sp-runtime", @@ -14088,7 +15566,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.42.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -14099,7 +15577,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "thiserror 1.0.69", "zstd 0.12.4", @@ -14108,7 +15586,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-metadata 20.0.0", "parity-scale-codec", @@ -14118,7 +15596,7 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.14.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "scale-info", @@ -14129,7 +15607,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "36.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "log", "parity-scale-codec", @@ -14146,7 +15624,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "36.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "scale-info", @@ -14159,7 +15637,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "sp-api", "sp-core", @@ -14169,7 +15647,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "backtrace", "regex", @@ -14178,7 +15656,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -14188,7 +15666,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "41.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "binary-merkle-tree", "docify", @@ -14217,13 +15695,13 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "29.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "polkavm-derive", - "primitive-types", + "polkavm-derive 0.18.0", + "primitive-types 0.13.1", "sp-externalities", "sp-runtime-interface-proc-macro", "sp-std", @@ -14236,7 +15714,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "Inflector", "expander", @@ -14249,7 +15727,7 @@ dependencies = [ [[package]] name = "sp-session" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "scale-info", @@ -14263,7 +15741,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -14276,7 +15754,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "hash-db", "log", @@ -14296,7 +15774,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "20.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "aes-gcm", "curve25519-dalek", @@ -14320,12 +15798,12 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" [[package]] name = "sp-storage" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", @@ -14337,7 +15815,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "parity-scale-codec", @@ -14349,7 +15827,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "tracing", @@ -14360,7 +15838,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "sp-api", "sp-runtime", @@ -14369,7 +15847,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "36.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "async-trait", "parity-scale-codec", @@ -14383,7 +15861,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "ahash", "hash-db", @@ -14405,7 +15883,7 @@ dependencies = [ [[package]] name = "sp-version" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", @@ -14422,7 +15900,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "parity-scale-codec", "proc-macro-warning", @@ -14434,7 +15912,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "21.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -14446,7 +15924,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "31.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -14503,6 +15981,29 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "ssz_rs" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "057291e5631f280978fa9c8009390663ca4613359fc1318e36a8c24c392f6d1f" +dependencies = [ + "bitvec", + "num-bigint", + "sha2 0.9.9", + "ssz_rs_derive", +] + +[[package]] +name = "ssz_rs_derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -14512,7 +16013,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -14525,7 +16026,7 @@ dependencies = [ [[package]] name = "staging-xcm" version = "16.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "bounded-collections", @@ -14545,8 +16046,8 @@ dependencies = [ [[package]] name = "staging-xcm-builder" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +version = "20.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "environmental", "frame-support", @@ -14570,7 +16071,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "19.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "environmental", "frame-benchmarking", @@ -14681,7 +16182,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "hmac 0.12.1", "pbkdf2", @@ -14690,15 +16191,28 @@ dependencies = [ "zeroize", ] +[[package]] +name = "substrate-bn" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" +dependencies = [ + "byteorder", + "crunchy", + "lazy_static", + "rand 0.8.5", + "rustc-hex", +] + [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" [[package]] name = "substrate-frame-rpc-system" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -14718,7 +16232,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.17.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "http-body-util", "hyper 1.6.0", @@ -14732,7 +16246,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -14748,8 +16262,8 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +version = "26.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "array-bytes", "build-helper", @@ -14761,7 +16275,7 @@ dependencies = [ "merkleized-metadata", "parity-scale-codec", "parity-wasm", - "polkavm-linker", + "polkavm-linker 0.18.0", "sc-executor", "shlex", "sp-core", @@ -14810,7 +16324,7 @@ dependencies = [ "jsonrpsee", "parity-scale-codec", "polkadot-sdk", - "primitive-types", + "primitive-types 0.13.1", "scale-bits", "scale-decode 0.14.0", "scale-encode", @@ -14864,7 +16378,7 @@ dependencies = [ "keccak-hash", "parity-scale-codec", "polkadot-sdk", - "primitive-types", + "primitive-types 0.13.1", "scale-bits", "scale-decode 0.14.0", "scale-encode", @@ -14985,6 +16499,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn-solidity" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4560533fbd6914b94a8fb5cc803ed6801c3455668db3b810702c57612bac9412" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -15091,6 +16617,21 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" +[[package]] +name = "testnet-parachains-constants" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "polkadot-core-primitives", + "rococo-runtime-constants", + "smallvec", + "sp-runtime", + "staging-xcm", + "westend-runtime-constants", +] + [[package]] name = "thiserror" version = "1.0.69" @@ -15297,7 +16838,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.26", + "rustls", "tokio", ] @@ -15321,7 +16862,7 @@ checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", - "rustls 0.23.26", + "rustls", "rustls-native-certs", "rustls-pki-types", "tokio", @@ -15475,7 +17016,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "coarsetime", "polkadot-primitives", @@ -15486,7 +17027,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "expander", "proc-macro-crate 3.3.0", @@ -15571,7 +17112,7 @@ dependencies = [ "httparse", "log", "rand 0.9.1", - "rustls 0.23.26", + "rustls", "rustls-pki-types", "sha1", "thiserror 2.0.12", @@ -15872,6 +17413,15 @@ dependencies = [ "w3f-plonk-common", ] +[[package]] +name = "wait-timeout" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +dependencies = [ + "libc", +] + [[package]] name = "waker-fn" version = "1.2.0" @@ -16361,16 +17911,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" -dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", -] - [[package]] name = "webpki-root-certs" version = "0.26.8" @@ -16386,10 +17926,29 @@ version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +[[package]] +name = "westend-emulated-chain" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "emulated-integration-tests-common", + "pallet-staking", + "parachains-common", + "polkadot-primitives", + "sc-consensus-grandpa", + "sp-authority-discovery", + "sp-consensus-babe", + "sp-consensus-beefy", + "sp-core", + "sp-runtime", + "westend-runtime", + "westend-runtime-constants", +] + [[package]] name = "westend-runtime" version = "22.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "binary-merkle-tree", "bitvec", @@ -16498,7 +18057,7 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "polkadot-primitives", @@ -16511,6 +18070,16 @@ dependencies = [ "staging-xcm-builder", ] +[[package]] +name = "westend-system-emulated-network" +version = "0.0.0" +dependencies = [ + "asset-hub-westend-emulated-chain", + "emulated-integration-tests-common", + "frequency-emulated-chain", + "westend-emulated-chain", +] + [[package]] name = "wide" version = "0.7.32" @@ -16955,10 +18524,43 @@ dependencies = [ "time", ] +[[package]] +name = "xcm-emulator" +version = "0.19.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +dependencies = [ + "array-bytes", + "cumulus-pallet-parachain-system", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-test-relay-sproof-builder", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "pallet-balances", + "pallet-message-queue", + "pallet-timestamp", + "parachains-common", + "parity-scale-codec", + "paste", + "polkadot-parachain-primitives", + "polkadot-primitives", + "polkadot-runtime-parachains", + "sp-arithmetic", + "sp-core", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2503)", + "sp-io", + "sp-runtime", + "sp-tracing", + "staging-xcm", + "staging-xcm-executor", +] + [[package]] name = "xcm-procedural" version = "11.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "Inflector", "proc-macro2", @@ -16969,7 +18571,7 @@ dependencies = [ [[package]] name = "xcm-runtime-apis" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#b7c7686ec66c9fe6dcfcd89d79f7e3607cd2e193" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" dependencies = [ "frame-support", "parity-scale-codec", @@ -17221,3 +18823,8 @@ dependencies = [ "cc", "pkg-config", ] + +[[patch.unused]] +name = "cid" +version = "0.10.1" +source = "git+https://github.com/multiformats/rust-cid?tag=v0.10.1#1df4e3fe0f6bcb8845655d2ccefd9da5ef81a1cd" diff --git a/Cargo.toml b/Cargo.toml index ff89085d68..1b63da9a0b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,10 @@ members = [ "node", "node/cli", + "emulated-test/networks/westend", + "emulated-test/chains/frequency-westend", + "emulated-test*", + "emulated-test/test/frequency-westend", "node/service", "pallets/*", "runtime/*", @@ -124,6 +128,21 @@ xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/par cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } + +# xcm-test emulator +xcm-emulator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } +westend-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } +westend-runtime-constants = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } +sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } +sp-consensus-beefy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } +sp-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } +sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } + +emulated-integration-tests-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } +asset-hub-westend-emulated-chain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } +westend-emulated-chain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } +asset-test-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } + # client derive_more = "0.99.17" futures = "0.3.25" diff --git a/emulated-test/Cargo.toml b/emulated-test/Cargo.toml new file mode 100644 index 0000000000..d9df772d04 --- /dev/null +++ b/emulated-test/Cargo.toml @@ -0,0 +1,29 @@ +[package] +authors = ["Frequency"] +edition = '2021' +homepage = "https://frequency.xyz" +license = "Apache-2.0" +name = 'runtime-integration-tests' +publish = false +version = "0.0.0" + +[dependencies] +xcm-emulator = { workspace = true } +westend-runtime = { workspace = true } +westend-runtime-constants = { workspace = true } +sc-consensus-grandpa = { workspace = true } +sp-consensus-babe = { workspace = true } +sp-consensus-beefy = { workspace = true } +sp-authority-discovery = { workspace = true } +sp-core = { workspace = true } +sp-runtime = { workspace = true } +parachains-common = { workspace = true } +polkadot-primitives = { workspace = true } + +emulated-integration-tests-common = { workspace = true } +asset-hub-westend-emulated-chain = { workspace = true } +westend-emulated-chain = { workspace = true } + + +frequency-runtime = { path = "../runtime/frequency", features = ["frequency-westend", "frequency-bridging"] } + diff --git a/emulated-test/chains/frequency-westend/Cargo.toml b/emulated-test/chains/frequency-westend/Cargo.toml new file mode 100644 index 0000000000..26b640d5ed --- /dev/null +++ b/emulated-test/chains/frequency-westend/Cargo.toml @@ -0,0 +1,23 @@ +[package] +authors = ["Frequency"] +edition = '2021' +homepage = "https://frequency.xyz" +license = "Apache-2.0" +name = 'frequency-emulated-chain' +publish = false +version = "0.0.0" + +[dependencies] +xcm-emulator = { workspace = true } +sp-core = { workspace = true } +sp-runtime = { workspace = true } +parachains-common = { workspace = true } +polkadot-primitives = { workspace = true } + +emulated-integration-tests-common = { workspace = true } +frequency-runtime = { path = "../../../runtime/frequency", features = ["frequency-westend", "frequency-bridging"] } +cumulus-primitives-core = { workspace = true } +sp-keyring = { workspace = true } +frame-support = { workspace = true } +staging-xcm = { workspace = true } + diff --git a/emulated-test/chains/frequency-westend/src/genesis.rs b/emulated-test/chains/frequency-westend/src/genesis.rs new file mode 100644 index 0000000000..bc44c07400 --- /dev/null +++ b/emulated-test/chains/frequency-westend/src/genesis.rs @@ -0,0 +1,69 @@ +use frame_support::parameter_types; +use sp_core::storage::Storage; +use sp_keyring::Sr25519Keyring as Keyring; + +// Cumulus +use emulated_integration_tests_common::{ + accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, +}; +use parachains_common::{AccountId, Balance}; +// use frequency_runtime::xcm_config::{LocalReservableFromAssetHub, RelayLocation, UsdtFromAssetHub}; +use frequency_runtime::xcm_config::RelayLocation; +// Penpal +pub const PARA_ID: u32 = 2000; +pub const ED: Balance = frequency_runtime::EXISTENTIAL_DEPOSIT; + +parameter_types! { + pub FrequencySudoAccount: AccountId = Keyring::Alice.to_account_id(); + pub FrequencyAssetOwner: AccountId = FrequencySudoAccount::get(); +} + +pub fn genesis(para_id: u32) -> Storage { + let genesis_config = frequency_runtime::RuntimeGenesisConfig { + system: frequency_runtime::SystemConfig::default(), + balances: frequency_runtime::BalancesConfig { + balances: accounts::init_balances().iter().cloned().map(|k| (k, ED * 4096)).collect(), + ..Default::default() + }, + parachain_info: frequency_runtime::ParachainInfoConfig { + parachain_id: para_id.into(), + ..Default::default() + }, + collator_selection: frequency_runtime::CollatorSelectionConfig { + invulnerables: collators::invulnerables().iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: ED * 16, + ..Default::default() + }, + session: frequency_runtime::SessionConfig { + keys: collators::invulnerables() + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + frequency_runtime::SessionKeys { aura }, // session keys + ) + }) + .collect(), + ..Default::default() + }, + // polkadot_xcm: frequency_runtime::PolkadotXcmConfig { + // safe_xcm_version: Some(SAFE_XCM_VERSION), + // ..Default::default() + // }, + sudo: frequency_runtime::SudoConfig { key: Some(FrequencySudoAccount::get()) }, + // foreign_assets: frequency_runtime::ForeignAssetsConfig { + // assets: vec![ + // // Relay Native asset representation + // (RelayLocation::get(), FrequencyAssetOwner::get(), true, ED), + // ], + // ..Default::default() + // }, + ..Default::default() + }; + + build_genesis_storage( + &genesis_config, + frequency_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), + ) +} diff --git a/emulated-test/chains/frequency-westend/src/lib.rs b/emulated-test/chains/frequency-westend/src/lib.rs new file mode 100644 index 0000000000..30c6b3f4e8 --- /dev/null +++ b/emulated-test/chains/frequency-westend/src/lib.rs @@ -0,0 +1,52 @@ +pub use frequency_runtime::{self, xcm_config::RelayNetwork as FrequencyRelayNetworkId}; + +mod genesis; +pub use genesis::{genesis, FrequencySudoAccount, ED, PARA_ID}; + +// Substrate +use frame_support::traits::OnInitialize; +use sp_core::Encode; + +// Cumulus +use emulated_integration_tests_common::{ + impl_accounts_helpers_for_parachain, impl_assert_events_helpers_for_parachain, + impl_assets_helpers_for_parachain, impl_foreign_assets_helpers_for_parachain, + impl_xcm_helpers_for_parachain, + impls::{NetworkId, Parachain}, + xcm_emulator::decl_test_parachains, +}; + +// Polkadot +use staging_xcm::latest::WESTEND_GENESIS_HASH; + +// Penpal Parachain declaration +decl_test_parachains! { + pub struct FrequencyWestend { + genesis = genesis(PARA_ID), + on_init = { + frequency_runtime::AuraExt::on_initialize(1); + // frame_support::assert_ok!(frequency_runtime::System::set_storage( + // frequency_runtime::RuntimeOrigin::root(), + // vec![(FrequencyRelayNetworkId::get().unwrap(), NetworkId::ByGenesis(WESTEND_GENESIS_HASH).encode())], + // )); + }, + runtime = frequency_runtime, + core = { + XcmpMessageHandler: frequency_runtime::XcmpQueue, + LocationToAccountId: frequency_runtime::xcm_config::LocationToAccountId, + ParachainInfo: frequency_runtime::ParachainInfo, + MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin, + }, + pallets = { + PolkadotXcm: frequency_runtime::PolkadotXcm, + ForeignAssets: frequency_runtime::ForeignAssets, + Balances: frequency_runtime::Balances, + } + }, +} + +impl_accounts_helpers_for_parachain!(FrequencyWestend); +impl_assert_events_helpers_for_parachain!(FrequencyWestend); +// impl_assets_helpers_for_parachain!(Frequency); +// impl_foreign_assets_helpers_for_parachain!(Frequency, staging_xcm::latest::Location); +impl_xcm_helpers_for_parachain!(FrequencyWestend); diff --git a/emulated-test/networks/westend/Cargo.toml b/emulated-test/networks/westend/Cargo.toml new file mode 100644 index 0000000000..0007f704e0 --- /dev/null +++ b/emulated-test/networks/westend/Cargo.toml @@ -0,0 +1,14 @@ +[package] +authors = ["Frequency"] +edition = '2021' +homepage = "https://frequency.xyz" +license = "Apache-2.0" +name = 'westend-system-emulated-network' +publish = false +version = "0.0.0" + +[dependencies] +asset-hub-westend-emulated-chain = { workspace = true } +emulated-integration-tests-common = { workspace = true } +frequency-emulated-chain = { path = "../../chains/frequency-westend"} +westend-emulated-chain = { workspace = true } diff --git a/emulated-test/networks/westend/src/lib.rs b/emulated-test/networks/westend/src/lib.rs new file mode 100644 index 0000000000..4104b81580 --- /dev/null +++ b/emulated-test/networks/westend/src/lib.rs @@ -0,0 +1,30 @@ +pub use asset_hub_westend_emulated_chain; +pub use frequency_emulated_chain; +pub use westend_emulated_chain; + +use asset_hub_westend_emulated_chain::AssetHubWestend; +use frequency_emulated_chain::FrequencyWestend; +use westend_emulated_chain::Westend; + +// Cumulus +use emulated_integration_tests_common::{ + accounts::{ALICE, BOB}, + xcm_emulator::{decl_test_networks, decl_test_sender_receiver_accounts_parameter_types}, +}; + +decl_test_networks! { + pub struct WestendMockNet { + relay_chain = Westend, + parachains = vec![ + AssetHubWestend, + FrequencyWestend, + ], + bridge = () + }, +} + +decl_test_sender_receiver_accounts_parameter_types! { + WestendRelay { sender: ALICE, receiver: BOB }, + AssetHubWestendPara { sender: ALICE, receiver: BOB }, + FrequencyWestendPara { sender: ALICE, receiver: BOB } +} diff --git a/emulated-test/src/genesis.rs b/emulated-test/src/genesis.rs new file mode 100644 index 0000000000..2ef82ed418 --- /dev/null +++ b/emulated-test/src/genesis.rs @@ -0,0 +1,78 @@ +// Substrate +use sc_consensus_grandpa::AuthorityId as GrandpaId; +use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; +use sp_consensus_babe::AuthorityId as BabeId; +use sp_consensus_beefy::ecdsa_crypto::AuthorityId as BeefyId; +use sp_core::storage::Storage; +use sp_runtime::Perbill; + +// Polkadot +use polkadot_primitives::{AssignmentId, ValidatorId}; + +// Cumulus +use emulated_integration_tests_common::{ + accounts, build_genesis_storage, get_host_config, validators, +}; +use parachains_common::Balance; +use westend_runtime_constants::currency::UNITS as WND; + +pub const ED: Balance = westend_runtime_constants::currency::EXISTENTIAL_DEPOSIT; +const ENDOWMENT: u128 = 1_000_000 * WND; +const STASH: u128 = 100 * WND; + +fn session_keys( + babe: BabeId, + grandpa: GrandpaId, + para_validator: ValidatorId, + para_assignment: AssignmentId, + authority_discovery: AuthorityDiscoveryId, + beefy: BeefyId, +) -> westend_runtime::SessionKeys { + westend_runtime::SessionKeys { + babe, + grandpa, + para_validator, + para_assignment, + authority_discovery, + beefy, + } +} + +pub fn genesis() -> Storage { + let genesis_config = westend_runtime::RuntimeGenesisConfig { + system: westend_runtime::SystemConfig::default(), + balances: westend_runtime::BalancesConfig { + balances: accounts::init_balances().iter().cloned().map(|k| (k, ENDOWMENT)).collect(), + ..Default::default() + }, + session: westend_runtime::SessionConfig { + keys: validators::initial_authorities() + .iter() + .map(|x| { + ( + x.0.clone(), + x.0.clone(), + session_keys( + x.2.clone(), + x.3.clone(), + x.4.clone(), + x.5.clone(), + x.6.clone(), + x.7.clone(), + ), + ) + }) + .collect::>(), + ..Default::default() + }, + babe: westend_runtime::BabeConfig { + authorities: Default::default(), + epoch_config: westend_runtime::BABE_GENESIS_EPOCH_CONFIG, + ..Default::default() + }, + configuration: westend_runtime::ConfigurationConfig { config: get_host_config() }, + ..Default::default() + }; + + build_genesis_storage(&genesis_config, westend_runtime::WASM_BINARY.unwrap()) +} diff --git a/emulated-test/src/lib.rs b/emulated-test/src/lib.rs new file mode 100644 index 0000000000..db08b0e6c9 --- /dev/null +++ b/emulated-test/src/lib.rs @@ -0,0 +1,46 @@ +use asset_hub_westend_emulated_chain::AssetHubWestend; +use emulated_integration_tests_common::{ + accounts::{ALICE, BOB}, + xcm_emulator::{decl_test_networks, decl_test_sender_receiver_accounts_parameter_types}, +}; +use westend_emulated_chain::Westend; + +decl_test_networks! { + pub struct WestendMockNet { + relay_chain = Westend, + parachains = vec![ + AssetHubWestend, + ], + bridge = () + }, +} + +// use xcm_emulator::{decl_test_relay_chains}; +// use sp_core::storage::Storage; +// use sp_runtime::{traits::AccountIdConversion, BuildStorage}; +// use emulated_integration_tests_common::{accounts, build_genesis_storage, get_host_config, validators}; + +// pub use westend_runtime; + +// pub mod genesis; + +// decl_test_relay_chains! { +// #[api_version(11)] +// pub struct Westend { +// on_init = (), +// runtime = westend_runtime, +// core = { +// SovereignAccountOf: westend_runtime::xcm_config::LocationConverter, +// }, +// pallets = { +// XcmPallet: westend_runtime::XcmPallet, +// Sudo: westend_runtime::Sudo, +// Balances: westend_runtime::Balances, +// Treasury: westend_runtime::Treasury, +// AssetRate: westend_runtime::AssetRate, +// Hrmp: westend_runtime::Hrmp, +// Identity: westend_runtime::Identity, +// IdentityMigrator: westend_runtime::IdentityMigrator, +// } +// }, +// } diff --git a/emulated-test/test/frequency-westend/Cargo.toml b/emulated-test/test/frequency-westend/Cargo.toml new file mode 100644 index 0000000000..72376e681b --- /dev/null +++ b/emulated-test/test/frequency-westend/Cargo.toml @@ -0,0 +1,23 @@ +[package] +authors = ["Frequency"] +edition = '2021' +homepage = "https://frequency.xyz" +license = "Apache-2.0" +name = "frequency-westend-integration-tests" +publish = false +version = "0.0.0" + +[dependencies] +# codec = { workspace = true } +asset-test-utils = { workspace = true } +emulated-integration-tests-common = { workspace = true } +frame-support = { workspace = true } +pallet-balances = { workspace = true } +pallet-message-queue = { workspace = true } +pallet-xcm = { workspace = true } +parachains-common = { workspace = true, default-features = true } +sp-runtime = { workspace = true } +westend-runtime = { workspace = true } +westend-system-emulated-network = { path = "../../networks/westend"} +xcm-executor = { workspace = true } +staging-xcm = { workspace = true } diff --git a/emulated-test/test/frequency-westend/src/lib.rs b/emulated-test/test/frequency-westend/src/lib.rs new file mode 100644 index 0000000000..e76389dc7f --- /dev/null +++ b/emulated-test/test/frequency-westend/src/lib.rs @@ -0,0 +1,40 @@ +#[cfg(test)] +mod imports { + // Substrate + pub use frame_support::{assert_ok, sp_runtime::DispatchResult, traits::fungibles::Inspect}; + + // Polkadot + pub use staging_xcm::{latest::WESTEND_GENESIS_HASH, prelude::*}; + + // Cumulus + pub use asset_test_utils::xcm_helpers; + pub use emulated_integration_tests_common::xcm_emulator::{ + assert_expected_events, bx, Chain, Parachain as Para, RelayChain as Relay, Test, TestArgs, + TestContext, TestExt, + }; + pub use parachains_common::Balance; + pub use westend_system_emulated_network::{ + self, + asset_hub_westend_emulated_chain::AssetHubWestendParaPallet as AssetHubWestendPallet, + frequency_emulated_chain::{ + frequency_runtime::{ + self, xcm_config::XcmConfig as FrequencyWestendXcmConfig, + ExistentialDeposit as FrequencyExistentialDeposit, + }, + FrequencyWestendParaPallet as FrequencyWestendPallet, + }, + westend_emulated_chain::{ + genesis::ED as WESTEND_ED, westend_runtime::xcm_config::XcmConfig as WestendXcmConfig, + WestendRelayPallet as WestendPallet, + }, + AssetHubWestendPara as AssetHubWestend, FrequencyWestendPara as FrequencyWestend, + FrequencyWestendParaReceiver as FrequencyWestendReceiver, + FrequencyWestendParaSender as FrequencyWestendSender, WestendRelay as Westend, + WestendRelayReceiver as WestendReceiver, WestendRelaySender as WestendSender, + }; + + pub type SystemParaToRelayTest = Test; +} + +#[cfg(test)] +mod tests; diff --git a/emulated-test/test/frequency-westend/src/tests/mod.rs b/emulated-test/test/frequency-westend/src/tests/mod.rs new file mode 100644 index 0000000000..ad106cfb1a --- /dev/null +++ b/emulated-test/test/frequency-westend/src/tests/mod.rs @@ -0,0 +1 @@ +mod teleport; diff --git a/emulated-test/test/frequency-westend/src/tests/teleport.rs b/emulated-test/test/frequency-westend/src/tests/teleport.rs new file mode 100644 index 0000000000..c76cd4fa73 --- /dev/null +++ b/emulated-test/test/frequency-westend/src/tests/teleport.rs @@ -0,0 +1,24 @@ +use crate::imports::*; +use emulated_integration_tests_common::{ + test_parachain_is_trusted_teleporter_for_relay, test_relay_is_trusted_teleporter, +}; + +#[test] +fn teleport_from_and_to_relay() { + let amount = WESTEND_ED * 100; + let native_asset: Assets = (Here, amount).into(); + + test_relay_is_trusted_teleporter!( + Westend, + WestendXcmConfig, + vec![FrequencyWestend], + (native_asset, amount) + ); + + test_parachain_is_trusted_teleporter_for_relay!( + FrequencyWestend, + FrequencyWestendXcmConfig, + Westend, + amount + ); +} diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index d4bfc7dbe8..c841815838 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -18,13 +18,13 @@ pub fn wasm_binary_unwrap() -> &'static [u8] { } #[cfg(feature = "frequency-bridging")] -mod xcm_config; +pub mod xcm_config; // use pallet_assets::BenchmarkHelper; #[cfg(feature = "frequency-bridging")] use xcm_config::ForeignAssetsAssetId; #[cfg(feature = "frequency-bridging")] -mod xcm_queue; +pub mod xcm_queue; #[cfg(feature = "frequency-bridging")] pub mod xcm_commons; @@ -783,6 +783,10 @@ impl pallet_authorship::Config for Runtime { type EventHandler = (CollatorSelection,); } +parameter_types! { + pub const ExistentialDeposit: u128 = EXISTENTIAL_DEPOSIT; +} + impl pallet_balances::Config for Runtime { type MaxLocks = BalancesMaxLocks; /// The type for recording an account's balance. @@ -790,7 +794,7 @@ impl pallet_balances::Config for Runtime { /// The ubiquitous event type. type RuntimeEvent = RuntimeEvent; type DustRemoval = (); - type ExistentialDeposit = ConstU128; + type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = weights::pallet_balances::SubstrateWeight; type MaxReserves = BalancesMaxReserves; @@ -1504,7 +1508,7 @@ construct_runtime!( XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 71, #[cfg(feature = "frequency-bridging")] - PolkadotXcm: pallet_xcm::{Pallet, Call, Storage, Event, Origin} = 72, + PolkadotXcm: pallet_xcm::{Pallet, Call, Storage, Event, Origin } = 72, #[cfg(feature = "frequency-bridging")] CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 73, diff --git a/runtime/frequency/src/xcm_config.rs b/runtime/frequency/src/xcm_config.rs index 164be52a10..b35c2e5366 100644 --- a/runtime/frequency/src/xcm_config.rs +++ b/runtime/frequency/src/xcm_config.rs @@ -11,7 +11,9 @@ use staging_xcm_builder::{ TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, }; -use crate::xcm_commons::{LocationToAccountId, RelayNetwork, XcmOriginToTransactDispatchOrigin}; +pub use crate::xcm_commons::{ + LocationToAccountId, RelayNetwork, XcmOriginToTransactDispatchOrigin, +}; use frame_support::{ pallet_prelude::Get, From af15e6555afa6e47c1269aa3346896d5c3a4f38c Mon Sep 17 00:00:00 2001 From: eNDdy Date: Fri, 2 May 2025 19:03:47 -0600 Subject: [PATCH 02/31] change --- .../test/frequency-westend/src/tests/teleport.rs | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/emulated-test/test/frequency-westend/src/tests/teleport.rs b/emulated-test/test/frequency-westend/src/tests/teleport.rs index c76cd4fa73..ad2b7b457d 100644 --- a/emulated-test/test/frequency-westend/src/tests/teleport.rs +++ b/emulated-test/test/frequency-westend/src/tests/teleport.rs @@ -8,17 +8,10 @@ fn teleport_from_and_to_relay() { let amount = WESTEND_ED * 100; let native_asset: Assets = (Here, amount).into(); - test_relay_is_trusted_teleporter!( - Westend, - WestendXcmConfig, - vec![FrequencyWestend], - (native_asset, amount) - ); - - test_parachain_is_trusted_teleporter_for_relay!( + test_parachain_is_trusted_teleporter!( FrequencyWestend, FrequencyWestendXcmConfig, - Westend, - amount + vec![AssetHubWestend], + (native_asset, amount) ); } From 1abda0ee90e191a0d9031ef071581cc4da9e36d6 Mon Sep 17 00:00:00 2001 From: eNDdy Date: Mon, 5 May 2025 10:36:45 -0600 Subject: [PATCH 03/31] change --- emulated-test/networks/westend/src/lib.rs | 2 +- emulated-test/test/frequency-westend/src/lib.rs | 5 ++++- emulated-test/test/frequency-westend/src/tests/teleport.rs | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/emulated-test/networks/westend/src/lib.rs b/emulated-test/networks/westend/src/lib.rs index 4104b81580..45a83a2fcc 100644 --- a/emulated-test/networks/westend/src/lib.rs +++ b/emulated-test/networks/westend/src/lib.rs @@ -2,7 +2,7 @@ pub use asset_hub_westend_emulated_chain; pub use frequency_emulated_chain; pub use westend_emulated_chain; -use asset_hub_westend_emulated_chain::AssetHubWestend; +pub use asset_hub_westend_emulated_chain::AssetHubWestend; use frequency_emulated_chain::FrequencyWestend; use westend_emulated_chain::Westend; diff --git a/emulated-test/test/frequency-westend/src/lib.rs b/emulated-test/test/frequency-westend/src/lib.rs index e76389dc7f..f0a99edfb9 100644 --- a/emulated-test/test/frequency-westend/src/lib.rs +++ b/emulated-test/test/frequency-westend/src/lib.rs @@ -27,7 +27,10 @@ mod imports { genesis::ED as WESTEND_ED, westend_runtime::xcm_config::XcmConfig as WestendXcmConfig, WestendRelayPallet as WestendPallet, }, - AssetHubWestendPara as AssetHubWestend, FrequencyWestendPara as FrequencyWestend, + AssetHubWestendPara as AssetHubWestend, + AssetHubWestendParaReceiver as AssetHubWestendReceiver, + AssetHubWestendParaSender as AssetHubWestendSender, + FrequencyWestendPara as FrequencyWestend, FrequencyWestendParaReceiver as FrequencyWestendReceiver, FrequencyWestendParaSender as FrequencyWestendSender, WestendRelay as Westend, WestendRelayReceiver as WestendReceiver, WestendRelaySender as WestendSender, diff --git a/emulated-test/test/frequency-westend/src/tests/teleport.rs b/emulated-test/test/frequency-westend/src/tests/teleport.rs index ad2b7b457d..2041a8fd75 100644 --- a/emulated-test/test/frequency-westend/src/tests/teleport.rs +++ b/emulated-test/test/frequency-westend/src/tests/teleport.rs @@ -1,10 +1,10 @@ use crate::imports::*; use emulated_integration_tests_common::{ - test_parachain_is_trusted_teleporter_for_relay, test_relay_is_trusted_teleporter, + test_parachain_is_trusted_teleporter_for_relay, test_parachain_is_trusted_teleporter, test_relay_is_trusted_teleporter, }; #[test] -fn teleport_from_and_to_relay() { +fn teleport_from_and_to_asset_hub() { let amount = WESTEND_ED * 100; let native_asset: Assets = (Here, amount).into(); From a069633fa121b012688f36600534555c505c1cb8 Mon Sep 17 00:00:00 2001 From: eNDdy Date: Tue, 6 May 2025 13:58:51 -0600 Subject: [PATCH 04/31] change --- Cargo.lock | 22 +- Cargo.toml | 1 - emulated-test/Cargo.toml | 29 -- .../test/frequency-westend/.cargo/config.toml | 2 + .../test/frequency-westend/Cargo.toml | 2 + .../test/frequency-westend/src/lib.rs | 24 +- .../test/frequency-westend/src/tests/mod.rs | 3 +- .../frequency-westend/src/tests/reserve.rs | 261 ++++++++++++++++++ 8 files changed, 284 insertions(+), 60 deletions(-) delete mode 100644 emulated-test/Cargo.toml create mode 100644 emulated-test/test/frequency-westend/.cargo/config.toml create mode 100644 emulated-test/test/frequency-westend/src/tests/reserve.rs diff --git a/Cargo.lock b/Cargo.lock index 8fdeae0170..efabd5dd30 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4906,6 +4906,7 @@ dependencies = [ "asset-test-utils", "emulated-integration-tests-common", "frame-support", + "pallet-assets", "pallet-balances", "pallet-message-queue", "pallet-xcm", @@ -12534,27 +12535,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" -[[package]] -name = "runtime-integration-tests" -version = "0.0.0" -dependencies = [ - "asset-hub-westend-emulated-chain", - "emulated-integration-tests-common", - "frequency-runtime", - "parachains-common", - "polkadot-primitives", - "sc-consensus-grandpa", - "sp-authority-discovery", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-core", - "sp-runtime", - "westend-emulated-chain", - "westend-runtime", - "westend-runtime-constants", - "xcm-emulator", -] - [[package]] name = "rustc-demangle" version = "0.1.24" diff --git a/Cargo.toml b/Cargo.toml index 1b63da9a0b..d8b92a289b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,6 @@ members = [ "node/cli", "emulated-test/networks/westend", "emulated-test/chains/frequency-westend", - "emulated-test*", "emulated-test/test/frequency-westend", "node/service", "pallets/*", diff --git a/emulated-test/Cargo.toml b/emulated-test/Cargo.toml deleted file mode 100644 index d9df772d04..0000000000 --- a/emulated-test/Cargo.toml +++ /dev/null @@ -1,29 +0,0 @@ -[package] -authors = ["Frequency"] -edition = '2021' -homepage = "https://frequency.xyz" -license = "Apache-2.0" -name = 'runtime-integration-tests' -publish = false -version = "0.0.0" - -[dependencies] -xcm-emulator = { workspace = true } -westend-runtime = { workspace = true } -westend-runtime-constants = { workspace = true } -sc-consensus-grandpa = { workspace = true } -sp-consensus-babe = { workspace = true } -sp-consensus-beefy = { workspace = true } -sp-authority-discovery = { workspace = true } -sp-core = { workspace = true } -sp-runtime = { workspace = true } -parachains-common = { workspace = true } -polkadot-primitives = { workspace = true } - -emulated-integration-tests-common = { workspace = true } -asset-hub-westend-emulated-chain = { workspace = true } -westend-emulated-chain = { workspace = true } - - -frequency-runtime = { path = "../runtime/frequency", features = ["frequency-westend", "frequency-bridging"] } - diff --git a/emulated-test/test/frequency-westend/.cargo/config.toml b/emulated-test/test/frequency-westend/.cargo/config.toml new file mode 100644 index 0000000000..6cc1b4ec44 --- /dev/null +++ b/emulated-test/test/frequency-westend/.cargo/config.toml @@ -0,0 +1,2 @@ +[build] +target-dir = "target/tests" \ No newline at end of file diff --git a/emulated-test/test/frequency-westend/Cargo.toml b/emulated-test/test/frequency-westend/Cargo.toml index 72376e681b..b9f3745068 100644 --- a/emulated-test/test/frequency-westend/Cargo.toml +++ b/emulated-test/test/frequency-westend/Cargo.toml @@ -7,6 +7,7 @@ name = "frequency-westend-integration-tests" publish = false version = "0.0.0" + [dependencies] # codec = { workspace = true } asset-test-utils = { workspace = true } @@ -21,3 +22,4 @@ westend-runtime = { workspace = true } westend-system-emulated-network = { path = "../../networks/westend"} xcm-executor = { workspace = true } staging-xcm = { workspace = true } +pallet-assets = { workspace = true } diff --git a/emulated-test/test/frequency-westend/src/lib.rs b/emulated-test/test/frequency-westend/src/lib.rs index f0a99edfb9..263655d877 100644 --- a/emulated-test/test/frequency-westend/src/lib.rs +++ b/emulated-test/test/frequency-westend/src/lib.rs @@ -1,7 +1,10 @@ #[cfg(test)] mod imports { - // Substrate - pub use frame_support::{assert_ok, sp_runtime::DispatchResult, traits::fungibles::Inspect}; + pub use frame_support::{ + assert_ok, + sp_runtime::DispatchResult, + traits::fungibles::{Create as FungiblesCreate, Inspect}, + }; // Polkadot pub use staging_xcm::{latest::WESTEND_GENESIS_HASH, prelude::*}; @@ -15,7 +18,12 @@ mod imports { pub use parachains_common::Balance; pub use westend_system_emulated_network::{ self, - asset_hub_westend_emulated_chain::AssetHubWestendParaPallet as AssetHubWestendPallet, + asset_hub_westend_emulated_chain::{ + asset_hub_westend_runtime::{ + xcm_config::WestendLocation, ExistentialDeposit as AssetHubExistentialDeposit, + }, + AssetHubWestendParaPallet as AssetHubWestendPallet, + }, frequency_emulated_chain::{ frequency_runtime::{ self, xcm_config::XcmConfig as FrequencyWestendXcmConfig, @@ -27,16 +35,16 @@ mod imports { genesis::ED as WESTEND_ED, westend_runtime::xcm_config::XcmConfig as WestendXcmConfig, WestendRelayPallet as WestendPallet, }, - AssetHubWestendPara as AssetHubWestend, - AssetHubWestendParaReceiver as AssetHubWestendReceiver, - AssetHubWestendParaSender as AssetHubWestendSender, - FrequencyWestendPara as FrequencyWestend, + AssetHubWestendPara as AssetHubWestend, + AssetHubWestendParaReceiver as AssetHubWestendReceiver, + AssetHubWestendParaSender as AssetHubWestendSender, + FrequencyWestendPara as FrequencyWestend, FrequencyWestendParaReceiver as FrequencyWestendReceiver, FrequencyWestendParaSender as FrequencyWestendSender, WestendRelay as Westend, WestendRelayReceiver as WestendReceiver, WestendRelaySender as WestendSender, }; - pub type SystemParaToRelayTest = Test; + pub type AssetHubToFrequencyTest = Test; } #[cfg(test)] diff --git a/emulated-test/test/frequency-westend/src/tests/mod.rs b/emulated-test/test/frequency-westend/src/tests/mod.rs index ad106cfb1a..033222f746 100644 --- a/emulated-test/test/frequency-westend/src/tests/mod.rs +++ b/emulated-test/test/frequency-westend/src/tests/mod.rs @@ -1 +1,2 @@ -mod teleport; +// mod teleport; +mod reserve; diff --git a/emulated-test/test/frequency-westend/src/tests/reserve.rs b/emulated-test/test/frequency-westend/src/tests/reserve.rs new file mode 100644 index 0000000000..8216b044a5 --- /dev/null +++ b/emulated-test/test/frequency-westend/src/tests/reserve.rs @@ -0,0 +1,261 @@ +use crate::imports::*; + +#[macro_export] +macro_rules! foreign_balance_on { + ( $chain:ident, $id:expr, $who:expr ) => { + emulated_integration_tests_common::impls::paste::paste! { + <$chain>::execute_with(|| { + type ForeignAssets = <$chain as [<$chain Pallet>]>::ForeignAssets; + >::balance($id, $who) + }) + } + }; +} + +fn system_para_to_para_reserve_transfer_assets(t: AssetHubToFrequencyTest) -> DispatchResult { + ::PolkadotXcm::limited_reserve_transfer_assets( + t.signed_origin, + bx!(t.args.dest.into()), + bx!(t.args.beneficiary.into()), + bx!(t.args.assets.into()), + t.args.fee_asset_item, + t.args.weight_limit, + ) +} + +pub fn system_para_to_para_receiver_assertions(t: AssetHubToFrequencyTest) { + type RuntimeEvent = ::RuntimeEvent; + + FrequencyWestend::assert_xcmp_queue_success(None); + for asset in t.args.assets.into_inner().into_iter() { + let expected_id = asset.id.0.try_into().unwrap(); + assert_expected_events!( + FrequencyWestend, + vec![ + RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + asset_id: *asset_id == expected_id, + owner: *owner == t.receiver.account_id, + }, + ] + ); + } +} + +pub fn system_para_to_para_sender_assertions(t: AssetHubToFrequencyTest) { + type RuntimeEvent = ::RuntimeEvent; + AssetHubWestend::assert_xcm_pallet_attempted_complete(None); + + let sov_acc_of_dest = AssetHubWestend::sovereign_account_id_of(t.args.dest.clone()); + for asset in t.args.assets.into_inner().into_iter() { + let expected_id = asset.id.0.clone().try_into().unwrap(); + let asset_amount = if let Fungible(a) = asset.fun { Some(a) } else { None }.unwrap(); + if asset.id == AssetId(Location::new(1, [])) { + assert_expected_events!( + AssetHubWestend, + vec![ + // Amount of native asset is transferred to Parachain's Sovereign account + RuntimeEvent::Balances( + pallet_balances::Event::Transfer { from, to, amount } + ) => { + from: *from == t.sender.account_id, + to: *to == sov_acc_of_dest, + amount: *amount == asset_amount, + }, + ] + ); + } else if matches!( + asset.id.0.unpack(), + (0, [PalletInstance(ASSETS_PALLET_ID), GeneralIndex(_)]) + ) { + assert_expected_events!( + AssetHubWestend, + vec![ + // Amount of trust-backed asset is transferred to Parachain's Sovereign account + RuntimeEvent::Assets( + pallet_assets::Event::Transferred { from, to, amount, .. }, + ) => { + from: *from == t.sender.account_id, + to: *to == sov_acc_of_dest, + amount: *amount == asset_amount, + }, + ] + ); + } else { + assert_expected_events!( + AssetHubWestend, + vec![ + // Amount of foreign asset is transferred to Parachain's Sovereign account + RuntimeEvent::ForeignAssets( + pallet_assets::Event::Transferred { asset_id, from, to, amount }, + ) => { + asset_id: *asset_id == expected_id, + from: *from == t.sender.account_id, + to: *to == sov_acc_of_dest, + amount: *amount == asset_amount, + }, + ] + ); + } + } + assert_expected_events!( + AssetHubWestend, + vec![ + // Delivery fees are paid + RuntimeEvent::PolkadotXcm(pallet_xcm::Event::FeesPaid { .. }) => {}, + ] + ); + AssetHubWestend::assert_xcm_pallet_sent(); +} + +// ========================================================================= +// ======= Reserve Transfers - Native Asset - AssetHub<>Parachain ========== +// ========================================================================= +/// Reserve Transfers of native asset from Asset Hub to Parachain should work +#[test] +fn reserve_transfer_native_asset_from_asset_hub_to_para() { + // Init values for Asset Hub + let destination = AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); + let sender = AssetHubWestendSender::get(); + println!("destination: {:?}", destination); + println!("sender: {:?}", sender); + let amount_to_send: Balance = AssetHubExistentialDeposit::get() * 2000; + let assets: Assets = (Parent, amount_to_send).into(); + println!("asserts {:?}", assets); + + // // Init values for Parachain + let system_para_native_asset_location = WestendLocation::get(); + let receiver = FrequencyWestendReceiver::get(); + println!("receiver------------- {:?}", receiver); + + // // Init Test + let test_args = TestContext { + sender, + receiver: receiver.clone(), + args: TestArgs::new_para( + destination.clone(), + receiver.clone(), + amount_to_send, + assets.clone(), + None, + 0, + ), + }; + let mut test = AssetHubToFrequencyTest::new(test_args); + + // Create dot on frequency + FrequencyWestend::execute_with(|| { + type ForeignAssets = ::ForeignAssets; + >::create( + Parent.into(), + FrequencyWestendSender::get(), + false, + 1u32.into(), + ); + // assert!(>::asset_exists( + // ParentThen([Parachain(1000), Parachain(3), PalletInstance(5)].into()).into())); + assert!(>::asset_exists(Parent.into())); + }); + + // Query initial balances + let sender_balance_before = test.sender.balance; + let receiver_assets_before = + foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &receiver); + + println!("sender_balance_before {:?}", sender_balance_before); + // println!("receiver_assets_before {:?}", receiver_assets_before); + // test.set_assertion::(system_para_to_para_sender_assertions); + test.set_assertion::(system_para_to_para_receiver_assertions); + test.set_dispatchable::(system_para_to_para_reserve_transfer_assets); + test.assert(); + + // // Query final balances + let sender_balance_after = test.sender.balance; + println!("sender_balance_after {:?}", sender_balance_after); + let receiver_assets_after = + foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &receiver); + + // let taco = FrequencyWestend::execute_with(|| { + // type ForeignAssets = ::ForeignAssets; + // >::balance(system_para_native_asset_location.clone(), &receiver) + // }); + + // println!("taco: {:?}------", taco); + + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_balance_after < sender_balance_before - amount_to_send); + // Receiver's assets is increased + // assert!(receiver_assets_after > receiver_assets_before); + // Receiver's assets increased by `amount_to_send - delivery_fees - bought_execution`; + // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but + // should be non-zero + // assert!(receiver_assets_after < receiver_assets_before + amount_to_send); +} + +// Reserve Transfers of native asset from Parachain to Asset Hub should work +// #[test] +// fn reserve_transfer_native_asset_from_para_to_asset_hub() { +// // Init values for Parachain +// let destination = PenpalA::sibling_location_of(AssetHubWestend::para_id()); +// let sender = PenpalASender::get(); +// let amount_to_send: Balance = ASSET_HUB_WESTEND_ED * 1000; +// let assets: Assets = (Parent, amount_to_send).into(); +// let system_para_native_asset_location = RelayLocation::get(); +// let asset_owner = PenpalAssetOwner::get(); + +// // fund Parachain's sender account +// PenpalA::mint_foreign_asset( +// ::RuntimeOrigin::signed(asset_owner), +// system_para_native_asset_location.clone(), +// sender.clone(), +// amount_to_send * 2, +// ); + +// // Init values for Asset Hub +// let receiver = AssetHubWestendReceiver::get(); +// let penpal_location_as_seen_by_ahr = AssetHubWestend::sibling_location_of(PenpalA::para_id()); +// let sov_penpal_on_ahr = +// AssetHubWestend::sovereign_account_id_of(penpal_location_as_seen_by_ahr); + +// // fund Parachain's SA on Asset Hub with the native tokens held in reserve +// AssetHubWestend::fund_accounts(vec![(sov_penpal_on_ahr.into(), amount_to_send * 2)]); + +// // Init Test +// let test_args = TestContext { +// sender: sender.clone(), +// receiver: receiver.clone(), +// args: TestArgs::new_para( +// destination.clone(), +// receiver.clone(), +// amount_to_send, +// assets.clone(), +// None, +// 0, +// ), +// }; +// let mut test = ParaToSystemParaTest::new(test_args); + +// // Query initial balances +// let sender_assets_before = +// foreign_balance_on!(PenpalA, system_para_native_asset_location.clone(), &sender); +// let receiver_balance_before = test.receiver.balance; + +// // Set assertions and dispatchables +// test.set_assertion::(para_to_system_para_sender_assertions); +// test.set_assertion::(para_to_system_para_receiver_assertions); +// test.set_dispatchable::(para_to_system_para_reserve_transfer_assets); +// test.assert(); + +// // Query final balances +// let sender_assets_after = +// foreign_balance_on!(PenpalA, system_para_native_asset_location, &sender); +// let receiver_balance_after = test.receiver.balance; + +// // Sender's balance is reduced by amount sent plus delivery fees +// assert!(sender_assets_after < sender_assets_before - amount_to_send); +// // Receiver's balance is increased +// assert!(receiver_balance_after > receiver_balance_before); +// // Receiver's balance increased by `amount_to_send - delivery_fees - bought_execution`; +// // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but +// // should be non-zero +// assert!(receiver_balance_after < receiver_balance_before + amount_to_send); +// } From d7cf44903b1c1667be620a9da278c99171d5411f Mon Sep 17 00:00:00 2001 From: eNDdy Date: Tue, 6 May 2025 16:26:34 -0600 Subject: [PATCH 05/31] change --- .../chains/frequency-westend/src/lib.rs | 3 +- .../test/frequency-westend/src/lib.rs | 3 +- .../test/frequency-westend/src/tests/mod.rs | 12 ++ .../frequency-westend/src/tests/reserve.rs | 134 ++++-------------- 4 files changed, 45 insertions(+), 107 deletions(-) diff --git a/emulated-test/chains/frequency-westend/src/lib.rs b/emulated-test/chains/frequency-westend/src/lib.rs index 30c6b3f4e8..21a32589ca 100644 --- a/emulated-test/chains/frequency-westend/src/lib.rs +++ b/emulated-test/chains/frequency-westend/src/lib.rs @@ -47,6 +47,5 @@ decl_test_parachains! { impl_accounts_helpers_for_parachain!(FrequencyWestend); impl_assert_events_helpers_for_parachain!(FrequencyWestend); -// impl_assets_helpers_for_parachain!(Frequency); -// impl_foreign_assets_helpers_for_parachain!(Frequency, staging_xcm::latest::Location); impl_xcm_helpers_for_parachain!(FrequencyWestend); +// impl_foreign_assets_helpers_for_parachain!(FrequencyWestend, staging_xcm::latest::Location); diff --git a/emulated-test/test/frequency-westend/src/lib.rs b/emulated-test/test/frequency-westend/src/lib.rs index 263655d877..c415f3d43b 100644 --- a/emulated-test/test/frequency-westend/src/lib.rs +++ b/emulated-test/test/frequency-westend/src/lib.rs @@ -3,7 +3,8 @@ mod imports { pub use frame_support::{ assert_ok, sp_runtime::DispatchResult, - traits::fungibles::{Create as FungiblesCreate, Inspect}, + traits::fungibles::{Create as FungiblesCreate, Inspect as FungiblesInspect}, + traits::fungible::Inspect, }; // Polkadot diff --git a/emulated-test/test/frequency-westend/src/tests/mod.rs b/emulated-test/test/frequency-westend/src/tests/mod.rs index 033222f746..b9fc2f5021 100644 --- a/emulated-test/test/frequency-westend/src/tests/mod.rs +++ b/emulated-test/test/frequency-westend/src/tests/mod.rs @@ -1,2 +1,14 @@ // mod teleport; mod reserve; + +#[macro_export] +macro_rules! foreign_balance_on { + ( $chain:ident, $id:expr, $who:expr ) => { + emulated_integration_tests_common::impls::paste::paste! { + <$chain>::execute_with(|| { + type ForeignAssets = <$chain as [<$chain Pallet>]>::ForeignAssets; + >::balance($id, $who) + }) + } + }; +} \ No newline at end of file diff --git a/emulated-test/test/frequency-westend/src/tests/reserve.rs b/emulated-test/test/frequency-westend/src/tests/reserve.rs index 8216b044a5..4ab0c4ab5d 100644 --- a/emulated-test/test/frequency-westend/src/tests/reserve.rs +++ b/emulated-test/test/frequency-westend/src/tests/reserve.rs @@ -1,17 +1,6 @@ +use crate::foreign_balance_on; use crate::imports::*; -#[macro_export] -macro_rules! foreign_balance_on { - ( $chain:ident, $id:expr, $who:expr ) => { - emulated_integration_tests_common::impls::paste::paste! { - <$chain>::execute_with(|| { - type ForeignAssets = <$chain as [<$chain Pallet>]>::ForeignAssets; - >::balance($id, $who) - }) - } - }; -} - fn system_para_to_para_reserve_transfer_assets(t: AssetHubToFrequencyTest) -> DispatchResult { ::PolkadotXcm::limited_reserve_transfer_assets( t.signed_origin, @@ -108,24 +97,26 @@ pub fn system_para_to_para_sender_assertions(t: AssetHubToFrequencyTest) { } // ========================================================================= -// ======= Reserve Transfers - Native Asset - AssetHub<>Parachain ========== +// ======= Reserve Transfers - WSND Native Asset - AssetHub<>Frequency========== // ========================================================================= -/// Reserve Transfers of native asset from Asset Hub to Parachain should work +/// Reserve Transfers of native asset from Asset Hub to Frequency should work #[test] fn reserve_transfer_native_asset_from_asset_hub_to_para() { - // Init values for Asset Hub let destination = AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); let sender = AssetHubWestendSender::get(); - println!("destination: {:?}", destination); - println!("sender: {:?}", sender); let amount_to_send: Balance = AssetHubExistentialDeposit::get() * 2000; let assets: Assets = (Parent, amount_to_send).into(); - println!("asserts {:?}", assets); // // Init values for Parachain let system_para_native_asset_location = WestendLocation::get(); let receiver = FrequencyWestendReceiver::get(); - println!("receiver------------- {:?}", receiver); + println!("receiver {:?}", receiver); + + let receiver_XRQCY_assets_before = FrequencyWestend::execute_with(|| { + type Balances = ::Balances; + >::balance(&receiver) + }); + assert_eq!(receiver_XRQCY_assets_before, 4096000000u128); // // Init Test let test_args = TestContext { @@ -151,111 +142,46 @@ fn reserve_transfer_native_asset_from_asset_hub_to_para() { false, 1u32.into(), ); - // assert!(>::asset_exists( - // ParentThen([Parachain(1000), Parachain(3), PalletInstance(5)].into()).into())); - assert!(>::asset_exists(Parent.into())); + + assert!(>::asset_exists(Parent.into())); }); // Query initial balances let sender_balance_before = test.sender.balance; + let receiver_assets_before = foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &receiver); + assert!(receiver_assets_before == 0u128); - println!("sender_balance_before {:?}", sender_balance_before); // println!("receiver_assets_before {:?}", receiver_assets_before); - // test.set_assertion::(system_para_to_para_sender_assertions); + test.set_assertion::(system_para_to_para_sender_assertions); test.set_assertion::(system_para_to_para_receiver_assertions); test.set_dispatchable::(system_para_to_para_reserve_transfer_assets); test.assert(); + let receiver_XRQCY_assets_after = FrequencyWestend::execute_with(|| { + type Balances = ::Balances; + >::balance(&receiver) + }); + assert_eq!(receiver_XRQCY_assets_after, 4096000000u128); + // // Query final balances let sender_balance_after = test.sender.balance; - println!("sender_balance_after {:?}", sender_balance_after); + let receiver_assets_after = foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &receiver); - // let taco = FrequencyWestend::execute_with(|| { - // type ForeignAssets = ::ForeignAssets; - // >::balance(system_para_native_asset_location.clone(), &receiver) - // }); + assert!( + sender_balance_after < sender_balance_before - amount_to_send, + "Sender's balance was NOT reduced by amount sent plus delivery fees" + ); + + assert!(receiver_assets_after > receiver_assets_before, "Receiver's assets did NOT increased"); - // println!("taco: {:?}------", taco); + println!("amount_to_send amount sent {:?}", amount_to_send); - // Sender's balance is reduced by amount sent plus delivery fees - assert!(sender_balance_after < sender_balance_before - amount_to_send); - // Receiver's assets is increased - // assert!(receiver_assets_after > receiver_assets_before); // Receiver's assets increased by `amount_to_send - delivery_fees - bought_execution`; // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but // should be non-zero - // assert!(receiver_assets_after < receiver_assets_before + amount_to_send); + assert!(receiver_assets_after < receiver_assets_before + amount_to_send); } - -// Reserve Transfers of native asset from Parachain to Asset Hub should work -// #[test] -// fn reserve_transfer_native_asset_from_para_to_asset_hub() { -// // Init values for Parachain -// let destination = PenpalA::sibling_location_of(AssetHubWestend::para_id()); -// let sender = PenpalASender::get(); -// let amount_to_send: Balance = ASSET_HUB_WESTEND_ED * 1000; -// let assets: Assets = (Parent, amount_to_send).into(); -// let system_para_native_asset_location = RelayLocation::get(); -// let asset_owner = PenpalAssetOwner::get(); - -// // fund Parachain's sender account -// PenpalA::mint_foreign_asset( -// ::RuntimeOrigin::signed(asset_owner), -// system_para_native_asset_location.clone(), -// sender.clone(), -// amount_to_send * 2, -// ); - -// // Init values for Asset Hub -// let receiver = AssetHubWestendReceiver::get(); -// let penpal_location_as_seen_by_ahr = AssetHubWestend::sibling_location_of(PenpalA::para_id()); -// let sov_penpal_on_ahr = -// AssetHubWestend::sovereign_account_id_of(penpal_location_as_seen_by_ahr); - -// // fund Parachain's SA on Asset Hub with the native tokens held in reserve -// AssetHubWestend::fund_accounts(vec![(sov_penpal_on_ahr.into(), amount_to_send * 2)]); - -// // Init Test -// let test_args = TestContext { -// sender: sender.clone(), -// receiver: receiver.clone(), -// args: TestArgs::new_para( -// destination.clone(), -// receiver.clone(), -// amount_to_send, -// assets.clone(), -// None, -// 0, -// ), -// }; -// let mut test = ParaToSystemParaTest::new(test_args); - -// // Query initial balances -// let sender_assets_before = -// foreign_balance_on!(PenpalA, system_para_native_asset_location.clone(), &sender); -// let receiver_balance_before = test.receiver.balance; - -// // Set assertions and dispatchables -// test.set_assertion::(para_to_system_para_sender_assertions); -// test.set_assertion::(para_to_system_para_receiver_assertions); -// test.set_dispatchable::(para_to_system_para_reserve_transfer_assets); -// test.assert(); - -// // Query final balances -// let sender_assets_after = -// foreign_balance_on!(PenpalA, system_para_native_asset_location, &sender); -// let receiver_balance_after = test.receiver.balance; - -// // Sender's balance is reduced by amount sent plus delivery fees -// assert!(sender_assets_after < sender_assets_before - amount_to_send); -// // Receiver's balance is increased -// assert!(receiver_balance_after > receiver_balance_before); -// // Receiver's balance increased by `amount_to_send - delivery_fees - bought_execution`; -// // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but -// // should be non-zero -// assert!(receiver_balance_after < receiver_balance_before + amount_to_send); -// } From 0f321e1c13827282865a3df7f67afc074631abb9 Mon Sep 17 00:00:00 2001 From: eNDdy Date: Thu, 8 May 2025 14:14:23 -0600 Subject: [PATCH 06/31] change --- Cargo.lock | 4 + Cargo.toml | 3 + .../chains/frequency-westend/src/genesis.rs | 5 +- .../chains/frequency-westend/src/lib.rs | 16 +- .../test/frequency-westend/Cargo.toml | 10 + .../test/frequency-westend/src/lib.rs | 5 +- .../test/frequency-westend/src/tests/mod.rs | 2 +- .../frequency-westend/src/tests/reserve.rs | 192 +++++++++++++++++- 8 files changed, 211 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index efabd5dd30..73de00ed04 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4911,9 +4911,13 @@ dependencies = [ "pallet-message-queue", "pallet-xcm", "parachains-common", + "sp-io", "sp-runtime", + "sp-tracing", "staging-xcm", "staging-xcm-executor", + "tracing", + "tracing-subscriber", "westend-runtime", "westend-system-emulated-network", ] diff --git a/Cargo.toml b/Cargo.toml index d8b92a289b..b30a618975 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -136,6 +136,9 @@ sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", bra sp-consensus-beefy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } sp-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } +sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } +tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } +tracing-subscriber = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } emulated-integration-tests-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } asset-hub-westend-emulated-chain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } diff --git a/emulated-test/chains/frequency-westend/src/genesis.rs b/emulated-test/chains/frequency-westend/src/genesis.rs index bc44c07400..a929fe8cd5 100644 --- a/emulated-test/chains/frequency-westend/src/genesis.rs +++ b/emulated-test/chains/frequency-westend/src/genesis.rs @@ -4,12 +4,11 @@ use sp_keyring::Sr25519Keyring as Keyring; // Cumulus use emulated_integration_tests_common::{ - accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, + accounts, build_genesis_storage, collators, }; use parachains_common::{AccountId, Balance}; // use frequency_runtime::xcm_config::{LocalReservableFromAssetHub, RelayLocation, UsdtFromAssetHub}; -use frequency_runtime::xcm_config::RelayLocation; -// Penpal + pub const PARA_ID: u32 = 2000; pub const ED: Balance = frequency_runtime::EXISTENTIAL_DEPOSIT; diff --git a/emulated-test/chains/frequency-westend/src/lib.rs b/emulated-test/chains/frequency-westend/src/lib.rs index 21a32589ca..8bfcd58110 100644 --- a/emulated-test/chains/frequency-westend/src/lib.rs +++ b/emulated-test/chains/frequency-westend/src/lib.rs @@ -3,32 +3,18 @@ pub use frequency_runtime::{self, xcm_config::RelayNetwork as FrequencyRelayNetw mod genesis; pub use genesis::{genesis, FrequencySudoAccount, ED, PARA_ID}; -// Substrate use frame_support::traits::OnInitialize; -use sp_core::Encode; -// Cumulus use emulated_integration_tests_common::{ impl_accounts_helpers_for_parachain, impl_assert_events_helpers_for_parachain, - impl_assets_helpers_for_parachain, impl_foreign_assets_helpers_for_parachain, - impl_xcm_helpers_for_parachain, - impls::{NetworkId, Parachain}, - xcm_emulator::decl_test_parachains, + impl_xcm_helpers_for_parachain, impls::Parachain, xcm_emulator::decl_test_parachains, }; -// Polkadot -use staging_xcm::latest::WESTEND_GENESIS_HASH; - -// Penpal Parachain declaration decl_test_parachains! { pub struct FrequencyWestend { genesis = genesis(PARA_ID), on_init = { frequency_runtime::AuraExt::on_initialize(1); - // frame_support::assert_ok!(frequency_runtime::System::set_storage( - // frequency_runtime::RuntimeOrigin::root(), - // vec![(FrequencyRelayNetworkId::get().unwrap(), NetworkId::ByGenesis(WESTEND_GENESIS_HASH).encode())], - // )); }, runtime = frequency_runtime, core = { diff --git a/emulated-test/test/frequency-westend/Cargo.toml b/emulated-test/test/frequency-westend/Cargo.toml index b9f3745068..8d2fbeb256 100644 --- a/emulated-test/test/frequency-westend/Cargo.toml +++ b/emulated-test/test/frequency-westend/Cargo.toml @@ -23,3 +23,13 @@ westend-system-emulated-network = { path = "../../networks/westend"} xcm-executor = { workspace = true } staging-xcm = { workspace = true } pallet-assets = { workspace = true } +sp-io = { workspace = true } +sp-tracing = { workspace = true } +tracing = { version = "0.1.37" } +tracing-subscriber = { version = "0.3.16", features = ["env-filter"] } + + +[features] +default = ["std"] +with-tracing = ["sp-tracing/with-tracing"] +std = ["sp-tracing/std"] \ No newline at end of file diff --git a/emulated-test/test/frequency-westend/src/lib.rs b/emulated-test/test/frequency-westend/src/lib.rs index c415f3d43b..74aced259d 100644 --- a/emulated-test/test/frequency-westend/src/lib.rs +++ b/emulated-test/test/frequency-westend/src/lib.rs @@ -3,8 +3,10 @@ mod imports { pub use frame_support::{ assert_ok, sp_runtime::DispatchResult, - traits::fungibles::{Create as FungiblesCreate, Inspect as FungiblesInspect}, traits::fungible::Inspect, + traits::fungibles::{ + Create as FungiblesCreate, Inspect as FungiblesInspect, Mutate as FungiblesMutate, + }, }; // Polkadot @@ -46,6 +48,7 @@ mod imports { }; pub type AssetHubToFrequencyTest = Test; + pub type FrequencyToAssetHubTest = Test; } #[cfg(test)] diff --git a/emulated-test/test/frequency-westend/src/tests/mod.rs b/emulated-test/test/frequency-westend/src/tests/mod.rs index b9fc2f5021..0c0f3f02d7 100644 --- a/emulated-test/test/frequency-westend/src/tests/mod.rs +++ b/emulated-test/test/frequency-westend/src/tests/mod.rs @@ -11,4 +11,4 @@ macro_rules! foreign_balance_on { }) } }; -} \ No newline at end of file +} diff --git a/emulated-test/test/frequency-westend/src/tests/reserve.rs b/emulated-test/test/frequency-westend/src/tests/reserve.rs index 4ab0c4ab5d..a960297f18 100644 --- a/emulated-test/test/frequency-westend/src/tests/reserve.rs +++ b/emulated-test/test/frequency-westend/src/tests/reserve.rs @@ -1,6 +1,96 @@ use crate::foreign_balance_on; use crate::imports::*; +fn para_to_system_para_reserve_transfer_assets(t: FrequencyToAssetHubTest) -> DispatchResult { + ::PolkadotXcm::limited_reserve_transfer_assets( + t.signed_origin, + bx!(t.args.dest.into()), + bx!(t.args.beneficiary.into()), + bx!(t.args.assets.into()), + t.args.fee_asset_item, + t.args.weight_limit, + ) +} + +pub fn para_to_system_para_sender_assertions(t: FrequencyToAssetHubTest) { + type RuntimeEvent = ::RuntimeEvent; + FrequencyWestend::assert_xcm_pallet_attempted_complete(None); + for asset in t.args.assets.into_inner().into_iter() { + let expected_id = asset.id.0; + let asset_amount = if let Fungible(a) = asset.fun { Some(a) } else { None }.unwrap(); + assert_expected_events!( + FrequencyWestend, + vec![ + RuntimeEvent::ForeignAssets( + pallet_assets::Event::Burned { asset_id, owner, balance } + ) => { + asset_id: *asset_id == expected_id, + owner: *owner == t.sender.account_id, + balance: *balance == asset_amount, + }, + ] + ); + } +} + +pub fn para_to_system_para_receiver_assertions(t: FrequencyToAssetHubTest) { + type RuntimeEvent = ::RuntimeEvent; + AssetHubWestend::assert_xcmp_queue_success(None); + + let sov_acc_of_frequency = AssetHubWestend::sovereign_account_id_of(t.args.dest.clone()); + for (idx, asset) in t.args.assets.into_inner().into_iter().enumerate() { + let expected_id = asset.id.0.clone().try_into().unwrap(); + let asset_amount = if let Fungible(a) = asset.fun { Some(a) } else { None }.unwrap(); + if idx == t.args.fee_asset_item as usize { + assert_expected_events!( + AssetHubWestend, + vec![ + // Amount of native is withdrawn from Parachain's Sovereign account + RuntimeEvent::Balances( + pallet_balances::Event::Burned { who, amount } + ) => { + who: *who == sov_acc_of_frequency.clone().into(), + amount: *amount == asset_amount, + }, + RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + who: *who == t.receiver.account_id, + }, + ] + ); + } else { + assert_expected_events!( + AssetHubWestend, + vec![ + // Amount of foreign asset is transferred from Parachain's Sovereign account + // to Receiver's account + RuntimeEvent::ForeignAssets( + pallet_assets::Event::Burned { asset_id, owner, balance }, + ) => { + asset_id: *asset_id == expected_id, + owner: *owner == sov_acc_of_frequency, + balance: *balance == asset_amount, + }, + RuntimeEvent::ForeignAssets( + pallet_assets::Event::Issued { asset_id, owner, amount }, + ) => { + asset_id: *asset_id == expected_id, + owner: *owner == t.receiver.account_id, + amount: *amount == asset_amount, + }, + ] + ); + } + } + assert_expected_events!( + AssetHubWestend, + vec![ + RuntimeEvent::MessageQueue( + pallet_message_queue::Event::Processed { success: true, .. } + ) => {}, + ] + ); +} + fn system_para_to_para_reserve_transfer_assets(t: AssetHubToFrequencyTest) -> DispatchResult { ::PolkadotXcm::limited_reserve_transfer_assets( t.signed_origin, @@ -102,12 +192,14 @@ pub fn system_para_to_para_sender_assertions(t: AssetHubToFrequencyTest) { /// Reserve Transfers of native asset from Asset Hub to Frequency should work #[test] fn reserve_transfer_native_asset_from_asset_hub_to_para() { + // RUST_LOG="xcm=trace,system::events=trace" cargo test -p frequency-westend-integration-tests -- --nocapture + // sp_tracing::try_init_simple(); let destination = AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); let sender = AssetHubWestendSender::get(); let amount_to_send: Balance = AssetHubExistentialDeposit::get() * 2000; let assets: Assets = (Parent, amount_to_send).into(); - // // Init values for Parachain + // Init values for Parachain let system_para_native_asset_location = WestendLocation::get(); let receiver = FrequencyWestendReceiver::get(); println!("receiver {:?}", receiver); @@ -118,7 +210,6 @@ fn reserve_transfer_native_asset_from_asset_hub_to_para() { }); assert_eq!(receiver_XRQCY_assets_before, 4096000000u128); - // // Init Test let test_args = TestContext { sender, receiver: receiver.clone(), @@ -142,7 +233,6 @@ fn reserve_transfer_native_asset_from_asset_hub_to_para() { false, 1u32.into(), ); - assert!(>::asset_exists(Parent.into())); }); @@ -165,7 +255,6 @@ fn reserve_transfer_native_asset_from_asset_hub_to_para() { }); assert_eq!(receiver_XRQCY_assets_after, 4096000000u128); - // // Query final balances let sender_balance_after = test.sender.balance; let receiver_assets_after = @@ -178,10 +267,101 @@ fn reserve_transfer_native_asset_from_asset_hub_to_para() { assert!(receiver_assets_after > receiver_assets_before, "Receiver's assets did NOT increased"); - println!("amount_to_send amount sent {:?}", amount_to_send); - // Receiver's assets increased by `amount_to_send - delivery_fees - bought_execution`; // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but // should be non-zero assert!(receiver_assets_after < receiver_assets_before + amount_to_send); } + +#[test] +fn reserve_transfer_native_asset_from_para_to_asset_hub() { + sp_tracing::try_init_simple(); + let destination = FrequencyWestend::sibling_location_of(AssetHubWestend::para_id()); + let sender = FrequencyWestendSender::get(); + let amount_to_send: Balance = AssetHubExistentialDeposit::get() * 1000; + let assets: Assets = (Parent, amount_to_send).into(); + let system_para_native_asset_location = WestendLocation::get(); + + let frequency_sender_native_before = FrequencyWestend::execute_with(|| { + type Balances = ::Balances; + >::balance(&FrequencyWestendSender::get()) + }); + + assert_eq!(frequency_sender_native_before, 4096000000u128); + + FrequencyWestend::execute_with(|| { + type ForeignAssets = ::ForeignAssets; + >::create( + Parent.into(), + FrequencyWestendSender::get(), + false, + 1u32.into(), + ); + + >::mint_into( + Parent.into(), + &FrequencyWestendSender::get(), + amount_to_send * 2, + ); + + assert!(>::asset_exists(Parent.into())); + }); + + // Init values for Asset Hub + let receiver = AssetHubWestendReceiver::get(); + let frequency_location_as_seen_by_ahr = + AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); + let sov_frequency_on_ahr = + AssetHubWestend::sovereign_account_id_of(frequency_location_as_seen_by_ahr); + + // fund Parachain's SA on Asset Hub with the native tokens held in reserve + AssetHubWestend::fund_accounts(vec![(sov_frequency_on_ahr.into(), amount_to_send * 2)]); + + // Init Test + let test_args = TestContext { + sender: sender.clone(), + receiver: receiver.clone(), + args: TestArgs::new_para( + destination.clone(), + receiver.clone(), + amount_to_send, + assets.clone(), + None, + 0, + ), + }; + let mut test = FrequencyToAssetHubTest::new(test_args); + + // Query initial balances + let sender_assets_before = + foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &sender); + let receiver_balance_before = test.receiver.balance; + + assert_eq!(sender_assets_before, 2000000000000u128); + + // Set assertions and dispatchables + test.set_assertion::(para_to_system_para_sender_assertions); + // test.set_assertion::(para_to_system_para_receiver_assertions); + test.set_dispatchable::(para_to_system_para_reserve_transfer_assets); + test.assert(); + + // Query final balances + let sender_assets_after = + foreign_balance_on!(FrequencyWestend, system_para_native_asset_location, &sender); + let receiver_balance_after = test.receiver.balance; + + let frequency_sender_native_after = FrequencyWestend::execute_with(|| { + type Balances = ::Balances; + >::balance(&FrequencyWestendSender::get()) + }); + + + // // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_assets_after < sender_assets_before - amount_to_send); + // // Receiver's balance is increased + // assert!(receiver_balance_after > receiver_balance_before); + // // Receiver's balance increased by `amount_to_send - delivery_fees - bought_execution`; + // // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but + // // should be non-zero + // assert!(receiver_balance_after < receiver_balance_before + amount_to_send); +} From f0e1305a762da66b6ebe6395494d7f4786bbd21f Mon Sep 17 00:00:00 2001 From: eNDdy Date: Thu, 8 May 2025 14:17:22 -0600 Subject: [PATCH 07/31] rm excess --- emulated-test/src/genesis.rs | 78 ------------------------------------ emulated-test/src/lib.rs | 46 --------------------- 2 files changed, 124 deletions(-) delete mode 100644 emulated-test/src/genesis.rs delete mode 100644 emulated-test/src/lib.rs diff --git a/emulated-test/src/genesis.rs b/emulated-test/src/genesis.rs deleted file mode 100644 index 2ef82ed418..0000000000 --- a/emulated-test/src/genesis.rs +++ /dev/null @@ -1,78 +0,0 @@ -// Substrate -use sc_consensus_grandpa::AuthorityId as GrandpaId; -use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; -use sp_consensus_babe::AuthorityId as BabeId; -use sp_consensus_beefy::ecdsa_crypto::AuthorityId as BeefyId; -use sp_core::storage::Storage; -use sp_runtime::Perbill; - -// Polkadot -use polkadot_primitives::{AssignmentId, ValidatorId}; - -// Cumulus -use emulated_integration_tests_common::{ - accounts, build_genesis_storage, get_host_config, validators, -}; -use parachains_common::Balance; -use westend_runtime_constants::currency::UNITS as WND; - -pub const ED: Balance = westend_runtime_constants::currency::EXISTENTIAL_DEPOSIT; -const ENDOWMENT: u128 = 1_000_000 * WND; -const STASH: u128 = 100 * WND; - -fn session_keys( - babe: BabeId, - grandpa: GrandpaId, - para_validator: ValidatorId, - para_assignment: AssignmentId, - authority_discovery: AuthorityDiscoveryId, - beefy: BeefyId, -) -> westend_runtime::SessionKeys { - westend_runtime::SessionKeys { - babe, - grandpa, - para_validator, - para_assignment, - authority_discovery, - beefy, - } -} - -pub fn genesis() -> Storage { - let genesis_config = westend_runtime::RuntimeGenesisConfig { - system: westend_runtime::SystemConfig::default(), - balances: westend_runtime::BalancesConfig { - balances: accounts::init_balances().iter().cloned().map(|k| (k, ENDOWMENT)).collect(), - ..Default::default() - }, - session: westend_runtime::SessionConfig { - keys: validators::initial_authorities() - .iter() - .map(|x| { - ( - x.0.clone(), - x.0.clone(), - session_keys( - x.2.clone(), - x.3.clone(), - x.4.clone(), - x.5.clone(), - x.6.clone(), - x.7.clone(), - ), - ) - }) - .collect::>(), - ..Default::default() - }, - babe: westend_runtime::BabeConfig { - authorities: Default::default(), - epoch_config: westend_runtime::BABE_GENESIS_EPOCH_CONFIG, - ..Default::default() - }, - configuration: westend_runtime::ConfigurationConfig { config: get_host_config() }, - ..Default::default() - }; - - build_genesis_storage(&genesis_config, westend_runtime::WASM_BINARY.unwrap()) -} diff --git a/emulated-test/src/lib.rs b/emulated-test/src/lib.rs deleted file mode 100644 index db08b0e6c9..0000000000 --- a/emulated-test/src/lib.rs +++ /dev/null @@ -1,46 +0,0 @@ -use asset_hub_westend_emulated_chain::AssetHubWestend; -use emulated_integration_tests_common::{ - accounts::{ALICE, BOB}, - xcm_emulator::{decl_test_networks, decl_test_sender_receiver_accounts_parameter_types}, -}; -use westend_emulated_chain::Westend; - -decl_test_networks! { - pub struct WestendMockNet { - relay_chain = Westend, - parachains = vec![ - AssetHubWestend, - ], - bridge = () - }, -} - -// use xcm_emulator::{decl_test_relay_chains}; -// use sp_core::storage::Storage; -// use sp_runtime::{traits::AccountIdConversion, BuildStorage}; -// use emulated_integration_tests_common::{accounts, build_genesis_storage, get_host_config, validators}; - -// pub use westend_runtime; - -// pub mod genesis; - -// decl_test_relay_chains! { -// #[api_version(11)] -// pub struct Westend { -// on_init = (), -// runtime = westend_runtime, -// core = { -// SovereignAccountOf: westend_runtime::xcm_config::LocationConverter, -// }, -// pallets = { -// XcmPallet: westend_runtime::XcmPallet, -// Sudo: westend_runtime::Sudo, -// Balances: westend_runtime::Balances, -// Treasury: westend_runtime::Treasury, -// AssetRate: westend_runtime::AssetRate, -// Hrmp: westend_runtime::Hrmp, -// Identity: westend_runtime::Identity, -// IdentityMigrator: westend_runtime::IdentityMigrator, -// } -// }, -// } From 99a8a10accbf5d5197b20fdc611b82581c226d6d Mon Sep 17 00:00:00 2001 From: eNDdy Date: Thu, 8 May 2025 15:27:48 -0600 Subject: [PATCH 08/31] change --- Cargo.lock | 3 - .../test/frequency-westend/Cargo.toml | 11 +- .../test/frequency-westend/src/tests/mod.rs | 7 ++ .../frequency-westend/src/tests/reserve.rs | 116 ++++++++++-------- 4 files changed, 74 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 73de00ed04..f46b6f54c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4913,11 +4913,8 @@ dependencies = [ "parachains-common", "sp-io", "sp-runtime", - "sp-tracing", "staging-xcm", "staging-xcm-executor", - "tracing", - "tracing-subscriber", "westend-runtime", "westend-system-emulated-network", ] diff --git a/emulated-test/test/frequency-westend/Cargo.toml b/emulated-test/test/frequency-westend/Cargo.toml index 8d2fbeb256..ae7aa5c13e 100644 --- a/emulated-test/test/frequency-westend/Cargo.toml +++ b/emulated-test/test/frequency-westend/Cargo.toml @@ -23,13 +23,4 @@ westend-system-emulated-network = { path = "../../networks/westend"} xcm-executor = { workspace = true } staging-xcm = { workspace = true } pallet-assets = { workspace = true } -sp-io = { workspace = true } -sp-tracing = { workspace = true } -tracing = { version = "0.1.37" } -tracing-subscriber = { version = "0.3.16", features = ["env-filter"] } - - -[features] -default = ["std"] -with-tracing = ["sp-tracing/with-tracing"] -std = ["sp-tracing/std"] \ No newline at end of file +sp-io = { workspace = true } \ No newline at end of file diff --git a/emulated-test/test/frequency-westend/src/tests/mod.rs b/emulated-test/test/frequency-westend/src/tests/mod.rs index 0c0f3f02d7..855b16e024 100644 --- a/emulated-test/test/frequency-westend/src/tests/mod.rs +++ b/emulated-test/test/frequency-westend/src/tests/mod.rs @@ -12,3 +12,10 @@ macro_rules! foreign_balance_on { } }; } + +// fn foreign_balance_on_frequency_westend(id: v5::Location, who: &AccountId) -> u128 { +// FrequencyWestend::execute_with(|| { +// type ForeignAssets = ::ForeignAssets; +// >::balance($id, $who) +// }) +// } diff --git a/emulated-test/test/frequency-westend/src/tests/reserve.rs b/emulated-test/test/frequency-westend/src/tests/reserve.rs index a960297f18..a613a81486 100644 --- a/emulated-test/test/frequency-westend/src/tests/reserve.rs +++ b/emulated-test/test/frequency-westend/src/tests/reserve.rs @@ -1,6 +1,13 @@ use crate::foreign_balance_on; use crate::imports::*; +fn get_native_balance_of_frequency_sender() -> u128 { + FrequencyWestend::execute_with(|| { + type Balances = ::Balances; + >::balance(&FrequencyWestendSender::get()) + }) +} + fn para_to_system_para_reserve_transfer_assets(t: FrequencyToAssetHubTest) -> DispatchResult { ::PolkadotXcm::limited_reserve_transfer_assets( t.signed_origin, @@ -123,12 +130,14 @@ pub fn system_para_to_para_receiver_assertions(t: AssetHubToFrequencyTest) { pub fn system_para_to_para_sender_assertions(t: AssetHubToFrequencyTest) { type RuntimeEvent = ::RuntimeEvent; AssetHubWestend::assert_xcm_pallet_attempted_complete(None); + println!("------------here----------------------------"); let sov_acc_of_dest = AssetHubWestend::sovereign_account_id_of(t.args.dest.clone()); for asset in t.args.assets.into_inner().into_iter() { let expected_id = asset.id.0.clone().try_into().unwrap(); let asset_amount = if let Fungible(a) = asset.fun { Some(a) } else { None }.unwrap(); if asset.id == AssetId(Location::new(1, [])) { + println!("------------here----------------------------"); assert_expected_events!( AssetHubWestend, vec![ @@ -146,6 +155,7 @@ pub fn system_para_to_para_sender_assertions(t: AssetHubToFrequencyTest) { asset.id.0.unpack(), (0, [PalletInstance(ASSETS_PALLET_ID), GeneralIndex(_)]) ) { + println!("------------here----------------------------"); assert_expected_events!( AssetHubWestend, vec![ @@ -160,6 +170,7 @@ pub fn system_para_to_para_sender_assertions(t: AssetHubToFrequencyTest) { ] ); } else { + println!("------------here----------------------------"); assert_expected_events!( AssetHubWestend, vec![ @@ -186,14 +197,28 @@ pub fn system_para_to_para_sender_assertions(t: AssetHubToFrequencyTest) { AssetHubWestend::assert_xcm_pallet_sent(); } +fn setup_foreign_asset_on_frequency() { + FrequencyWestend::execute_with(|| { + type ForeignAssets = ::ForeignAssets; + >::create( + Parent.into(), + FrequencyWestendSender::get(), + false, + 1u32.into(), + ); + assert!(>::asset_exists(Parent.into())); + }); +} + // ========================================================================= // ======= Reserve Transfers - WSND Native Asset - AssetHub<>Frequency========== // ========================================================================= /// Reserve Transfers of native asset from Asset Hub to Frequency should work +// RUST_LOG="xcm=trace,system::events=trace" cargo test -p frequency-westend-integration-tests -- --nocapture #[test] fn reserve_transfer_native_asset_from_asset_hub_to_para() { - // RUST_LOG="xcm=trace,system::events=trace" cargo test -p frequency-westend-integration-tests -- --nocapture - // sp_tracing::try_init_simple(); + setup_foreign_asset_on_frequency(); + let destination = AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); let sender = AssetHubWestendSender::get(); let amount_to_send: Balance = AssetHubExistentialDeposit::get() * 2000; @@ -202,13 +227,12 @@ fn reserve_transfer_native_asset_from_asset_hub_to_para() { // Init values for Parachain let system_para_native_asset_location = WestendLocation::get(); let receiver = FrequencyWestendReceiver::get(); - println!("receiver {:?}", receiver); - let receiver_XRQCY_assets_before = FrequencyWestend::execute_with(|| { - type Balances = ::Balances; - >::balance(&receiver) - }); - assert_eq!(receiver_XRQCY_assets_before, 4096000000u128); + // let receiver_xrqcy_assets_before = FrequencyWestend::execute_with(|| { + // type Balances = ::Balances; + // >::balance(&receiver) + // }); + // assert_eq!(receiver_xrqcy_assets_before, 4096000000u128); let test_args = TestContext { sender, @@ -224,17 +248,6 @@ fn reserve_transfer_native_asset_from_asset_hub_to_para() { }; let mut test = AssetHubToFrequencyTest::new(test_args); - // Create dot on frequency - FrequencyWestend::execute_with(|| { - type ForeignAssets = ::ForeignAssets; - >::create( - Parent.into(), - FrequencyWestendSender::get(), - false, - 1u32.into(), - ); - assert!(>::asset_exists(Parent.into())); - }); // Query initial balances let sender_balance_before = test.sender.balance; @@ -243,17 +256,16 @@ fn reserve_transfer_native_asset_from_asset_hub_to_para() { foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &receiver); assert!(receiver_assets_before == 0u128); - // println!("receiver_assets_before {:?}", receiver_assets_before); test.set_assertion::(system_para_to_para_sender_assertions); - test.set_assertion::(system_para_to_para_receiver_assertions); + // test.set_assertion::(system_para_to_para_receiver_assertions); test.set_dispatchable::(system_para_to_para_reserve_transfer_assets); test.assert(); - let receiver_XRQCY_assets_after = FrequencyWestend::execute_with(|| { - type Balances = ::Balances; - >::balance(&receiver) - }); - assert_eq!(receiver_XRQCY_assets_after, 4096000000u128); + // let receiver_xrqcy_assets_after = FrequencyWestend::execute_with(|| { + // type Balances = ::Balances; + // >::balance(&receiver) + // }); + // assert_eq!(receiver_xrqcy_assets_after, 4096000000u128); let sender_balance_after = test.sender.balance; @@ -273,51 +285,55 @@ fn reserve_transfer_native_asset_from_asset_hub_to_para() { assert!(receiver_assets_after < receiver_assets_before + amount_to_send); } -#[test] -fn reserve_transfer_native_asset_from_para_to_asset_hub() { - sp_tracing::try_init_simple(); - let destination = FrequencyWestend::sibling_location_of(AssetHubWestend::para_id()); - let sender = FrequencyWestendSender::get(); - let amount_to_send: Balance = AssetHubExistentialDeposit::get() * 1000; - let assets: Assets = (Parent, amount_to_send).into(); - let system_para_native_asset_location = WestendLocation::get(); - - let frequency_sender_native_before = FrequencyWestend::execute_with(|| { - type Balances = ::Balances; - >::balance(&FrequencyWestendSender::get()) - }); - - assert_eq!(frequency_sender_native_before, 4096000000u128); - +fn setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_to_send: Balance) { + // Create and mint DOT-derived asset on Frequency FrequencyWestend::execute_with(|| { type ForeignAssets = ::ForeignAssets; - >::create( + let sender = FrequencyWestendSender::get(); + + let _ = >::create( Parent.into(), - FrequencyWestendSender::get(), + sender.clone(), false, 1u32.into(), ); - >::mint_into( + let _ = >::mint_into( Parent.into(), - &FrequencyWestendSender::get(), + &sender, amount_to_send * 2, ); assert!(>::asset_exists(Parent.into())); }); - // Init values for Asset Hub - let receiver = AssetHubWestendReceiver::get(); + // Fund Frequency sovereign account on AssetHub let frequency_location_as_seen_by_ahr = AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); let sov_frequency_on_ahr = AssetHubWestend::sovereign_account_id_of(frequency_location_as_seen_by_ahr); - // fund Parachain's SA on Asset Hub with the native tokens held in reserve AssetHubWestend::fund_accounts(vec![(sov_frequency_on_ahr.into(), amount_to_send * 2)]); +} + +#[test] +fn reserve_transfer_native_asset_from_para_to_asset_hub() { + let amount_to_send: Balance = AssetHubExistentialDeposit::get() * 1000; + setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_to_send); + + let sender = FrequencyWestendSender::get(); + let receiver = AssetHubWestendReceiver::get(); + let destination = FrequencyWestend::sibling_location_of(AssetHubWestend::para_id()); + let assets: Assets = (Parent, amount_to_send).into(); + let system_para_native_asset_location = WestendLocation::get(); + + let frequency_sender_native_before = FrequencyWestend::execute_with(|| { + type Balances = ::Balances; + >::balance(&FrequencyWestendSender::get()) + }); + + assert_eq!(frequency_sender_native_before, 4096000000u128); - // Init Test let test_args = TestContext { sender: sender.clone(), receiver: receiver.clone(), From a2cd5560ae355e289de7b122edabc61f7fbbea34 Mon Sep 17 00:00:00 2001 From: eNDdy Date: Thu, 8 May 2025 18:28:09 -0600 Subject: [PATCH 09/31] chanage --- .../test/frequency-westend/src/tests/mod.rs | 4 +- .../frequency-westend/src/tests/reserve.rs | 383 ------------------ 2 files changed, 3 insertions(+), 384 deletions(-) delete mode 100644 emulated-test/test/frequency-westend/src/tests/reserve.rs diff --git a/emulated-test/test/frequency-westend/src/tests/mod.rs b/emulated-test/test/frequency-westend/src/tests/mod.rs index 855b16e024..320c9f5c22 100644 --- a/emulated-test/test/frequency-westend/src/tests/mod.rs +++ b/emulated-test/test/frequency-westend/src/tests/mod.rs @@ -1,5 +1,7 @@ // mod teleport; -mod reserve; + +mod reserve_transfer_dot_from_asset_hub_to_frequency; +mod reserve_transfer_dot_from_frequency_to_asset_hub; #[macro_export] macro_rules! foreign_balance_on { diff --git a/emulated-test/test/frequency-westend/src/tests/reserve.rs b/emulated-test/test/frequency-westend/src/tests/reserve.rs deleted file mode 100644 index a613a81486..0000000000 --- a/emulated-test/test/frequency-westend/src/tests/reserve.rs +++ /dev/null @@ -1,383 +0,0 @@ -use crate::foreign_balance_on; -use crate::imports::*; - -fn get_native_balance_of_frequency_sender() -> u128 { - FrequencyWestend::execute_with(|| { - type Balances = ::Balances; - >::balance(&FrequencyWestendSender::get()) - }) -} - -fn para_to_system_para_reserve_transfer_assets(t: FrequencyToAssetHubTest) -> DispatchResult { - ::PolkadotXcm::limited_reserve_transfer_assets( - t.signed_origin, - bx!(t.args.dest.into()), - bx!(t.args.beneficiary.into()), - bx!(t.args.assets.into()), - t.args.fee_asset_item, - t.args.weight_limit, - ) -} - -pub fn para_to_system_para_sender_assertions(t: FrequencyToAssetHubTest) { - type RuntimeEvent = ::RuntimeEvent; - FrequencyWestend::assert_xcm_pallet_attempted_complete(None); - for asset in t.args.assets.into_inner().into_iter() { - let expected_id = asset.id.0; - let asset_amount = if let Fungible(a) = asset.fun { Some(a) } else { None }.unwrap(); - assert_expected_events!( - FrequencyWestend, - vec![ - RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance } - ) => { - asset_id: *asset_id == expected_id, - owner: *owner == t.sender.account_id, - balance: *balance == asset_amount, - }, - ] - ); - } -} - -pub fn para_to_system_para_receiver_assertions(t: FrequencyToAssetHubTest) { - type RuntimeEvent = ::RuntimeEvent; - AssetHubWestend::assert_xcmp_queue_success(None); - - let sov_acc_of_frequency = AssetHubWestend::sovereign_account_id_of(t.args.dest.clone()); - for (idx, asset) in t.args.assets.into_inner().into_iter().enumerate() { - let expected_id = asset.id.0.clone().try_into().unwrap(); - let asset_amount = if let Fungible(a) = asset.fun { Some(a) } else { None }.unwrap(); - if idx == t.args.fee_asset_item as usize { - assert_expected_events!( - AssetHubWestend, - vec![ - // Amount of native is withdrawn from Parachain's Sovereign account - RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } - ) => { - who: *who == sov_acc_of_frequency.clone().into(), - amount: *amount == asset_amount, - }, - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { - who: *who == t.receiver.account_id, - }, - ] - ); - } else { - assert_expected_events!( - AssetHubWestend, - vec![ - // Amount of foreign asset is transferred from Parachain's Sovereign account - // to Receiver's account - RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance }, - ) => { - asset_id: *asset_id == expected_id, - owner: *owner == sov_acc_of_frequency, - balance: *balance == asset_amount, - }, - RuntimeEvent::ForeignAssets( - pallet_assets::Event::Issued { asset_id, owner, amount }, - ) => { - asset_id: *asset_id == expected_id, - owner: *owner == t.receiver.account_id, - amount: *amount == asset_amount, - }, - ] - ); - } - } - assert_expected_events!( - AssetHubWestend, - vec![ - RuntimeEvent::MessageQueue( - pallet_message_queue::Event::Processed { success: true, .. } - ) => {}, - ] - ); -} - -fn system_para_to_para_reserve_transfer_assets(t: AssetHubToFrequencyTest) -> DispatchResult { - ::PolkadotXcm::limited_reserve_transfer_assets( - t.signed_origin, - bx!(t.args.dest.into()), - bx!(t.args.beneficiary.into()), - bx!(t.args.assets.into()), - t.args.fee_asset_item, - t.args.weight_limit, - ) -} - -pub fn system_para_to_para_receiver_assertions(t: AssetHubToFrequencyTest) { - type RuntimeEvent = ::RuntimeEvent; - - FrequencyWestend::assert_xcmp_queue_success(None); - for asset in t.args.assets.into_inner().into_iter() { - let expected_id = asset.id.0.try_into().unwrap(); - assert_expected_events!( - FrequencyWestend, - vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { - asset_id: *asset_id == expected_id, - owner: *owner == t.receiver.account_id, - }, - ] - ); - } -} - -pub fn system_para_to_para_sender_assertions(t: AssetHubToFrequencyTest) { - type RuntimeEvent = ::RuntimeEvent; - AssetHubWestend::assert_xcm_pallet_attempted_complete(None); - println!("------------here----------------------------"); - - let sov_acc_of_dest = AssetHubWestend::sovereign_account_id_of(t.args.dest.clone()); - for asset in t.args.assets.into_inner().into_iter() { - let expected_id = asset.id.0.clone().try_into().unwrap(); - let asset_amount = if let Fungible(a) = asset.fun { Some(a) } else { None }.unwrap(); - if asset.id == AssetId(Location::new(1, [])) { - println!("------------here----------------------------"); - assert_expected_events!( - AssetHubWestend, - vec![ - // Amount of native asset is transferred to Parachain's Sovereign account - RuntimeEvent::Balances( - pallet_balances::Event::Transfer { from, to, amount } - ) => { - from: *from == t.sender.account_id, - to: *to == sov_acc_of_dest, - amount: *amount == asset_amount, - }, - ] - ); - } else if matches!( - asset.id.0.unpack(), - (0, [PalletInstance(ASSETS_PALLET_ID), GeneralIndex(_)]) - ) { - println!("------------here----------------------------"); - assert_expected_events!( - AssetHubWestend, - vec![ - // Amount of trust-backed asset is transferred to Parachain's Sovereign account - RuntimeEvent::Assets( - pallet_assets::Event::Transferred { from, to, amount, .. }, - ) => { - from: *from == t.sender.account_id, - to: *to == sov_acc_of_dest, - amount: *amount == asset_amount, - }, - ] - ); - } else { - println!("------------here----------------------------"); - assert_expected_events!( - AssetHubWestend, - vec![ - // Amount of foreign asset is transferred to Parachain's Sovereign account - RuntimeEvent::ForeignAssets( - pallet_assets::Event::Transferred { asset_id, from, to, amount }, - ) => { - asset_id: *asset_id == expected_id, - from: *from == t.sender.account_id, - to: *to == sov_acc_of_dest, - amount: *amount == asset_amount, - }, - ] - ); - } - } - assert_expected_events!( - AssetHubWestend, - vec![ - // Delivery fees are paid - RuntimeEvent::PolkadotXcm(pallet_xcm::Event::FeesPaid { .. }) => {}, - ] - ); - AssetHubWestend::assert_xcm_pallet_sent(); -} - -fn setup_foreign_asset_on_frequency() { - FrequencyWestend::execute_with(|| { - type ForeignAssets = ::ForeignAssets; - >::create( - Parent.into(), - FrequencyWestendSender::get(), - false, - 1u32.into(), - ); - assert!(>::asset_exists(Parent.into())); - }); -} - -// ========================================================================= -// ======= Reserve Transfers - WSND Native Asset - AssetHub<>Frequency========== -// ========================================================================= -/// Reserve Transfers of native asset from Asset Hub to Frequency should work -// RUST_LOG="xcm=trace,system::events=trace" cargo test -p frequency-westend-integration-tests -- --nocapture -#[test] -fn reserve_transfer_native_asset_from_asset_hub_to_para() { - setup_foreign_asset_on_frequency(); - - let destination = AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); - let sender = AssetHubWestendSender::get(); - let amount_to_send: Balance = AssetHubExistentialDeposit::get() * 2000; - let assets: Assets = (Parent, amount_to_send).into(); - - // Init values for Parachain - let system_para_native_asset_location = WestendLocation::get(); - let receiver = FrequencyWestendReceiver::get(); - - // let receiver_xrqcy_assets_before = FrequencyWestend::execute_with(|| { - // type Balances = ::Balances; - // >::balance(&receiver) - // }); - // assert_eq!(receiver_xrqcy_assets_before, 4096000000u128); - - let test_args = TestContext { - sender, - receiver: receiver.clone(), - args: TestArgs::new_para( - destination.clone(), - receiver.clone(), - amount_to_send, - assets.clone(), - None, - 0, - ), - }; - let mut test = AssetHubToFrequencyTest::new(test_args); - - - // Query initial balances - let sender_balance_before = test.sender.balance; - - let receiver_assets_before = - foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &receiver); - assert!(receiver_assets_before == 0u128); - - test.set_assertion::(system_para_to_para_sender_assertions); - // test.set_assertion::(system_para_to_para_receiver_assertions); - test.set_dispatchable::(system_para_to_para_reserve_transfer_assets); - test.assert(); - - // let receiver_xrqcy_assets_after = FrequencyWestend::execute_with(|| { - // type Balances = ::Balances; - // >::balance(&receiver) - // }); - // assert_eq!(receiver_xrqcy_assets_after, 4096000000u128); - - let sender_balance_after = test.sender.balance; - - let receiver_assets_after = - foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &receiver); - - assert!( - sender_balance_after < sender_balance_before - amount_to_send, - "Sender's balance was NOT reduced by amount sent plus delivery fees" - ); - - assert!(receiver_assets_after > receiver_assets_before, "Receiver's assets did NOT increased"); - - // Receiver's assets increased by `amount_to_send - delivery_fees - bought_execution`; - // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but - // should be non-zero - assert!(receiver_assets_after < receiver_assets_before + amount_to_send); -} - -fn setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_to_send: Balance) { - // Create and mint DOT-derived asset on Frequency - FrequencyWestend::execute_with(|| { - type ForeignAssets = ::ForeignAssets; - let sender = FrequencyWestendSender::get(); - - let _ = >::create( - Parent.into(), - sender.clone(), - false, - 1u32.into(), - ); - - let _ = >::mint_into( - Parent.into(), - &sender, - amount_to_send * 2, - ); - - assert!(>::asset_exists(Parent.into())); - }); - - // Fund Frequency sovereign account on AssetHub - let frequency_location_as_seen_by_ahr = - AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); - let sov_frequency_on_ahr = - AssetHubWestend::sovereign_account_id_of(frequency_location_as_seen_by_ahr); - - AssetHubWestend::fund_accounts(vec![(sov_frequency_on_ahr.into(), amount_to_send * 2)]); -} - -#[test] -fn reserve_transfer_native_asset_from_para_to_asset_hub() { - let amount_to_send: Balance = AssetHubExistentialDeposit::get() * 1000; - setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_to_send); - - let sender = FrequencyWestendSender::get(); - let receiver = AssetHubWestendReceiver::get(); - let destination = FrequencyWestend::sibling_location_of(AssetHubWestend::para_id()); - let assets: Assets = (Parent, amount_to_send).into(); - let system_para_native_asset_location = WestendLocation::get(); - - let frequency_sender_native_before = FrequencyWestend::execute_with(|| { - type Balances = ::Balances; - >::balance(&FrequencyWestendSender::get()) - }); - - assert_eq!(frequency_sender_native_before, 4096000000u128); - - let test_args = TestContext { - sender: sender.clone(), - receiver: receiver.clone(), - args: TestArgs::new_para( - destination.clone(), - receiver.clone(), - amount_to_send, - assets.clone(), - None, - 0, - ), - }; - let mut test = FrequencyToAssetHubTest::new(test_args); - - // Query initial balances - let sender_assets_before = - foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &sender); - let receiver_balance_before = test.receiver.balance; - - assert_eq!(sender_assets_before, 2000000000000u128); - - // Set assertions and dispatchables - test.set_assertion::(para_to_system_para_sender_assertions); - // test.set_assertion::(para_to_system_para_receiver_assertions); - test.set_dispatchable::(para_to_system_para_reserve_transfer_assets); - test.assert(); - - // Query final balances - let sender_assets_after = - foreign_balance_on!(FrequencyWestend, system_para_native_asset_location, &sender); - let receiver_balance_after = test.receiver.balance; - - let frequency_sender_native_after = FrequencyWestend::execute_with(|| { - type Balances = ::Balances; - >::balance(&FrequencyWestendSender::get()) - }); - - - // // Sender's balance is reduced by amount sent plus delivery fees - assert!(sender_assets_after < sender_assets_before - amount_to_send); - // // Receiver's balance is increased - // assert!(receiver_balance_after > receiver_balance_before); - // // Receiver's balance increased by `amount_to_send - delivery_fees - bought_execution`; - // // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but - // // should be non-zero - // assert!(receiver_balance_after < receiver_balance_before + amount_to_send); -} From f6be245bed4e1f49be50818500f7fe00d07504e0 Mon Sep 17 00:00:00 2001 From: eNDdy Date: Thu, 8 May 2025 18:28:24 -0600 Subject: [PATCH 10/31] change --- ...ransfer_dot_from_asset_hub_to_frequency.rs | 170 +++++++++++++++ ...ransfer_dot_from_frequency_to_asset_hub.rs | 204 ++++++++++++++++++ 2 files changed, 374 insertions(+) create mode 100644 emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs create mode 100644 emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs diff --git a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs new file mode 100644 index 0000000000..da7cfc1888 --- /dev/null +++ b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs @@ -0,0 +1,170 @@ +use crate::foreign_balance_on; +use crate::imports::*; + +fn system_para_to_para_reserve_transfer_assets(t: AssetHubToFrequencyTest) -> DispatchResult { + ::PolkadotXcm::limited_reserve_transfer_assets( + t.signed_origin, + bx!(t.args.dest.into()), + bx!(t.args.beneficiary.into()), + bx!(t.args.assets.into()), + t.args.fee_asset_item, + t.args.weight_limit, + ) +} + +pub fn system_para_to_para_receiver_assertions(t: AssetHubToFrequencyTest) { + type RuntimeEvent = ::RuntimeEvent; + + FrequencyWestend::assert_xcmp_queue_success(None); + for asset in t.args.assets.into_inner().into_iter() { + let expected_id = asset.id.0.try_into().unwrap(); + assert_expected_events!( + FrequencyWestend, + vec![ + RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + asset_id: *asset_id == expected_id, + owner: *owner == t.receiver.account_id, + }, + ] + ); + } +} + +pub fn system_para_to_para_sender_assertions(t: AssetHubToFrequencyTest) { + use pallet_assets::Event as AssetsEvent; + use pallet_assets::Event as ForeignAssetsEvent; + use pallet_balances::Event as BalancesEvent; + use pallet_xcm::Event as XcmEvent; + use AssetId as AID; + + type RuntimeEvent = ::RuntimeEvent; + + AssetHubWestend::assert_xcm_pallet_attempted_complete(None); + + let sov_acc_of_dest = AssetHubWestend::sovereign_account_id_of(t.args.dest.clone()); + + for asset in t.args.assets.into_inner() { + let expected_id = asset.id.0.clone().try_into().unwrap(); + let asset_amount = match asset.fun { + Fungible(amount) => amount, + _ => panic!("Non-fungible assets are not supported in this test."), + }; + + match asset.id.0.unpack() { + // Native asset (e.g., DOT) + (1, []) => { + assert_expected_events!( + AssetHubWestend, + vec![ + RuntimeEvent::Balances(BalancesEvent::Transfer { from, to, amount }) => { + from: *from == t.sender.account_id, + to: *to == sov_acc_of_dest, + amount: *amount == asset_amount, + }, + ] + ); + }, + + // Foreign asset from pallet-foreign-assets + _ => { + assert_expected_events!( + AssetHubWestend, + vec![ + RuntimeEvent::ForeignAssets(ForeignAssetsEvent::Transferred { asset_id, from, to, amount }) => { + asset_id: *asset_id == expected_id, + from: *from == t.sender.account_id, + to: *to == sov_acc_of_dest, + amount: *amount == asset_amount, + }, + ] + ); + }, + } + } + + // Assert delivery fees were paid + assert_expected_events!( + AssetHubWestend, + vec![ + RuntimeEvent::PolkadotXcm(XcmEvent::FeesPaid { .. }) => {}, + ] + ); + + AssetHubWestend::assert_xcm_pallet_sent(); +} + +fn setup_foreign_asset_on_frequency() { + FrequencyWestend::execute_with(|| { + type ForeignAssets = ::ForeignAssets; + >::create( + Parent.into(), + FrequencyWestendSender::get(), + false, + 1u32.into(), + ); + assert!(>::asset_exists(Parent.into())); + }); +} + +// ========================================================================= +// ======= Reserve Transfers - WSND Native Asset - AssetHub<>Frequency========== +// ========================================================================= +/// Reserve Transfers of Frequency Native from Asset Hub to Frequency should work +// RUST_BACKTRACE=1 RUST_LOG="runtime::system=trace,xcm=trace" cargo test tests::reserve::reserve_transfer_native_asset_from_asset_hub_to_para -p frequency-westend-integration-tests -- --nocapture +#[test] +fn reserve_transfer_dot_from_asset_hub_to_frequency() { + setup_foreign_asset_on_frequency(); + + let destination = AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); + let sender = AssetHubWestendSender::get(); + let amount_to_send: Balance = AssetHubExistentialDeposit::get() * 2000; + let assets: Assets = (Parent, amount_to_send).into(); + + // Init values for Parachain + let system_para_native_asset_location = WestendLocation::get(); + let receiver = FrequencyWestendReceiver::get(); + + let test_args = TestContext { + sender, + receiver: receiver.clone(), + args: TestArgs::new_para( + destination.clone(), + receiver.clone(), + amount_to_send, + assets.clone(), + None, + 0, + ), + }; + let mut test = AssetHubToFrequencyTest::new(test_args); + + // Query initial balances + let sender_balance_before = test.sender.balance; + + let receiver_assets_before = + foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &receiver); + + assert!(receiver_assets_before == 0u128); + + test.set_assertion::(system_para_to_para_sender_assertions); + test.set_assertion::(system_para_to_para_receiver_assertions); + test.set_dispatchable::(system_para_to_para_reserve_transfer_assets); + test.assert(); + + let sender_balance_after = test.sender.balance; + + let receiver_assets_after = + foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &receiver); + + assert!( + sender_balance_after < sender_balance_before - amount_to_send, + "Sender's balance was NOT reduced by amount sent plus delivery fees" + ); + + assert!(receiver_assets_after > receiver_assets_before, "Receiver's assets did NOT increased"); + + // Receiver's assets increased by `amount_to_send - delivery_fees - bought_execution`; + // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but + // should be non-zero + assert!(receiver_assets_after < receiver_assets_before + amount_to_send); +} diff --git a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs new file mode 100644 index 0000000000..664be282e1 --- /dev/null +++ b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs @@ -0,0 +1,204 @@ +use crate::foreign_balance_on; +use crate::imports::*; + +fn frequency_to_asset_hub_reserve_transfer_assets(t: FrequencyToAssetHubTest) -> DispatchResult { + ::PolkadotXcm::limited_reserve_transfer_assets( + t.signed_origin, + bx!(t.args.dest.into()), + bx!(t.args.beneficiary.into()), + bx!(t.args.assets.into()), + t.args.fee_asset_item, + t.args.weight_limit, + ) +} + +pub fn frequency_to_asset_hub_sender_assertions(t: FrequencyToAssetHubTest) { + type RuntimeEvent = ::RuntimeEvent; + FrequencyWestend::assert_xcm_pallet_attempted_complete(None); + for asset in t.args.assets.into_inner().into_iter() { + let expected_id = asset.clone().id.0; + let asset_amount = if let Fungible(a) = asset.fun { Some(a) } else { None }.unwrap(); + assert_expected_events!( + FrequencyWestend, + vec![ + RuntimeEvent::ForeignAssets( + pallet_assets::Event::Burned { asset_id, owner, balance } + ) => { + asset_id: *asset_id == expected_id, + owner: *owner == t.sender.account_id, + balance: *balance == asset_amount, + }, + ] + ); + } +} + +pub fn frequency_to_asset_hub_receiver_assertions(t: FrequencyToAssetHubTest) { + type RuntimeEvent = ::RuntimeEvent; + AssetHubWestend::assert_xcmp_queue_success(None); + + let sov_acc_of_frequency = AssetHubWestend::sovereign_account_id_of(t.args.dest.clone()); + for (idx, asset) in t.args.assets.into_inner().into_iter().enumerate() { + let expected_id = asset.id.0.clone().try_into().unwrap(); + let asset_amount = if let Fungible(a) = asset.fun { Some(a) } else { None }.unwrap(); + if idx == t.args.fee_asset_item as usize { + assert_expected_events!( + AssetHubWestend, + vec![ + // Amount of native is withdrawn from Parachain's Sovereign account + RuntimeEvent::Balances( + pallet_balances::Event::Burned { who, amount } + ) => { + who: *who == sov_acc_of_frequency.clone().into(), + amount: *amount == asset_amount, + }, + RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + who: *who == t.receiver.account_id, + }, + ] + ); + } else { + assert_expected_events!( + AssetHubWestend, + vec![ + // Amount of foreign asset is transferred from Parachain's Sovereign account + // to Receiver's account + RuntimeEvent::ForeignAssets( + pallet_assets::Event::Burned { asset_id, owner, balance }, + ) => { + asset_id: *asset_id == expected_id, + owner: *owner == sov_acc_of_frequency, + balance: *balance == asset_amount, + }, + RuntimeEvent::ForeignAssets( + pallet_assets::Event::Issued { asset_id, owner, amount }, + ) => { + asset_id: *asset_id == expected_id, + owner: *owner == t.receiver.account_id, + amount: *amount == asset_amount, + }, + ] + ); + } + } + assert_expected_events!( + AssetHubWestend, + vec![ + RuntimeEvent::MessageQueue( + pallet_message_queue::Event::Processed { success: true, .. } + ) => {}, + ] + ); +} + +fn setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_to_send: Balance) { + // Create and mint DOT-derived asset on Frequency + FrequencyWestend::execute_with(|| { + type ForeignAssets = ::ForeignAssets; + let sender = FrequencyWestendSender::get(); + + let _ = >::create( + Parent.into(), + sender.clone(), + false, + 1u32.into(), + ); + + let _ = >::mint_into( + Parent.into(), + &sender.clone(), + amount_to_send * 2, + ); + + assert!(>::asset_exists(Parent.into())); + }); + + // Fund Frequency sovereign account on AssetHub + let frequency_location_as_seen_by_ahr = + AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); + let sov_frequency_on_ahr = + AssetHubWestend::sovereign_account_id_of(frequency_location_as_seen_by_ahr); + + AssetHubWestend::fund_accounts(vec![(sov_frequency_on_ahr.into(), amount_to_send * 2)]); +} + +const DOT_DOLLAR: u128 = 1_000_000_000_000; +const DOT_CENT: u128 = DOT_DOLLAR / 100; + +// ========================================================================= +// ======= Reserve Transfers - WSND Native Asset - Frequency<>AssetHub========== +// ========================================================================= +/// Reserve Transfers of Frequency Native from Asset Hub to Frequency should work +// RUST_BACKTRACE=1 RUST_LOG="events,runtime::system=trace,xcm=trace" cargo test tests::reserve_transfer_dot_from_frequency_to_asset_hub -p frequency-westend-integration-tests -- --nocapture +#[test] +fn reserve_transfer_dot_from_frequency_to_asset_hub() { + let amount_dot_to_send: Balance = AssetHubExistentialDeposit::get() * 1000; + // assert_eq!(amount_to_send, 10_000 * DOLLAR); + setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_dot_to_send); + + /// 20K dollars + let sender = FrequencyWestendSender::get(); + let receiver = AssetHubWestendReceiver::get(); + let destination = FrequencyWestend::sibling_location_of(AssetHubWestend::para_id()); + let assets: Assets = (Parent, amount_dot_to_send).into(); + let asset_hub_native_asset_location = WestendLocation::get(); + + let sender_dot_assets_before = foreign_balance_on!(FrequencyWestend, Parent.into(), &sender); + + assert_eq!(sender_dot_assets_before, 2_000_000_000_000u128); + + let frequency_sender_native_before = FrequencyWestend::execute_with(|| { + type Balances = ::Balances; + >::balance(&FrequencyWestendSender::get()) + }); + + assert_eq!(frequency_sender_native_before, 4_096_000_000u128); + + let test_args = TestContext { + sender: sender.clone(), + receiver: receiver.clone(), + args: TestArgs::new_para( + destination.clone(), + receiver.clone(), + amount_dot_to_send, + assets.clone(), + None, + 0, + ), + }; + + let mut test = FrequencyToAssetHubTest::new(test_args); + + // Query initial balances + + let receiver_balance_before = test.receiver.balance; + + // Set assertions and dispatchables + test.set_assertion::(frequency_to_asset_hub_sender_assertions); + // test.set_assertion::(frequency_to_asset_hub_receiver_assertions); + test.set_dispatchable::(frequency_to_asset_hub_reserve_transfer_assets); + test.assert(); + + // Query final balances + let sender_dot_assets_after = + foreign_balance_on!(FrequencyWestend, asset_hub_native_asset_location, &sender); + + let receiver_balance_after = test.receiver.balance; + + let frequency_sender_native_after = FrequencyWestend::execute_with(|| { + type Balances = ::Balances; + >::balance(&FrequencyWestendSender::get()) + }); + + println!("--------frequency_sender_native_before: {:?}", frequency_sender_native_before); + println!("---------frequency_sender_native_after: {:?}", frequency_sender_native_after); + + // Sender's balance is reduced by amount sent + assert_eq!(sender_dot_assets_after, sender_dot_assets_before - amount_dot_to_send); + // // Receiver's balance is increased + // assert!(receiver_balance_after > receiver_balance_before); + // // Receiver's balance increased by `amount_to_send - delivery_fees - bought_execution`; + // // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but + // // should be non-zero + // assert!(receiver_balance_after < receiver_balance_before + amount_to_send); +} From 376080ea1241897005e76970208c292536a65d9a Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Mon, 12 May 2025 17:36:53 -0600 Subject: [PATCH 11/31] wip(bridging): integrate xcm-runtime-apis for enhanced XCM functionality --- Cargo.lock | 1 + Cargo.toml | 1 + runtime/frequency/Cargo.toml | 4 +- runtime/frequency/src/lib.rs | 91 ++++++++++++++++++++++++++++++++++++ 4 files changed, 96 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 00379d6cf7..66d787c9fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4064,6 +4064,7 @@ dependencies = [ "static_assertions", "substrate-wasm-builder", "system-runtime-api", + "xcm-runtime-apis", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index ff89085d68..a2a80f96ae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -121,6 +121,7 @@ staging-xcm = { git = "https://github.com/paritytech/polkadot-sdk", branch = "st cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } +xcm-runtime-apis = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } diff --git a/runtime/frequency/Cargo.toml b/runtime/frequency/Cargo.toml index 665ac9aef5..e6128ee2cc 100644 --- a/runtime/frequency/Cargo.toml +++ b/runtime/frequency/Cargo.toml @@ -115,6 +115,7 @@ cumulus-pallet-xcm = { workspace = true } pallet-xcm = { workspace = true } xcm-executor = { workspace = true } cumulus-primitives-utility = { workspace = true } +xcm-runtime-apis = { workspace = true } [features] default = ["std"] @@ -195,7 +196,8 @@ std = [ "staging-xcm-builder/std", "cumulus-pallet-xcm/std", "pallet-xcm/std", - "xcm-executor/std" + "xcm-executor/std", + "xcm-runtime-apis/std" ] runtime-benchmarks = [ "cumulus-pallet-parachain-system/runtime-benchmarks", diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index d4bfc7dbe8..0627b60fac 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -33,6 +33,23 @@ use xcm_commons::{RelayOrigin, ReservedDmpWeight, ReservedXcmpWeight}; use alloc::borrow::Cow; use common_runtime::constants::currency::UNITS; + +#[cfg(feature = "frequency-bridging")] +use staging_xcm::{ + prelude::AssetId as AssetLocationId, Version as XcmVersion, VersionedAsset, + VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm, +}; +#[cfg(feature = "frequency-bridging")] +use staging_xcm::v3::MultiLocation; + +#[cfg(feature = "frequency-bridging")] +use xcm_runtime_apis::{ + dry_run::{CallDryRunEffects, Error as XcmDryRunApiError, XcmDryRunEffects}, + fees::Error as XcmPaymentApiError, +}; +#[cfg(feature = "frequency-bridging")] +use xcm_executor::traits::{WeightToFeeConverter, WeightInfoProvider}; + #[cfg(any( not(feature = "frequency-no-relay"), feature = "frequency-lint-check", @@ -1924,6 +1941,80 @@ sp_api::impl_runtime_apis! { Ok(batches) } } + + #[cfg(feature = "frequency-bridging")] + impl xcm_runtime_apis::fees::XcmPaymentApi for Runtime { + fn query_acceptable_payment_assets(xcm_version: staging_xcm::Version) -> Result, XcmPaymentApiError> { + let acceptable_assets = vec![AssetLocationId(xcm_config::RelayLocation::get())]; + PolkadotXcm::query_acceptable_payment_assets(xcm_version, acceptable_assets) + } + + fn query_weight_to_asset_fee(weight: Weight, asset: VersionedAssetId) -> Result { + use crate::xcm_config::XcmConfig; + + type Trader = ::Trader; + + PolkadotXcm::query_weight_to_asset_fee::(weight, asset) + } + + fn query_xcm_weight(message: VersionedXcm<()>) -> Result { + PolkadotXcm::query_xcm_weight(message) + } + + fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { + PolkadotXcm::query_delivery_fees(destination, message) + } + } + + #[cfg(feature = "frequency-bridging")] + impl xcm_runtime_apis::dry_run::DryRunApi for Runtime { + fn dry_run_call(origin: OriginCaller, call: RuntimeCall, result_xcms_version: XcmVersion) -> Result, XcmDryRunApiError> { + PolkadotXcm::dry_run_call::(origin, call, result_xcms_version) + } + + fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { + PolkadotXcm::dry_run_xcm::(origin_location, xcm) + } + } + + #[cfg(feature = "frequency-bridging")] + impl xcm_runtime_apis::conversions::LocationToAccountApi for Runtime { + fn convert_location(location: VersionedLocation) -> Result< + AccountId, + xcm_runtime_apis::conversions::Error + > { + xcm_runtime_apis::conversions::LocationToAccountHelper::< + AccountId, + xcm_commons::LocationToAccountId, + >::convert_location(location) + } + } + + #[cfg(feature = "frequency-bridging")] + impl xcm_runtime_apis::trusted_query::TrustedQueryApi for Runtime { + fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> xcm_runtime_apis::trusted_query::XcmTrustedQueryResult { + PolkadotXcm::is_trusted_reserve(asset, location) + } + fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> xcm_runtime_apis::trusted_query::XcmTrustedQueryResult { + PolkadotXcm::is_trusted_teleporter(asset, location) + } + } + + #[cfg(feature = "frequency-bridging")] + impl xcm_runtime_apis::authorized_aliases::AuthorizedAliasersApi for Runtime { + fn authorized_aliasers(target: VersionedLocation) -> Result< + Vec, + xcm_runtime_apis::authorized_aliases::Error + > { + PolkadotXcm::authorized_aliasers(target) + } + fn is_authorized_alias(origin: VersionedLocation, target: VersionedLocation) -> Result< + bool, + xcm_runtime_apis::authorized_aliases::Error + > { + PolkadotXcm::is_authorized_alias(origin, target) + } + } } #[cfg(test)] From 64cf58f64bc446531f605153aac345c885c68cca Mon Sep 17 00:00:00 2001 From: eNDdy Date: Mon, 12 May 2025 17:36:33 -0600 Subject: [PATCH 12/31] test --- .../test/frequency-westend/src/lib.rs | 4 +- ...ransfer_dot_from_asset_hub_to_frequency.rs | 2 +- ...ransfer_dot_from_frequency_to_asset_hub.rs | 85 +++++++------------ runtime/frequency/src/lib.rs | 64 +++++++++----- runtime/frequency/src/xcm_commons.rs | 3 +- runtime/frequency/src/xcm_config.rs | 18 ++-- runtime/frequency/src/xcm_queue.rs | 29 ++++++- 7 files changed, 114 insertions(+), 91 deletions(-) diff --git a/emulated-test/test/frequency-westend/src/lib.rs b/emulated-test/test/frequency-westend/src/lib.rs index 74aced259d..7c5f0c82d3 100644 --- a/emulated-test/test/frequency-westend/src/lib.rs +++ b/emulated-test/test/frequency-westend/src/lib.rs @@ -14,9 +14,9 @@ mod imports { // Cumulus pub use asset_test_utils::xcm_helpers; - pub use emulated_integration_tests_common::xcm_emulator::{ + pub use emulated_integration_tests_common::{xcm_emulator::{ assert_expected_events, bx, Chain, Parachain as Para, RelayChain as Relay, Test, TestArgs, - TestContext, TestExt, + TestContext, TestExt,}, RESERVABLE_ASSET_ID, }; pub use parachains_common::Balance; pub use westend_system_emulated_network::{ diff --git a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs index da7cfc1888..e929a3a18c 100644 --- a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs +++ b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs @@ -110,7 +110,7 @@ fn setup_foreign_asset_on_frequency() { // ======= Reserve Transfers - WSND Native Asset - AssetHub<>Frequency========== // ========================================================================= /// Reserve Transfers of Frequency Native from Asset Hub to Frequency should work -// RUST_BACKTRACE=1 RUST_LOG="runtime::system=trace,xcm=trace" cargo test tests::reserve::reserve_transfer_native_asset_from_asset_hub_to_para -p frequency-westend-integration-tests -- --nocapture +//RUST_BACKTRACE=1 RUST_LOG="events,runtime::system=trace,xcm=trace" cargo test tests::reserve_transfer_dot_from_asset_hub_to_frequency -p frequency-westend-integration-tests -- --nocapture #[test] fn reserve_transfer_dot_from_asset_hub_to_frequency() { setup_foreign_asset_on_frequency(); diff --git a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs index 664be282e1..f186dac468 100644 --- a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs +++ b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs @@ -33,60 +33,35 @@ pub fn frequency_to_asset_hub_sender_assertions(t: FrequencyToAssetHubTest) { } } -pub fn frequency_to_asset_hub_receiver_assertions(t: FrequencyToAssetHubTest) { +fn frequency_to_asset_hub_receiver_assertions(t: FrequencyToAssetHubTest) { type RuntimeEvent = ::RuntimeEvent; + let sov_frequency_on_ahr = AssetHubWestend::sovereign_account_id_of( + AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()), + ); AssetHubWestend::assert_xcmp_queue_success(None); - - let sov_acc_of_frequency = AssetHubWestend::sovereign_account_id_of(t.args.dest.clone()); - for (idx, asset) in t.args.assets.into_inner().into_iter().enumerate() { - let expected_id = asset.id.0.clone().try_into().unwrap(); - let asset_amount = if let Fungible(a) = asset.fun { Some(a) } else { None }.unwrap(); - if idx == t.args.fee_asset_item as usize { - assert_expected_events!( - AssetHubWestend, - vec![ - // Amount of native is withdrawn from Parachain's Sovereign account - RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } - ) => { - who: *who == sov_acc_of_frequency.clone().into(), - amount: *amount == asset_amount, - }, - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { - who: *who == t.receiver.account_id, - }, - ] - ); - } else { - assert_expected_events!( - AssetHubWestend, - vec![ - // Amount of foreign asset is transferred from Parachain's Sovereign account - // to Receiver's account - RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance }, - ) => { - asset_id: *asset_id == expected_id, - owner: *owner == sov_acc_of_frequency, - balance: *balance == asset_amount, - }, - RuntimeEvent::ForeignAssets( - pallet_assets::Event::Issued { asset_id, owner, amount }, - ) => { - asset_id: *asset_id == expected_id, - owner: *owner == t.receiver.account_id, - amount: *amount == asset_amount, - }, - ] - ); - } - } assert_expected_events!( AssetHubWestend, vec![ - RuntimeEvent::MessageQueue( - pallet_message_queue::Event::Processed { success: true, .. } - ) => {}, + // Amount to reserve transfer is burned from Parachain's Sovereign account + RuntimeEvent::Assets(pallet_assets::Event::Burned { asset_id, owner, balance }) => { + asset_id: *asset_id == RESERVABLE_ASSET_ID, + owner: *owner == sov_frequency_on_ahr, + balance: *balance == t.args.amount, + }, + // Fee amount is burned from Parachain's Sovereign account + RuntimeEvent::Balances(pallet_balances::Event::Burned { who, .. }) => { + who: *who == sov_frequency_on_ahr, + }, + // Amount to reserve transfer is issued for beneficiary + RuntimeEvent::Assets(pallet_assets::Event::Issued { asset_id, owner, amount }) => { + asset_id: *asset_id == RESERVABLE_ASSET_ID, + owner: *owner == t.receiver.account_id, + amount: *amount == t.args.amount, + }, + // Remaining fee amount is minted for for beneficiary + RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { + who: *who == t.receiver.account_id, + }, ] ); } @@ -130,6 +105,7 @@ const DOT_CENT: u128 = DOT_DOLLAR / 100; // ========================================================================= /// Reserve Transfers of Frequency Native from Asset Hub to Frequency should work // RUST_BACKTRACE=1 RUST_LOG="events,runtime::system=trace,xcm=trace" cargo test tests::reserve_transfer_dot_from_frequency_to_asset_hub -p frequency-westend-integration-tests -- --nocapture +// transfer_type=DestinationReserve #[test] fn reserve_transfer_dot_from_frequency_to_asset_hub() { let amount_dot_to_send: Balance = AssetHubExistentialDeposit::get() * 1000; @@ -175,7 +151,7 @@ fn reserve_transfer_dot_from_frequency_to_asset_hub() { // Set assertions and dispatchables test.set_assertion::(frequency_to_asset_hub_sender_assertions); - // test.set_assertion::(frequency_to_asset_hub_receiver_assertions); + test.set_assertion::(frequency_to_asset_hub_receiver_assertions); test.set_dispatchable::(frequency_to_asset_hub_reserve_transfer_assets); test.assert(); @@ -190,15 +166,12 @@ fn reserve_transfer_dot_from_frequency_to_asset_hub() { >::balance(&FrequencyWestendSender::get()) }); - println!("--------frequency_sender_native_before: {:?}", frequency_sender_native_before); - println!("---------frequency_sender_native_after: {:?}", frequency_sender_native_after); - // Sender's balance is reduced by amount sent - assert_eq!(sender_dot_assets_after, sender_dot_assets_before - amount_dot_to_send); + assert!(sender_dot_assets_after < sender_dot_assets_before - amount_dot_to_send); // // Receiver's balance is increased - // assert!(receiver_balance_after > receiver_balance_before); + assert!(receiver_balance_after > receiver_balance_before); // // Receiver's balance increased by `amount_to_send - delivery_fees - bought_execution`; // // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but // // should be non-zero - // assert!(receiver_balance_after < receiver_balance_before + amount_to_send); + assert!(receiver_balance_after < receiver_balance_before + amount_dot_to_send); } diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index c841815838..7de4e6f7d7 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -107,7 +107,7 @@ use frame_support::{ EqualPrivilegeOnly, GetStorageVersion, InstanceFilter, LinearStoragePrice, OnRuntimeUpgrade, }, - weights::{ConstantMultiplier, Weight}, + weights::{ConstantMultiplier, Weight, constants::WEIGHT_REF_TIME_PER_SECOND}, Twox128, }; @@ -151,6 +151,22 @@ use sp_runtime::traits::transaction_extension::AsTransactionExtension; mod ethereum; mod genesis; +pub mod polkadot_xcm_fee { + use crate::{Balance, WEIGHT_REF_TIME_PER_SECOND, ExtrinsicBaseWeight}; + pub const MICRO_DOT: Balance = 10_000; + pub const MILLI_DOT: Balance = 1_000 * MICRO_DOT; + + pub fn default_fee_per_second() -> u128 { + let base_weight = Balance::from(ExtrinsicBaseWeight::get().ref_time()); + let base_tx_per_second = (WEIGHT_REF_TIME_PER_SECOND as u128) / base_weight; + base_tx_per_second * base_relay_tx_fee() + } + + pub fn base_relay_tx_fee() -> Balance { + MILLI_DOT + } +} + pub struct SchedulerProvider; impl SchedulerProviderTrait for SchedulerProvider { @@ -216,16 +232,18 @@ impl Contains for BaseCallFilter { #[cfg(not(feature = "frequency"))] { match call { - RuntimeCall::Utility(pallet_utility_call) => - Self::is_utility_call_allowed(pallet_utility_call), + RuntimeCall::Utility(pallet_utility_call) => { + Self::is_utility_call_allowed(pallet_utility_call) + }, _ => true, } } #[cfg(feature = "frequency")] { match call { - RuntimeCall::Utility(pallet_utility_call) => - Self::is_utility_call_allowed(pallet_utility_call), + RuntimeCall::Utility(pallet_utility_call) => { + Self::is_utility_call_allowed(pallet_utility_call) + }, // Create provider and create schema are not allowed in mainnet for now. See propose functions. RuntimeCall::Msa(pallet_msa::Call::create_provider { .. }) => false, RuntimeCall::Schemas(pallet_schemas::Call::create_schema_v3 { .. }) => false, @@ -239,9 +257,11 @@ impl Contains for BaseCallFilter { impl BaseCallFilter { fn is_utility_call_allowed(call: &pallet_utility::Call) -> bool { match call { - pallet_utility::Call::batch { calls, .. } | - pallet_utility::Call::batch_all { calls, .. } | - pallet_utility::Call::force_batch { calls, .. } => calls.iter().any(Self::is_batch_call_allowed), + pallet_utility::Call::batch { calls, .. } + | pallet_utility::Call::batch_all { calls, .. } + | pallet_utility::Call::force_batch { calls, .. } => { + calls.iter().any(Self::is_batch_call_allowed) + }, _ => true, } } @@ -249,16 +269,16 @@ impl BaseCallFilter { fn is_batch_call_allowed(call: &RuntimeCall) -> bool { match call { // Block all nested `batch` calls from utility batch - RuntimeCall::Utility(pallet_utility::Call::batch { .. }) | - RuntimeCall::Utility(pallet_utility::Call::batch_all { .. }) | - RuntimeCall::Utility(pallet_utility::Call::force_batch { .. }) => false, + RuntimeCall::Utility(pallet_utility::Call::batch { .. }) + | RuntimeCall::Utility(pallet_utility::Call::batch_all { .. }) + | RuntimeCall::Utility(pallet_utility::Call::force_batch { .. }) => false, // Block all `FrequencyTxPayment` calls from utility batch RuntimeCall::FrequencyTxPayment(..) => false, // Block `create_provider` and `create_schema` calls from utility batch - RuntimeCall::Msa(pallet_msa::Call::create_provider { .. }) | - RuntimeCall::Schemas(pallet_schemas::Call::create_schema_v3 { .. }) => false, + RuntimeCall::Msa(pallet_msa::Call::create_provider { .. }) + | RuntimeCall::Schemas(pallet_schemas::Call::create_schema_v3 { .. }) => false, // Block `Pays::No` calls from utility batch _ if Self::is_pays_no_call(call) => false, @@ -309,17 +329,17 @@ impl InstanceFilter for ProxyType { ), ProxyType::Governance => matches!( c, - RuntimeCall::Treasury(..) | - RuntimeCall::Democracy(..) | - RuntimeCall::TechnicalCommittee(..) | - RuntimeCall::Council(..) | - RuntimeCall::Utility(..) // Calls inside a batch are also run through filters + RuntimeCall::Treasury(..) + | RuntimeCall::Democracy(..) + | RuntimeCall::TechnicalCommittee(..) + | RuntimeCall::Council(..) + | RuntimeCall::Utility(..) // Calls inside a batch are also run through filters ), ProxyType::Staking => { matches!( c, - RuntimeCall::Capacity(pallet_capacity::Call::stake { .. }) | - RuntimeCall::CollatorSelection( + RuntimeCall::Capacity(pallet_capacity::Call::stake { .. }) + | RuntimeCall::CollatorSelection( pallet_collator_selection::Call::set_candidacy_bond { .. } ) ) @@ -408,8 +428,8 @@ impl OnRuntimeUpgrade for MigratePalletsCu fn on_runtime_upgrade() -> Weight { use sp_core::Get; - if pallet_collator_selection::Pallet::::on_chain_storage_version() != - pallet_collator_selection::Pallet::::in_code_storage_version() + if pallet_collator_selection::Pallet::::on_chain_storage_version() + != pallet_collator_selection::Pallet::::in_code_storage_version() { pallet_collator_selection::Pallet::::in_code_storage_version() .put::>(); diff --git a/runtime/frequency/src/xcm_commons.rs b/runtime/frequency/src/xcm_commons.rs index 6dfbd33539..891ee4047e 100644 --- a/runtime/frequency/src/xcm_commons.rs +++ b/runtime/frequency/src/xcm_commons.rs @@ -5,10 +5,11 @@ use cumulus_primitives_core::AggregateMessageOrigin; use frame_support::parameter_types; use pallet_xcm::XcmPassthrough; use polkadot_parachain_primitives::primitives::Sibling; -use staging_xcm::latest::{prelude::*, WESTEND_GENESIS_HASH}; +pub use staging_xcm::latest::{prelude::{*, AssetId as AssetLocationId}, WESTEND_GENESIS_HASH}; use staging_xcm_builder::{ AccountId32Aliases, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SovereignSignedViaLocation, + // ParentRelayOrSiblingParachains, }; /// Shared Relay Network diff --git a/runtime/frequency/src/xcm_config.rs b/runtime/frequency/src/xcm_config.rs index b35c2e5366..00fedd3450 100644 --- a/runtime/frequency/src/xcm_config.rs +++ b/runtime/frequency/src/xcm_config.rs @@ -1,19 +1,21 @@ use crate::{ AccountId, AllPalletsWithSystem, Balances, ForeignAssets, ParachainInfo, ParachainSystem, - PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, XcmpQueue, + PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, XcmpQueue, polkadot_xcm_fee::default_fee_per_second, }; use staging_xcm_builder::{ - AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, DenyRecursively, + AllowExplicitUnpaidExecutionFrom, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyRecursively, DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, IsConcrete, IsParentsOnly, MatchedConvertedConcreteId, NativeAsset, NoChecking, SignedToAccountId32, TakeWeightCredit, - TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, + TrailingSetTopicAsId, UsingComponents, FixedRateOfFungible, WithComputedOrigin, WithUniqueTopic, }; pub use crate::xcm_commons::{ LocationToAccountId, RelayNetwork, XcmOriginToTransactDispatchOrigin, }; +use parachains_common::xcm_config::ConcreteAssetFromSystem; +// ParentRelayOrSiblingParachains use frame_support::{ pallet_prelude::Get, @@ -46,7 +48,10 @@ parameter_types! { pub const MaxAssetsIntoHolding: u32 = 64; } + + parameter_types! { + pub RelayPerSecondAndByte: (AssetId, u128,u128) = (Location::new(1,Here).into(), default_fee_per_second(), 1024); pub const RelayLocation: Location = Location::parent(); pub UniversalLocation: InteriorLocation = [GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())].into(); pub HereLocation: Location = Location::here(); @@ -120,6 +125,8 @@ pub type Barrier = TrailingSetTopicAsId< AllowTopLevelPaidExecutionFrom, AllowExplicitUnpaidExecutionFrom, // ^^^ Parent and its exec plurality get free execution + // Subscriptions for version tracking are OK. + // AllowSubscriptionsFrom, ), UniversalLocation, ConstU32<8>, @@ -145,7 +152,7 @@ impl xcm_executor::Config for XcmConfig { // How to withdraw and deposit an asset. type AssetTransactor = AssetTransactors; type OriginConverter = XcmOriginToTransactDispatchOrigin; - type IsReserve = (NativeAsset, AssetFrom); + type IsReserve = (NativeAsset, ConcreteAssetFromSystem, AssetFrom); // in order to register our asset in asset hub // once the asset is registered we can teleport our native asset to asset hub type IsTeleporter = TrustedTeleporter; @@ -153,7 +160,7 @@ impl xcm_executor::Config for XcmConfig { type Barrier = Barrier; type Weigher = FixedWeightBounds; type Trader = - UsingComponents>; + (FixedRateOfFungible, UsingComponents>,); type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; @@ -200,6 +207,7 @@ impl pallet_xcm::Config for Runtime { type XcmExecutor = XcmExecutor; // update to only allow to teleport native type XcmTeleportFilter = Everything; + // Lets only allow reserve transfers of DOT type XcmReserveTransferFilter = Everything; type Weigher = FixedWeightBounds; type UniversalLocation = UniversalLocation; diff --git a/runtime/frequency/src/xcm_queue.rs b/runtime/frequency/src/xcm_queue.rs index 5339786f3d..71c5ba9fc3 100644 --- a/runtime/frequency/src/xcm_queue.rs +++ b/runtime/frequency/src/xcm_queue.rs @@ -1,5 +1,5 @@ use crate::{ - AccountId, MessageQueue, ParachainSystem, Runtime, RuntimeBlockWeights, RuntimeEvent, XcmpQueue, + Balance, AccountId, MessageQueue, ParachainSystem, Runtime, RuntimeBlockWeights, RuntimeEvent, XcmpQueue, }; #[cfg(not(feature = "runtime-benchmarks"))] @@ -11,7 +11,7 @@ use frame_support::{ weights::Weight, }; -use crate::xcm_commons::XcmOriginToTransactDispatchOrigin; +use crate::xcm_commons::{XcmOriginToTransactDispatchOrigin, AssetLocationId}; use frame_system::EnsureRoot; @@ -25,11 +25,32 @@ use crate::xcm_config; use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; -pub use sp_runtime::Perbill; +pub use sp_runtime::{Perbill, Saturating}; #[cfg(not(feature = "runtime-benchmarks"))] use xcm_executor; +parameter_types! { + /// The asset ID for the asset that we use to pay for message delivery fees. + pub FeeAssetId: AssetLocationId = AssetLocationId(xcm_config::RelayLocation::get()); + /// The base fee for the message delivery fees (3 CENTS). + pub const BaseDeliveryFee: u128 = (1_000_000_000_000u128 / 100).saturating_mul(3); +} + +pub const MICROUNIT: Balance = 1_000_000; + +parameter_types! { + /// Relay Chain `TransactionByteFee` / 10 + pub const TransactionByteFee: Balance = 10 * MICROUNIT; +} + +pub type PriceForSiblingParachainDelivery = polkadot_runtime_common::xcm_sender::ExponentialPrice< + FeeAssetId, + BaseDeliveryFee, + TransactionByteFee, + XcmpQueue, +>; + parameter_types! { pub MessageQueueServiceWeight: Weight = Perbill::from_percent(35) * RuntimeBlockWeights::get().max_block; } @@ -46,7 +67,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = (); - type PriceForSiblingDelivery = NoPriceForMessageDelivery; + type PriceForSiblingDelivery = PriceForSiblingParachainDelivery; } impl pallet_message_queue::Config for Runtime { From 44bdb504c4bc6cb1214b97b7c0e1cb823bb2827b Mon Sep 17 00:00:00 2001 From: eNDdy Date: Tue, 13 May 2025 19:25:50 -0600 Subject: [PATCH 13/31] changes --- .../test/frequency-westend/src/lib.rs | 1 + .../test/frequency-westend/src/tests/mod.rs | 1 + ...ve_transfer_dot_from_relay_to_frequency.rs | 123 ++++++++++++++++++ runtime/frequency/src/xcm_config.rs | 2 + 4 files changed, 127 insertions(+) create mode 100644 emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_relay_to_frequency.rs diff --git a/emulated-test/test/frequency-westend/src/lib.rs b/emulated-test/test/frequency-westend/src/lib.rs index 7c5f0c82d3..0a69feedfc 100644 --- a/emulated-test/test/frequency-westend/src/lib.rs +++ b/emulated-test/test/frequency-westend/src/lib.rs @@ -49,6 +49,7 @@ mod imports { pub type AssetHubToFrequencyTest = Test; pub type FrequencyToAssetHubTest = Test; + pub type RelayToFrequencyTest = Test; } #[cfg(test)] diff --git a/emulated-test/test/frequency-westend/src/tests/mod.rs b/emulated-test/test/frequency-westend/src/tests/mod.rs index 320c9f5c22..4dea04d2cc 100644 --- a/emulated-test/test/frequency-westend/src/tests/mod.rs +++ b/emulated-test/test/frequency-westend/src/tests/mod.rs @@ -2,6 +2,7 @@ mod reserve_transfer_dot_from_asset_hub_to_frequency; mod reserve_transfer_dot_from_frequency_to_asset_hub; +mod reserve_transfer_dot_from_relay_to_frequency; #[macro_export] macro_rules! foreign_balance_on { diff --git a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_relay_to_frequency.rs b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_relay_to_frequency.rs new file mode 100644 index 0000000000..ce698b0d0a --- /dev/null +++ b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_relay_to_frequency.rs @@ -0,0 +1,123 @@ +use crate::foreign_balance_on; +use crate::imports::*; +use westend_system_emulated_network::westend_emulated_chain::westend_runtime::Dmp; + +fn relay_to_frequency_receiver_assertions(t: RelayToFrequencyTest) { + type RuntimeEvent = ::RuntimeEvent; + + assert_expected_events!( + FrequencyWestend, + vec![ + RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { + asset_id: *asset_id == WestendLocation::get(), + owner: *owner == t.receiver.account_id, + }, + RuntimeEvent::MessageQueue( + pallet_message_queue::Event::Processed { success: true, .. } + ) => {}, + ] + ); +} + +fn relay_to_frequency_reserve_transfer_assets(t: RelayToFrequencyTest) -> DispatchResult { + let Junction::Parachain(para_id) = *t.args.dest.chain_location().last().unwrap() else { + unimplemented!("Destination is not a parachain?") + }; + + Dmp::make_parachain_reachable(para_id); + ::XcmPallet::limited_reserve_transfer_assets( + t.signed_origin, + bx!(t.args.dest.into()), + bx!(t.args.beneficiary.into()), + bx!(t.args.assets.into()), + t.args.fee_asset_item, + t.args.weight_limit, + ) +} + +fn relay_to_frequency_sender_assertions(t: RelayToFrequencyTest) { + type RuntimeEvent = ::RuntimeEvent; + + Westend::assert_xcm_pallet_attempted_complete(Some(Weight::from_parts(297_174_000, 6_196))); + + assert_expected_events!( + Westend, + vec![ + // Amount to reserve transfer is transferred to Parachain's Sovereign account + RuntimeEvent::Balances( + pallet_balances::Event::Transfer { from, to, amount } + ) => { + from: *from == t.sender.account_id, + to: *to == Westend::sovereign_account_id_of( + t.args.dest.clone() + ), + amount: *amount == t.args.amount, + }, + ] + ); +} + +fn setup_foreign_asset_on_frequency() { + FrequencyWestend::execute_with(|| { + type ForeignAssets = ::ForeignAssets; + let sender = FrequencyWestendSender::get(); + + let _ = >::create( + Parent.into(), + sender.clone(), + false, + 1u32.into(), + ); + + assert!(>::asset_exists(Parent.into())); + }); +} + + +// ========================================================================= +// ========= Reserve Transfers - DOT Asset - Relay<>Frequency =========== +// ========================================================================= +/// Reserve Transfers of DOT from Relay to Parachain should work +// RUST_BACKTRACE=1 RUST_LOG="events,runtime::system=trace,xcm=trace" cargo test tests::reserve_transfer_dot_from_relay_to_frequency -p frequency-westend-integration-tests -- --nocapture +// transfer_type=DestinationReserve +#[test] +fn reserve_transfer_dot_asset_from_relay_to_frequency() { + setup_foreign_asset_on_frequency(); + let destination = Westend::child_location_of(FrequencyWestend::para_id()); + let sender = WestendSender::get(); + let amount_to_send: Balance = WESTEND_ED * 1000; + + let relay_native_asset_location = WestendLocation::get(); + let receiver = FrequencyWestendReceiver::get(); + + let test_args = TestContext { + sender, + receiver: receiver.clone(), + args: TestArgs::new_relay(destination.clone(), receiver.clone(), amount_to_send), + + }; + + let mut test = RelayToFrequencyTest::new(test_args); + + let sender_balance_before = test.sender.balance; + let receiver_assets_before = foreign_balance_on!(FrequencyWestend, relay_native_asset_location.clone(), &receiver); + + test.set_assertion::(relay_to_frequency_sender_assertions); + test.set_assertion::(relay_to_frequency_receiver_assertions); + test.set_dispatchable::(relay_to_frequency_reserve_transfer_assets); + test.assert(); + + let sender_balance_after = test.sender.balance; + let receiver_assets_after = + foreign_balance_on!(FrequencyWestend, relay_native_asset_location, &receiver); + + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_balance_after < sender_balance_before - amount_to_send); + // Receiver's asset balance is increased + assert!(receiver_assets_after > receiver_assets_before); + // Receiver's asset balance increased by `amount_to_send - delivery_fees - bought_execution`; + // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but + // should be non-zero + assert!(receiver_assets_after < receiver_assets_before + amount_to_send); + +} diff --git a/runtime/frequency/src/xcm_config.rs b/runtime/frequency/src/xcm_config.rs index 00fedd3450..239ed4c685 100644 --- a/runtime/frequency/src/xcm_config.rs +++ b/runtime/frequency/src/xcm_config.rs @@ -220,7 +220,9 @@ impl pallet_xcm::Config for Runtime { type Currency = Balances; type CurrencyMatcher = (); type TrustedLockers = (); + // I do not thingk we need this type SovereignAccountOf = LocationToAccountId; + /// Not sure what this is for? type MaxLockers = ConstU32<8>; type WeightInfo = pallet_xcm::TestWeightInfo; type AdminOrigin = EnsureRoot; From 2dd6dd26675eebef6e501c0e523a8482b8b79fd2 Mon Sep 17 00:00:00 2001 From: eNDdy Date: Wed, 14 May 2025 09:12:27 -0600 Subject: [PATCH 14/31] change --- .../test/frequency-westend/src/lib.rs | 1 + .../test/frequency-westend/src/tests/mod.rs | 1 + ...ve_transfer_dot_from_frequency_to_relay.rs | 156 ++++++++++++++++++ 3 files changed, 158 insertions(+) create mode 100644 emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs diff --git a/emulated-test/test/frequency-westend/src/lib.rs b/emulated-test/test/frequency-westend/src/lib.rs index 0a69feedfc..b024cf8192 100644 --- a/emulated-test/test/frequency-westend/src/lib.rs +++ b/emulated-test/test/frequency-westend/src/lib.rs @@ -50,6 +50,7 @@ mod imports { pub type AssetHubToFrequencyTest = Test; pub type FrequencyToAssetHubTest = Test; pub type RelayToFrequencyTest = Test; + pub type FrequencyToRelayTest = Test; } #[cfg(test)] diff --git a/emulated-test/test/frequency-westend/src/tests/mod.rs b/emulated-test/test/frequency-westend/src/tests/mod.rs index 4dea04d2cc..59b2e131b5 100644 --- a/emulated-test/test/frequency-westend/src/tests/mod.rs +++ b/emulated-test/test/frequency-westend/src/tests/mod.rs @@ -3,6 +3,7 @@ mod reserve_transfer_dot_from_asset_hub_to_frequency; mod reserve_transfer_dot_from_frequency_to_asset_hub; mod reserve_transfer_dot_from_relay_to_frequency; +mod reserve_transfer_dot_from_frequency_to_relay; #[macro_export] macro_rules! foreign_balance_on { diff --git a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs new file mode 100644 index 0000000000..f76bf055f7 --- /dev/null +++ b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs @@ -0,0 +1,156 @@ +use crate::foreign_balance_on; +use crate::imports::*; +use westend_system_emulated_network::westend_emulated_chain::westend_runtime::Dmp; + +fn frequency_to_relay_reserve_transfer_assets(t: FrequencyToRelayTest) -> DispatchResult { + ::PolkadotXcm::limited_reserve_transfer_assets( + t.signed_origin, + bx!(t.args.dest.into()), + bx!(t.args.beneficiary.into()), + bx!(t.args.assets.into()), + t.args.fee_asset_item, + t.args.weight_limit, + ) +} + +fn frequency_to_relay_receiver_assertions(t: FrequencyToRelayTest) { + type RuntimeEvent = ::RuntimeEvent; + let sov_penpal_on_relay = + Westend::sovereign_account_id_of(Westend::child_location_of(FrequencyWestend::para_id())); + + Westend::assert_ump_queue_processed( + true, + Some(FrequencyWestend::para_id()), + Some(Weight::from_parts(306305000, 7_186)), + ); + + assert_expected_events!( + Westend, + vec![ + // Amount to reserve transfer is withdrawn from Parachain's Sovereign account + RuntimeEvent::Balances( + pallet_balances::Event::Burned { who, amount } + ) => { + who: *who == sov_penpal_on_relay.clone().into(), + amount: *amount == t.args.amount, + }, + RuntimeEvent::Balances(pallet_balances::Event::Minted { .. }) => {}, + RuntimeEvent::MessageQueue( + pallet_message_queue::Event::Processed { success: true, .. } + ) => {}, + ] + ); +} + +fn frequency_to_relay_sender_assertions(t: FrequencyToRelayTest) { + type RuntimeEvent = ::RuntimeEvent; + FrequencyWestend::assert_xcm_pallet_attempted_complete(Some(Weight::from_parts( + 864_610_000, + 8_799, + ))); + assert_expected_events!( + FrequencyWestend, + vec![ + // Amount to reserve transfer is transferred to Parachain's Sovereign account + RuntimeEvent::ForeignAssets( + pallet_assets::Event::Burned { asset_id, owner, balance, .. } + ) => { + asset_id: *asset_id == WestendLocation::get(), + owner: *owner == t.sender.account_id, + balance: *balance == t.args.amount, + }, + ] + ); +} + +fn setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_to_send: Balance) { + // Create and mint DOT-derived asset on Frequency + FrequencyWestend::execute_with(|| { + type ForeignAssets = ::ForeignAssets; + let sender = FrequencyWestendSender::get(); + + let _ = >::create( + Parent.into(), + sender.clone(), + false, + 1u32.into(), + ); + + let _ = >::mint_into( + Parent.into(), + &sender.clone(), + amount_to_send * 2, + ); + + assert!(>::asset_exists(Parent.into())); + }); + + // Fund Frequency sovereign account on AssetHub + let frequency_location_as_seen_by_ahr = + AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); + let sov_frequency_on_ahr = + AssetHubWestend::sovereign_account_id_of(frequency_location_as_seen_by_ahr); + + AssetHubWestend::fund_accounts(vec![(sov_frequency_on_ahr.into(), amount_to_send * 2)]); +} + +// ========================================================================= +// ========= Reserve Transfers - DOT Asset - Frequency<>Relay =========== +// ========================================================================= +/// Reserve Transfers of DOT from Relay to Parachain should work +// RUST_BACKTRACE=1 RUST_LOG="events,runtime::system=trace,xcm=trace" cargo test tests::reserve_transfer_dot_from_relay_to_frequency -p frequency-westend-integration-tests -- --nocapture +#[test] +fn reserve_transfer_dot_from_frequency_to_relay() { + let destination = FrequencyWestend::parent_location(); + let sender = FrequencyWestendSender::get(); + let amount_to_send: Balance = WESTEND_ED * 1000; + let assets: Assets = (Parent, amount_to_send).into(); + // let asset_owner = FrequencyAssetOwner::get(); + let relay_native_asset_location = WestendLocation::get(); + + setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_to_send); + + let receiver = WestendReceiver::get(); + let frequency_location_as_seen_by_relay = + Westend::child_location_of(FrequencyWestend::para_id()); + let sov_frequency_on_relay = + Westend::sovereign_account_id_of(frequency_location_as_seen_by_relay); + + let test_args = TestContext { + sender: sender.clone(), + receiver: receiver.clone(), + args: TestArgs::new_para( + destination.clone(), + receiver, + amount_to_send, + assets.clone(), + None, + 0, + ), + }; + + let mut test = FrequencyToRelayTest::new(test_args); + + let sender_assets_before = + foreign_balance_on!(FrequencyWestend, relay_native_asset_location.clone(), &sender); + let receiver_balance_before = test.receiver.balance; + + test.set_assertion::(frequency_to_relay_sender_assertions); + test.set_assertion::(frequency_to_relay_receiver_assertions); + test.set_dispatchable::(frequency_to_relay_reserve_transfer_assets); + test.assert(); + + let sender_assets_after = + foreign_balance_on!(FrequencyWestend, relay_native_asset_location, &sender); + let receiver_balance_after = test.receiver.balance; + + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_assets_after < sender_assets_before - amount_to_send); + + assert!(receiver_balance_after > receiver_balance_before); + + // Receiver's asset balance increased by `amount_to_send - delivery_fees - bought_execution`; + // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but + // should be non-zero + assert!(receiver_balance_after < receiver_balance_before + amount_to_send); +} From cf19ade6fdba524f776c3c1aa4ee1f42b77370fe Mon Sep 17 00:00:00 2001 From: eNDdy Date: Wed, 14 May 2025 13:59:19 -0600 Subject: [PATCH 15/31] vs code stuff --- .vscode/launch.json | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.vscode/launch.json b/.vscode/launch.json index 86546c6b19..b81bafe817 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -49,6 +49,33 @@ "name": "Attach to Frequency", "program": "${workspaceFolder}/target/debug/frequency", }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'Emulated test'", + "cargo": { + "args": [ + "test", + "--no-run", + "--package=frequency-westend-integration-tests" + ], + // "filter": { + // "name": "frequency-westend-integration-tests", + // "kind": "test" + // } + }, + // "program": "${workspaceFolder}/emulated-test/test/frequency-westend/target/tests/debug/deps/frequency_westend_integration_tests-b4edad4aeb26ecb5", + "args": [ + "--", + "--nocapture" + ], + "env": { + "RUST_BACKTRACE": "1", + "RUST_LOG": "events,runtime::system=trace,xcm=trace" + }, + "cwd": "${workspaceFolder}", + "stopOnEntry": true + }, { "type": "lldb", "request": "launch", From 017cad36cb8dc62b6eb37eb02e4ddf6d924ad4dd Mon Sep 17 00:00:00 2001 From: eNDdy Date: Wed, 14 May 2025 19:30:53 -0600 Subject: [PATCH 16/31] change --- emulated-test/chains/frequency-westend/src/lib.rs | 2 +- emulated-test/test/frequency-westend/src/lib.rs | 1 + emulated-test/test/frequency-westend/src/tests/mod.rs | 2 ++ .../src/tests/reserve_transfer_dot_from_frequency_to_relay.rs | 2 -- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/emulated-test/chains/frequency-westend/src/lib.rs b/emulated-test/chains/frequency-westend/src/lib.rs index 8bfcd58110..775191f024 100644 --- a/emulated-test/chains/frequency-westend/src/lib.rs +++ b/emulated-test/chains/frequency-westend/src/lib.rs @@ -1,7 +1,7 @@ pub use frequency_runtime::{self, xcm_config::RelayNetwork as FrequencyRelayNetworkId}; mod genesis; -pub use genesis::{genesis, FrequencySudoAccount, ED, PARA_ID}; +pub use genesis::{genesis, FrequencySudoAccount, FrequencyAssetOwner, ED, PARA_ID}; use frame_support::traits::OnInitialize; diff --git a/emulated-test/test/frequency-westend/src/lib.rs b/emulated-test/test/frequency-westend/src/lib.rs index b024cf8192..cc28f0824e 100644 --- a/emulated-test/test/frequency-westend/src/lib.rs +++ b/emulated-test/test/frequency-westend/src/lib.rs @@ -28,6 +28,7 @@ mod imports { AssetHubWestendParaPallet as AssetHubWestendPallet, }, frequency_emulated_chain::{ + FrequencyAssetOwner, frequency_runtime::{ self, xcm_config::XcmConfig as FrequencyWestendXcmConfig, ExistentialDeposit as FrequencyExistentialDeposit, diff --git a/emulated-test/test/frequency-westend/src/tests/mod.rs b/emulated-test/test/frequency-westend/src/tests/mod.rs index 59b2e131b5..a39512e3c3 100644 --- a/emulated-test/test/frequency-westend/src/tests/mod.rs +++ b/emulated-test/test/frequency-westend/src/tests/mod.rs @@ -5,6 +5,8 @@ mod reserve_transfer_dot_from_frequency_to_asset_hub; mod reserve_transfer_dot_from_relay_to_frequency; mod reserve_transfer_dot_from_frequency_to_relay; +mod hybrid_transfer_native_from_frequency_to_asset_hub; + #[macro_export] macro_rules! foreign_balance_on { ( $chain:ident, $id:expr, $who:expr ) => { diff --git a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs index f76bf055f7..818bb295a3 100644 --- a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs +++ b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs @@ -113,8 +113,6 @@ fn reserve_transfer_dot_from_frequency_to_relay() { let receiver = WestendReceiver::get(); let frequency_location_as_seen_by_relay = Westend::child_location_of(FrequencyWestend::para_id()); - let sov_frequency_on_relay = - Westend::sovereign_account_id_of(frequency_location_as_seen_by_relay); let test_args = TestContext { sender: sender.clone(), From 0cb3570afb039e535a4fa4133cc42a03508e7dd1 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Thu, 15 May 2025 13:42:28 -0600 Subject: [PATCH 17/31] fix: make format --- .../chains/frequency-westend/src/genesis.rs | 4 +-- .../chains/frequency-westend/src/lib.rs | 2 +- runtime/frequency/src/xcm_commons.rs | 14 ++++++-- runtime/frequency/src/xcm_config.rs | 32 +++++++++++-------- runtime/frequency/src/xcm_queue.rs | 7 ++-- 5 files changed, 35 insertions(+), 24 deletions(-) diff --git a/emulated-test/chains/frequency-westend/src/genesis.rs b/emulated-test/chains/frequency-westend/src/genesis.rs index a929fe8cd5..97d99aca52 100644 --- a/emulated-test/chains/frequency-westend/src/genesis.rs +++ b/emulated-test/chains/frequency-westend/src/genesis.rs @@ -3,9 +3,7 @@ use sp_core::storage::Storage; use sp_keyring::Sr25519Keyring as Keyring; // Cumulus -use emulated_integration_tests_common::{ - accounts, build_genesis_storage, collators, -}; +use emulated_integration_tests_common::{accounts, build_genesis_storage, collators}; use parachains_common::{AccountId, Balance}; // use frequency_runtime::xcm_config::{LocalReservableFromAssetHub, RelayLocation, UsdtFromAssetHub}; diff --git a/emulated-test/chains/frequency-westend/src/lib.rs b/emulated-test/chains/frequency-westend/src/lib.rs index 775191f024..7d454e4541 100644 --- a/emulated-test/chains/frequency-westend/src/lib.rs +++ b/emulated-test/chains/frequency-westend/src/lib.rs @@ -1,7 +1,7 @@ pub use frequency_runtime::{self, xcm_config::RelayNetwork as FrequencyRelayNetworkId}; mod genesis; -pub use genesis::{genesis, FrequencySudoAccount, FrequencyAssetOwner, ED, PARA_ID}; +pub use genesis::{genesis, FrequencyAssetOwner, FrequencySudoAccount, ED, PARA_ID}; use frame_support::traits::OnInitialize; diff --git a/runtime/frequency/src/xcm_commons.rs b/runtime/frequency/src/xcm_commons.rs index 891ee4047e..17a3415a17 100644 --- a/runtime/frequency/src/xcm_commons.rs +++ b/runtime/frequency/src/xcm_commons.rs @@ -5,10 +5,18 @@ use cumulus_primitives_core::AggregateMessageOrigin; use frame_support::parameter_types; use pallet_xcm::XcmPassthrough; use polkadot_parachain_primitives::primitives::Sibling; -pub use staging_xcm::latest::{prelude::{*, AssetId as AssetLocationId}, WESTEND_GENESIS_HASH}; +pub use staging_xcm::latest::{ + prelude::{AssetId as AssetLocationId, *}, + WESTEND_GENESIS_HASH, +}; use staging_xcm_builder::{ - AccountId32Aliases, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SovereignSignedViaLocation, + AccountId32Aliases, + ParentIsPreset, + RelayChainAsNative, + SiblingParachainAsNative, + SiblingParachainConvertsVia, + SignedAccountId32AsNative, + SovereignSignedViaLocation, // ParentRelayOrSiblingParachains, }; diff --git a/runtime/frequency/src/xcm_config.rs b/runtime/frequency/src/xcm_config.rs index 239ed4c685..62d5fab185 100644 --- a/runtime/frequency/src/xcm_config.rs +++ b/runtime/frequency/src/xcm_config.rs @@ -1,14 +1,15 @@ use crate::{ - AccountId, AllPalletsWithSystem, Balances, ForeignAssets, ParachainInfo, ParachainSystem, - PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, XcmpQueue, polkadot_xcm_fee::default_fee_per_second, + polkadot_xcm_fee::default_fee_per_second, AccountId, AllPalletsWithSystem, Balances, + ForeignAssets, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, + RuntimeOrigin, XcmpQueue, }; use staging_xcm_builder::{ - AllowExplicitUnpaidExecutionFrom, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyRecursively, - DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FixedWeightBounds, - FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, IsConcrete, IsParentsOnly, - MatchedConvertedConcreteId, NativeAsset, NoChecking, SignedToAccountId32, TakeWeightCredit, - TrailingSetTopicAsId, UsingComponents, FixedRateOfFungible, WithComputedOrigin, WithUniqueTopic, + AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, DenyRecursively, + DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FixedRateOfFungible, + FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, IsConcrete, + IsParentsOnly, MatchedConvertedConcreteId, NativeAsset, NoChecking, SignedToAccountId32, + TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, }; pub use crate::xcm_commons::{ @@ -46,10 +47,10 @@ parameter_types! { pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; + // TODO: From AssetHub Westend source in p.sdk + pub const WestendLocation: Location = Location::parent(); } - - parameter_types! { pub RelayPerSecondAndByte: (AssetId, u128,u128) = (Location::new(1,Here).into(), default_fee_per_second(), 1024); pub const RelayLocation: Location = Location::parent(); @@ -125,8 +126,8 @@ pub type Barrier = TrailingSetTopicAsId< AllowTopLevelPaidExecutionFrom, AllowExplicitUnpaidExecutionFrom, // ^^^ Parent and its exec plurality get free execution - // Subscriptions for version tracking are OK. - // AllowSubscriptionsFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, ), UniversalLocation, ConstU32<8>, @@ -152,15 +153,18 @@ impl xcm_executor::Config for XcmConfig { // How to withdraw and deposit an asset. type AssetTransactor = AssetTransactors; type OriginConverter = XcmOriginToTransactDispatchOrigin; - type IsReserve = (NativeAsset, ConcreteAssetFromSystem, AssetFrom); + type IsReserve = + (NativeAsset, ConcreteAssetFromSystem, AssetFrom); // in order to register our asset in asset hub // once the asset is registered we can teleport our native asset to asset hub type IsTeleporter = TrustedTeleporter; type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = FixedWeightBounds; - type Trader = - (FixedRateOfFungible, UsingComponents>,); + type Trader = ( + FixedRateOfFungible, + UsingComponents>, + ); type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; diff --git a/runtime/frequency/src/xcm_queue.rs b/runtime/frequency/src/xcm_queue.rs index 71c5ba9fc3..588e59bb60 100644 --- a/runtime/frequency/src/xcm_queue.rs +++ b/runtime/frequency/src/xcm_queue.rs @@ -1,5 +1,6 @@ use crate::{ - Balance, AccountId, MessageQueue, ParachainSystem, Runtime, RuntimeBlockWeights, RuntimeEvent, XcmpQueue, + AccountId, Balance, MessageQueue, ParachainSystem, Runtime, RuntimeBlockWeights, RuntimeEvent, + XcmpQueue, }; #[cfg(not(feature = "runtime-benchmarks"))] @@ -11,7 +12,7 @@ use frame_support::{ weights::Weight, }; -use crate::xcm_commons::{XcmOriginToTransactDispatchOrigin, AssetLocationId}; +use crate::xcm_commons::{AssetLocationId, XcmOriginToTransactDispatchOrigin}; use frame_system::EnsureRoot; @@ -23,7 +24,7 @@ use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; #[cfg(not(feature = "runtime-benchmarks"))] use crate::xcm_config; -use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; +// use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; pub use sp_runtime::{Perbill, Saturating}; From 0e65911c78b6adacb0ef0cf002a959a957c9cd14 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Fri, 16 May 2025 13:40:21 -0600 Subject: [PATCH 18/31] refactor: clean up imports and improve code readability --- runtime/frequency/src/lib.rs | 87 +++++++++++++++-------------- runtime/frequency/src/xcm_config.rs | 5 +- 2 files changed, 48 insertions(+), 44 deletions(-) diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index 30fb898123..d74a415ac3 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -36,19 +36,15 @@ use common_runtime::constants::currency::UNITS; #[cfg(feature = "frequency-bridging")] use staging_xcm::{ - prelude::AssetId as AssetLocationId, Version as XcmVersion, VersionedAsset, - VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm, + prelude::AssetId as AssetLocationId, Version as XcmVersion, VersionedAsset, VersionedAssetId, + VersionedAssets, VersionedLocation, VersionedXcm, }; -#[cfg(feature = "frequency-bridging")] -use staging_xcm::v3::MultiLocation; #[cfg(feature = "frequency-bridging")] use xcm_runtime_apis::{ dry_run::{CallDryRunEffects, Error as XcmDryRunApiError, XcmDryRunEffects}, fees::Error as XcmPaymentApiError, }; -#[cfg(feature = "frequency-bridging")] -use xcm_executor::traits::{WeightToFeeConverter, WeightInfoProvider}; #[cfg(any( not(feature = "frequency-no-relay"), @@ -79,6 +75,7 @@ use parity_scale_codec::Encode; #[cfg(feature = "std")] use sp_version::NativeVersion; + use sp_version::RuntimeVersion; use static_assertions::const_assert; @@ -124,7 +121,7 @@ use frame_support::{ EqualPrivilegeOnly, GetStorageVersion, InstanceFilter, LinearStoragePrice, OnRuntimeUpgrade, }, - weights::{ConstantMultiplier, Weight, constants::WEIGHT_REF_TIME_PER_SECOND}, + weights::{constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, Weight}, Twox128, }; @@ -169,7 +166,7 @@ mod ethereum; mod genesis; pub mod polkadot_xcm_fee { - use crate::{Balance, WEIGHT_REF_TIME_PER_SECOND, ExtrinsicBaseWeight}; + use crate::{Balance, ExtrinsicBaseWeight, WEIGHT_REF_TIME_PER_SECOND}; pub const MICRO_DOT: Balance = 10_000; pub const MILLI_DOT: Balance = 1_000 * MICRO_DOT; @@ -249,18 +246,16 @@ impl Contains for BaseCallFilter { #[cfg(not(feature = "frequency"))] { match call { - RuntimeCall::Utility(pallet_utility_call) => { - Self::is_utility_call_allowed(pallet_utility_call) - }, + RuntimeCall::Utility(pallet_utility_call) => + Self::is_utility_call_allowed(pallet_utility_call), _ => true, } } #[cfg(feature = "frequency")] { match call { - RuntimeCall::Utility(pallet_utility_call) => { - Self::is_utility_call_allowed(pallet_utility_call) - }, + RuntimeCall::Utility(pallet_utility_call) => + Self::is_utility_call_allowed(pallet_utility_call), // Create provider and create schema are not allowed in mainnet for now. See propose functions. RuntimeCall::Msa(pallet_msa::Call::create_provider { .. }) => false, RuntimeCall::Schemas(pallet_schemas::Call::create_schema_v3 { .. }) => false, @@ -274,11 +269,9 @@ impl Contains for BaseCallFilter { impl BaseCallFilter { fn is_utility_call_allowed(call: &pallet_utility::Call) -> bool { match call { - pallet_utility::Call::batch { calls, .. } - | pallet_utility::Call::batch_all { calls, .. } - | pallet_utility::Call::force_batch { calls, .. } => { - calls.iter().any(Self::is_batch_call_allowed) - }, + pallet_utility::Call::batch { calls, .. } | + pallet_utility::Call::batch_all { calls, .. } | + pallet_utility::Call::force_batch { calls, .. } => calls.iter().any(Self::is_batch_call_allowed), _ => true, } } @@ -286,16 +279,16 @@ impl BaseCallFilter { fn is_batch_call_allowed(call: &RuntimeCall) -> bool { match call { // Block all nested `batch` calls from utility batch - RuntimeCall::Utility(pallet_utility::Call::batch { .. }) - | RuntimeCall::Utility(pallet_utility::Call::batch_all { .. }) - | RuntimeCall::Utility(pallet_utility::Call::force_batch { .. }) => false, + RuntimeCall::Utility(pallet_utility::Call::batch { .. }) | + RuntimeCall::Utility(pallet_utility::Call::batch_all { .. }) | + RuntimeCall::Utility(pallet_utility::Call::force_batch { .. }) => false, // Block all `FrequencyTxPayment` calls from utility batch RuntimeCall::FrequencyTxPayment(..) => false, // Block `create_provider` and `create_schema` calls from utility batch - RuntimeCall::Msa(pallet_msa::Call::create_provider { .. }) - | RuntimeCall::Schemas(pallet_schemas::Call::create_schema_v3 { .. }) => false, + RuntimeCall::Msa(pallet_msa::Call::create_provider { .. }) | + RuntimeCall::Schemas(pallet_schemas::Call::create_schema_v3 { .. }) => false, // Block `Pays::No` calls from utility batch _ if Self::is_pays_no_call(call) => false, @@ -346,17 +339,17 @@ impl InstanceFilter for ProxyType { ), ProxyType::Governance => matches!( c, - RuntimeCall::Treasury(..) - | RuntimeCall::Democracy(..) - | RuntimeCall::TechnicalCommittee(..) - | RuntimeCall::Council(..) - | RuntimeCall::Utility(..) // Calls inside a batch are also run through filters + RuntimeCall::Treasury(..) | + RuntimeCall::Democracy(..) | + RuntimeCall::TechnicalCommittee(..) | + RuntimeCall::Council(..) | + RuntimeCall::Utility(..) // Calls inside a batch are also run through filters ), ProxyType::Staking => { matches!( c, - RuntimeCall::Capacity(pallet_capacity::Call::stake { .. }) - | RuntimeCall::CollatorSelection( + RuntimeCall::Capacity(pallet_capacity::Call::stake { .. }) | + RuntimeCall::CollatorSelection( pallet_collator_selection::Call::set_candidacy_bond { .. } ) ) @@ -445,8 +438,8 @@ impl OnRuntimeUpgrade for MigratePalletsCu fn on_runtime_upgrade() -> Weight { use sp_core::Get; - if pallet_collator_selection::Pallet::::on_chain_storage_version() - != pallet_collator_selection::Pallet::::in_code_storage_version() + if pallet_collator_selection::Pallet::::on_chain_storage_version() != + pallet_collator_selection::Pallet::::in_code_storage_version() { pallet_collator_selection::Pallet::::in_code_storage_version() .put::>(); @@ -560,9 +553,7 @@ parameter_types! { pub const MetadataDepositPerByte: Balance = 0; pub const ApprovalDeposit: Balance = 0; pub const AssetsStringLimit: u32 = 50; -} -#[cfg(feature = "frequency-bridging")] -parameter_types! { + // we just reuse the same deposits pub const ForeignAssetsAssetDeposit: Balance = AssetDeposit::get(); pub const ForeignAssetsAssetAccountDeposit: Balance = AssetAccountDeposit::get(); @@ -1973,12 +1964,26 @@ sp_api::impl_runtime_apis! { PolkadotXcm::query_acceptable_payment_assets(xcm_version, acceptable_assets) } + // Frequency implementation of the query_weight_to_asset_fee function fn query_weight_to_asset_fee(weight: Weight, asset: VersionedAssetId) -> Result { - use crate::xcm_config::XcmConfig; - - type Trader = ::Trader; - - PolkadotXcm::query_weight_to_asset_fee::(weight, asset) + // TODO: based penpal from p.sdk + // Bring weight_to_fee into scope for the Trait WeightToFee + use frame_support::weights::WeightToFee; + + match asset.try_as::() { + Ok(asset_id) if asset_id.0 == xcm_config::NativeToken::get().0 => { + // for native token + Ok(common_runtime::fee::WeightToFee::weight_to_fee(&weight)) + }, + Ok(asset_id) => { + log::trace!(target: "xcm::xcm_runtime_apis", "query_weight_to_asset_fee - unhandled asset_id: {asset_id:?}!"); + Err(XcmPaymentApiError::AssetNotFound) + }, + Err(_) => { + log::trace!(target: "xcm::xcm_runtime_apis", "query_weight_to_asset_fee - failed to convert asset: {asset:?}!"); + Err(XcmPaymentApiError::VersionedConversionFailed) + } + } } fn query_xcm_weight(message: VersionedXcm<()>) -> Result { diff --git a/runtime/frequency/src/xcm_config.rs b/runtime/frequency/src/xcm_config.rs index 62d5fab185..4d64051381 100644 --- a/runtime/frequency/src/xcm_config.rs +++ b/runtime/frequency/src/xcm_config.rs @@ -47,8 +47,6 @@ parameter_types! { pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; - // TODO: From AssetHub Westend source in p.sdk - pub const WestendLocation: Location = Location::parent(); } parameter_types! { @@ -127,7 +125,7 @@ pub type Barrier = TrailingSetTopicAsId< AllowExplicitUnpaidExecutionFrom, // ^^^ Parent and its exec plurality get free execution // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, + // AllowSubscriptionsFrom, ), UniversalLocation, ConstU32<8>, @@ -229,6 +227,7 @@ impl pallet_xcm::Config for Runtime { /// Not sure what this is for? type MaxLockers = ConstU32<8>; type WeightInfo = pallet_xcm::TestWeightInfo; + type AdminOrigin = EnsureRoot; type MaxRemoteLockConsumers = ConstU32<0>; type RemoteLockConsumerIdentifier = (); From 2c75a9f2bcb145f3845a9281aa7a6ddb5ca05e96 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Mon, 19 May 2025 15:37:04 -0600 Subject: [PATCH 19/31] feat: add fee estimation and mock tests for XCM functionality --- .../chains/frequency-westend/Cargo.toml | 23 - .../chains/frequency-westend/src/genesis.rs | 66 --- .../chains/frequency-westend/src/lib.rs | 37 -- emulated-test/networks/westend/Cargo.toml | 14 - emulated-test/networks/westend/src/lib.rs | 30 - .../test/frequency-westend/.cargo/config.toml | 2 - .../test/frequency-westend/Cargo.toml | 26 - .../test/frequency-westend/src/lib.rs | 58 -- ...ransfer_dot_from_asset_hub_to_frequency.rs | 170 ------ ...ransfer_dot_from_frequency_to_asset_hub.rs | 177 ------ ...ve_transfer_dot_from_frequency_to_relay.rs | 154 ----- ...ve_transfer_dot_from_relay_to_frequency.rs | 123 ---- .../frequency-westend/src/tests/teleport.rs | 17 - runtime/frequency/src/tests/fee_estimation.rs | 465 ++++++++++++++++ runtime/frequency/src/tests/mock.rs | 525 ++++++++++++++++++ .../frequency}/src/tests/mod.rs | 5 +- 16 files changed, 994 insertions(+), 898 deletions(-) delete mode 100644 emulated-test/chains/frequency-westend/Cargo.toml delete mode 100644 emulated-test/chains/frequency-westend/src/genesis.rs delete mode 100644 emulated-test/chains/frequency-westend/src/lib.rs delete mode 100644 emulated-test/networks/westend/Cargo.toml delete mode 100644 emulated-test/networks/westend/src/lib.rs delete mode 100644 emulated-test/test/frequency-westend/.cargo/config.toml delete mode 100644 emulated-test/test/frequency-westend/Cargo.toml delete mode 100644 emulated-test/test/frequency-westend/src/lib.rs delete mode 100644 emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs delete mode 100644 emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs delete mode 100644 emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs delete mode 100644 emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_relay_to_frequency.rs delete mode 100644 emulated-test/test/frequency-westend/src/tests/teleport.rs create mode 100644 runtime/frequency/src/tests/fee_estimation.rs create mode 100644 runtime/frequency/src/tests/mock.rs rename {emulated-test/test/frequency-westend => runtime/frequency}/src/tests/mod.rs (90%) diff --git a/emulated-test/chains/frequency-westend/Cargo.toml b/emulated-test/chains/frequency-westend/Cargo.toml deleted file mode 100644 index 26b640d5ed..0000000000 --- a/emulated-test/chains/frequency-westend/Cargo.toml +++ /dev/null @@ -1,23 +0,0 @@ -[package] -authors = ["Frequency"] -edition = '2021' -homepage = "https://frequency.xyz" -license = "Apache-2.0" -name = 'frequency-emulated-chain' -publish = false -version = "0.0.0" - -[dependencies] -xcm-emulator = { workspace = true } -sp-core = { workspace = true } -sp-runtime = { workspace = true } -parachains-common = { workspace = true } -polkadot-primitives = { workspace = true } - -emulated-integration-tests-common = { workspace = true } -frequency-runtime = { path = "../../../runtime/frequency", features = ["frequency-westend", "frequency-bridging"] } -cumulus-primitives-core = { workspace = true } -sp-keyring = { workspace = true } -frame-support = { workspace = true } -staging-xcm = { workspace = true } - diff --git a/emulated-test/chains/frequency-westend/src/genesis.rs b/emulated-test/chains/frequency-westend/src/genesis.rs deleted file mode 100644 index 97d99aca52..0000000000 --- a/emulated-test/chains/frequency-westend/src/genesis.rs +++ /dev/null @@ -1,66 +0,0 @@ -use frame_support::parameter_types; -use sp_core::storage::Storage; -use sp_keyring::Sr25519Keyring as Keyring; - -// Cumulus -use emulated_integration_tests_common::{accounts, build_genesis_storage, collators}; -use parachains_common::{AccountId, Balance}; -// use frequency_runtime::xcm_config::{LocalReservableFromAssetHub, RelayLocation, UsdtFromAssetHub}; - -pub const PARA_ID: u32 = 2000; -pub const ED: Balance = frequency_runtime::EXISTENTIAL_DEPOSIT; - -parameter_types! { - pub FrequencySudoAccount: AccountId = Keyring::Alice.to_account_id(); - pub FrequencyAssetOwner: AccountId = FrequencySudoAccount::get(); -} - -pub fn genesis(para_id: u32) -> Storage { - let genesis_config = frequency_runtime::RuntimeGenesisConfig { - system: frequency_runtime::SystemConfig::default(), - balances: frequency_runtime::BalancesConfig { - balances: accounts::init_balances().iter().cloned().map(|k| (k, ED * 4096)).collect(), - ..Default::default() - }, - parachain_info: frequency_runtime::ParachainInfoConfig { - parachain_id: para_id.into(), - ..Default::default() - }, - collator_selection: frequency_runtime::CollatorSelectionConfig { - invulnerables: collators::invulnerables().iter().cloned().map(|(acc, _)| acc).collect(), - candidacy_bond: ED * 16, - ..Default::default() - }, - session: frequency_runtime::SessionConfig { - keys: collators::invulnerables() - .into_iter() - .map(|(acc, aura)| { - ( - acc.clone(), // account id - acc, // validator id - frequency_runtime::SessionKeys { aura }, // session keys - ) - }) - .collect(), - ..Default::default() - }, - // polkadot_xcm: frequency_runtime::PolkadotXcmConfig { - // safe_xcm_version: Some(SAFE_XCM_VERSION), - // ..Default::default() - // }, - sudo: frequency_runtime::SudoConfig { key: Some(FrequencySudoAccount::get()) }, - // foreign_assets: frequency_runtime::ForeignAssetsConfig { - // assets: vec![ - // // Relay Native asset representation - // (RelayLocation::get(), FrequencyAssetOwner::get(), true, ED), - // ], - // ..Default::default() - // }, - ..Default::default() - }; - - build_genesis_storage( - &genesis_config, - frequency_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), - ) -} diff --git a/emulated-test/chains/frequency-westend/src/lib.rs b/emulated-test/chains/frequency-westend/src/lib.rs deleted file mode 100644 index 7d454e4541..0000000000 --- a/emulated-test/chains/frequency-westend/src/lib.rs +++ /dev/null @@ -1,37 +0,0 @@ -pub use frequency_runtime::{self, xcm_config::RelayNetwork as FrequencyRelayNetworkId}; - -mod genesis; -pub use genesis::{genesis, FrequencyAssetOwner, FrequencySudoAccount, ED, PARA_ID}; - -use frame_support::traits::OnInitialize; - -use emulated_integration_tests_common::{ - impl_accounts_helpers_for_parachain, impl_assert_events_helpers_for_parachain, - impl_xcm_helpers_for_parachain, impls::Parachain, xcm_emulator::decl_test_parachains, -}; - -decl_test_parachains! { - pub struct FrequencyWestend { - genesis = genesis(PARA_ID), - on_init = { - frequency_runtime::AuraExt::on_initialize(1); - }, - runtime = frequency_runtime, - core = { - XcmpMessageHandler: frequency_runtime::XcmpQueue, - LocationToAccountId: frequency_runtime::xcm_config::LocationToAccountId, - ParachainInfo: frequency_runtime::ParachainInfo, - MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin, - }, - pallets = { - PolkadotXcm: frequency_runtime::PolkadotXcm, - ForeignAssets: frequency_runtime::ForeignAssets, - Balances: frequency_runtime::Balances, - } - }, -} - -impl_accounts_helpers_for_parachain!(FrequencyWestend); -impl_assert_events_helpers_for_parachain!(FrequencyWestend); -impl_xcm_helpers_for_parachain!(FrequencyWestend); -// impl_foreign_assets_helpers_for_parachain!(FrequencyWestend, staging_xcm::latest::Location); diff --git a/emulated-test/networks/westend/Cargo.toml b/emulated-test/networks/westend/Cargo.toml deleted file mode 100644 index 0007f704e0..0000000000 --- a/emulated-test/networks/westend/Cargo.toml +++ /dev/null @@ -1,14 +0,0 @@ -[package] -authors = ["Frequency"] -edition = '2021' -homepage = "https://frequency.xyz" -license = "Apache-2.0" -name = 'westend-system-emulated-network' -publish = false -version = "0.0.0" - -[dependencies] -asset-hub-westend-emulated-chain = { workspace = true } -emulated-integration-tests-common = { workspace = true } -frequency-emulated-chain = { path = "../../chains/frequency-westend"} -westend-emulated-chain = { workspace = true } diff --git a/emulated-test/networks/westend/src/lib.rs b/emulated-test/networks/westend/src/lib.rs deleted file mode 100644 index 45a83a2fcc..0000000000 --- a/emulated-test/networks/westend/src/lib.rs +++ /dev/null @@ -1,30 +0,0 @@ -pub use asset_hub_westend_emulated_chain; -pub use frequency_emulated_chain; -pub use westend_emulated_chain; - -pub use asset_hub_westend_emulated_chain::AssetHubWestend; -use frequency_emulated_chain::FrequencyWestend; -use westend_emulated_chain::Westend; - -// Cumulus -use emulated_integration_tests_common::{ - accounts::{ALICE, BOB}, - xcm_emulator::{decl_test_networks, decl_test_sender_receiver_accounts_parameter_types}, -}; - -decl_test_networks! { - pub struct WestendMockNet { - relay_chain = Westend, - parachains = vec![ - AssetHubWestend, - FrequencyWestend, - ], - bridge = () - }, -} - -decl_test_sender_receiver_accounts_parameter_types! { - WestendRelay { sender: ALICE, receiver: BOB }, - AssetHubWestendPara { sender: ALICE, receiver: BOB }, - FrequencyWestendPara { sender: ALICE, receiver: BOB } -} diff --git a/emulated-test/test/frequency-westend/.cargo/config.toml b/emulated-test/test/frequency-westend/.cargo/config.toml deleted file mode 100644 index 6cc1b4ec44..0000000000 --- a/emulated-test/test/frequency-westend/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[build] -target-dir = "target/tests" \ No newline at end of file diff --git a/emulated-test/test/frequency-westend/Cargo.toml b/emulated-test/test/frequency-westend/Cargo.toml deleted file mode 100644 index ae7aa5c13e..0000000000 --- a/emulated-test/test/frequency-westend/Cargo.toml +++ /dev/null @@ -1,26 +0,0 @@ -[package] -authors = ["Frequency"] -edition = '2021' -homepage = "https://frequency.xyz" -license = "Apache-2.0" -name = "frequency-westend-integration-tests" -publish = false -version = "0.0.0" - - -[dependencies] -# codec = { workspace = true } -asset-test-utils = { workspace = true } -emulated-integration-tests-common = { workspace = true } -frame-support = { workspace = true } -pallet-balances = { workspace = true } -pallet-message-queue = { workspace = true } -pallet-xcm = { workspace = true } -parachains-common = { workspace = true, default-features = true } -sp-runtime = { workspace = true } -westend-runtime = { workspace = true } -westend-system-emulated-network = { path = "../../networks/westend"} -xcm-executor = { workspace = true } -staging-xcm = { workspace = true } -pallet-assets = { workspace = true } -sp-io = { workspace = true } \ No newline at end of file diff --git a/emulated-test/test/frequency-westend/src/lib.rs b/emulated-test/test/frequency-westend/src/lib.rs deleted file mode 100644 index cc28f0824e..0000000000 --- a/emulated-test/test/frequency-westend/src/lib.rs +++ /dev/null @@ -1,58 +0,0 @@ -#[cfg(test)] -mod imports { - pub use frame_support::{ - assert_ok, - sp_runtime::DispatchResult, - traits::fungible::Inspect, - traits::fungibles::{ - Create as FungiblesCreate, Inspect as FungiblesInspect, Mutate as FungiblesMutate, - }, - }; - - // Polkadot - pub use staging_xcm::{latest::WESTEND_GENESIS_HASH, prelude::*}; - - // Cumulus - pub use asset_test_utils::xcm_helpers; - pub use emulated_integration_tests_common::{xcm_emulator::{ - assert_expected_events, bx, Chain, Parachain as Para, RelayChain as Relay, Test, TestArgs, - TestContext, TestExt,}, RESERVABLE_ASSET_ID, - }; - pub use parachains_common::Balance; - pub use westend_system_emulated_network::{ - self, - asset_hub_westend_emulated_chain::{ - asset_hub_westend_runtime::{ - xcm_config::WestendLocation, ExistentialDeposit as AssetHubExistentialDeposit, - }, - AssetHubWestendParaPallet as AssetHubWestendPallet, - }, - frequency_emulated_chain::{ - FrequencyAssetOwner, - frequency_runtime::{ - self, xcm_config::XcmConfig as FrequencyWestendXcmConfig, - ExistentialDeposit as FrequencyExistentialDeposit, - }, - FrequencyWestendParaPallet as FrequencyWestendPallet, - }, - westend_emulated_chain::{ - genesis::ED as WESTEND_ED, westend_runtime::xcm_config::XcmConfig as WestendXcmConfig, - WestendRelayPallet as WestendPallet, - }, - AssetHubWestendPara as AssetHubWestend, - AssetHubWestendParaReceiver as AssetHubWestendReceiver, - AssetHubWestendParaSender as AssetHubWestendSender, - FrequencyWestendPara as FrequencyWestend, - FrequencyWestendParaReceiver as FrequencyWestendReceiver, - FrequencyWestendParaSender as FrequencyWestendSender, WestendRelay as Westend, - WestendRelayReceiver as WestendReceiver, WestendRelaySender as WestendSender, - }; - - pub type AssetHubToFrequencyTest = Test; - pub type FrequencyToAssetHubTest = Test; - pub type RelayToFrequencyTest = Test; - pub type FrequencyToRelayTest = Test; -} - -#[cfg(test)] -mod tests; diff --git a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs deleted file mode 100644 index e929a3a18c..0000000000 --- a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_asset_hub_to_frequency.rs +++ /dev/null @@ -1,170 +0,0 @@ -use crate::foreign_balance_on; -use crate::imports::*; - -fn system_para_to_para_reserve_transfer_assets(t: AssetHubToFrequencyTest) -> DispatchResult { - ::PolkadotXcm::limited_reserve_transfer_assets( - t.signed_origin, - bx!(t.args.dest.into()), - bx!(t.args.beneficiary.into()), - bx!(t.args.assets.into()), - t.args.fee_asset_item, - t.args.weight_limit, - ) -} - -pub fn system_para_to_para_receiver_assertions(t: AssetHubToFrequencyTest) { - type RuntimeEvent = ::RuntimeEvent; - - FrequencyWestend::assert_xcmp_queue_success(None); - for asset in t.args.assets.into_inner().into_iter() { - let expected_id = asset.id.0.try_into().unwrap(); - assert_expected_events!( - FrequencyWestend, - vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { - asset_id: *asset_id == expected_id, - owner: *owner == t.receiver.account_id, - }, - ] - ); - } -} - -pub fn system_para_to_para_sender_assertions(t: AssetHubToFrequencyTest) { - use pallet_assets::Event as AssetsEvent; - use pallet_assets::Event as ForeignAssetsEvent; - use pallet_balances::Event as BalancesEvent; - use pallet_xcm::Event as XcmEvent; - use AssetId as AID; - - type RuntimeEvent = ::RuntimeEvent; - - AssetHubWestend::assert_xcm_pallet_attempted_complete(None); - - let sov_acc_of_dest = AssetHubWestend::sovereign_account_id_of(t.args.dest.clone()); - - for asset in t.args.assets.into_inner() { - let expected_id = asset.id.0.clone().try_into().unwrap(); - let asset_amount = match asset.fun { - Fungible(amount) => amount, - _ => panic!("Non-fungible assets are not supported in this test."), - }; - - match asset.id.0.unpack() { - // Native asset (e.g., DOT) - (1, []) => { - assert_expected_events!( - AssetHubWestend, - vec![ - RuntimeEvent::Balances(BalancesEvent::Transfer { from, to, amount }) => { - from: *from == t.sender.account_id, - to: *to == sov_acc_of_dest, - amount: *amount == asset_amount, - }, - ] - ); - }, - - // Foreign asset from pallet-foreign-assets - _ => { - assert_expected_events!( - AssetHubWestend, - vec![ - RuntimeEvent::ForeignAssets(ForeignAssetsEvent::Transferred { asset_id, from, to, amount }) => { - asset_id: *asset_id == expected_id, - from: *from == t.sender.account_id, - to: *to == sov_acc_of_dest, - amount: *amount == asset_amount, - }, - ] - ); - }, - } - } - - // Assert delivery fees were paid - assert_expected_events!( - AssetHubWestend, - vec![ - RuntimeEvent::PolkadotXcm(XcmEvent::FeesPaid { .. }) => {}, - ] - ); - - AssetHubWestend::assert_xcm_pallet_sent(); -} - -fn setup_foreign_asset_on_frequency() { - FrequencyWestend::execute_with(|| { - type ForeignAssets = ::ForeignAssets; - >::create( - Parent.into(), - FrequencyWestendSender::get(), - false, - 1u32.into(), - ); - assert!(>::asset_exists(Parent.into())); - }); -} - -// ========================================================================= -// ======= Reserve Transfers - WSND Native Asset - AssetHub<>Frequency========== -// ========================================================================= -/// Reserve Transfers of Frequency Native from Asset Hub to Frequency should work -//RUST_BACKTRACE=1 RUST_LOG="events,runtime::system=trace,xcm=trace" cargo test tests::reserve_transfer_dot_from_asset_hub_to_frequency -p frequency-westend-integration-tests -- --nocapture -#[test] -fn reserve_transfer_dot_from_asset_hub_to_frequency() { - setup_foreign_asset_on_frequency(); - - let destination = AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); - let sender = AssetHubWestendSender::get(); - let amount_to_send: Balance = AssetHubExistentialDeposit::get() * 2000; - let assets: Assets = (Parent, amount_to_send).into(); - - // Init values for Parachain - let system_para_native_asset_location = WestendLocation::get(); - let receiver = FrequencyWestendReceiver::get(); - - let test_args = TestContext { - sender, - receiver: receiver.clone(), - args: TestArgs::new_para( - destination.clone(), - receiver.clone(), - amount_to_send, - assets.clone(), - None, - 0, - ), - }; - let mut test = AssetHubToFrequencyTest::new(test_args); - - // Query initial balances - let sender_balance_before = test.sender.balance; - - let receiver_assets_before = - foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &receiver); - - assert!(receiver_assets_before == 0u128); - - test.set_assertion::(system_para_to_para_sender_assertions); - test.set_assertion::(system_para_to_para_receiver_assertions); - test.set_dispatchable::(system_para_to_para_reserve_transfer_assets); - test.assert(); - - let sender_balance_after = test.sender.balance; - - let receiver_assets_after = - foreign_balance_on!(FrequencyWestend, system_para_native_asset_location.clone(), &receiver); - - assert!( - sender_balance_after < sender_balance_before - amount_to_send, - "Sender's balance was NOT reduced by amount sent plus delivery fees" - ); - - assert!(receiver_assets_after > receiver_assets_before, "Receiver's assets did NOT increased"); - - // Receiver's assets increased by `amount_to_send - delivery_fees - bought_execution`; - // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but - // should be non-zero - assert!(receiver_assets_after < receiver_assets_before + amount_to_send); -} diff --git a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs deleted file mode 100644 index f186dac468..0000000000 --- a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_asset_hub.rs +++ /dev/null @@ -1,177 +0,0 @@ -use crate::foreign_balance_on; -use crate::imports::*; - -fn frequency_to_asset_hub_reserve_transfer_assets(t: FrequencyToAssetHubTest) -> DispatchResult { - ::PolkadotXcm::limited_reserve_transfer_assets( - t.signed_origin, - bx!(t.args.dest.into()), - bx!(t.args.beneficiary.into()), - bx!(t.args.assets.into()), - t.args.fee_asset_item, - t.args.weight_limit, - ) -} - -pub fn frequency_to_asset_hub_sender_assertions(t: FrequencyToAssetHubTest) { - type RuntimeEvent = ::RuntimeEvent; - FrequencyWestend::assert_xcm_pallet_attempted_complete(None); - for asset in t.args.assets.into_inner().into_iter() { - let expected_id = asset.clone().id.0; - let asset_amount = if let Fungible(a) = asset.fun { Some(a) } else { None }.unwrap(); - assert_expected_events!( - FrequencyWestend, - vec![ - RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance } - ) => { - asset_id: *asset_id == expected_id, - owner: *owner == t.sender.account_id, - balance: *balance == asset_amount, - }, - ] - ); - } -} - -fn frequency_to_asset_hub_receiver_assertions(t: FrequencyToAssetHubTest) { - type RuntimeEvent = ::RuntimeEvent; - let sov_frequency_on_ahr = AssetHubWestend::sovereign_account_id_of( - AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()), - ); - AssetHubWestend::assert_xcmp_queue_success(None); - assert_expected_events!( - AssetHubWestend, - vec![ - // Amount to reserve transfer is burned from Parachain's Sovereign account - RuntimeEvent::Assets(pallet_assets::Event::Burned { asset_id, owner, balance }) => { - asset_id: *asset_id == RESERVABLE_ASSET_ID, - owner: *owner == sov_frequency_on_ahr, - balance: *balance == t.args.amount, - }, - // Fee amount is burned from Parachain's Sovereign account - RuntimeEvent::Balances(pallet_balances::Event::Burned { who, .. }) => { - who: *who == sov_frequency_on_ahr, - }, - // Amount to reserve transfer is issued for beneficiary - RuntimeEvent::Assets(pallet_assets::Event::Issued { asset_id, owner, amount }) => { - asset_id: *asset_id == RESERVABLE_ASSET_ID, - owner: *owner == t.receiver.account_id, - amount: *amount == t.args.amount, - }, - // Remaining fee amount is minted for for beneficiary - RuntimeEvent::Balances(pallet_balances::Event::Minted { who, .. }) => { - who: *who == t.receiver.account_id, - }, - ] - ); -} - -fn setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_to_send: Balance) { - // Create and mint DOT-derived asset on Frequency - FrequencyWestend::execute_with(|| { - type ForeignAssets = ::ForeignAssets; - let sender = FrequencyWestendSender::get(); - - let _ = >::create( - Parent.into(), - sender.clone(), - false, - 1u32.into(), - ); - - let _ = >::mint_into( - Parent.into(), - &sender.clone(), - amount_to_send * 2, - ); - - assert!(>::asset_exists(Parent.into())); - }); - - // Fund Frequency sovereign account on AssetHub - let frequency_location_as_seen_by_ahr = - AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); - let sov_frequency_on_ahr = - AssetHubWestend::sovereign_account_id_of(frequency_location_as_seen_by_ahr); - - AssetHubWestend::fund_accounts(vec![(sov_frequency_on_ahr.into(), amount_to_send * 2)]); -} - -const DOT_DOLLAR: u128 = 1_000_000_000_000; -const DOT_CENT: u128 = DOT_DOLLAR / 100; - -// ========================================================================= -// ======= Reserve Transfers - WSND Native Asset - Frequency<>AssetHub========== -// ========================================================================= -/// Reserve Transfers of Frequency Native from Asset Hub to Frequency should work -// RUST_BACKTRACE=1 RUST_LOG="events,runtime::system=trace,xcm=trace" cargo test tests::reserve_transfer_dot_from_frequency_to_asset_hub -p frequency-westend-integration-tests -- --nocapture -// transfer_type=DestinationReserve -#[test] -fn reserve_transfer_dot_from_frequency_to_asset_hub() { - let amount_dot_to_send: Balance = AssetHubExistentialDeposit::get() * 1000; - // assert_eq!(amount_to_send, 10_000 * DOLLAR); - setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_dot_to_send); - - /// 20K dollars - let sender = FrequencyWestendSender::get(); - let receiver = AssetHubWestendReceiver::get(); - let destination = FrequencyWestend::sibling_location_of(AssetHubWestend::para_id()); - let assets: Assets = (Parent, amount_dot_to_send).into(); - let asset_hub_native_asset_location = WestendLocation::get(); - - let sender_dot_assets_before = foreign_balance_on!(FrequencyWestend, Parent.into(), &sender); - - assert_eq!(sender_dot_assets_before, 2_000_000_000_000u128); - - let frequency_sender_native_before = FrequencyWestend::execute_with(|| { - type Balances = ::Balances; - >::balance(&FrequencyWestendSender::get()) - }); - - assert_eq!(frequency_sender_native_before, 4_096_000_000u128); - - let test_args = TestContext { - sender: sender.clone(), - receiver: receiver.clone(), - args: TestArgs::new_para( - destination.clone(), - receiver.clone(), - amount_dot_to_send, - assets.clone(), - None, - 0, - ), - }; - - let mut test = FrequencyToAssetHubTest::new(test_args); - - // Query initial balances - - let receiver_balance_before = test.receiver.balance; - - // Set assertions and dispatchables - test.set_assertion::(frequency_to_asset_hub_sender_assertions); - test.set_assertion::(frequency_to_asset_hub_receiver_assertions); - test.set_dispatchable::(frequency_to_asset_hub_reserve_transfer_assets); - test.assert(); - - // Query final balances - let sender_dot_assets_after = - foreign_balance_on!(FrequencyWestend, asset_hub_native_asset_location, &sender); - - let receiver_balance_after = test.receiver.balance; - - let frequency_sender_native_after = FrequencyWestend::execute_with(|| { - type Balances = ::Balances; - >::balance(&FrequencyWestendSender::get()) - }); - - // Sender's balance is reduced by amount sent - assert!(sender_dot_assets_after < sender_dot_assets_before - amount_dot_to_send); - // // Receiver's balance is increased - assert!(receiver_balance_after > receiver_balance_before); - // // Receiver's balance increased by `amount_to_send - delivery_fees - bought_execution`; - // // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but - // // should be non-zero - assert!(receiver_balance_after < receiver_balance_before + amount_dot_to_send); -} diff --git a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs deleted file mode 100644 index 818bb295a3..0000000000 --- a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_frequency_to_relay.rs +++ /dev/null @@ -1,154 +0,0 @@ -use crate::foreign_balance_on; -use crate::imports::*; -use westend_system_emulated_network::westend_emulated_chain::westend_runtime::Dmp; - -fn frequency_to_relay_reserve_transfer_assets(t: FrequencyToRelayTest) -> DispatchResult { - ::PolkadotXcm::limited_reserve_transfer_assets( - t.signed_origin, - bx!(t.args.dest.into()), - bx!(t.args.beneficiary.into()), - bx!(t.args.assets.into()), - t.args.fee_asset_item, - t.args.weight_limit, - ) -} - -fn frequency_to_relay_receiver_assertions(t: FrequencyToRelayTest) { - type RuntimeEvent = ::RuntimeEvent; - let sov_penpal_on_relay = - Westend::sovereign_account_id_of(Westend::child_location_of(FrequencyWestend::para_id())); - - Westend::assert_ump_queue_processed( - true, - Some(FrequencyWestend::para_id()), - Some(Weight::from_parts(306305000, 7_186)), - ); - - assert_expected_events!( - Westend, - vec![ - // Amount to reserve transfer is withdrawn from Parachain's Sovereign account - RuntimeEvent::Balances( - pallet_balances::Event::Burned { who, amount } - ) => { - who: *who == sov_penpal_on_relay.clone().into(), - amount: *amount == t.args.amount, - }, - RuntimeEvent::Balances(pallet_balances::Event::Minted { .. }) => {}, - RuntimeEvent::MessageQueue( - pallet_message_queue::Event::Processed { success: true, .. } - ) => {}, - ] - ); -} - -fn frequency_to_relay_sender_assertions(t: FrequencyToRelayTest) { - type RuntimeEvent = ::RuntimeEvent; - FrequencyWestend::assert_xcm_pallet_attempted_complete(Some(Weight::from_parts( - 864_610_000, - 8_799, - ))); - assert_expected_events!( - FrequencyWestend, - vec![ - // Amount to reserve transfer is transferred to Parachain's Sovereign account - RuntimeEvent::ForeignAssets( - pallet_assets::Event::Burned { asset_id, owner, balance, .. } - ) => { - asset_id: *asset_id == WestendLocation::get(), - owner: *owner == t.sender.account_id, - balance: *balance == t.args.amount, - }, - ] - ); -} - -fn setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_to_send: Balance) { - // Create and mint DOT-derived asset on Frequency - FrequencyWestend::execute_with(|| { - type ForeignAssets = ::ForeignAssets; - let sender = FrequencyWestendSender::get(); - - let _ = >::create( - Parent.into(), - sender.clone(), - false, - 1u32.into(), - ); - - let _ = >::mint_into( - Parent.into(), - &sender.clone(), - amount_to_send * 2, - ); - - assert!(>::asset_exists(Parent.into())); - }); - - // Fund Frequency sovereign account on AssetHub - let frequency_location_as_seen_by_ahr = - AssetHubWestend::sibling_location_of(FrequencyWestend::para_id()); - let sov_frequency_on_ahr = - AssetHubWestend::sovereign_account_id_of(frequency_location_as_seen_by_ahr); - - AssetHubWestend::fund_accounts(vec![(sov_frequency_on_ahr.into(), amount_to_send * 2)]); -} - -// ========================================================================= -// ========= Reserve Transfers - DOT Asset - Frequency<>Relay =========== -// ========================================================================= -/// Reserve Transfers of DOT from Relay to Parachain should work -// RUST_BACKTRACE=1 RUST_LOG="events,runtime::system=trace,xcm=trace" cargo test tests::reserve_transfer_dot_from_relay_to_frequency -p frequency-westend-integration-tests -- --nocapture -#[test] -fn reserve_transfer_dot_from_frequency_to_relay() { - let destination = FrequencyWestend::parent_location(); - let sender = FrequencyWestendSender::get(); - let amount_to_send: Balance = WESTEND_ED * 1000; - let assets: Assets = (Parent, amount_to_send).into(); - // let asset_owner = FrequencyAssetOwner::get(); - let relay_native_asset_location = WestendLocation::get(); - - setup_foreign_asset_on_frequency_and_fund_ah_sov(amount_to_send); - - let receiver = WestendReceiver::get(); - let frequency_location_as_seen_by_relay = - Westend::child_location_of(FrequencyWestend::para_id()); - - let test_args = TestContext { - sender: sender.clone(), - receiver: receiver.clone(), - args: TestArgs::new_para( - destination.clone(), - receiver, - amount_to_send, - assets.clone(), - None, - 0, - ), - }; - - let mut test = FrequencyToRelayTest::new(test_args); - - let sender_assets_before = - foreign_balance_on!(FrequencyWestend, relay_native_asset_location.clone(), &sender); - let receiver_balance_before = test.receiver.balance; - - test.set_assertion::(frequency_to_relay_sender_assertions); - test.set_assertion::(frequency_to_relay_receiver_assertions); - test.set_dispatchable::(frequency_to_relay_reserve_transfer_assets); - test.assert(); - - let sender_assets_after = - foreign_balance_on!(FrequencyWestend, relay_native_asset_location, &sender); - let receiver_balance_after = test.receiver.balance; - - // Sender's balance is reduced by amount sent plus delivery fees - assert!(sender_assets_after < sender_assets_before - amount_to_send); - - assert!(receiver_balance_after > receiver_balance_before); - - // Receiver's asset balance increased by `amount_to_send - delivery_fees - bought_execution`; - // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but - // should be non-zero - assert!(receiver_balance_after < receiver_balance_before + amount_to_send); -} diff --git a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_relay_to_frequency.rs b/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_relay_to_frequency.rs deleted file mode 100644 index ce698b0d0a..0000000000 --- a/emulated-test/test/frequency-westend/src/tests/reserve_transfer_dot_from_relay_to_frequency.rs +++ /dev/null @@ -1,123 +0,0 @@ -use crate::foreign_balance_on; -use crate::imports::*; -use westend_system_emulated_network::westend_emulated_chain::westend_runtime::Dmp; - -fn relay_to_frequency_receiver_assertions(t: RelayToFrequencyTest) { - type RuntimeEvent = ::RuntimeEvent; - - assert_expected_events!( - FrequencyWestend, - vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { asset_id, owner, .. }) => { - asset_id: *asset_id == WestendLocation::get(), - owner: *owner == t.receiver.account_id, - }, - RuntimeEvent::MessageQueue( - pallet_message_queue::Event::Processed { success: true, .. } - ) => {}, - ] - ); -} - -fn relay_to_frequency_reserve_transfer_assets(t: RelayToFrequencyTest) -> DispatchResult { - let Junction::Parachain(para_id) = *t.args.dest.chain_location().last().unwrap() else { - unimplemented!("Destination is not a parachain?") - }; - - Dmp::make_parachain_reachable(para_id); - ::XcmPallet::limited_reserve_transfer_assets( - t.signed_origin, - bx!(t.args.dest.into()), - bx!(t.args.beneficiary.into()), - bx!(t.args.assets.into()), - t.args.fee_asset_item, - t.args.weight_limit, - ) -} - -fn relay_to_frequency_sender_assertions(t: RelayToFrequencyTest) { - type RuntimeEvent = ::RuntimeEvent; - - Westend::assert_xcm_pallet_attempted_complete(Some(Weight::from_parts(297_174_000, 6_196))); - - assert_expected_events!( - Westend, - vec![ - // Amount to reserve transfer is transferred to Parachain's Sovereign account - RuntimeEvent::Balances( - pallet_balances::Event::Transfer { from, to, amount } - ) => { - from: *from == t.sender.account_id, - to: *to == Westend::sovereign_account_id_of( - t.args.dest.clone() - ), - amount: *amount == t.args.amount, - }, - ] - ); -} - -fn setup_foreign_asset_on_frequency() { - FrequencyWestend::execute_with(|| { - type ForeignAssets = ::ForeignAssets; - let sender = FrequencyWestendSender::get(); - - let _ = >::create( - Parent.into(), - sender.clone(), - false, - 1u32.into(), - ); - - assert!(>::asset_exists(Parent.into())); - }); -} - - -// ========================================================================= -// ========= Reserve Transfers - DOT Asset - Relay<>Frequency =========== -// ========================================================================= -/// Reserve Transfers of DOT from Relay to Parachain should work -// RUST_BACKTRACE=1 RUST_LOG="events,runtime::system=trace,xcm=trace" cargo test tests::reserve_transfer_dot_from_relay_to_frequency -p frequency-westend-integration-tests -- --nocapture -// transfer_type=DestinationReserve -#[test] -fn reserve_transfer_dot_asset_from_relay_to_frequency() { - setup_foreign_asset_on_frequency(); - let destination = Westend::child_location_of(FrequencyWestend::para_id()); - let sender = WestendSender::get(); - let amount_to_send: Balance = WESTEND_ED * 1000; - - let relay_native_asset_location = WestendLocation::get(); - let receiver = FrequencyWestendReceiver::get(); - - let test_args = TestContext { - sender, - receiver: receiver.clone(), - args: TestArgs::new_relay(destination.clone(), receiver.clone(), amount_to_send), - - }; - - let mut test = RelayToFrequencyTest::new(test_args); - - let sender_balance_before = test.sender.balance; - let receiver_assets_before = foreign_balance_on!(FrequencyWestend, relay_native_asset_location.clone(), &receiver); - - test.set_assertion::(relay_to_frequency_sender_assertions); - test.set_assertion::(relay_to_frequency_receiver_assertions); - test.set_dispatchable::(relay_to_frequency_reserve_transfer_assets); - test.assert(); - - let sender_balance_after = test.sender.balance; - let receiver_assets_after = - foreign_balance_on!(FrequencyWestend, relay_native_asset_location, &receiver); - - // Sender's balance is reduced by amount sent plus delivery fees - assert!(sender_balance_after < sender_balance_before - amount_to_send); - // Receiver's asset balance is increased - assert!(receiver_assets_after > receiver_assets_before); - // Receiver's asset balance increased by `amount_to_send - delivery_fees - bought_execution`; - // `delivery_fees` might be paid from transfer or JIT, also `bought_execution` is unknown but - // should be non-zero - assert!(receiver_assets_after < receiver_assets_before + amount_to_send); - -} diff --git a/emulated-test/test/frequency-westend/src/tests/teleport.rs b/emulated-test/test/frequency-westend/src/tests/teleport.rs deleted file mode 100644 index 2041a8fd75..0000000000 --- a/emulated-test/test/frequency-westend/src/tests/teleport.rs +++ /dev/null @@ -1,17 +0,0 @@ -use crate::imports::*; -use emulated_integration_tests_common::{ - test_parachain_is_trusted_teleporter_for_relay, test_parachain_is_trusted_teleporter, test_relay_is_trusted_teleporter, -}; - -#[test] -fn teleport_from_and_to_asset_hub() { - let amount = WESTEND_ED * 100; - let native_asset: Assets = (Here, amount).into(); - - test_parachain_is_trusted_teleporter!( - FrequencyWestend, - FrequencyWestendXcmConfig, - vec![AssetHubWestend], - (native_asset, amount) - ); -} diff --git a/runtime/frequency/src/tests/fee_estimation.rs b/runtime/frequency/src/tests/fee_estimation.rs new file mode 100644 index 0000000000..5463463f41 --- /dev/null +++ b/runtime/frequency/src/tests/fee_estimation.rs @@ -0,0 +1,465 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Tests for using both the XCM fee payment API and the dry-run API. + +use frame_support::sp_runtime::testing::H256; +use frame_system::RawOrigin; +use sp_api::ProvideRuntimeApi; +use staging_xcm::prelude::*; +use xcm_runtime_apis::{ + dry_run::{CallDryRunEffects, DryRunApi}, + fees::XcmPaymentApi, +}; + +use super::mock::{ + fake_message_hash, new_test_ext_with_balances, new_test_ext_with_balances_and_assets, + DeliveryFees, ExistentialDeposit, HereLocation, OriginCaller, RuntimeCall, RuntimeEvent, + TestClient, +}; + +// Scenario: User `1` in the local chain (id 2000) wants to transfer assets to account `[0u8; 32]` +// on "AssetHub". He wants to make sure he has enough for fees, so before he calls the +// `transfer_asset` extrinsic to do the transfer, he decides to use the `XcmDryRunApi` and +// `XcmPaymentApi` runtime APIs to estimate fees. This uses a teleport because we're dealing with +// the native token of the chain, which is registered on "AssetHub". The fees are sent as a reserve +// asset transfer, since they're paid in the relay token. +// +// Teleport Parachain(2000) Token +// Reserve Asset Transfer Relay Token for fees +// Parachain(2000) -------------------------------------------> Parachain(1000) +#[test] +fn fee_estimation_for_teleport() { + sp_tracing::init_for_tests(); + let who = 1; // AccountId = u64. + let balances = vec![(who, 100 + DeliveryFees::get() + ExistentialDeposit::get())]; + let assets = vec![(1, who, 50)]; + new_test_ext_with_balances_and_assets(balances, assets).execute_with(|| { + let client = TestClient; + let runtime_api = client.runtime_api(); + let call = RuntimeCall::XcmPallet(pallet_xcm::Call::transfer_assets { + dest: Box::new(VersionedLocation::from((Parent, Parachain(1000)))), + beneficiary: Box::new(VersionedLocation::from(AccountId32 { + id: [0u8; 32], + network: None, + })), + assets: Box::new(VersionedAssets::from(vec![ + (Here, 100u128).into(), + (Parent, 20u128).into(), + ])), + fee_asset_item: 1, // Fees are paid with the RelayToken + weight_limit: Unlimited, + }); + let origin = OriginCaller::system(RawOrigin::Signed(who)); + let dry_run_effects = runtime_api + .dry_run_call(H256::zero(), origin, call, XCM_VERSION) + .unwrap() + .unwrap(); + + assert_eq!( + dry_run_effects.local_xcm, + Some(VersionedXcm::from( + Xcm::builder_unsafe() + .withdraw_asset((Parent, 20u128)) + .burn_asset((Parent, 20u128)) + .withdraw_asset((Here, 100u128)) + .burn_asset((Here, 100u128)) + .build() + )), + ); + let send_destination = Location::new(1, [Parachain(1000)]); + let send_message = Xcm::<()>::builder_unsafe() + .withdraw_asset((Parent, 20u128)) + .buy_execution((Parent, 20u128), Unlimited) + .receive_teleported_asset(((Parent, Parachain(2000)), 100u128)) + .clear_origin() + .deposit_asset(AllCounted(2), [0u8; 32]) + .build(); + assert_eq!( + dry_run_effects.forwarded_xcms, + vec![( + VersionedLocation::from(send_destination.clone()), + vec![VersionedXcm::from(send_message.clone())], + ),], + ); + + assert_eq!( + dry_run_effects.emitted_events, + vec![ + RuntimeEvent::System(frame_system::Event::NewAccount { + account: 8660274132218572653 // TODO: Why is this not `1`? + }), + RuntimeEvent::Balances(pallet_balances::Event::Endowed { + account: 8660274132218572653, + free_balance: 100 + }), + RuntimeEvent::Balances(pallet_balances::Event::Minted { + who: 8660274132218572653, + amount: 100 + }), + RuntimeEvent::AssetsPallet(pallet_assets::Event::Burned { + asset_id: 1, + owner: 1, + balance: 20 + }), + RuntimeEvent::Balances(pallet_balances::Event::Burned { who: 1, amount: 100 }), + RuntimeEvent::XcmPallet(pallet_xcm::Event::Attempted { + outcome: Outcome::Complete { used: Weight::from_parts(400, 40) }, + }), + RuntimeEvent::Balances(pallet_balances::Event::Burned { who: 1, amount: 20 }), + RuntimeEvent::XcmPallet(pallet_xcm::Event::FeesPaid { + paying: AccountIndex64 { index: 1, network: None }.into(), + fees: (Here, 20u128).into(), + }), + RuntimeEvent::XcmPallet(pallet_xcm::Event::Sent { + origin: AccountIndex64 { index: 1, network: None }.into(), + destination: (Parent, Parachain(1000)).into(), + message: send_message.clone(), + message_id: fake_message_hash(&send_message), + }), + ] + ); + + // Weighing the local program is not relevant for extrinsics that already + // take this weight into account. + // In this case, we really only care about delivery fees. + let local_xcm = dry_run_effects.local_xcm.unwrap(); + + // We get a double result since the actual call returns a result and the runtime api returns + // results. + let weight = + runtime_api.query_xcm_weight(H256::zero(), local_xcm.clone()).unwrap().unwrap(); + assert_eq!(weight, Weight::from_parts(400, 40)); + let execution_fees = runtime_api + .query_weight_to_asset_fee( + H256::zero(), + weight, + VersionedAssetId::from(AssetId(HereLocation::get())), + ) + .unwrap() + .unwrap(); + assert_eq!(execution_fees, 440); + + let mut forwarded_xcms_iter = dry_run_effects.forwarded_xcms.into_iter(); + + let (destination, remote_messages) = forwarded_xcms_iter.next().unwrap(); + let remote_message = &remote_messages[0]; + + let delivery_fees = runtime_api + .query_delivery_fees(H256::zero(), destination.clone(), remote_message.clone()) + .unwrap() + .unwrap(); + assert_eq!(delivery_fees, VersionedAssets::from((Here, 20u128))); + + // This would have to be the runtime API of the destination, + // which we have the location for. + // If I had a mock runtime configured for "AssetHub" then I would use the + // runtime APIs from that. + let remote_execution_weight = runtime_api + .query_xcm_weight(H256::zero(), remote_message.clone()) + .unwrap() + .unwrap(); + let remote_execution_fees = runtime_api + .query_weight_to_asset_fee( + H256::zero(), + remote_execution_weight, + VersionedAssetId::from(AssetId(HereLocation::get())), + ) + .unwrap() + .unwrap(); + assert_eq!(remote_execution_fees, 550); + + // Now we know that locally we need to use `execution_fees` and + // `delivery_fees`. + // On the message we forward to the destination, we need to + // put `remote_execution_fees` in `BuyExecution`. + // For the `transfer_assets` extrinsic, it just means passing the correct amount + // of fees in the parameters. + }); +} + +// Same scenario as in `fee_estimation_for_teleport`, but the user in parachain 2000 wants +// to send relay tokens over to parachain 1000. +// +// Reserve Asset Transfer Relay Token +// Reserve Asset Transfer Relay Token for fees +// Parachain(2000) -------------------------------------------> Parachain(1000) +fn dry_run_reserve_asset_transfer_common( + input_xcm_version: XcmVersion, + expected_result_xcms_version: XcmVersion, + dry_run_call: impl FnOnce(&TestClient, OriginCaller, RuntimeCall) -> CallDryRunEffects, +) { + sp_tracing::init_for_tests(); + let who = 1; // AccountId = u64. + // Native token used for fees. + let balances = vec![(who, DeliveryFees::get() + ExistentialDeposit::get())]; + // Relay token is the one we want to transfer. + let assets = vec![(1, who, 100)]; // id, account_id, balance. + new_test_ext_with_balances_and_assets(balances, assets).execute_with(|| { + let call = RuntimeCall::XcmPallet(pallet_xcm::Call::transfer_assets { + dest: Box::new( + VersionedLocation::from((Parent, Parachain(1000))) + .into_version(input_xcm_version) + .unwrap(), + ), + beneficiary: Box::new( + VersionedLocation::from(AccountId32 { id: [0u8; 32], network: None }) + .into_version(input_xcm_version) + .unwrap(), + ), + assets: Box::new( + VersionedAssets::from((Parent, 100u128)) + .into_version(input_xcm_version) + .unwrap(), + ), + fee_asset_item: 0, + weight_limit: Unlimited, + }); + let origin = OriginCaller::system(RawOrigin::Signed(who)); + let dry_run_effects = dry_run_call(&TestClient, origin, call); + + assert_eq!( + dry_run_effects.local_xcm, + Some( + VersionedXcm::from( + Xcm::builder_unsafe() + .withdraw_asset((Parent, 100u128)) + .burn_asset((Parent, 100u128)) + .build() + ) + .into_version(expected_result_xcms_version) + .unwrap() + ), + ); + + // In this case, the transfer type is `DestinationReserve`, so the remote xcm just withdraws + // the assets. + let send_destination = Location::new(1, Parachain(1000)); + let send_message = Xcm::<()>::builder_unsafe() + .withdraw_asset((Parent, 100u128)) + .clear_origin() + .buy_execution((Parent, 100u128), Unlimited) + .deposit_asset(AllCounted(1), [0u8; 32]) + .build(); + assert_eq!( + dry_run_effects.forwarded_xcms, + vec![( + VersionedLocation::from(send_destination.clone()) + .into_version(expected_result_xcms_version) + .unwrap(), + vec![VersionedXcm::from(send_message.clone()) + .into_version(expected_result_xcms_version) + .unwrap()], + ),], + ); + + assert_eq!( + dry_run_effects.emitted_events, + vec![ + RuntimeEvent::AssetsPallet(pallet_assets::Event::Burned { + asset_id: 1, + owner: 1, + balance: 100 + }), + RuntimeEvent::XcmPallet(pallet_xcm::Event::Attempted { + outcome: Outcome::Complete { used: Weight::from_parts(200, 20) } + }), + RuntimeEvent::Balances(pallet_balances::Event::Burned { who: 1, amount: 20 }), + RuntimeEvent::XcmPallet(pallet_xcm::Event::FeesPaid { + paying: AccountIndex64 { index: 1, network: None }.into(), + fees: (Here, 20u128).into() + }), + RuntimeEvent::XcmPallet(pallet_xcm::Event::Sent { + origin: AccountIndex64 { index: 1, network: None }.into(), + destination: send_destination.clone(), + message: send_message.clone(), + message_id: fake_message_hash(&send_message), + }), + ] + ); + }); +} + +#[test] +fn dry_run_reserve_asset_transfer_xcm_versions() { + let tested_versions = MIN_XCM_VERSION..=XCM_VERSION; + + for version in tested_versions { + let input_version = version; + let expected_result_xcms_version = version; + dry_run_reserve_asset_transfer_common( + input_version, + expected_result_xcms_version, + |client, origin, call| { + client + .runtime_api() + .dry_run_call(H256::zero(), origin, call, expected_result_xcms_version) + .unwrap() + .unwrap() + }, + ); + } +} + +#[test] +fn dry_run_before_api_v2_reserve_asset_transfer() { + let tested_versions = MIN_XCM_VERSION..=XCM_VERSION; + + for version in tested_versions { + let input_version = version; + let expected_result_xcms_version = XCM_VERSION; + dry_run_reserve_asset_transfer_common( + input_version, + expected_result_xcms_version, + |client, origin, call| { + #[allow(deprecated)] + client + .runtime_api() + .dry_run_call_before_version_2(H256::zero(), origin, call) + .unwrap() + .unwrap() + }, + ); + } +} + +fn dry_run_xcm_common(xcm_version: XcmVersion) { + sp_tracing::init_for_tests(); + let who = 1; // AccountId = u64. + let transfer_amount = 100u128; + // We need to build the XCM to weigh it and then build the real XCM that can pay for fees. + let inner_xcm = Xcm::<()>::builder_unsafe() + .buy_execution((Here, 1u128), Unlimited) // We'd need to query the destination chain for fees. + .deposit_asset(AllCounted(1), [0u8; 32]) + .build(); + let xcm_to_weigh = Xcm::::builder_unsafe() + .withdraw_asset((Here, transfer_amount)) + .clear_origin() + .buy_execution((Here, transfer_amount), Unlimited) + .deposit_reserve_asset(AllCounted(1), (Parent, Parachain(2100)), inner_xcm.clone()) + .build(); + let client = TestClient; + let runtime_api = client.runtime_api(); + let xcm_weight = runtime_api + .query_xcm_weight( + H256::zero(), + VersionedXcm::from(xcm_to_weigh.clone().into()) + .into_version(xcm_version) + .unwrap(), + ) + .unwrap() + .unwrap(); + let execution_fees = runtime_api + .query_weight_to_asset_fee( + H256::zero(), + xcm_weight, + VersionedAssetId::from(AssetId(Here.into())).into_version(xcm_version).unwrap(), + ) + .unwrap() + .unwrap(); + let xcm = Xcm::::builder_unsafe() + .withdraw_asset((Here, transfer_amount + execution_fees)) + .clear_origin() + .buy_execution((Here, execution_fees), Unlimited) + .deposit_reserve_asset(AllCounted(1), (Parent, Parachain(2100)), inner_xcm.clone()) + .build(); + let balances = vec![( + who, + transfer_amount + execution_fees + DeliveryFees::get() + ExistentialDeposit::get(), + )]; + new_test_ext_with_balances(balances).execute_with(|| { + let dry_run_effects = runtime_api + .dry_run_xcm( + H256::zero(), + VersionedLocation::from([AccountIndex64 { index: 1, network: None }]) + .into_version(xcm_version) + .unwrap(), + VersionedXcm::from(xcm).into_version(xcm_version).unwrap(), + ) + .unwrap() + .unwrap(); + let expected_xcms = Xcm::<()>::builder_unsafe() + .reserve_asset_deposited(( + (Parent, Parachain(2000)), + transfer_amount + execution_fees - DeliveryFees::get(), + )) + .clear_origin() + .buy_execution((Here, 1u128), Unlimited) + .deposit_asset(AllCounted(1), [0u8; 32]) + .build(); + let expected_msg_id = fake_message_hash(&expected_xcms); + assert_eq!( + dry_run_effects.forwarded_xcms, + vec![( + VersionedLocation::from((Parent, Parachain(2100))) + .into_version(xcm_version) + .unwrap(), + vec![VersionedXcm::from(expected_xcms).into_version(xcm_version).unwrap()], + ),] + ); + + assert_eq!( + dry_run_effects.emitted_events, + vec![ + RuntimeEvent::Balances(pallet_balances::Event::Burned { who: 1, amount: 540 }), + RuntimeEvent::System(frame_system::Event::NewAccount { account: 2100 }), + RuntimeEvent::Balances(pallet_balances::Event::Endowed { + account: 2100, + free_balance: 520 + }), + RuntimeEvent::Balances(pallet_balances::Event::Minted { who: 2100, amount: 520 }), + RuntimeEvent::XcmPallet(pallet_xcm::Event::Sent { + origin: (who,).into(), + destination: (Parent, Parachain(2100)).into(), + message: Xcm::default(), + message_id: expected_msg_id, + }) + ] + ); + }); +} + +#[test] +fn dry_run_xcm_versions() { + let tested_versions = [XCM_VERSION, 5, 4, 3]; + + for version in tested_versions { + dry_run_xcm_common(version); + } +} + +#[test] +fn calling_payment_api_with_a_lower_version_works() { + let transfer_amount = 100u128; + let xcm_to_weigh = Xcm::::builder_unsafe() + .withdraw_asset((Here, transfer_amount)) + .buy_execution((Here, transfer_amount), Unlimited) + .deposit_asset(AllCounted(1), [1u8; 32]) + .build(); + let versioned_xcm_to_weigh = VersionedXcm::from(xcm_to_weigh.clone().into()); + let lower_version_xcm_to_weigh = versioned_xcm_to_weigh.into_version(XCM_VERSION - 1).unwrap(); + let client = TestClient; + let runtime_api = client.runtime_api(); + let xcm_weight = + runtime_api.query_xcm_weight(H256::zero(), lower_version_xcm_to_weigh).unwrap(); + assert!(xcm_weight.is_ok()); + let native_token = VersionedAssetId::from(AssetId(Here.into())); + let lower_version_native_token = native_token.into_version(XCM_VERSION - 1).unwrap(); + let execution_fees = runtime_api + .query_weight_to_asset_fee(H256::zero(), xcm_weight.unwrap(), lower_version_native_token) + .unwrap(); + assert!(execution_fees.is_ok()); +} diff --git a/runtime/frequency/src/tests/mock.rs b/runtime/frequency/src/tests/mock.rs new file mode 100644 index 0000000000..cf4ff1dd81 --- /dev/null +++ b/runtime/frequency/src/tests/mock.rs @@ -0,0 +1,525 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Mock runtime for tests. +//! Implements both runtime APIs for fee estimation and getting the messages for transfers. + +use parity_scale_codec::Encode; +use core::{cell::RefCell, marker::PhantomData}; +use frame_support::{ + construct_runtime, derive_impl, parameter_types, sp_runtime, + sp_runtime::{ + traits::{Get, IdentityLookup, MaybeEquivalence, TryConvert}, + BuildStorage, SaturatedConversion, + }, + traits::{ + AsEnsureOriginWithArg, ConstU128, ConstU32, Contains, ContainsPair, Disabled, Everything, + Nothing, OriginTrait, + }, + weights::WeightToFee as WeightToFeeT, +}; +use frame_system::{EnsureRoot, RawOrigin as SystemRawOrigin}; +use pallet_xcm::TestWeightInfo; +use staging_xcm::{prelude::*, Version as XcmVersion}; +use staging_xcm_builder::{ + AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, EnsureXcmOrigin, FixedRateOfFungible, + FixedWeightBounds, FungibleAdapter, FungiblesAdapter, InspectMessageQueues, IsConcrete, + MintLocation, NoChecking, TakeWeightCredit, +}; +use xcm_executor::{ + traits::{ConvertLocation, JustTry}, + XcmExecutor, +}; + +use xcm_runtime_apis::{ + conversions::{Error as LocationToAccountApiError, LocationToAccountApi}, + dry_run::{CallDryRunEffects, DryRunApi, Error as XcmDryRunApiError, XcmDryRunEffects}, + fees::{Error as XcmPaymentApiError, XcmPaymentApi}, + trusted_query::{Error as TrustedQueryApiError, TrustedQueryApi}, +}; + +construct_runtime! { + pub enum TestRuntime { + System: frame_system, + Balances: pallet_balances, + AssetsPallet: pallet_assets, + XcmPallet: pallet_xcm, + } +} + +pub type TxExtension = + (frame_system::CheckWeight, frame_system::WeightReclaim); + +// we only use the hash type from this, so using the mock should be fine. +pub(crate) type Extrinsic = sp_runtime::generic::UncheckedExtrinsic< + u64, + RuntimeCall, + sp_runtime::testing::UintAuthorityId, + TxExtension, +>; +type Block = sp_runtime::testing::Block; +type Balance = u128; +type AssetIdForAssetsPallet = u32; +type AccountId = u64; + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] +impl frame_system::Config for TestRuntime { + type Block = Block; + type AccountId = AccountId; + type AccountData = pallet_balances::AccountData; + type Lookup = IdentityLookup; +} + +#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig)] +impl pallet_balances::Config for TestRuntime { + type AccountStore = System; + type Balance = Balance; + type ExistentialDeposit = ExistentialDeposit; +} + +#[derive_impl(pallet_assets::config_preludes::TestDefaultConfig)] +impl pallet_assets::Config for TestRuntime { + type AssetId = AssetIdForAssetsPallet; + type Balance = Balance; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = frame_system::EnsureRoot; + type Holder = (); + type Freezer = (); + type AssetDeposit = ConstU128<1>; + type AssetAccountDeposit = ConstU128<10>; + type MetadataDepositBase = ConstU128<1>; + type MetadataDepositPerByte = ConstU128<1>; + type ApprovalDeposit = ConstU128<1>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); +} + +thread_local! { + pub static SENT_XCM: RefCell)>> = const { RefCell::new(Vec::new()) }; +} + +pub struct TestXcmSender; +impl SendXcm for TestXcmSender { + type Ticket = (Location, Xcm<()>); + fn validate( + dest: &mut Option, + msg: &mut Option>, + ) -> SendResult { + let ticket = (dest.take().unwrap(), msg.take().unwrap()); + let fees: Assets = (HereLocation::get(), DeliveryFees::get()).into(); + Ok((ticket, fees)) + } + fn deliver(ticket: Self::Ticket) -> Result { + let hash = fake_message_hash(&ticket.1); + SENT_XCM.with(|q| q.borrow_mut().push(ticket)); + Ok(hash) + } +} +impl InspectMessageQueues for TestXcmSender { + fn clear_messages() { + SENT_XCM.with(|q| q.borrow_mut().clear()); + } + + fn get_messages() -> Vec<(VersionedLocation, Vec>)> { + SENT_XCM.with(|q| { + (*q.borrow()) + .clone() + .iter() + .map(|(location, message)| { + ( + VersionedLocation::from(location.clone()), + vec![VersionedXcm::from(message.clone())], + ) + }) + .collect() + }) + } +} + +pub(crate) fn fake_message_hash(message: &Xcm) -> XcmHash { + message.using_encoded(sp_io::hashing::blake2_256) +} + +pub type XcmRouter = TestXcmSender; + +parameter_types! { + pub const DeliveryFees: u128 = 20; // Random value. + pub const ExistentialDeposit: u128 = 1; // Random value. + pub const BaseXcmWeight: Weight = Weight::from_parts(100, 10); // Random value. + pub const MaxInstructions: u32 = 100; + pub const NativeTokenPerSecondPerByte: (AssetId, u128, u128) = (AssetId(HereLocation::get()), 1, 1); + pub UniversalLocation: InteriorLocation = [GlobalConsensus(NetworkId::ByGenesis([0; 32])), Parachain(2000)].into(); + pub const HereLocation: Location = Location::here(); + pub const RelayLocation: Location = Location::parent(); + pub const MaxAssetsIntoHolding: u32 = 64; + pub CheckAccount: AccountId = XcmPallet::check_account(); + pub LocalCheckAccount: (AccountId, MintLocation) = (CheckAccount::get(), MintLocation::Local); + pub const AnyNetwork: Option = None; +} + +/// Simple `WeightToFee` implementation that adds the ref_time by the proof_size. +pub struct WeightToFee; +impl WeightToFeeT for WeightToFee { + type Balance = Balance; + fn weight_to_fee(weight: &Weight) -> Self::Balance { + Self::Balance::saturated_from(weight.ref_time()) + .saturating_add(Self::Balance::saturated_from(weight.proof_size())) + } +} + +type Weigher = FixedWeightBounds; + +/// Matches the pair (NativeToken, AssetHub). +/// This is used in the `IsTeleporter` configuration item, meaning we accept our native token +/// coming from AssetHub as a teleport. +pub struct NativeTokenToAssetHub; +impl ContainsPair for NativeTokenToAssetHub { + fn contains(asset: &Asset, origin: &Location) -> bool { + matches!(asset.id.0.unpack(), (0, [])) && matches!(origin.unpack(), (1, [Parachain(1000)])) + } +} + +/// Matches the pair (RelayToken, AssetHub). +/// This is used in the `IsReserve` configuration item, meaning we accept the relay token +/// coming from AssetHub as a reserve asset transfer. +pub struct RelayTokenToAssetHub; +impl ContainsPair for RelayTokenToAssetHub { + fn contains(asset: &Asset, origin: &Location) -> bool { + matches!(asset.id.0.unpack(), (1, [])) && matches!(origin.unpack(), (1, [Parachain(1000)])) + } +} + +/// Converts locations that are only the `AccountIndex64` junction into local u64 accounts. +pub struct AccountIndex64Aliases(PhantomData<(Network, AccountId)>); +impl>, AccountId: From> ConvertLocation + for AccountIndex64Aliases +{ + fn convert_location(location: &Location) -> Option { + let index = match location.unpack() { + (0, [AccountIndex64 { index, network: None }]) => index, + (0, [AccountIndex64 { index, network }]) if *network == Network::get() => index, + _ => return None, + }; + Some((*index).into()) + } +} + +/// Custom location converter to turn sibling chains into u64 accounts. +pub struct SiblingChainToIndex64; +impl ConvertLocation for SiblingChainToIndex64 { + fn convert_location(location: &Location) -> Option { + let index = match location.unpack() { + (1, [Parachain(id)]) => id, + _ => return None, + }; + Some((*index).into()) + } +} + +/// We alias local account locations to actual local accounts. +/// We also allow sovereign accounts for other sibling chains. +pub type LocationToAccountId = (AccountIndex64Aliases, SiblingChainToIndex64); + +pub type NativeTokenTransactor = FungibleAdapter< + // We use pallet-balances for handling this fungible asset. + Balances, + // The fungible asset handled by this transactor is the native token of the chain. + IsConcrete, + // How we convert locations to accounts. + LocationToAccountId, + // We need to specify the AccountId type. + AccountId, + // We mint the native tokens locally, so we track how many we've sent away via teleports. + LocalCheckAccount, +>; + +pub struct LocationToAssetIdForAssetsPallet; +impl MaybeEquivalence for LocationToAssetIdForAssetsPallet { + fn convert(location: &Location) -> Option { + match location.unpack() { + (1, []) => Some(1 as AssetIdForAssetsPallet), + _ => None, + } + } + + fn convert_back(id: &AssetIdForAssetsPallet) -> Option { + match id { + 1 => Some(Location::new(1, [])), + _ => None, + } + } +} + +/// AssetTransactor for handling the relay chain token. +pub type RelayTokenTransactor = FungiblesAdapter< + // We use pallet-assets for handling the relay token. + AssetsPallet, + // Matches the relay token. + ConvertedConcreteId, + // How we convert locations to accounts. + LocationToAccountId, + // We need to specify the AccountId type. + AccountId, + // We don't track teleports. + NoChecking, + (), +>; + +pub type AssetTransactors = (NativeTokenTransactor, RelayTokenTransactor); + +pub struct HereAndInnerLocations; +impl Contains for HereAndInnerLocations { + fn contains(location: &Location) -> bool { + matches!(location.unpack(), (0, []) | (0, _)) + } +} + +pub type Barrier = ( + TakeWeightCredit, // We need this for pallet-xcm's extrinsics to work. + AllowTopLevelPaidExecutionFrom, /* TODO: Technically, we should allow + * messages from "AssetHub". */ +); + +pub type Trader = FixedRateOfFungible; + +pub struct XcmConfig; +impl xcm_executor::Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type XcmEventEmitter = XcmPallet; + type AssetTransactor = AssetTransactors; + type OriginConverter = (); + type IsReserve = RelayTokenToAssetHub; + type IsTeleporter = NativeTokenToAssetHub; + type UniversalLocation = UniversalLocation; + type Barrier = Barrier; + type Weigher = Weigher; + type Trader = Trader; + type ResponseHandler = (); + type AssetTrap = (); + type AssetLocker = (); + type AssetExchanger = (); + type AssetClaims = (); + type SubscriptionService = (); + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = (); + type CallDispatcher = RuntimeCall; + type SafeCallFilter = Nothing; + type Aliasers = Nothing; + type TransactionalProcessor = (); + type HrmpNewChannelOpenRequestHandler = (); + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); + type XcmRecorder = XcmPallet; +} + +/// Converts a signed origin of a u64 account into a location with only the `AccountIndex64` +/// junction. +pub struct SignedToAccountIndex64( + PhantomData<(RuntimeOrigin, AccountId)>, +); +impl> TryConvert + for SignedToAccountIndex64 +where + RuntimeOrigin::PalletsOrigin: From> + + TryInto, Error = RuntimeOrigin::PalletsOrigin>, +{ + fn try_convert(origin: RuntimeOrigin) -> Result { + origin.try_with_caller(|caller| match caller.try_into() { + Ok(SystemRawOrigin::Signed(who)) => + Ok(Junction::AccountIndex64 { network: None, index: who.into() }.into()), + Ok(other) => Err(other.into()), + Err(other) => Err(other), + }) + } +} + +/// Converts a local signed origin into an XCM location. Forms the basis for local origins +/// sending/executing XCMs. +pub type LocalOriginToLocation = SignedToAccountIndex64; + +impl pallet_xcm::Config for TestRuntime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; // Put everything instead of something more restricted. + type XcmReserveTransferFilter = Everything; // Same. + type Weigher = Weigher; + type UniversalLocation = UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type AdminOrigin = EnsureRoot; + type TrustedLockers = (); + type SovereignAccountOf = (); + type Currency = Balances; + type CurrencyMatcher = IsConcrete; + type MaxLockers = ConstU32<0>; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + type WeightInfo = TestWeightInfo; + type AuthorizedAliasConsideration = Disabled; +} + +#[allow(dead_code)] +pub fn new_test_ext_with_balances(balances: Vec<(AccountId, Balance)>) -> sp_io::TestExternalities { + let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); + + pallet_balances::GenesisConfig:: { balances, ..Default::default() } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| System::set_block_number(1)); + ext +} + +#[allow(dead_code)] +pub fn new_test_ext_with_balances_and_assets( + balances: Vec<(AccountId, Balance)>, + assets: Vec<(AssetIdForAssetsPallet, AccountId, Balance)>, +) -> sp_io::TestExternalities { + let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); + + pallet_balances::GenesisConfig:: { balances, ..Default::default() } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_assets::GenesisConfig:: { + assets: vec![ + // id, owner, is_sufficient, min_balance. + // We don't actually need this to be sufficient, since we use the native assets in + // tests for the existential deposit. + (1, 0, true, 1), + ], + metadata: vec![ + // id, name, symbol, decimals. + (1, "Relay Token".into(), "RLY".into(), 12), + ], + accounts: assets, + next_asset_id: None, + } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| System::set_block_number(1)); + ext +} + +#[derive(Clone)] +pub(crate) struct TestClient; + +pub(crate) struct RuntimeApi { + _inner: TestClient, +} + +impl sp_api::ProvideRuntimeApi for TestClient { + type Api = RuntimeApi; + fn runtime_api(&self) -> sp_api::ApiRef { + RuntimeApi { _inner: self.clone() }.into() + } +} + +sp_api::mock_impl_runtime_apis! { + impl TrustedQueryApi for RuntimeApi { + fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> Result { + XcmPallet::is_trusted_reserve(asset, location) + } + + fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> Result { + XcmPallet::is_trusted_teleporter(asset, location) + } + } + + impl LocationToAccountApi for RuntimeApi { + fn convert_location(location: VersionedLocation) -> Result { + let location = location.try_into().map_err(|_| LocationToAccountApiError::VersionedConversionFailed)?; + LocationToAccountId::convert_location(&location) + .ok_or(LocationToAccountApiError::Unsupported) + } + } + + impl XcmPaymentApi for RuntimeApi { + fn query_acceptable_payment_assets(xcm_version: XcmVersion) -> Result, XcmPaymentApiError> { + Ok(vec![ + VersionedAssetId::from(AssetId(HereLocation::get())) + .into_version(xcm_version) + .map_err(|_| XcmPaymentApiError::VersionedConversionFailed)? + ]) + } + + fn query_xcm_weight(message: VersionedXcm<()>) -> Result { + XcmPallet::query_xcm_weight(message) + } + + fn query_weight_to_asset_fee(weight: Weight, asset: VersionedAssetId) -> Result { + let latest_asset_id: Result = asset.clone().try_into(); + match latest_asset_id { + Ok(asset_id) if asset_id.0 == HereLocation::get() => { + Ok(WeightToFee::weight_to_fee(&weight)) + }, + Ok(asset_id) => { + log::trace!( + target: "xcm::XcmPaymentApi::query_weight_to_asset_fee", + "query_weight_to_asset_fee - unhandled asset_id: {asset_id:?}!" + ); + Err(XcmPaymentApiError::AssetNotFound) + }, + Err(_) => { + log::trace!( + target: "xcm::XcmPaymentApi::query_weight_to_asset_fee", + "query_weight_to_asset_fee - failed to convert asset: {asset:?}!" + ); + Err(XcmPaymentApiError::VersionedConversionFailed) + } + } + } + + fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { + XcmPallet::query_delivery_fees(destination, message) + } + } + + impl DryRunApi for RuntimeApi { + fn dry_run_call( + origin: OriginCaller, + call: RuntimeCall, + result_xcms_version: XcmVersion, + ) -> Result, XcmDryRunApiError> { + pallet_xcm::Pallet::::dry_run_call::(origin, call, result_xcms_version) + } + + fn dry_run_call_before_version_2( + origin: OriginCaller, + call: RuntimeCall, + ) -> Result, XcmDryRunApiError> { + pallet_xcm::Pallet::::dry_run_call::(origin, call, staging_xcm::latest::VERSION) + } + + fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { + pallet_xcm::Pallet::::dry_run_xcm::(origin_location, xcm) + } + } +} diff --git a/emulated-test/test/frequency-westend/src/tests/mod.rs b/runtime/frequency/src/tests/mod.rs similarity index 90% rename from emulated-test/test/frequency-westend/src/tests/mod.rs rename to runtime/frequency/src/tests/mod.rs index a39512e3c3..50721265bf 100644 --- a/emulated-test/test/frequency-westend/src/tests/mod.rs +++ b/runtime/frequency/src/tests/mod.rs @@ -5,7 +5,10 @@ mod reserve_transfer_dot_from_frequency_to_asset_hub; mod reserve_transfer_dot_from_relay_to_frequency; mod reserve_transfer_dot_from_frequency_to_relay; -mod hybrid_transfer_native_from_frequency_to_asset_hub; +// mod hybrid_transfer_native_from_frequency_to_asset_hub; + +mod fee_estimation; +mod mock; #[macro_export] macro_rules! foreign_balance_on { From 2628d3487e4d76d9c773ea3e9bba904f1549506a Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Mon, 19 May 2025 15:48:45 -0600 Subject: [PATCH 20/31] Remove Westend network references from Cargo.toml and add local bridging check in Makefile --- .vscode/launch.json | 27 - Cargo.lock | 3186 +++++++++++-------------------------------- Cargo.toml | 3 - Makefile | 3 + 4 files changed, 778 insertions(+), 2441 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index b81bafe817..86546c6b19 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -49,33 +49,6 @@ "name": "Attach to Frequency", "program": "${workspaceFolder}/target/debug/frequency", }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in executable 'Emulated test'", - "cargo": { - "args": [ - "test", - "--no-run", - "--package=frequency-westend-integration-tests" - ], - // "filter": { - // "name": "frequency-westend-integration-tests", - // "kind": "test" - // } - }, - // "program": "${workspaceFolder}/emulated-test/test/frequency-westend/target/tests/debug/deps/frequency_westend_integration_tests-b4edad4aeb26ecb5", - "args": [ - "--", - "--nocapture" - ], - "env": { - "RUST_BACKTRACE": "1", - "RUST_LOG": "events,runtime::system=trace,xcm=trace" - }, - "cwd": "${workspaceFolder}", - "stopOnEntry": true - }, { "type": "lldb", "request": "launch", diff --git a/Cargo.lock b/Cargo.lock index 012330d0cc..d9fc68e618 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -79,15 +79,15 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.2.16", + "getrandom 0.3.3", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -105,156 +105,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "alloy-core" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d8bcce99ad10fe02640cfaec1c6bc809b837c783c1d52906aa5af66e2a196f6" -dependencies = [ - "alloy-dyn-abi", - "alloy-json-abi", - "alloy-primitives", - "alloy-rlp", - "alloy-sol-types", -] - -[[package]] -name = "alloy-dyn-abi" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb8e762aefd39a397ff485bc86df673465c4ad3ec8819cc60833a8a3ba5cdc87" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-type-parser", - "alloy-sol-types", - "const-hex", - "itoa", - "serde", - "serde_json", - "winnow", -] - -[[package]] -name = "alloy-json-abi" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6beff64ad0aa6ad1019a3db26fef565aefeb011736150ab73ed3366c3cfd1b" -dependencies = [ - "alloy-primitives", - "alloy-sol-type-parser", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-primitives" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c77490fe91a0ce933a1f219029521f20fc28c2c0ca95d53fa4da9c00b8d9d4e" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more 2.0.1", - "foldhash", - "hashbrown 0.15.2", - "indexmap 2.9.0", - "itoa", - "k256", - "keccak-asm", - "paste", - "proptest", - "rand 0.8.5", - "ruint", - "rustc-hash 2.1.1", - "serde", - "sha3", - "tiny-keccak", -] - -[[package]] -name = "alloy-rlp" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6c1d995bff8d011f7cd6c81820d51825e6e06d6db73914c1630ecf544d83d6" -dependencies = [ - "arrayvec 0.7.6", - "bytes", -] - -[[package]] -name = "alloy-sol-macro" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10ae8e9a91d328ae954c22542415303919aabe976fe7a92eb06db1b68fd59f2" -dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83ad5da86c127751bc607c174d6c9fe9b85ef0889a9ca0c641735d77d4f98f26" -dependencies = [ - "alloy-sol-macro-input", - "const-hex", - "heck 0.5.0", - "indexmap 2.9.0", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.100", - "syn-solidity", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3d30f0d3f9ba3b7686f3ff1de9ee312647aac705604417a2f40c604f409a9e" -dependencies = [ - "const-hex", - "dunce", - "heck 0.5.0", - "macro-string", - "proc-macro2", - "quote", - "syn 2.0.100", - "syn-solidity", -] - -[[package]] -name = "alloy-sol-type-parser" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d162f8524adfdfb0e4bd0505c734c985f3e2474eb022af32eef0d52a4f3935c" -dependencies = [ - "serde", - "winnow", -] - -[[package]] -name = "alloy-sol-types" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43d5e60466a440230c07761aa67671d4719d46f43be8ea6e7ed334d8db4a9ab" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-macro", - "const-hex", - "serde", -] - [[package]] name = "always-assert" version = "0.1.3" @@ -378,7 +228,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -446,7 +296,7 @@ dependencies = [ "ark-std 0.5.0", "educe", "fnv", - "hashbrown 0.15.2", + "hashbrown 0.15.3", "itertools 0.13.0", "num-bigint", "num-integer", @@ -466,24 +316,6 @@ dependencies = [ "ark-std 0.5.0", ] -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rustc_version 0.3.3", - "zeroize", -] - [[package]] name = "ark-ff" version = "0.4.2" @@ -500,7 +332,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rustc_version 0.4.1", + "rustc_version", "zeroize", ] @@ -524,16 +356,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "ark-ff-asm" version = "0.4.2" @@ -551,19 +373,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.100", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -589,7 +399,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -617,17 +427,7 @@ dependencies = [ "ark-std 0.5.0", "educe", "fnv", - "hashbrown 0.15.2", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-std 0.3.0", - "digest 0.9.0", + "hashbrown 0.15.3", ] [[package]] @@ -674,17 +474,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand 0.8.5", + "syn 2.0.101", ] [[package]] @@ -735,7 +525,7 @@ dependencies = [ "ark-std 0.5.0", "digest 0.10.7", "rand_chacha 0.3.1", - "sha2 0.10.8", + "sha2 0.10.9", "w3f-ring-proof", "zeroize", ] @@ -807,8 +597,8 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", - "synstructure 0.13.1", + "syn 2.0.101", + "synstructure 0.13.2", ] [[package]] @@ -819,8 +609,8 @@ checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", - "synstructure 0.13.1", + "syn 2.0.101", + "synstructure 0.13.2", ] [[package]] @@ -831,7 +621,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -840,170 +630,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" -[[package]] -name = "asset-hub-westend-emulated-chain" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "asset-hub-westend-runtime", - "bp-bridge-hub-westend", - "cumulus-primitives-core", - "emulated-integration-tests-common", - "frame-support", - "parachains-common", - "sp-core", - "sp-keyring", - "staging-xcm", - "staging-xcm-builder", - "testnet-parachains-constants", - "westend-emulated-chain", -] - -[[package]] -name = "asset-hub-westend-runtime" -version = "0.29.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "assets-common", - "bp-asset-hub-rococo", - "bp-asset-hub-westend", - "bp-bridge-hub-rococo", - "bp-bridge-hub-westend", - "cumulus-pallet-aura-ext", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-weight-reclaim", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-aura", - "cumulus-primitives-core", - "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-metadata-hash-extension", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "pallet-asset-conversion", - "pallet-asset-conversion-ops", - "pallet-asset-conversion-tx-payment", - "pallet-asset-rewards", - "pallet-assets", - "pallet-assets-freezer", - "pallet-aura", - "pallet-authorship", - "pallet-balances", - "pallet-collator-selection", - "pallet-message-queue", - "pallet-migrations", - "pallet-multisig", - "pallet-nft-fractionalization", - "pallet-nfts", - "pallet-nfts-runtime-api", - "pallet-proxy", - "pallet-revive", - "pallet-session", - "pallet-state-trie-migration", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-uniques", - "pallet-utility", - "pallet-xcm", - "pallet-xcm-benchmarks", - "pallet-xcm-bridge-hub-router", - "parachains-common", - "parity-scale-codec", - "polkadot-parachain-primitives", - "polkadot-runtime-common", - "primitive-types 0.13.1", - "scale-info", - "serde_json", - "snowbridge-inbound-queue-primitives", - "snowbridge-outbound-queue-primitives", - "snowbridge-pallet-system-frontend", - "snowbridge-runtime-common", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keyring", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-storage", - "sp-transaction-pool", - "sp-version", - "staging-parachain-info", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "substrate-wasm-builder", - "testnet-parachains-constants", - "westend-runtime-constants", - "xcm-runtime-apis", -] - -[[package]] -name = "asset-test-utils" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "cumulus-pallet-parachain-system", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "frame-support", - "frame-system", - "pallet-asset-conversion", - "pallet-assets", - "pallet-balances", - "pallet-collator-selection", - "pallet-session", - "pallet-timestamp", - "pallet-xcm", - "pallet-xcm-bridge-hub-router", - "parachains-common", - "parachains-runtimes-test-utils", - "parity-scale-codec", - "sp-io", - "sp-runtime", - "staging-parachain-info", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "xcm-runtime-apis", -] - -[[package]] -name = "assets-common" -version = "0.21.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "impl-trait-for-tuples", - "pallet-asset-conversion", - "pallet-assets", - "pallet-xcm", - "parachains-common", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-runtime", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "tracing", -] - [[package]] name = "async-channel" version = "1.9.0" @@ -1029,14 +655,15 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" dependencies = [ "async-task", "concurrent-queue", "fastrand 2.3.0", "futures-lite 2.6.0", + "pin-project-lite", "slab", ] @@ -1212,7 +839,7 @@ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1255,24 +882,13 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "attohttpc" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" -dependencies = [ - "http 0.2.12", - "log", - "url", -] - -[[package]] -name = "auto_impl" -version = "1.3.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" +checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", + "http 0.2.12", + "log", + "url", ] [[package]] @@ -1283,9 +899,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line 0.24.2", "cfg-if", @@ -1364,7 +980,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "hash-db", "log", @@ -1398,7 +1014,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -1413,7 +1029,7 @@ dependencies = [ "rand_core 0.6.4", "ripemd", "secp256k1 0.27.0", - "sha2 0.10.8", + "sha2 0.10.9", "subtle 2.6.1", "zeroize", ] @@ -1429,21 +1045,6 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - [[package]] name = "bitcoin-internals" version = "0.2.0" @@ -1484,9 +1085,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "bitvec" @@ -1619,216 +1220,10 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "bp-asset-hub-rococo" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-bridge-hub-cumulus", - "bp-messages", - "bp-runtime", - "bp-xcm-bridge-hub-router", - "frame-support", - "parity-scale-codec", - "scale-info", - "sp-core", - "staging-xcm", - "testnet-parachains-constants", -] - -[[package]] -name = "bp-asset-hub-westend" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-bridge-hub-cumulus", - "bp-messages", - "bp-runtime", - "bp-xcm-bridge-hub-router", - "frame-support", - "parity-scale-codec", - "scale-info", - "sp-core", - "staging-xcm", - "testnet-parachains-constants", -] - -[[package]] -name = "bp-bridge-hub-cumulus" -version = "0.21.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-messages", - "bp-polkadot-core", - "bp-runtime", - "frame-support", - "frame-system", - "polkadot-primitives", - "sp-api", - "sp-std", -] - -[[package]] -name = "bp-bridge-hub-rococo" -version = "0.21.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-bridge-hub-cumulus", - "bp-messages", - "bp-runtime", - "bp-xcm-bridge-hub", - "frame-support", - "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-bridge-hub-westend" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-bridge-hub-cumulus", - "bp-messages", - "bp-runtime", - "bp-xcm-bridge-hub", - "frame-support", - "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-header-chain" -version = "0.20.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-runtime", - "finality-grandpa", - "frame-support", - "parity-scale-codec", - "scale-info", - "serde", - "sp-consensus-grandpa", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-messages" -version = "0.20.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-header-chain", - "bp-runtime", - "frame-support", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-std", -] - -[[package]] -name = "bp-parachains" -version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-header-chain", - "bp-polkadot-core", - "bp-runtime", - "frame-support", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-polkadot-core" -version = "0.20.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-messages", - "bp-runtime", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-relayers" -version = "0.20.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-header-chain", - "bp-messages", - "bp-parachains", - "bp-runtime", - "frame-support", - "frame-system", - "pallet-utility", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-runtime" -version = "0.20.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "frame-support", - "frame-system", - "hash-db", - "impl-trait-for-tuples", - "log", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", - "trie-db", -] - -[[package]] -name = "bp-xcm-bridge-hub" -version = "0.6.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-messages", - "bp-runtime", - "frame-support", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-std", - "staging-xcm", -] - [[package]] name = "bp-xcm-bridge-hub-router" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "scale-info", @@ -1843,7 +1238,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ - "sha2 0.10.8", + "sha2 0.10.9", "tinyvec", ] @@ -1876,9 +1271,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.22.0" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" +checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" [[package]] name = "byteorder" @@ -1891,9 +1286,6 @@ name = "bytes" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" -dependencies = [ - "serde", -] [[package]] name = "bzip2-sys" @@ -1949,9 +1341,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.19" +version = "1.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" +checksum = "5f4ac86a9e5bc1e2b3449ab9d7d3a6a405e3d1bb28d7b9be8614f55846ae3766" dependencies = [ "jobserver", "libc", @@ -2036,9 +1428,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.40" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" dependencies = [ "android-tzdata", "iana-time-zone", @@ -2106,9 +1498,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.37" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" +checksum = "ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000" dependencies = [ "clap_builder", "clap_derive", @@ -2116,9 +1508,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.37" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" +checksum = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120" dependencies = [ "anstream", "anstyle", @@ -2136,7 +1528,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -2299,9 +1691,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.14.0" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" +checksum = "83e22e0ed40b96a48d3db274f72fd365bd78f67af39b6bbd47e8a15e1c6207ff" dependencies = [ "cfg-if", "cpufeatures", @@ -2654,7 +2046,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "clap", "parity-scale-codec", @@ -2671,7 +2063,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -2694,7 +2086,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "cumulus-client-collator", @@ -2741,7 +2133,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -2771,7 +2163,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "anyhow", "async-trait", @@ -2786,7 +2178,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -2812,7 +2204,7 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2832,7 +2224,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2858,7 +2250,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.23.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -2895,7 +2287,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -2912,7 +2304,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2947,18 +2339,18 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "cumulus-pallet-session-benchmarking" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -2971,7 +2363,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-weight-reclaim" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cumulus-primitives-storage-weight-reclaim", "derive-where", @@ -2990,7 +2382,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.19.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -3005,7 +2397,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -3030,7 +2422,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "sp-api", "sp-consensus-aura", @@ -3039,7 +2431,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.18.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -3055,7 +2447,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.18.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3069,7 +2461,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "sp-externalities", "sp-runtime-interface", @@ -3079,7 +2471,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -3096,7 +2488,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -3106,7 +2498,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -3123,7 +2515,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.23.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3147,7 +2539,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3165,8 +2557,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" -version = "0.23.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +version = "0.23.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "async-trait", @@ -3200,7 +2592,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3240,7 +2632,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -3261,7 +2653,7 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.1", + "rustc_version", "subtle 2.6.1", "zeroize", ] @@ -3274,7 +2666,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3315,7 +2707,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3328,7 +2720,7 @@ dependencies = [ "codespan-reporting", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3346,7 +2738,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3370,7 +2762,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3381,7 +2773,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3426,7 +2818,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3495,18 +2887,18 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "derive-where" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2364b9aa47e460ce9bca6ac1777d14c98eef7e274eb077beed49f3adc94183ed" +checksum = "e73f2692d4bd3cac41dca28934a39894200c9fabf49586d77d0e5954af1d7902" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3518,8 +2910,8 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.1", - "syn 2.0.100", + "rustc_version", + "syn 2.0.101", ] [[package]] @@ -3528,16 +2920,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "derive_more-impl 1.0.0", -] - -[[package]] -name = "derive_more" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" -dependencies = [ - "derive_more-impl 2.0.1", + "derive_more-impl", ] [[package]] @@ -3548,19 +2931,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", - "unicode-xid", -] - -[[package]] -name = "derive_more-impl" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", + "syn 2.0.101", "unicode-xid", ] @@ -3659,7 +3030,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3683,9 +3054,9 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.100", + "syn 2.0.101", "termcolor", - "toml 0.8.20", + "toml 0.8.22", "walkdir", ] @@ -3707,12 +3078,6 @@ version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - [[package]] name = "dyn-clonable" version = "0.9.2" @@ -3731,7 +3096,7 @@ checksum = "7e8671d54058979a37a26f3511fbf8d198ba1aa35ffb202c42587d918d77213a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3775,7 +3140,7 @@ dependencies = [ "ed25519", "rand_core 0.6.4", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "subtle 2.6.1", "zeroize", ] @@ -3791,7 +3156,7 @@ dependencies = [ "hashbrown 0.14.5", "hex", "rand_core 0.6.4", - "sha2 0.10.8", + "sha2 0.10.9", "zeroize", ] @@ -3804,7 +3169,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3833,42 +3198,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "emulated-integration-tests-common" -version = "20.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "asset-test-utils", - "bp-messages", - "bp-xcm-bridge-hub", - "cumulus-pallet-parachain-system", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "frame-support", - "hex-literal", - "pallet-assets", - "pallet-balances", - "pallet-bridge-messages", - "pallet-message-queue", - "pallet-xcm", - "pallet-xcm-bridge-hub", - "parachains-common", - "parity-scale-codec", - "paste", - "polkadot-parachain-primitives", - "polkadot-primitives", - "polkadot-runtime-parachains", - "sc-consensus-grandpa", - "sp-authority-discovery", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-core", - "sp-keyring", - "sp-runtime", - "staging-xcm", - "xcm-emulator", -] - [[package]] name = "encode_unicode" version = "1.0.0" @@ -3884,7 +3213,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3904,7 +3233,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3924,7 +3253,7 @@ checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3935,7 +3264,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -3988,55 +3317,14 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", "windows-sys 0.59.0", ] -[[package]] -name = "ethabi-decode" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52029c4087f9f01108f851d0d02df9c21feb5660a19713466724b7f95bd2d773" -dependencies = [ - "ethereum-types", - "tiny-keccak", -] - -[[package]] -name = "ethbloom" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c321610643004cf908ec0f5f2aa0d8f1f8e14b540562a2887a1111ff1ecbf7b" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec 0.7.1", - "impl-rlp", - "impl-serde 0.5.0", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab15ed80916029f878e0267c3a9f92b67df55e79af370bf66199059ae2b4ee3" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec 0.7.1", - "impl-rlp", - "impl-serde 0.5.0", - "primitive-types 0.13.1", - "scale-info", - "uint 0.10.0", -] - [[package]] name = "event-listener" version = "2.5.3" @@ -4096,7 +3384,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -4124,29 +3412,7 @@ dependencies = [ name = "fastrand" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec 0.7.6", - "auto_impl", - "bytes", -] - -[[package]] -name = "fastrlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" -dependencies = [ - "arrayvec 0.7.6", - "auto_impl", - "bytes", -] +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fatality" @@ -4169,7 +3435,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -4285,7 +3551,7 @@ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "fork-tree" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", ] @@ -4318,7 +3584,7 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "frame-support-procedural", @@ -4342,7 +3608,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "47.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "Inflector", "array-bytes", @@ -4416,18 +3682,18 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "16.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "frame-election-provider-support" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -4443,7 +3709,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "aquamarine", "frame-support", @@ -4485,7 +3751,7 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "const-hex", @@ -4501,7 +3767,7 @@ dependencies = [ [[package]] name = "frame-support" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "aquamarine", "array-bytes", @@ -4542,7 +3808,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "33.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "Inflector", "cfg-expr", @@ -4556,35 +3822,35 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2503)", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "frame-support-procedural-tools" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "frame-support-procedural-tools-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "frame-system" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cfg-if", "docify", @@ -4603,7 +3869,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -4617,7 +3883,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "parity-scale-codec", @@ -4627,7 +3893,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.46.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "parity-scale-codec", @@ -4697,23 +3963,6 @@ dependencies = [ "substrate-build-script-utils", ] -[[package]] -name = "frequency-emulated-chain" -version = "0.0.0" -dependencies = [ - "cumulus-primitives-core", - "emulated-integration-tests-common", - "frame-support", - "frequency-runtime", - "parachains-common", - "polkadot-primitives", - "sp-core", - "sp-keyring", - "sp-runtime", - "staging-xcm", - "xcm-emulator", -] - [[package]] name = "frequency-runtime" version = "0.0.0" @@ -4900,26 +4149,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "frequency-westend-integration-tests" -version = "0.0.0" -dependencies = [ - "asset-test-utils", - "emulated-integration-tests-common", - "frame-support", - "pallet-assets", - "pallet-balances", - "pallet-message-queue", - "pallet-xcm", - "parachains-common", - "sp-io", - "sp-runtime", - "staging-xcm", - "staging-xcm-executor", - "westend-runtime", - "westend-system-emulated-network", -] - [[package]] name = "fs-err" version = "2.11.0" @@ -5050,7 +4279,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -5154,9 +4383,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "js-sys", @@ -5265,9 +4494,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75249d144030531f8dee69fe9cea04d3edf809a017ae445e2abdff6629e86633" +checksum = "a9421a676d1b147b16b82c9225157dc629087ef8ec4d5e2960f9437a90dac0a5" dependencies = [ "atomic-waker", "bytes", @@ -5349,14 +4578,13 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" dependencies = [ "allocator-api2", "equivalent", "foldhash", - "serde", ] [[package]] @@ -5394,18 +4622,15 @@ checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "hermit-abi" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e" +checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] [[package]] name = "hex-conservative" @@ -5513,17 +4738,6 @@ dependencies = [ "hmac 0.8.1", ] -[[package]] -name = "hostname" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" -dependencies = [ - "cfg-if", - "libc", - "windows-link", -] - [[package]] name = "http" version = "0.2.12" @@ -5631,7 +4845,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.9", + "h2 0.4.10", "http 1.3.1", "http-body 1.0.1", "httparse", @@ -5664,9 +4878,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "cf9f1e950e0d9d1d3c47184416723cf29c0d1f93bd8cccf37e4beb6b44f31710" dependencies = [ "bytes", "futures-channel", @@ -5694,7 +4908,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.0", + "windows-core 0.61.2", ] [[package]] @@ -5708,21 +4922,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -5731,31 +4946,11 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -5763,67 +4958,54 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -5843,9 +5025,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -5903,15 +5085,6 @@ dependencies = [ "xmltree", ] -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - [[package]] name = "impl-codec" version = "0.7.1" @@ -5932,15 +5105,6 @@ dependencies = [ "uint 0.10.0", ] -[[package]] -name = "impl-rlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ed8ad1f3877f7e775b8cbf30ed1bd3209a95401817f19a0eb4402d13f8cf90" -dependencies = [ - "rlp 0.6.1", -] - [[package]] name = "impl-serde" version = "0.4.0" @@ -5967,7 +5131,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -6007,8 +5171,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.15.2", - "serde", + "hashbrown 0.15.3", ] [[package]] @@ -6085,7 +5248,7 @@ version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ - "hermit-abi 0.5.0", + "hermit-abi 0.5.1", "libc", "windows-sys 0.59.0", ] @@ -6158,9 +5321,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jiff" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a064218214dc6a10fbae5ec5fa888d80c45d611aba169222fc272072bf7aef6" +checksum = "f02000660d30638906021176af16b17498bd0d12813dbfe7b276d8bc7f3c0806" dependencies = [ "jiff-static", "log", @@ -6171,13 +5334,13 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199b7932d97e325aff3a7030e141eafe7f2c6268e1d1b24859b753a627f45254" +checksum = "f3c30758ddd7188629c6713fc45d1188af4f44c90582311d0c8d8c9907f60c48" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -6208,7 +5371,7 @@ version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", "libc", ] @@ -6297,7 +5460,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -6363,7 +5526,7 @@ dependencies = [ "elliptic-curve", "once_cell", "serdect", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -6375,23 +5538,13 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "keccak-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" -dependencies = [ - "digest 0.10.7", - "sha3-asm", -] - [[package]] name = "keccak-hash" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e1b8590eb6148af2ea2d75f38e7d29f5ca970d5a4df456b3ef19b8b415d0264" dependencies = [ - "primitive-types 0.13.1", + "primitive-types", "tiny-keccak", ] @@ -6450,9 +5603,6 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin 0.9.8", -] [[package]] name = "lazycell" @@ -6492,19 +5642,19 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +checksum = "6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.53.0", ] [[package]] name = "libm" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9627da5196e5d8ed0b0495e61e518847578da83483c37288316d9b2e03a7f72" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libp2p" @@ -6634,9 +5784,9 @@ dependencies = [ [[package]] name = "libp2p-identity" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b5621d159b32282eac446bed6670c39c7dc68a200a992d8f056afa0066f6d" +checksum = "fbb68ea10844211a59ce46230909fd0ea040e8a192454d4cc2ee0d53e12280eb" dependencies = [ "bs58", "ed25519-dalek", @@ -6644,8 +5794,8 @@ dependencies = [ "multihash 0.19.3", "quick-protobuf", "rand 0.8.5", - "sha2 0.10.8", - "thiserror 1.0.69", + "sha2 0.10.9", + "thiserror 2.0.12", "tracing", "zeroize", ] @@ -6670,7 +5820,7 @@ dependencies = [ "quick-protobuf", "quick-protobuf-codec", "rand 0.8.5", - "sha2 0.10.8", + "sha2 0.10.9", "smallvec", "thiserror 1.0.69", "tracing", @@ -6735,7 +5885,7 @@ dependencies = [ "once_cell", "quick-protobuf", "rand 0.8.5", - "sha2 0.10.8", + "sha2 0.10.9", "snow", "static_assertions", "thiserror 1.0.69", @@ -6839,7 +5989,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -6927,7 +6077,7 @@ dependencies = [ "thiserror 1.0.69", "tracing", "yamux 0.12.1", - "yamux 0.13.4", + "yamux 0.13.5", ] [[package]] @@ -6936,9 +6086,9 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "libc", - "redox_syscall 0.5.11", + "redox_syscall 0.5.12", ] [[package]] @@ -7086,9 +6236,9 @@ dependencies = [ [[package]] name = "litemap" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "litep2p" @@ -7116,7 +6266,7 @@ dependencies = [ "prost-build", "rand 0.8.5", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "simple-dns", "smallvec", "snow", @@ -7132,7 +6282,7 @@ dependencies = [ "url", "x25519-dalek", "x509-parser 0.17.0", - "yamux 0.13.4", + "yamux 0.13.5", "yasna", "zeroize", ] @@ -7165,7 +6315,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.2", + "hashbrown 0.15.3", ] [[package]] @@ -7177,6 +6327,12 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "lz4" version = "1.28.1" @@ -7205,17 +6361,6 @@ dependencies = [ "libc", ] -[[package]] -name = "macro-string" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "macro_magic" version = "0.5.1" @@ -7225,7 +6370,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -7239,7 +6384,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -7250,7 +6395,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -7261,7 +6406,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -7275,9 +6420,9 @@ dependencies = [ [[package]] name = "matrixmultiply" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" +checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08" dependencies = [ "autocfg", "rawpointer", @@ -7414,7 +6559,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "log", @@ -7433,7 +6578,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -7468,7 +6613,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -7538,7 +6683,7 @@ dependencies = [ "core2", "digest 0.10.7", "multihash-derive", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "unsigned-varint 0.7.2", ] @@ -7569,9 +6714,9 @@ dependencies = [ [[package]] name = "multimap" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "multistream-select" @@ -7710,7 +6855,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "cfg_aliases 0.2.1", "libc", @@ -7806,7 +6951,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -7988,13 +7133,13 @@ dependencies = [ "ecdsa", "elliptic-curve", "primeorder", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] name = "pallet-asset-conversion" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8009,75 +7154,24 @@ dependencies = [ "sp-runtime", ] -[[package]] -name = "pallet-asset-conversion-ops" -version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-asset-conversion", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", -] - -[[package]] -name = "pallet-asset-conversion-tx-payment" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-asset-conversion", - "pallet-transaction-payment", - "parity-scale-codec", - "scale-info", - "sp-runtime", -] - [[package]] name = "pallet-asset-rate" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", -] - -[[package]] -name = "pallet-asset-rewards" -version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-api", - "sp-arithmetic", "sp-core", - "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-asset-tx-payment" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8094,7 +7188,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8107,22 +7201,10 @@ dependencies = [ "sp-runtime", ] -[[package]] -name = "pallet-assets-freezer" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "log", - "pallet-assets", - "parity-scale-codec", - "polkadot-sdk-frame", - "scale-info", -] - [[package]] name = "pallet-aura" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "frame-system", @@ -8138,7 +7220,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "frame-system", @@ -8153,7 +7235,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "frame-system", @@ -8166,7 +7248,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8189,7 +7271,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "aquamarine", "docify", @@ -8210,7 +7292,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "41.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-benchmarking", @@ -8225,8 +7307,8 @@ dependencies = [ [[package]] name = "pallet-beefy" -version = "41.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +version = "41.1.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "frame-system", @@ -8245,7 +7327,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -8270,7 +7352,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8284,29 +7366,10 @@ dependencies = [ "sp-runtime", ] -[[package]] -name = "pallet-bridge-messages" -version = "0.20.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-header-chain", - "bp-messages", - "bp-runtime", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-std", - "sp-trie", -] - [[package]] name = "pallet-broker" version = "0.19.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bitvec", "frame-benchmarking", @@ -8353,7 +7416,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8371,7 +7434,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8390,7 +7453,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-benchmarking", @@ -8407,7 +7470,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8423,7 +7486,7 @@ dependencies = [ [[package]] name = "pallet-delegated-staking" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "frame-system", @@ -8438,7 +7501,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8455,7 +7518,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8477,7 +7540,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8490,7 +7553,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "41.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8508,7 +7571,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-benchmarking", @@ -8579,7 +7642,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8649,7 +7712,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "enumflags2", "frame-benchmarking", @@ -8665,7 +7728,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8684,7 +7747,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8699,7 +7762,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8715,7 +7778,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "43.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "environmental", "frame-benchmarking", @@ -8782,7 +7845,7 @@ dependencies = [ [[package]] name = "pallet-meta-tx" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-benchmarking", @@ -8800,7 +7863,7 @@ dependencies = [ [[package]] name = "pallet-migrations" version = "10.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-benchmarking", @@ -8819,7 +7882,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "log", "parity-scale-codec", @@ -8863,86 +7926,44 @@ dependencies = [ "common-helpers", "common-primitives", "jsonrpsee", - "pallet-msa-runtime-api", - "parity-scale-codec", - "parking_lot 0.12.3", - "rayon", - "sc-client-api", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-offchain", - "sp-runtime", - "tokio", -] - -[[package]] -name = "pallet-msa-runtime-api" -version = "0.0.0" -dependencies = [ - "common-primitives", - "frame-support", - "parity-scale-codec", - "sp-api", -] - -[[package]] -name = "pallet-multisig" -version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "log", - "parity-scale-codec", - "polkadot-sdk-frame", - "scale-info", -] - -[[package]] -name = "pallet-nft-fractionalization" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-assets", - "pallet-nfts", + "pallet-msa-runtime-api", "parity-scale-codec", - "scale-info", + "parking_lot 0.12.3", + "rayon", + "sc-client-api", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-offchain", "sp-runtime", + "tokio", ] [[package]] -name = "pallet-nfts" -version = "34.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +name = "pallet-msa-runtime-api" +version = "0.0.0" dependencies = [ - "enumflags2", - "frame-benchmarking", + "common-primitives", "frame-support", - "frame-system", - "log", "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "sp-api", ] [[package]] -name = "pallet-nfts-runtime-api" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +name = "pallet-multisig" +version = "40.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ + "log", "parity-scale-codec", - "sp-api", + "polkadot-sdk-frame", + "scale-info", ] [[package]] name = "pallet-nis" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -8952,7 +7973,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "frame-system", @@ -8970,7 +7991,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8990,7 +8011,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -9000,7 +8021,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "frame-system", @@ -9015,7 +8036,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9038,7 +8059,7 @@ dependencies = [ [[package]] name = "pallet-parameters" version = "0.11.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-benchmarking", @@ -9079,7 +8100,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9095,7 +8116,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -9105,7 +8126,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9123,7 +8144,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9137,7 +8158,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "assert_matches", "frame-benchmarking", @@ -9152,92 +8173,10 @@ dependencies = [ "sp-runtime", ] -[[package]] -name = "pallet-revive" -version = "0.5.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "alloy-core", - "derive_more 0.99.20", - "environmental", - "ethabi-decode", - "ethereum-types", - "frame-benchmarking", - "frame-support", - "frame-system", - "hex-literal", - "impl-trait-for-tuples", - "log", - "num-bigint", - "num-integer", - "num-traits", - "pallet-revive-fixtures", - "pallet-revive-proc-macro", - "pallet-revive-uapi", - "pallet-transaction-payment", - "parity-scale-codec", - "paste", - "polkavm 0.21.0", - "polkavm-common 0.21.0", - "rand 0.8.5", - "ripemd", - "rlp 0.6.1", - "scale-info", - "serde", - "sp-api", - "sp-arithmetic", - "sp-consensus-aura", - "sp-consensus-babe", - "sp-consensus-slots", - "sp-core", - "sp-io", - "sp-runtime", - "staging-xcm", - "staging-xcm-builder", - "substrate-bn", - "subxt-signer", -] - -[[package]] -name = "pallet-revive-fixtures" -version = "0.3.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "anyhow", - "cargo_metadata", - "pallet-revive-uapi", - "polkavm-linker 0.21.0", - "sp-core", - "sp-io", - "toml 0.8.20", -] - -[[package]] -name = "pallet-revive-proc-macro" -version = "0.3.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "pallet-revive-uapi" -version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bitflags 1.3.2", - "pallet-revive-proc-macro", - "parity-scale-codec", - "polkavm-derive 0.21.0", - "scale-info", -] - [[package]] name = "pallet-root-testing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "frame-system", @@ -9251,7 +8190,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-benchmarking", @@ -9320,8 +8259,8 @@ dependencies = [ [[package]] name = "pallet-session" -version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +version = "40.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "frame-system", @@ -9342,7 +8281,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9358,7 +8297,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9375,7 +8314,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9397,7 +8336,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "22.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "log", "sp-arithmetic", @@ -9406,7 +8345,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "sp-api", @@ -9416,7 +8355,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "44.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9482,7 +8421,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-benchmarking", @@ -9518,7 +8457,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-benchmarking", @@ -9537,7 +8476,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9555,7 +8494,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9571,7 +8510,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -9587,7 +8526,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -9620,7 +8559,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-benchmarking", @@ -9636,24 +8575,10 @@ dependencies = [ "sp-runtime", ] -[[package]] -name = "pallet-uniques" -version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime", -] - [[package]] name = "pallet-utility" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9668,7 +8593,7 @@ dependencies = [ [[package]] name = "pallet-verify-signature" version = "0.3.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9684,7 +8609,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9698,7 +8623,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -9708,7 +8633,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "19.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -9731,7 +8656,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9745,51 +8670,10 @@ dependencies = [ "staging-xcm-executor", ] -[[package]] -name = "pallet-xcm-bridge-hub" -version = "0.16.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-messages", - "bp-runtime", - "bp-xcm-bridge-hub", - "frame-support", - "frame-system", - "log", - "pallet-bridge-messages", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", -] - -[[package]] -name = "pallet-xcm-bridge-hub-router" -version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-xcm-bridge-hub-router", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-builder", -] - [[package]] name = "parachains-common" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -9815,37 +8699,6 @@ dependencies = [ "staging-xcm-executor", ] -[[package]] -name = "parachains-runtimes-test-utils" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "cumulus-pallet-parachain-system", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-test-relay-sproof-builder", - "frame-support", - "frame-system", - "pallet-balances", - "pallet-collator-selection", - "pallet-session", - "pallet-timestamp", - "pallet-xcm", - "parachains-common", - "parity-scale-codec", - "polkadot-parachain-primitives", - "sp-consensus-aura", - "sp-core", - "sp-io", - "sp-runtime", - "sp-tracing", - "staging-parachain-info", - "staging-xcm", - "staging-xcm-executor", - "xcm-runtime-apis", -] - [[package]] name = "parity-bip39" version = "2.0.1" @@ -9859,12 +8712,6 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "parity-bytes" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67" - [[package]] name = "parity-db" version = "0.4.13" @@ -9912,7 +8759,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -9970,7 +8817,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.11", + "redox_syscall 0.5.12", "smallvec", "windows-targets 0.52.6", ] @@ -10062,7 +8909,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -10073,7 +8920,7 @@ checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" dependencies = [ "once_cell", "pest", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -10126,7 +8973,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -10155,7 +9002,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -10200,7 +9047,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "polkadot-approval-distribution" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "futures-timer", @@ -10218,7 +9065,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "futures-timer", @@ -10233,7 +9080,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "fatality", "futures", @@ -10256,7 +9103,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "fatality", @@ -10289,7 +9136,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "clap", "frame-benchmarking-cli", @@ -10313,7 +9160,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bitvec", "fatality", @@ -10336,7 +9183,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "scale-info", @@ -10346,8 +9193,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +version = "22.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "fatality", "futures", @@ -10369,7 +9216,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -10383,7 +9230,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "futures-timer", @@ -10404,7 +9251,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "always-assert", "async-trait", @@ -10427,7 +9274,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "parity-scale-codec", @@ -10445,7 +9292,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "bitvec", @@ -10477,7 +9324,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting-parallel" version = "0.5.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "futures", @@ -10501,7 +9348,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bitvec", "futures", @@ -10520,7 +9367,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bitvec", "fatality", @@ -10541,7 +9388,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "polkadot-node-subsystem", @@ -10556,7 +9403,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "futures", @@ -10578,7 +9425,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "polkadot-node-metrics", @@ -10592,7 +9439,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "futures-timer", @@ -10607,8 +9454,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +version = "22.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "fatality", "futures", @@ -10626,7 +9473,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "futures", @@ -10643,7 +9490,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "fatality", "futures", @@ -10657,7 +9504,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bitvec", "fatality", @@ -10674,7 +9521,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "always-assert", "array-bytes", @@ -10702,7 +9549,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "polkadot-node-subsystem", @@ -10715,7 +9562,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cpu-time", "futures", @@ -10741,7 +9588,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "polkadot-node-metrics", @@ -10756,7 +9603,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bs58", "futures", @@ -10773,7 +9620,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -10798,7 +9645,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bitvec", "bounded-vec", @@ -10822,7 +9669,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "polkadot-node-subsystem-types", "polkadot-overseer", @@ -10831,7 +9678,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "derive_more 0.99.20", @@ -10859,7 +9706,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "fatality", "futures", @@ -10890,7 +9737,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "futures", @@ -10910,7 +9757,7 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "16.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bounded-collections", "derive_more 0.99.20", @@ -10926,7 +9773,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "18.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bitvec", "hex-literal", @@ -10954,7 +9801,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -10987,7 +9834,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "19.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bitvec", "frame-benchmarking", @@ -11037,7 +9884,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bs58", "frame-benchmarking", @@ -11049,7 +9896,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "19.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -11105,7 +9952,7 @@ dependencies = [ [[package]] name = "polkadot-sdk-frame" version = "0.9.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-benchmarking", @@ -11140,7 +9987,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "frame-benchmarking", @@ -11247,8 +10094,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +version = "22.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -11271,7 +10118,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -11286,22 +10133,9 @@ checksum = "dd044ab1d3b11567ab6b98ca71259a992b4034220d5972988a0e96518e5d343d" dependencies = [ "libc", "log", - "polkavm-assembler 0.18.0", - "polkavm-common 0.18.0", - "polkavm-linux-raw 0.18.0", -] - -[[package]] -name = "polkavm" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd34e2f74206fff33482ae1718e275f11365ef8c4de7f0e69217f8845303867" -dependencies = [ - "libc", - "log", - "polkavm-assembler 0.21.0", - "polkavm-common 0.21.0", - "polkavm-linux-raw 0.21.0", + "polkavm-assembler", + "polkavm-common", + "polkavm-linux-raw", ] [[package]] @@ -11313,15 +10147,6 @@ dependencies = [ "log", ] -[[package]] -name = "polkavm-assembler" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f512bc80cb10439391a7c13a9eb2d37cf66b7305e7df0a06d662eff4f5b07625" -dependencies = [ - "log", -] - [[package]] name = "polkavm-common" version = "0.18.0" @@ -11329,18 +10154,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31ff33982a807d8567645d4784b9b5d7ab87bcb494f534a57cadd9012688e102" dependencies = [ "log", - "polkavm-assembler 0.18.0", -] - -[[package]] -name = "polkavm-common" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c16b809cfd398f861261c045a8745e6c78b71ea7e0d3ef6f7cc553eb27bc17e" -dependencies = [ - "blake3", - "log", - "polkavm-assembler 0.21.0", + "polkavm-assembler", ] [[package]] @@ -11349,16 +10163,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2eb703f3b6404c13228402e98a5eae063fd16b8f58afe334073ec105ee4117e" dependencies = [ - "polkavm-derive-impl-macro 0.18.0", -] - -[[package]] -name = "polkavm-derive" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47239245f87329541932c0d7fec750a66a75b13aa87dfe4fbfd637bab86ad387" -dependencies = [ - "polkavm-derive-impl-macro 0.21.0", + "polkavm-derive-impl-macro", ] [[package]] @@ -11367,22 +10172,10 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f2116a92e6e96220a398930f4c8a6cda1264206f3e2034fc9982bfd93f261f7" dependencies = [ - "polkavm-common 0.18.0", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "polkavm-derive-impl" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24fd6c6215450c3e57511df5c38a82eb4bde208de15ee15046ac33852f3c3eaa" -dependencies = [ - "polkavm-common 0.21.0", + "polkavm-common", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -11391,18 +10184,8 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c16669ddc7433e34c1007d31080b80901e3e8e523cb9d4b441c3910cf9294b" dependencies = [ - "polkavm-derive-impl 0.18.1", - "syn 2.0.100", -] - -[[package]] -name = "polkavm-derive-impl-macro" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36837f6b7edfd6f4498f8d25d81da16cf03bd6992c3e56f3d477dfc90f4fefca" -dependencies = [ - "polkavm-derive-impl 0.21.0", - "syn 2.0.100", + "polkavm-derive-impl", + "syn 2.0.101", ] [[package]] @@ -11416,23 +10199,7 @@ dependencies = [ "hashbrown 0.14.5", "log", "object 0.36.7", - "polkavm-common 0.18.0", - "regalloc2 0.9.3", - "rustc-demangle", -] - -[[package]] -name = "polkavm-linker" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23bc764986c4a63f9ab9890c3f4eb9b4c13b6ff80d79685bd48ade147234aab4" -dependencies = [ - "dirs", - "gimli 0.31.1", - "hashbrown 0.14.5", - "log", - "object 0.36.7", - "polkavm-common 0.21.0", + "polkavm-common", "regalloc2 0.9.3", "rustc-demangle", ] @@ -11443,12 +10210,6 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23eff02c070c70f31878a3d915e88a914ecf3e153741e2fb572dde28cce20fde" -[[package]] -name = "polkavm-linux-raw" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be6cd1d48c5e7814d287a3e12a339386a5dfa2f3ac72f932335f4cf56467f1b3" - [[package]] name = "polling" version = "2.8.0" @@ -11518,6 +10279,15 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -11530,7 +10300,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.24", + "zerocopy", ] [[package]] @@ -11576,27 +10346,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" dependencies = [ "proc-macro2", - "syn 2.0.100", -] - -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", + "syn 2.0.101", ] [[package]] -name = "primitive-types" -version = "0.12.2" +name = "primeorder" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" dependencies = [ - "fixed-hash", - "impl-codec 0.6.0", - "uint 0.9.5", + "elliptic-curve", ] [[package]] @@ -11606,9 +10365,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" dependencies = [ "fixed-hash", - "impl-codec 0.7.1", + "impl-codec", "impl-num-traits", - "impl-rlp", "impl-serde 0.5.0", "scale-info", "uint 0.10.0", @@ -11692,7 +10450,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -11703,7 +10461,7 @@ checksum = "75eea531cfcd120e0851a3f8aed42c4841f78c889eefafd96339c72677ae42c3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -11749,7 +10507,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -11758,17 +10516,13 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.9.0", + "bitflags 2.9.1", "lazy_static", "num-traits", "rand 0.8.5", "rand_chacha 0.3.1", "rand_xorshift", "regex-syntax 0.8.5", - "rusty-fork", - "tempfile", "unarray", ] @@ -11808,7 +10562,7 @@ dependencies = [ "prost 0.13.5", "prost-types", "regex", - "syn 2.0.100", + "syn 2.0.101", "tempfile", ] @@ -11822,7 +10576,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -11835,7 +10589,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -11849,9 +10603,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58e5423e24c18cc840e1c98370b3993c6649cd1678b4d24318bcf0a083cbe88" +checksum = "6e944464ec8536cd1beb0bbfd96987eb5e3b72f2ecdafdc5c769a37f1fa2ae1f" dependencies = [ "cc", ] @@ -11877,12 +10631,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - [[package]] name = "quick-protobuf" version = "0.8.1" @@ -11907,9 +10655,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.7" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" +checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" dependencies = [ "bytes", "cfg_aliases 0.2.1", @@ -11928,12 +10676,13 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.11" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b" +checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" dependencies = [ "bytes", - "getrandom 0.3.2", + "getrandom 0.3.3", + "lru-slab", "rand 0.9.1", "ring 0.17.14", "rustc-hash 2.1.1", @@ -11948,9 +10697,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5" +checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" dependencies = [ "cfg_aliases 0.2.1", "libc", @@ -11990,7 +10739,6 @@ dependencies = [ "libc", "rand_chacha 0.3.1", "rand_core 0.6.4", - "serde", ] [[package]] @@ -12038,7 +10786,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", ] [[package]] @@ -12075,7 +10823,7 @@ version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -12127,11 +10875,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" +checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -12174,7 +10922,7 @@ checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -12254,12 +11002,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "resolv-conf" -version = "0.7.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48375394603e3dd4b2d64371f7148fd8c7baa2680e28741f2cb8d23b59e3d4c4" -dependencies = [ - "hostname", -] +checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "rfc6979" @@ -12315,26 +11060,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "rlp" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" -dependencies = [ - "bytes", - "rustc-hex", -] - [[package]] name = "rocksdb" version = "0.21.0" @@ -12348,7 +11073,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "22.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "binary-merkle-tree", "bitvec", @@ -12446,7 +11171,7 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "polkadot-primitives", @@ -12504,39 +11229,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "ruint" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78a46eb779843b2c4f21fac5773e25d6d5b7c8f0922876c91541790d2ca27eef" -dependencies = [ - "alloy-rlp", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "bytes", - "fastrlp 0.3.1", - "fastrlp 0.4.0", - "num-bigint", - "num-integer", - "num-traits", - "parity-scale-codec", - "primitive-types 0.12.2", - "proptest", - "rand 0.8.5", - "rand 0.9.1", - "rlp 0.5.2", - "ruint-macro", - "serde", - "valuable", - "zeroize", -] - -[[package]] -name = "ruint-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" - [[package]] name = "rustc-demangle" version = "0.1.24" @@ -12561,15 +11253,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - [[package]] name = "rustc_version" version = "0.4.1" @@ -12622,7 +11305,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.4.15", @@ -12631,11 +11314,11 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.5" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.9.4", @@ -12644,15 +11327,15 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.26" +version = "0.23.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" +checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" dependencies = [ "log", "once_cell", "ring 0.17.14", "rustls-pki-types", - "rustls-webpki 0.103.1", + "rustls-webpki 0.103.3", "subtle 2.6.1", "zeroize", ] @@ -12671,18 +11354,19 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" dependencies = [ "web-time", + "zeroize", ] [[package]] name = "rustls-platform-verifier" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5467026f437b4cb2a533865eaa73eb840019a0916f4b9ec563c6e617e086c9" +checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" dependencies = [ "core-foundation 0.10.0", "core-foundation-sys", @@ -12692,10 +11376,10 @@ dependencies = [ "rustls", "rustls-native-certs", "rustls-platform-verifier-android", - "rustls-webpki 0.103.1", + "rustls-webpki 0.103.3", "security-framework", "security-framework-sys", - "webpki-root-certs", + "webpki-root-certs 0.26.11", "windows-sys 0.59.0", ] @@ -12717,9 +11401,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.1" +version = "0.103.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" +checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" dependencies = [ "ring 0.17.14", "rustls-pki-types", @@ -12732,18 +11416,6 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - [[package]] name = "ruzstd" version = "0.4.0" @@ -12812,7 +11484,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "log", "sp-core", @@ -12823,7 +11495,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "futures", @@ -12851,7 +11523,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "log", @@ -12872,7 +11544,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "sp-api", @@ -12887,7 +11559,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "docify", @@ -12913,18 +11585,18 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "sc-cli" version = "0.51.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "chrono", @@ -12966,7 +11638,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "fnv", "futures", @@ -12992,7 +11664,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.46.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "hash-db", "kvdb", @@ -13018,7 +11690,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "futures", @@ -13041,7 +11713,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "futures", @@ -13070,7 +11742,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "fork-tree", @@ -13106,7 +11778,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "jsonrpsee", @@ -13128,7 +11800,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -13162,7 +11834,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "jsonrpsee", @@ -13182,7 +11854,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "fork-tree", "parity-scale-codec", @@ -13195,7 +11867,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "ahash", "array-bytes", @@ -13239,7 +11911,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "finality-grandpa", "futures", @@ -13259,7 +11931,7 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "assert_matches", "async-trait", @@ -13294,7 +11966,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "futures", @@ -13317,7 +11989,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.42.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -13340,9 +12012,9 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ - "polkavm 0.18.0", + "polkavm", "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface", @@ -13353,10 +12025,10 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "log", - "polkavm 0.18.0", + "polkavm", "sc-executor-common", "sp-wasm-interface", ] @@ -13364,7 +12036,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "anyhow", "log", @@ -13380,7 +12052,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "console", "futures", @@ -13396,7 +12068,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "parking_lot 0.12.3", @@ -13410,7 +12082,7 @@ dependencies = [ [[package]] name = "sc-mixnet" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "arrayvec 0.7.6", @@ -13438,7 +12110,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.49.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -13488,7 +12160,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -13498,7 +12170,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "ahash", "futures", @@ -13517,7 +12189,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -13538,7 +12210,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -13573,7 +12245,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "futures", @@ -13592,7 +12264,7 @@ dependencies = [ [[package]] name = "sc-network-types" version = "0.15.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bs58", "bytes", @@ -13611,7 +12283,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bytes", "fnv", @@ -13645,7 +12317,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -13654,7 +12326,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "jsonrpsee", @@ -13686,7 +12358,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -13706,7 +12378,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "dyn-clone", "forwarded-header-value", @@ -13730,7 +12402,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.49.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "futures", @@ -13762,7 +12434,7 @@ dependencies = [ [[package]] name = "sc-runtime-utilities" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "sc-executor", @@ -13777,7 +12449,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "directories", @@ -13841,7 +12513,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "log", "parity-scale-codec", @@ -13852,7 +12524,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.24.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "clap", "fs4", @@ -13865,7 +12537,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -13884,7 +12556,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "derive_more 0.99.20", "futures", @@ -13904,7 +12576,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "28.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "chrono", "futures", @@ -13923,7 +12595,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "chrono", "console", @@ -13951,18 +12623,18 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "sc-transaction-pool" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "futures", @@ -13994,7 +12666,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "futures", @@ -14011,7 +12683,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "18.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-channel 1.9.0", "futures", @@ -14055,7 +12727,7 @@ checksum = "f8ae9cc099ae85ff28820210732b00f019546f36f33225f509fe25d5816864a0" dependencies = [ "derive_more 1.0.0", "parity-scale-codec", - "primitive-types 0.13.1", + "primitive-types", "scale-bits", "scale-decode-derive", "scale-type-resolver", @@ -14071,7 +12743,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -14082,7 +12754,7 @@ checksum = "5f9271284d05d0749c40771c46180ce89905fd95aa72a2a2fddb4b7c0aa424db" dependencies = [ "derive_more 1.0.0", "parity-scale-codec", - "primitive-types 0.13.1", + "primitive-types", "scale-bits", "scale-encode-derive", "scale-type-resolver", @@ -14099,7 +12771,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -14125,7 +12797,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -14147,7 +12819,7 @@ dependencies = [ "proc-macro2", "quote", "scale-info", - "syn 2.0.100", + "syn 2.0.101", "thiserror 1.0.69", ] @@ -14221,7 +12893,7 @@ dependencies = [ "merlin", "rand_core 0.6.4", "serde_bytes", - "sha2 0.10.8", + "sha2 0.10.9", "subtle 2.6.1", "zeroize", ] @@ -14247,7 +12919,7 @@ dependencies = [ "password-hash", "pbkdf2", "salsa20", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -14354,7 +13026,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -14377,16 +13049,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537" dependencies = [ - "semver-parser 0.7.0", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser 0.10.3", + "semver-parser", ] [[package]] @@ -14404,15 +13067,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -[[package]] -name = "semver-parser" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" -dependencies = [ - "pest", -] - [[package]] name = "serde" version = "1.0.219" @@ -14422,15 +13076,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_bytes" version = "0.11.17" @@ -14448,7 +13093,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -14502,7 +13147,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -14544,9 +13189,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -14563,16 +13208,6 @@ dependencies = [ "keccak", ] -[[package]] -name = "sha3-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" -dependencies = [ - "cc", - "cfg-if", -] - [[package]] name = "sharded-slab" version = "0.1.7" @@ -14626,7 +13261,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dee851d0e5e7af3721faea1843e8015e820a234f81fda3dea9247e15bac9a86a" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -14665,7 +13300,7 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "enumn", "parity-scale-codec", @@ -14764,7 +13399,7 @@ dependencies = [ "schnorrkel 0.10.2", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "siphasher 0.3.11", "slab", @@ -14818,7 +13453,7 @@ dependencies = [ "schnorrkel 0.11.4", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "siphasher 1.0.1", "slab", @@ -14899,226 +13534,30 @@ dependencies = [ "slab", "smol 2.0.2", "smoldot 0.18.0", - "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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" -dependencies = [ - "aes-gcm", - "blake2 0.10.6", - "chacha20poly1305", - "curve25519-dalek", - "rand_core 0.6.4", - "ring 0.17.14", - "rustc_version 0.4.1", - "sha2 0.10.8", - "subtle 2.6.1", -] - -[[package]] -name = "snowbridge-amcl" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5" -dependencies = [ - "parity-scale-codec", - "scale-info", -] - -[[package]] -name = "snowbridge-beacon-primitives" -version = "0.13.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "byte-slice-cast", - "frame-support", - "hex", - "parity-scale-codec", - "rlp 0.6.1", - "scale-info", - "serde", - "snowbridge-ethereum", - "snowbridge-milagro-bls", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "ssz_rs", - "ssz_rs_derive", -] - -[[package]] -name = "snowbridge-core" -version = "0.13.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "bp-relayers", - "ethabi-decode", - "frame-support", - "frame-system", - "hex-literal", - "log", - "parity-scale-codec", - "polkadot-parachain-primitives", - "scale-info", - "serde", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", -] - -[[package]] -name = "snowbridge-ethereum" -version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "ethabi-decode", - "ethbloom", - "ethereum-types", - "hex-literal", - "parity-bytes", - "parity-scale-codec", - "rlp 0.6.1", - "scale-info", - "serde", - "serde-big-array", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "snowbridge-inbound-queue-primitives" -version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "alloy-core", - "frame-support", - "frame-system", - "hex-literal", - "log", - "parity-scale-codec", - "scale-info", - "snowbridge-beacon-primitives", - "snowbridge-core", - "snowbridge-verification-primitives", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", -] - -[[package]] -name = "snowbridge-milagro-bls" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "026aa8638f690a53e3f7676024b9e913b1cab0111d1b7b92669d40a188f9d7e6" -dependencies = [ - "hex", - "lazy_static", - "parity-scale-codec", - "rand 0.8.5", - "scale-info", - "snowbridge-amcl", - "zeroize", -] - -[[package]] -name = "snowbridge-outbound-queue-primitives" -version = "0.2.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "alloy-core", - "ethabi-decode", - "frame-support", - "frame-system", - "hex-literal", - "log", - "parity-scale-codec", - "polkadot-parachain-primitives", - "scale-info", - "snowbridge-core", - "snowbridge-verification-primitives", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", -] - -[[package]] -name = "snowbridge-pallet-system-frontend" -version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-xcm", - "parity-scale-codec", - "scale-info", - "snowbridge-core", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-executor", - "tracing", + "zeroize", ] [[package]] -name = "snowbridge-runtime-common" -version = "0.13.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "frame-support", - "frame-system", - "log", - "pallet-xcm", - "parity-scale-codec", - "snowbridge-core", - "snowbridge-outbound-queue-primitives", - "sp-arithmetic", - "sp-std", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", -] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] -name = "snowbridge-verification-primitives" -version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +name = "snow" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" dependencies = [ - "frame-support", - "parity-scale-codec", - "scale-info", - "snowbridge-beacon-primitives", - "sp-core", - "sp-std", + "aes-gcm", + "blake2 0.10.6", + "chacha20poly1305", + "curve25519-dalek", + "rand_core 0.6.4", + "ring 0.17.14", + "rustc_version", + "sha2 0.10.9", + "subtle 2.6.1", ] [[package]] @@ -15175,7 +13614,7 @@ dependencies = [ [[package]] name = "sp-api" version = "36.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "hash-db", @@ -15197,7 +13636,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "Inflector", "blake2 0.10.6", @@ -15205,13 +13644,13 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "sp-application-crypto" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "scale-info", @@ -15223,7 +13662,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "26.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "integer-sqrt", @@ -15237,7 +13676,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "scale-info", @@ -15249,7 +13688,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "sp-api", "sp-inherents", @@ -15259,7 +13698,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "futures", "parity-scale-codec", @@ -15278,7 +13717,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.42.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "futures", @@ -15292,7 +13731,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.42.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "parity-scale-codec", @@ -15308,7 +13747,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.42.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "parity-scale-codec", @@ -15326,7 +13765,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "24.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "scale-info", @@ -15346,7 +13785,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "23.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "finality-grandpa", "log", @@ -15363,7 +13802,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.42.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "scale-info", @@ -15374,7 +13813,7 @@ dependencies = [ [[package]] name = "sp-core" version = "36.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "ark-vrf", "array-bytes", @@ -15397,7 +13836,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "paste", - "primitive-types 0.13.1", + "primitive-types", "rand 0.8.5", "scale-info", "schnorrkel 0.11.4", @@ -15427,7 +13866,7 @@ dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "twox-hash", ] @@ -15435,12 +13874,12 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "twox-hash", ] @@ -15448,17 +13887,17 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "quote", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2503)", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -15467,17 +13906,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "sp-externalities" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "environmental", "parity-scale-codec", @@ -15487,7 +13926,7 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "scale-info", @@ -15499,7 +13938,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -15512,7 +13951,7 @@ dependencies = [ [[package]] name = "sp-io" version = "40.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bytes", "docify", @@ -15520,7 +13959,7 @@ dependencies = [ "libsecp256k1", "log", "parity-scale-codec", - "polkavm-derive 0.18.0", + "polkavm-derive", "rustversion", "secp256k1 0.28.2", "sp-core", @@ -15538,7 +13977,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "sp-core", "sp-runtime", @@ -15548,7 +13987,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.42.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -15559,7 +13998,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "thiserror 1.0.69", "zstd 0.12.4", @@ -15568,7 +14007,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-metadata 20.0.0", "parity-scale-codec", @@ -15578,7 +14017,7 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.14.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "scale-info", @@ -15589,7 +14028,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "36.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "log", "parity-scale-codec", @@ -15606,7 +14045,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "36.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "scale-info", @@ -15619,7 +14058,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "sp-api", "sp-core", @@ -15629,7 +14068,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "backtrace", "regex", @@ -15638,7 +14077,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -15648,7 +14087,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "41.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "binary-merkle-tree", "docify", @@ -15677,13 +14116,13 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "29.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "polkavm-derive 0.18.0", - "primitive-types 0.13.1", + "polkavm-derive", + "primitive-types", "sp-externalities", "sp-runtime-interface-proc-macro", "sp-std", @@ -15696,20 +14135,20 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "Inflector", "expander", "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "sp-session" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "scale-info", @@ -15723,7 +14162,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -15736,7 +14175,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "hash-db", "log", @@ -15756,7 +14195,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "20.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "aes-gcm", "curve25519-dalek", @@ -15765,7 +14204,7 @@ dependencies = [ "parity-scale-codec", "rand 0.8.5", "scale-info", - "sha2 0.10.8", + "sha2 0.10.9", "sp-api", "sp-application-crypto", "sp-core", @@ -15780,12 +14219,12 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" [[package]] name = "sp-storage" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", @@ -15797,7 +14236,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "parity-scale-codec", @@ -15809,7 +14248,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "tracing", @@ -15820,7 +14259,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "sp-api", "sp-runtime", @@ -15829,7 +14268,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "36.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "async-trait", "parity-scale-codec", @@ -15843,7 +14282,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "ahash", "hash-db", @@ -15865,7 +14304,7 @@ dependencies = [ [[package]] name = "sp-version" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", @@ -15882,19 +14321,19 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "parity-scale-codec", "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "sp-wasm-interface" version = "21.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -15906,7 +14345,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "31.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -15963,29 +14402,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "ssz_rs" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057291e5631f280978fa9c8009390663ca4613359fc1318e36a8c24c392f6d1f" -dependencies = [ - "bitvec", - "num-bigint", - "sha2 0.9.9", - "ssz_rs_derive", -] - -[[package]] -name = "ssz_rs_derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -15995,7 +14411,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -16008,7 +14424,7 @@ dependencies = [ [[package]] name = "staging-xcm" version = "16.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "bounded-collections", @@ -16029,7 +14445,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "20.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "environmental", "frame-support", @@ -16052,8 +14468,8 @@ dependencies = [ [[package]] name = "staging-xcm-executor" -version = "19.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +version = "19.1.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "environmental", "frame-benchmarking", @@ -16158,43 +14574,30 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "substrate-bip39" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "hmac 0.12.1", "pbkdf2", "schnorrkel 0.11.4", - "sha2 0.10.8", + "sha2 0.10.9", "zeroize", ] -[[package]] -name = "substrate-bn" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" -dependencies = [ - "byteorder", - "crunchy", - "lazy_static", - "rand 0.8.5", - "rustc-hex", -] - [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" [[package]] name = "substrate-frame-rpc-system" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -16214,7 +14617,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.17.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "http-body-util", "hyper 1.6.0", @@ -16228,7 +14631,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -16245,7 +14648,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "26.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "array-bytes", "build-helper", @@ -16257,7 +14660,7 @@ dependencies = [ "merkleized-metadata", "parity-scale-codec", "parity-wasm", - "polkavm-linker 0.18.0", + "polkavm-linker", "sc-executor", "shlex", "sp-core", @@ -16267,7 +14670,7 @@ dependencies = [ "sp-version", "strum 0.26.3", "tempfile", - "toml 0.8.20", + "toml 0.8.22", "walkdir", "wasm-opt", ] @@ -16306,7 +14709,7 @@ dependencies = [ "jsonrpsee", "parity-scale-codec", "polkadot-sdk", - "primitive-types 0.13.1", + "primitive-types", "scale-bits", "scale-decode 0.14.0", "scale-encode", @@ -16339,7 +14742,7 @@ dependencies = [ "scale-info", "scale-typegen", "subxt-metadata", - "syn 2.0.100", + "syn 2.0.101", "thiserror 1.0.69", ] @@ -16360,7 +14763,7 @@ dependencies = [ "keccak-hash", "parity-scale-codec", "polkadot-sdk", - "primitive-types 0.13.1", + "primitive-types", "scale-bits", "scale-decode 0.14.0", "scale-encode", @@ -16402,7 +14805,7 @@ dependencies = [ "scale-typegen", "subxt-codegen", "subxt-utils-fetchmetadata", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -16443,7 +14846,7 @@ dependencies = [ "secrecy 0.10.3", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "subxt-core", "zeroize", ] @@ -16472,27 +14875,15 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.100" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "syn-solidity" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4560533fbd6914b94a8fb5cc803ed6801c3455668db3b810702c57612bac9412" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "synstructure" version = "0.12.6" @@ -16507,13 +14898,13 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -16522,7 +14913,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -16563,14 +14954,14 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.19.1" +version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ "fastrand 2.3.0", - "getrandom 0.3.2", + "getrandom 0.3.3", "once_cell", - "rustix 1.0.5", + "rustix 1.0.7", "windows-sys 0.59.0", ] @@ -16589,7 +14980,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ - "rustix 1.0.5", + "rustix 1.0.7", "windows-sys 0.59.0", ] @@ -16599,21 +14990,6 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" -[[package]] -name = "testnet-parachains-constants" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "polkadot-core-primitives", - "rococo-runtime-constants", - "smallvec", - "sp-runtime", - "staging-xcm", - "westend-runtime-constants", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -16649,7 +15025,7 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -16660,7 +15036,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -16671,7 +15047,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -16762,9 +15138,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -16787,9 +15163,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.2" +version = "1.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" +checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" dependencies = [ "backtrace", "bytes", @@ -16811,7 +15187,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -16877,9 +15253,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" dependencies = [ "serde", "serde_spanned", @@ -16889,26 +15265,33 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.22.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" dependencies = [ "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", + "toml_write", "winnow", ] +[[package]] +name = "toml_write" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" + [[package]] name = "tower" version = "0.4.13" @@ -16930,7 +15313,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "bytes", "http 1.3.1", "http-body 1.0.1", @@ -16972,7 +15355,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -16998,7 +15381,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "coarsetime", "polkadot-primitives", @@ -17009,13 +15392,13 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "expander", "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -17137,7 +15520,7 @@ checksum = "f9534daa9fd3ed0bd911d462a37f172228077e7abf18c18a5f67199d959205f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -17276,12 +15659,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -17344,7 +15721,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "rand_core 0.6.4", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "zeroize", ] @@ -17395,15 +15772,6 @@ dependencies = [ "w3f-plonk-common", ] -[[package]] -name = "wait-timeout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" -dependencies = [ - "libc", -] - [[package]] name = "waker-fn" version = "1.2.0" @@ -17475,7 +15843,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", "wasm-bindgen-shared", ] @@ -17510,7 +15878,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -17729,7 +16097,7 @@ dependencies = [ "log", "rustix 0.36.17", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "toml 0.5.11", "windows-sys 0.45.0", "zstd 0.11.2+zstd.1.5.2", @@ -17895,9 +16263,18 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "0.26.8" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" +dependencies = [ + "webpki-root-certs 1.0.0", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09aed61f5e8d2c18344b3faa33a4c837855fe56642757754775548fee21386c4" +checksum = "01a83f7e1a9f8712695c03eabe9ed3fbca0feff0152f33f12593e5a6303cb1a4" dependencies = [ "rustls-pki-types", ] @@ -17908,29 +16285,10 @@ version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" -[[package]] -name = "westend-emulated-chain" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "emulated-integration-tests-common", - "pallet-staking", - "parachains-common", - "polkadot-primitives", - "sc-consensus-grandpa", - "sp-authority-discovery", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-core", - "sp-runtime", - "westend-runtime", - "westend-runtime-constants", -] - [[package]] name = "westend-runtime" version = "22.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "binary-merkle-tree", "bitvec", @@ -18039,7 +16397,7 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "polkadot-primitives", @@ -18052,16 +16410,6 @@ dependencies = [ "staging-xcm-builder", ] -[[package]] -name = "westend-system-emulated-network" -version = "0.0.0" -dependencies = [ - "asset-hub-westend-emulated-chain", - "emulated-integration-tests-common", - "frequency-emulated-chain", - "westend-emulated-chain", -] - [[package]] name = "wide" version = "0.7.32" @@ -18131,14 +16479,14 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.61.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", "windows-link", - "windows-result 0.3.2", + "windows-result 0.3.4", "windows-strings", ] @@ -18150,7 +16498,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -18161,7 +16509,7 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -18181,18 +16529,18 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link", ] @@ -18272,13 +16620,29 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -18297,6 +16661,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -18315,6 +16685,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -18333,12 +16709,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -18357,6 +16745,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -18375,6 +16769,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -18393,6 +16793,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -18411,11 +16817,17 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" -version = "0.7.7" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb8234a863ea0e8cd7284fcdd4f145233eb00fee02bbdd9861aec44e6477bc5" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] @@ -18436,20 +16848,14 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "wyz" @@ -18506,54 +16912,21 @@ dependencies = [ "time", ] -[[package]] -name = "xcm-emulator" -version = "0.19.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" -dependencies = [ - "array-bytes", - "cumulus-pallet-parachain-system", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-test-relay-sproof-builder", - "frame-support", - "frame-system", - "impl-trait-for-tuples", - "log", - "pallet-balances", - "pallet-message-queue", - "pallet-timestamp", - "parachains-common", - "parity-scale-codec", - "paste", - "polkadot-parachain-primitives", - "polkadot-primitives", - "polkadot-runtime-parachains", - "sp-arithmetic", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2503)", - "sp-io", - "sp-runtime", - "sp-tracing", - "staging-xcm", - "staging-xcm-executor", -] - [[package]] name = "xcm-procedural" version = "11.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] name = "xcm-runtime-apis" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#0bc730c5f59b194ceb11cd993aaa577a811ba32f" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2503#a25aa7070f077ad08a4f1c9e4381434b58cb69d9" dependencies = [ "frame-support", "parity-scale-codec", @@ -18596,16 +16969,16 @@ dependencies = [ [[package]] name = "yamux" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17610762a1207ee816c6fadc29220904753648aba0a9ed61c7b8336e80a559c4" +checksum = "3da1acad1c2dc53f0dde419115a38bd8221d8c3e47ae9aeceaf453266d29307e" dependencies = [ "futures", "log", "nohash-hasher", "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand 0.9.1", "static_assertions", "web-time", ] @@ -18633,9 +17006,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", @@ -18645,54 +17018,34 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", - "synstructure 0.13.1", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive 0.7.35", + "syn 2.0.101", + "synstructure 0.13.2", ] [[package]] name = "zerocopy" -version = "0.8.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" -dependencies = [ - "zerocopy-derive 0.8.24", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", + "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.24" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] @@ -18712,8 +17065,8 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", - "synstructure 0.13.1", + "syn 2.0.101", + "synstructure 0.13.2", ] [[package]] @@ -18733,14 +17086,25 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", ] [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" dependencies = [ "yoke", "zerofrom", @@ -18749,13 +17113,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.101", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index ac892fd1e5..4e9ad3b074 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,9 +2,6 @@ members = [ "node", "node/cli", - "emulated-test/networks/westend", - "emulated-test/chains/frequency-westend", - "emulated-test/test/frequency-westend", "node/service", "pallets/*", "runtime/*", diff --git a/Makefile b/Makefile index 704666ce0f..5ce6907a57 100644 --- a/Makefile +++ b/Makefile @@ -286,6 +286,9 @@ check-bridging: check-bridging-westend: SKIP_WASM_BUILD= cargo check --features frequency-westend,frequency-bridging +check-bridging-local: + SKIP_WASM_BUILD= cargo check --features frequency-local,frequency-bridging + .PHONY: js js: From a59db09cee264c79b1f6a319185c247f100b8861 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Mon, 19 May 2025 17:58:49 -0600 Subject: [PATCH 21/31] feat: enhance fee estimation logic and improve test structure --- runtime/frequency/src/lib.rs | 34 +++++++++++++++++-- runtime/frequency/src/tests/fee_estimation.rs | 6 ++-- runtime/frequency/src/tests/mod.rs | 30 +--------------- 3 files changed, 36 insertions(+), 34 deletions(-) diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index d74a415ac3..641d2dda4f 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -1972,9 +1972,17 @@ sp_api::impl_runtime_apis! { match asset.try_as::() { Ok(asset_id) if asset_id.0 == xcm_config::NativeToken::get().0 => { - // for native token + // FRQCY/XRQCY, native token Ok(common_runtime::fee::WeightToFee::weight_to_fee(&weight)) }, + Ok(asset_id) if asset_id.0 == xcm_config::RelayLocation::get() => { + // DOT, WND, or KSM on the relay chain + // calculate fee in DOT using Polkadot relay fee schedule + let dot_fee = crate::polkadot_xcm_fee::default_fee_per_second() + .saturating_mul(weight.ref_time() as u128) + .saturating_div(WEIGHT_REF_TIME_PER_SECOND as u128); + Ok(dot_fee) + }, Ok(asset_id) => { log::trace!(target: "xcm::xcm_runtime_apis", "query_weight_to_asset_fee - unhandled asset_id: {asset_id:?}!"); Err(XcmPaymentApiError::AssetNotFound) @@ -2047,7 +2055,7 @@ sp_api::impl_runtime_apis! { } #[cfg(test)] -mod tests { +mod unit_tests { use super::*; use frame_support::traits::WhitelistedStorageKeys; use sp_core::hexdisplay::HexDisplay; @@ -2086,4 +2094,26 @@ mod tests { fn runtime_apis_are_populated() { assert!(RUNTIME_API_VERSIONS.len() > 0); } + + #[cfg(feature = "frequency-bridging")] + #[test] + fn test_default_fee_per_second() { + use super::polkadot_xcm_fee::{default_fee_per_second, base_relay_tx_fee}; + use super::{ExtrinsicBaseWeight, WEIGHT_REF_TIME_PER_SECOND}; + use sp_weights::Weight; + + let base_weight = ExtrinsicBaseWeight::get().ref_time() as u128; + let base_tx_per_second = (WEIGHT_REF_TIME_PER_SECOND as u128) / base_weight; + assert_eq!(default_fee_per_second(), base_tx_per_second * base_relay_tx_fee()); + + let weight = Weight::from_ref_time(WEIGHT_REF_TIME_PER_SECOND * 3); + let dot_fee = default_fee_per_second() + .saturating_mul(weight.ref_time() as u128) + .saturating_div(WEIGHT_REF_TIME_PER_SECOND as u128); + // For 3 seconds of weight, fee should be 3 * base fee per second + assert_eq!(dot_fee, default_fee_per_second() * 3); + } } +// filepath: runtime/frequency/src/lib.rs +#[cfg(test)] +mod tests; \ No newline at end of file diff --git a/runtime/frequency/src/tests/fee_estimation.rs b/runtime/frequency/src/tests/fee_estimation.rs index 5463463f41..ce8ced8508 100644 --- a/runtime/frequency/src/tests/fee_estimation.rs +++ b/runtime/frequency/src/tests/fee_estimation.rs @@ -43,7 +43,7 @@ use super::mock::{ // Parachain(2000) -------------------------------------------> Parachain(1000) #[test] fn fee_estimation_for_teleport() { - sp_tracing::init_for_tests(); + // sp_tracing::init_for_tests(); let who = 1; // AccountId = u64. let balances = vec![(who, 100 + DeliveryFees::get() + ExistentialDeposit::get())]; let assets = vec![(1, who, 50)]; @@ -202,7 +202,7 @@ fn dry_run_reserve_asset_transfer_common( expected_result_xcms_version: XcmVersion, dry_run_call: impl FnOnce(&TestClient, OriginCaller, RuntimeCall) -> CallDryRunEffects, ) { - sp_tracing::init_for_tests(); + // sp_tracing::init_for_tests(); let who = 1; // AccountId = u64. // Native token used for fees. let balances = vec![(who, DeliveryFees::get() + ExistentialDeposit::get())]; @@ -337,7 +337,7 @@ fn dry_run_before_api_v2_reserve_asset_transfer() { } fn dry_run_xcm_common(xcm_version: XcmVersion) { - sp_tracing::init_for_tests(); + // sp_tracing::init_for_tests(); let who = 1; // AccountId = u64. let transfer_amount = 100u128; // We need to build the XCM to weigh it and then build the real XCM that can pay for fees. diff --git a/runtime/frequency/src/tests/mod.rs b/runtime/frequency/src/tests/mod.rs index 50721265bf..49378ed70c 100644 --- a/runtime/frequency/src/tests/mod.rs +++ b/runtime/frequency/src/tests/mod.rs @@ -1,30 +1,2 @@ -// mod teleport; - -mod reserve_transfer_dot_from_asset_hub_to_frequency; -mod reserve_transfer_dot_from_frequency_to_asset_hub; -mod reserve_transfer_dot_from_relay_to_frequency; -mod reserve_transfer_dot_from_frequency_to_relay; - -// mod hybrid_transfer_native_from_frequency_to_asset_hub; - mod fee_estimation; -mod mock; - -#[macro_export] -macro_rules! foreign_balance_on { - ( $chain:ident, $id:expr, $who:expr ) => { - emulated_integration_tests_common::impls::paste::paste! { - <$chain>::execute_with(|| { - type ForeignAssets = <$chain as [<$chain Pallet>]>::ForeignAssets; - >::balance($id, $who) - }) - } - }; -} - -// fn foreign_balance_on_frequency_westend(id: v5::Location, who: &AccountId) -> u128 { -// FrequencyWestend::execute_with(|| { -// type ForeignAssets = ::ForeignAssets; -// >::balance($id, $who) -// }) -// } +mod mock; \ No newline at end of file From 42125d364f23b5a47ce08efed61f7fdeb8f11fb6 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Wed, 21 May 2025 10:17:06 -0600 Subject: [PATCH 22/31] refactor: add bridging test in Makefile feat: add check whitelist test and enhance fee estimation tests fix: update FeeAssetId to use crate::xcm_config in xcm_queue --- Cargo.toml | 18 ----- Makefile | 3 + runtime/frequency/src/lib.rs | 72 +------------------ .../frequency/src/tests/check_whitelist.rs | 33 +++++++++ runtime/frequency/src/tests/fee_estimation.rs | 27 +++++++ runtime/frequency/src/tests/mock.rs | 2 +- runtime/frequency/src/tests/mod.rs | 3 +- runtime/frequency/src/xcm_queue.rs | 2 +- 8 files changed, 69 insertions(+), 91 deletions(-) create mode 100644 runtime/frequency/src/tests/check_whitelist.rs diff --git a/Cargo.toml b/Cargo.toml index 4e9ad3b074..a2a80f96ae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -125,24 +125,6 @@ xcm-runtime-apis = { git = "https://github.com/paritytech/polkadot-sdk", branch cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } - -# xcm-test emulator -xcm-emulator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } -westend-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } -westend-runtime-constants = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } -sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } -sp-consensus-beefy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } -sp-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } -sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } -sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } -tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } -tracing-subscriber = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503", default-features = false } - -emulated-integration-tests-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } -asset-hub-westend-emulated-chain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } -westend-emulated-chain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } -asset-test-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2503" } - # client derive_more = "0.99.17" futures = "0.3.25" diff --git a/Makefile b/Makefile index 5ce6907a57..ede4c66aaa 100644 --- a/Makefile +++ b/Makefile @@ -341,6 +341,9 @@ build-bridging-westend-local: test: cargo test --workspace --features runtime-benchmarks,frequency-lint-check +test-bridging: + cargo test --workspace --features runtime-benchmarks,frequency-lint-check,frequency-bridging + e2e-tests: ./scripts/run_e2e_tests.sh diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index 641d2dda4f..c4ba7b7f3d 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -563,11 +563,6 @@ parameter_types! { pub const ForeignAssetsMetadataDepositPerByte: Balance = MetadataDepositPerByte::get(); } -// Define a placeholder AccountId - replace with the actual desired creator account -parameter_types! { - pub const AssetCreatorAccount: AccountId = AccountId::new([0u8; 32]); // TODO: Replace with actual AccountId -} - // Configure FRAME pallets to include in runtime. impl frame_system::Config for Runtime { @@ -836,7 +831,7 @@ impl pallet_balances::Config for Runtime { // Needs parameter_types! for the Weight type parameter_types! { // The maximum weight that may be scheduled per block for any dispatchables of less priority than schedule::HARD_DEADLINE. - pub MaximumSchedulerWeight: Weight = Perbill::from_percent(10) * RuntimeBlockWeights::get().max_block; + pub MaximumSchedulerWeight: Weight = Perbill::from_percent(30) * RuntimeBlockWeights::get().max_block; pub MaxCollectivesProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; } @@ -1966,8 +1961,6 @@ sp_api::impl_runtime_apis! { // Frequency implementation of the query_weight_to_asset_fee function fn query_weight_to_asset_fee(weight: Weight, asset: VersionedAssetId) -> Result { - // TODO: based penpal from p.sdk - // Bring weight_to_fee into scope for the Trait WeightToFee use frame_support::weights::WeightToFee; match asset.try_as::() { @@ -2055,65 +2048,4 @@ sp_api::impl_runtime_apis! { } #[cfg(test)] -mod unit_tests { - use super::*; - use frame_support::traits::WhitelistedStorageKeys; - use sp_core::hexdisplay::HexDisplay; - use std::collections::HashSet; - - #[test] - fn check_whitelist() { - let whitelist: HashSet = dbg!(AllPalletsWithSystem::whitelisted_storage_keys() - .iter() - .map(|e| HexDisplay::from(&e.key).to_string()) - .collect()); - - // Block Number - assert!( - whitelist.contains("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac") - ); - // Total Issuance - assert!( - whitelist.contains("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80") - ); - // Execution Phase - assert!( - whitelist.contains("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a") - ); - // Event Count - assert!( - whitelist.contains("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850") - ); - // System Events - assert!( - whitelist.contains("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7") - ); - } - - #[test] - fn runtime_apis_are_populated() { - assert!(RUNTIME_API_VERSIONS.len() > 0); - } - - #[cfg(feature = "frequency-bridging")] - #[test] - fn test_default_fee_per_second() { - use super::polkadot_xcm_fee::{default_fee_per_second, base_relay_tx_fee}; - use super::{ExtrinsicBaseWeight, WEIGHT_REF_TIME_PER_SECOND}; - use sp_weights::Weight; - - let base_weight = ExtrinsicBaseWeight::get().ref_time() as u128; - let base_tx_per_second = (WEIGHT_REF_TIME_PER_SECOND as u128) / base_weight; - assert_eq!(default_fee_per_second(), base_tx_per_second * base_relay_tx_fee()); - - let weight = Weight::from_ref_time(WEIGHT_REF_TIME_PER_SECOND * 3); - let dot_fee = default_fee_per_second() - .saturating_mul(weight.ref_time() as u128) - .saturating_div(WEIGHT_REF_TIME_PER_SECOND as u128); - // For 3 seconds of weight, fee should be 3 * base fee per second - assert_eq!(dot_fee, default_fee_per_second() * 3); - } -} -// filepath: runtime/frequency/src/lib.rs -#[cfg(test)] -mod tests; \ No newline at end of file +mod tests; diff --git a/runtime/frequency/src/tests/check_whitelist.rs b/runtime/frequency/src/tests/check_whitelist.rs new file mode 100644 index 0000000000..9634bffd6f --- /dev/null +++ b/runtime/frequency/src/tests/check_whitelist.rs @@ -0,0 +1,33 @@ +use super::*; +use frame_support::{traits::WhitelistedStorageKeys }; +use sp_core::hexdisplay::HexDisplay; +use std::collections::HashSet; + +#[test] +fn check_whitelist() { + let whitelist: HashSet = dbg!(AllPalletsWithSystem::whitelisted_storage_keys() + .iter() + .map(|e| HexDisplay::from(&e.key).to_string()) + .collect()); + + // Block Number + assert!( + whitelist.contains("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac") + ); + // Total Issuance + assert!( + whitelist.contains("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80") + ); + // Execution Phase + assert!( + whitelist.contains("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a") + ); + // Event Count + assert!( + whitelist.contains("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850") + ); + // System Events + assert!( + whitelist.contains("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7") + ); +} \ No newline at end of file diff --git a/runtime/frequency/src/tests/fee_estimation.rs b/runtime/frequency/src/tests/fee_estimation.rs index ce8ced8508..b50502ba34 100644 --- a/runtime/frequency/src/tests/fee_estimation.rs +++ b/runtime/frequency/src/tests/fee_estimation.rs @@ -463,3 +463,30 @@ fn calling_payment_api_with_a_lower_version_works() { .unwrap(); assert!(execution_fees.is_ok()); } + +#[test] +fn runtime_apis_are_populated() { + use crate::RUNTIME_API_VERSIONS; + assert!(RUNTIME_API_VERSIONS.len() > 0); +} + +// #[cfg(feature = "frequency-bridging")] +#[test] +fn test_default_fee_per_second() { + use crate::{ + polkadot_xcm_fee::{base_relay_tx_fee, default_fee_per_second}, + ExtrinsicBaseWeight, WEIGHT_REF_TIME_PER_SECOND, + }; + + let base_weight = ExtrinsicBaseWeight::get().ref_time() as u128; + let base_tx_per_second = (WEIGHT_REF_TIME_PER_SECOND as u128) / base_weight; + assert_eq!(default_fee_per_second(), base_tx_per_second * base_relay_tx_fee()); + + let weight = Weight::from_parts(3u64 * WEIGHT_REF_TIME_PER_SECOND, 0u64); + // let weight: u128 = Balance::from(ExtrinsicBaseWeight::get().ref_time() * 3); + let dot_fee = default_fee_per_second() + .saturating_mul(weight.ref_time() as u128) + .saturating_div(WEIGHT_REF_TIME_PER_SECOND as u128); + // For 3 seconds of weight, fee should be 3 * base fee per second + assert_eq!(dot_fee, default_fee_per_second() * 3); +} diff --git a/runtime/frequency/src/tests/mock.rs b/runtime/frequency/src/tests/mock.rs index cf4ff1dd81..317e40944b 100644 --- a/runtime/frequency/src/tests/mock.rs +++ b/runtime/frequency/src/tests/mock.rs @@ -17,7 +17,6 @@ //! Mock runtime for tests. //! Implements both runtime APIs for fee estimation and getting the messages for transfers. -use parity_scale_codec::Encode; use core::{cell::RefCell, marker::PhantomData}; use frame_support::{ construct_runtime, derive_impl, parameter_types, sp_runtime, @@ -33,6 +32,7 @@ use frame_support::{ }; use frame_system::{EnsureRoot, RawOrigin as SystemRawOrigin}; use pallet_xcm::TestWeightInfo; +use parity_scale_codec::Encode; use staging_xcm::{prelude::*, Version as XcmVersion}; use staging_xcm_builder::{ AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, EnsureXcmOrigin, FixedRateOfFungible, diff --git a/runtime/frequency/src/tests/mod.rs b/runtime/frequency/src/tests/mod.rs index 49378ed70c..5488e4f774 100644 --- a/runtime/frequency/src/tests/mod.rs +++ b/runtime/frequency/src/tests/mod.rs @@ -1,2 +1,3 @@ +pub mod mock; + mod fee_estimation; -mod mock; \ No newline at end of file diff --git a/runtime/frequency/src/xcm_queue.rs b/runtime/frequency/src/xcm_queue.rs index 588e59bb60..805fc16db0 100644 --- a/runtime/frequency/src/xcm_queue.rs +++ b/runtime/frequency/src/xcm_queue.rs @@ -33,7 +33,7 @@ use xcm_executor; parameter_types! { /// The asset ID for the asset that we use to pay for message delivery fees. - pub FeeAssetId: AssetLocationId = AssetLocationId(xcm_config::RelayLocation::get()); + pub FeeAssetId: AssetLocationId = AssetLocationId(crate::xcm_config::RelayLocation::get()); /// The base fee for the message delivery fees (3 CENTS). pub const BaseDeliveryFee: u128 = (1_000_000_000_000u128 / 100).saturating_mul(3); } From 45161176cd6ee953643a8f45e37858f3fc4ac484 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Wed, 21 May 2025 10:22:11 -0600 Subject: [PATCH 23/31] fix: add specific feature branch to workflow trigger --- .github/workflows/verify-pr-commit.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/verify-pr-commit.yml b/.github/workflows/verify-pr-commit.yml index e910231f95..8559a73a94 100644 --- a/.github/workflows/verify-pr-commit.yml +++ b/.github/workflows/verify-pr-commit.yml @@ -8,6 +8,7 @@ on: branches: - main - "*-development" # Feature Branches should suffix with -development + - "feat/eth-bridging-development" # This feature branch isn't matching the above pattern?? env: BIN_DIR: target/release PR_LABEL_METADATA_CHANGED: metadata-changed From 4ca336c2e737ec45530d0b1a4a94aee68e2f10d2 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Wed, 21 May 2025 11:25:44 -0600 Subject: [PATCH 24/31] fix: unwind changes from experimental branch and minor formating --- runtime/frequency/src/lib.rs | 2 +- .../frequency/src/tests/check_whitelist.rs | 2 +- runtime/frequency/src/tests/fee_estimation.rs | 1 - runtime/frequency/src/xcm_commons.rs | 15 ++------ runtime/frequency/src/xcm_config.rs | 35 ++++++------------- runtime/frequency/src/xcm_queue.rs | 32 +++-------------- 6 files changed, 20 insertions(+), 67 deletions(-) diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index c4ba7b7f3d..da003d6745 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -1531,7 +1531,7 @@ construct_runtime!( XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 71, #[cfg(feature = "frequency-bridging")] - PolkadotXcm: pallet_xcm::{Pallet, Call, Storage, Event, Origin } = 72, + PolkadotXcm: pallet_xcm::{Pallet, Call, Storage, Event, Origin} = 72, #[cfg(feature = "frequency-bridging")] CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 73, diff --git a/runtime/frequency/src/tests/check_whitelist.rs b/runtime/frequency/src/tests/check_whitelist.rs index 9634bffd6f..a3f8f85844 100644 --- a/runtime/frequency/src/tests/check_whitelist.rs +++ b/runtime/frequency/src/tests/check_whitelist.rs @@ -30,4 +30,4 @@ fn check_whitelist() { assert!( whitelist.contains("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7") ); -} \ No newline at end of file +} diff --git a/runtime/frequency/src/tests/fee_estimation.rs b/runtime/frequency/src/tests/fee_estimation.rs index b50502ba34..de0ad1684f 100644 --- a/runtime/frequency/src/tests/fee_estimation.rs +++ b/runtime/frequency/src/tests/fee_estimation.rs @@ -470,7 +470,6 @@ fn runtime_apis_are_populated() { assert!(RUNTIME_API_VERSIONS.len() > 0); } -// #[cfg(feature = "frequency-bridging")] #[test] fn test_default_fee_per_second() { use crate::{ diff --git a/runtime/frequency/src/xcm_commons.rs b/runtime/frequency/src/xcm_commons.rs index 17a3415a17..6dfbd33539 100644 --- a/runtime/frequency/src/xcm_commons.rs +++ b/runtime/frequency/src/xcm_commons.rs @@ -5,19 +5,10 @@ use cumulus_primitives_core::AggregateMessageOrigin; use frame_support::parameter_types; use pallet_xcm::XcmPassthrough; use polkadot_parachain_primitives::primitives::Sibling; -pub use staging_xcm::latest::{ - prelude::{AssetId as AssetLocationId, *}, - WESTEND_GENESIS_HASH, -}; +use staging_xcm::latest::{prelude::*, WESTEND_GENESIS_HASH}; use staging_xcm_builder::{ - AccountId32Aliases, - ParentIsPreset, - RelayChainAsNative, - SiblingParachainAsNative, - SiblingParachainConvertsVia, - SignedAccountId32AsNative, - SovereignSignedViaLocation, - // ParentRelayOrSiblingParachains, + AccountId32Aliases, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SovereignSignedViaLocation, }; /// Shared Relay Network diff --git a/runtime/frequency/src/xcm_config.rs b/runtime/frequency/src/xcm_config.rs index 4d64051381..164be52a10 100644 --- a/runtime/frequency/src/xcm_config.rs +++ b/runtime/frequency/src/xcm_config.rs @@ -1,22 +1,17 @@ use crate::{ - polkadot_xcm_fee::default_fee_per_second, AccountId, AllPalletsWithSystem, Balances, - ForeignAssets, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, - RuntimeOrigin, XcmpQueue, + AccountId, AllPalletsWithSystem, Balances, ForeignAssets, ParachainInfo, ParachainSystem, + PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, XcmpQueue, }; use staging_xcm_builder::{ AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, DenyRecursively, - DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FixedRateOfFungible, - FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, IsConcrete, - IsParentsOnly, MatchedConvertedConcreteId, NativeAsset, NoChecking, SignedToAccountId32, - TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, + DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FixedWeightBounds, + FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, IsConcrete, IsParentsOnly, + MatchedConvertedConcreteId, NativeAsset, NoChecking, SignedToAccountId32, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, }; -pub use crate::xcm_commons::{ - LocationToAccountId, RelayNetwork, XcmOriginToTransactDispatchOrigin, -}; -use parachains_common::xcm_config::ConcreteAssetFromSystem; -// ParentRelayOrSiblingParachains +use crate::xcm_commons::{LocationToAccountId, RelayNetwork, XcmOriginToTransactDispatchOrigin}; use frame_support::{ pallet_prelude::Get, @@ -50,7 +45,6 @@ parameter_types! { } parameter_types! { - pub RelayPerSecondAndByte: (AssetId, u128,u128) = (Location::new(1,Here).into(), default_fee_per_second(), 1024); pub const RelayLocation: Location = Location::parent(); pub UniversalLocation: InteriorLocation = [GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())].into(); pub HereLocation: Location = Location::here(); @@ -124,8 +118,6 @@ pub type Barrier = TrailingSetTopicAsId< AllowTopLevelPaidExecutionFrom, AllowExplicitUnpaidExecutionFrom, // ^^^ Parent and its exec plurality get free execution - // Subscriptions for version tracking are OK. - // AllowSubscriptionsFrom, ), UniversalLocation, ConstU32<8>, @@ -151,18 +143,15 @@ impl xcm_executor::Config for XcmConfig { // How to withdraw and deposit an asset. type AssetTransactor = AssetTransactors; type OriginConverter = XcmOriginToTransactDispatchOrigin; - type IsReserve = - (NativeAsset, ConcreteAssetFromSystem, AssetFrom); + type IsReserve = (NativeAsset, AssetFrom); // in order to register our asset in asset hub // once the asset is registered we can teleport our native asset to asset hub type IsTeleporter = TrustedTeleporter; type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = FixedWeightBounds; - type Trader = ( - FixedRateOfFungible, - UsingComponents>, - ); + type Trader = + UsingComponents>; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; @@ -209,7 +198,6 @@ impl pallet_xcm::Config for Runtime { type XcmExecutor = XcmExecutor; // update to only allow to teleport native type XcmTeleportFilter = Everything; - // Lets only allow reserve transfers of DOT type XcmReserveTransferFilter = Everything; type Weigher = FixedWeightBounds; type UniversalLocation = UniversalLocation; @@ -222,12 +210,9 @@ impl pallet_xcm::Config for Runtime { type Currency = Balances; type CurrencyMatcher = (); type TrustedLockers = (); - // I do not thingk we need this type SovereignAccountOf = LocationToAccountId; - /// Not sure what this is for? type MaxLockers = ConstU32<8>; type WeightInfo = pallet_xcm::TestWeightInfo; - type AdminOrigin = EnsureRoot; type MaxRemoteLockConsumers = ConstU32<0>; type RemoteLockConsumerIdentifier = (); diff --git a/runtime/frequency/src/xcm_queue.rs b/runtime/frequency/src/xcm_queue.rs index 805fc16db0..5339786f3d 100644 --- a/runtime/frequency/src/xcm_queue.rs +++ b/runtime/frequency/src/xcm_queue.rs @@ -1,6 +1,5 @@ use crate::{ - AccountId, Balance, MessageQueue, ParachainSystem, Runtime, RuntimeBlockWeights, RuntimeEvent, - XcmpQueue, + AccountId, MessageQueue, ParachainSystem, Runtime, RuntimeBlockWeights, RuntimeEvent, XcmpQueue, }; #[cfg(not(feature = "runtime-benchmarks"))] @@ -12,7 +11,7 @@ use frame_support::{ weights::Weight, }; -use crate::xcm_commons::{AssetLocationId, XcmOriginToTransactDispatchOrigin}; +use crate::xcm_commons::XcmOriginToTransactDispatchOrigin; use frame_system::EnsureRoot; @@ -24,34 +23,13 @@ use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; #[cfg(not(feature = "runtime-benchmarks"))] use crate::xcm_config; -// use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; +use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; -pub use sp_runtime::{Perbill, Saturating}; +pub use sp_runtime::Perbill; #[cfg(not(feature = "runtime-benchmarks"))] use xcm_executor; -parameter_types! { - /// The asset ID for the asset that we use to pay for message delivery fees. - pub FeeAssetId: AssetLocationId = AssetLocationId(crate::xcm_config::RelayLocation::get()); - /// The base fee for the message delivery fees (3 CENTS). - pub const BaseDeliveryFee: u128 = (1_000_000_000_000u128 / 100).saturating_mul(3); -} - -pub const MICROUNIT: Balance = 1_000_000; - -parameter_types! { - /// Relay Chain `TransactionByteFee` / 10 - pub const TransactionByteFee: Balance = 10 * MICROUNIT; -} - -pub type PriceForSiblingParachainDelivery = polkadot_runtime_common::xcm_sender::ExponentialPrice< - FeeAssetId, - BaseDeliveryFee, - TransactionByteFee, - XcmpQueue, ->; - parameter_types! { pub MessageQueueServiceWeight: Weight = Perbill::from_percent(35) * RuntimeBlockWeights::get().max_block; } @@ -68,7 +46,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = (); - type PriceForSiblingDelivery = PriceForSiblingParachainDelivery; + type PriceForSiblingDelivery = NoPriceForMessageDelivery; } impl pallet_message_queue::Config for Runtime { From d93f1a30cc4b13e512323ebb628d84e8a0ec2f13 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Wed, 21 May 2025 12:01:44 -0600 Subject: [PATCH 25/31] fix: remove unused ignored advisories and licenses --- Cargo.lock | 18 +++++++++--------- deny.toml | 11 +++-------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d9fc68e618..893bdfeb2f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2818,7 +2818,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 2.0.101", + "syn 1.0.109", ] [[package]] @@ -3322,7 +3322,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -5250,7 +5250,7 @@ checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ "hermit-abi 0.5.1", "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -10706,7 +10706,7 @@ dependencies = [ "once_cell", "socket2 0.5.9", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -11309,7 +11309,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -11322,7 +11322,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.9.4", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -11380,7 +11380,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs 0.26.11", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -14962,7 +14962,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix 1.0.7", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -16448,7 +16448,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] diff --git a/deny.toml b/deny.toml index 29e3ba8bf3..44e3810036 100644 --- a/deny.toml +++ b/deny.toml @@ -70,15 +70,11 @@ ignore = [ #{ crate = "a-crate-that-is-yanked@0.1.1", reason = "you can specify why you are ignoring the yanked crate" }, { id = "RUSTSEC-2022-0061", reason = "Substrate Dependency deprecation. Eventually there will be an update. See https://github.com/paritytech/parity-wasm/pull/334 and https://github.com/paritytech/polkadot-sdk/issues/118" }, { id = "RUSTSEC-2020-0168", reason = "There is no suitable replacement for mach and the mach2 crate has not been vetted." }, - { id = "RUSTSEC-2024-0336", reason = "Only use of rustls@v0.20.9 is in futures-rustls which does not use the effected code" }, { id = "RUSTSEC-2024-0370", reason = "proc-macro-error is used by a few dependencies, and while unmaintained, is not currently an issue." }, - { id = "RUSTSEC-2024-0388", reason = "This is an inner dependency that would get updated when cumulus-primitives-core v0.7.0 is updated to a newer version"}, { id = "RUSTSEC-2024-0384", reason = "This is an inner dependency that would get updated when libp2p v0.51.4 and wasm-timer v0.2.5 are updated to a newer version"}, - { id = "RUSTSEC-2024-0421", reason = "Vulnerable code is not used." }, - { id = "RUSTSEC-2025-0010", reason = "Unmaintained sub-dependency: ring, pending updates to those dependencies."}, - { id = "RUSTSEC-2025-0009", reason = "Unmaintained sub-dependency: ring, pending updates to dependencies."}, { id = "RUSTSEC-2024-0436", reason = "Unmaintained sub-dependency: paste, pending updates to dependencies."}, - { id = "RUSTSEC-2025-0017", reason = "Renamed sub-dependency: trust-dns-proto -> hickory-proto, pending updates to dependencies."} + { id = "RUSTSEC-2023-0091", reason = "This is an inner dependency of polkadot."}, + { id = "RUSTSEC-2024-0438", reason = "This is an inner dependency of polkadot."} ] # If this is true, then cargo deny will use the git executable to fetch advisory database. # If this is false, then it uses a built-in git library. @@ -104,7 +100,6 @@ allow = [ "ISC", "GPL-3.0", "GPL-3.0 WITH Classpath-exception-2.0", - "OpenSSL", "Zlib", "Unicode-3.0", "CDLA-Permissive-2.0", @@ -245,7 +240,7 @@ unknown-git = "warn" # if not specified. If it is specified but empty, no registries are allowed. allow-registry = ["https://github.com/rust-lang/crates.io-index"] # List of URLs for allowed Git repositories -allow-git = ["https://github.com/multiformats/rust-cid"] +# allow-git = ["https://github.com/multiformats/rust-cid"] [sources.allow-org] # 1 or more github.com organizations to allow git sources for From c88aa533ddd099004b204cef8398fb970273d8c0 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Wed, 21 May 2025 12:02:35 -0600 Subject: [PATCH 26/31] fix: increment spec_version to 156 for runtime compatibility --- runtime/frequency/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index da003d6745..d5d79d43e4 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -486,7 +486,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: Cow::Borrowed("frequency"), impl_name: Cow::Borrowed("frequency"), authoring_version: 1, - spec_version: 155, + spec_version: 156, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -500,7 +500,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: Cow::Borrowed("frequency-testnet"), impl_name: Cow::Borrowed("frequency"), authoring_version: 1, - spec_version: 155, + spec_version: 156, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, From 71badacc93e7ddb631af88c13acbef0094bbd6cc Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Wed, 21 May 2025 12:14:14 -0600 Subject: [PATCH 27/31] fix: update advisory reasons for RUSTSEC-2023-0091 and RUSTSEC-2024-0438 for accuracy --- deny.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deny.toml b/deny.toml index 44e3810036..abcf9e4cd2 100644 --- a/deny.toml +++ b/deny.toml @@ -73,8 +73,8 @@ ignore = [ { id = "RUSTSEC-2024-0370", reason = "proc-macro-error is used by a few dependencies, and while unmaintained, is not currently an issue." }, { id = "RUSTSEC-2024-0384", reason = "This is an inner dependency that would get updated when libp2p v0.51.4 and wasm-timer v0.2.5 are updated to a newer version"}, { id = "RUSTSEC-2024-0436", reason = "Unmaintained sub-dependency: paste, pending updates to dependencies."}, - { id = "RUSTSEC-2023-0091", reason = "This is an inner dependency of polkadot."}, - { id = "RUSTSEC-2024-0438", reason = "This is an inner dependency of polkadot."} + { id = "RUSTSEC-2023-0091", reason = "This applies to wasmtime versions 10.0.0-12.0.1, not a concern for the version used here."}, + { id = "RUSTSEC-2024-0438", reason = "Only applies to version <= 24.0.1-26.0.0 for Windows."} ] # If this is true, then cargo deny will use the git executable to fetch advisory database. # If this is false, then it uses a built-in git library. From 7b3acac8e9a2da663228deae5b583f334295f226 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Wed, 21 May 2025 13:12:18 -0600 Subject: [PATCH 28/31] fix: increment spec_version from 156 to 159 for runtime updates --- runtime/frequency/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index d5d79d43e4..dded234474 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -486,7 +486,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: Cow::Borrowed("frequency"), impl_name: Cow::Borrowed("frequency"), authoring_version: 1, - spec_version: 156, + spec_version: 159, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -500,7 +500,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: Cow::Borrowed("frequency-testnet"), impl_name: Cow::Borrowed("frequency"), authoring_version: 1, - spec_version: 156, + spec_version: 159, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, From c4b7d9dae8788a392d7af0a30faadc65c424f339 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Wed, 21 May 2025 13:25:25 -0600 Subject: [PATCH 29/31] fix: change visibility of xcm_config and xcm_queue modules to private --- runtime/frequency/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index dded234474..4bf3fa4ef8 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -18,13 +18,13 @@ pub fn wasm_binary_unwrap() -> &'static [u8] { } #[cfg(feature = "frequency-bridging")] -pub mod xcm_config; +mod xcm_config; // use pallet_assets::BenchmarkHelper; #[cfg(feature = "frequency-bridging")] use xcm_config::ForeignAssetsAssetId; #[cfg(feature = "frequency-bridging")] -pub mod xcm_queue; +mod xcm_queue; #[cfg(feature = "frequency-bridging")] pub mod xcm_commons; From 1ca321ba9826079ff12ac218fa536eb9bd2802cf Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Thu, 22 May 2025 17:04:26 -0600 Subject: [PATCH 30/31] Refactor XCM tests and structure - Moved test modules from `src/tests/mod.rs` to `src/xcm/tests/mod.rs`. - Created a new `src/xcm/mod.rs` to contain the test module declaration. - Updated `lib.rs` to include the new XCM test module under the "frequency-bridging" feature. --- runtime/frequency/src/lib.rs | 6 +++--- runtime/frequency/src/tests/mod.rs | 3 --- runtime/frequency/src/xcm/mod.rs | 2 ++ .../frequency/src/{ => xcm}/tests/check_whitelist.rs | 2 +- .../frequency/src/{ => xcm}/tests/fee_estimation.rs | 10 +--------- runtime/frequency/src/{ => xcm}/tests/mock.rs | 0 runtime/frequency/src/xcm/tests/mod.rs | 4 ++++ 7 files changed, 11 insertions(+), 16 deletions(-) delete mode 100644 runtime/frequency/src/tests/mod.rs create mode 100644 runtime/frequency/src/xcm/mod.rs rename runtime/frequency/src/{ => xcm}/tests/check_whitelist.rs (98%) rename runtime/frequency/src/{ => xcm}/tests/fee_estimation.rs (97%) rename runtime/frequency/src/{ => xcm}/tests/mock.rs (100%) create mode 100644 runtime/frequency/src/xcm/tests/mod.rs diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index 4bf3fa4ef8..0f86ca8b0f 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -31,6 +31,9 @@ pub mod xcm_commons; #[cfg(feature = "frequency-bridging")] use xcm_commons::{RelayOrigin, ReservedDmpWeight, ReservedXcmpWeight}; +#[cfg(feature = "frequency-bridging")] +mod xcm; // Tests are contained the xcm directory + use alloc::borrow::Cow; use common_runtime::constants::currency::UNITS; @@ -2046,6 +2049,3 @@ sp_api::impl_runtime_apis! { } } } - -#[cfg(test)] -mod tests; diff --git a/runtime/frequency/src/tests/mod.rs b/runtime/frequency/src/tests/mod.rs deleted file mode 100644 index 5488e4f774..0000000000 --- a/runtime/frequency/src/tests/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod mock; - -mod fee_estimation; diff --git a/runtime/frequency/src/xcm/mod.rs b/runtime/frequency/src/xcm/mod.rs new file mode 100644 index 0000000000..192cb697cc --- /dev/null +++ b/runtime/frequency/src/xcm/mod.rs @@ -0,0 +1,2 @@ +#[cfg(test)] +pub mod tests; diff --git a/runtime/frequency/src/tests/check_whitelist.rs b/runtime/frequency/src/xcm/tests/check_whitelist.rs similarity index 98% rename from runtime/frequency/src/tests/check_whitelist.rs rename to runtime/frequency/src/xcm/tests/check_whitelist.rs index a3f8f85844..46da5dd6ca 100644 --- a/runtime/frequency/src/tests/check_whitelist.rs +++ b/runtime/frequency/src/xcm/tests/check_whitelist.rs @@ -1,4 +1,4 @@ -use super::*; +use crate::*; use frame_support::{traits::WhitelistedStorageKeys }; use sp_core::hexdisplay::HexDisplay; use std::collections::HashSet; diff --git a/runtime/frequency/src/tests/fee_estimation.rs b/runtime/frequency/src/xcm/tests/fee_estimation.rs similarity index 97% rename from runtime/frequency/src/tests/fee_estimation.rs rename to runtime/frequency/src/xcm/tests/fee_estimation.rs index de0ad1684f..f066ad8acc 100644 --- a/runtime/frequency/src/tests/fee_estimation.rs +++ b/runtime/frequency/src/xcm/tests/fee_estimation.rs @@ -472,17 +472,9 @@ fn runtime_apis_are_populated() { #[test] fn test_default_fee_per_second() { - use crate::{ - polkadot_xcm_fee::{base_relay_tx_fee, default_fee_per_second}, - ExtrinsicBaseWeight, WEIGHT_REF_TIME_PER_SECOND, - }; - - let base_weight = ExtrinsicBaseWeight::get().ref_time() as u128; - let base_tx_per_second = (WEIGHT_REF_TIME_PER_SECOND as u128) / base_weight; - assert_eq!(default_fee_per_second(), base_tx_per_second * base_relay_tx_fee()); + use crate::{polkadot_xcm_fee::default_fee_per_second, WEIGHT_REF_TIME_PER_SECOND}; let weight = Weight::from_parts(3u64 * WEIGHT_REF_TIME_PER_SECOND, 0u64); - // let weight: u128 = Balance::from(ExtrinsicBaseWeight::get().ref_time() * 3); let dot_fee = default_fee_per_second() .saturating_mul(weight.ref_time() as u128) .saturating_div(WEIGHT_REF_TIME_PER_SECOND as u128); diff --git a/runtime/frequency/src/tests/mock.rs b/runtime/frequency/src/xcm/tests/mock.rs similarity index 100% rename from runtime/frequency/src/tests/mock.rs rename to runtime/frequency/src/xcm/tests/mock.rs diff --git a/runtime/frequency/src/xcm/tests/mod.rs b/runtime/frequency/src/xcm/tests/mod.rs new file mode 100644 index 0000000000..3318db6b1a --- /dev/null +++ b/runtime/frequency/src/xcm/tests/mod.rs @@ -0,0 +1,4 @@ +mod mock; + +mod fee_estimation; +mod check_whitelist; From 79e386f38cafaa20cc7a9c8692e8786709103949 Mon Sep 17 00:00:00 2001 From: Matthew Orris <1466844+mattheworris@users.noreply.github.com> Date: Thu, 22 May 2025 17:15:29 -0600 Subject: [PATCH 31/31] fix: make format --- .../src/xcm/tests/check_whitelist.rs | 40 +++++++------------ runtime/frequency/src/xcm/tests/mod.rs | 2 +- 2 files changed, 16 insertions(+), 26 deletions(-) diff --git a/runtime/frequency/src/xcm/tests/check_whitelist.rs b/runtime/frequency/src/xcm/tests/check_whitelist.rs index 46da5dd6ca..95e1aa7e55 100644 --- a/runtime/frequency/src/xcm/tests/check_whitelist.rs +++ b/runtime/frequency/src/xcm/tests/check_whitelist.rs @@ -1,33 +1,23 @@ use crate::*; -use frame_support::{traits::WhitelistedStorageKeys }; +use frame_support::traits::WhitelistedStorageKeys; use sp_core::hexdisplay::HexDisplay; use std::collections::HashSet; #[test] fn check_whitelist() { - let whitelist: HashSet = dbg!(AllPalletsWithSystem::whitelisted_storage_keys() - .iter() - .map(|e| HexDisplay::from(&e.key).to_string()) - .collect()); + let whitelist: HashSet = dbg!(AllPalletsWithSystem::whitelisted_storage_keys() + .iter() + .map(|e| HexDisplay::from(&e.key).to_string()) + .collect()); - // Block Number - assert!( - whitelist.contains("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac") - ); - // Total Issuance - assert!( - whitelist.contains("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80") - ); - // Execution Phase - assert!( - whitelist.contains("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a") - ); - // Event Count - assert!( - whitelist.contains("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850") - ); - // System Events - assert!( - whitelist.contains("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7") - ); + // Block Number + assert!(whitelist.contains("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac")); + // Total Issuance + assert!(whitelist.contains("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80")); + // Execution Phase + assert!(whitelist.contains("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a")); + // Event Count + assert!(whitelist.contains("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850")); + // System Events + assert!(whitelist.contains("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7")); } diff --git a/runtime/frequency/src/xcm/tests/mod.rs b/runtime/frequency/src/xcm/tests/mod.rs index 3318db6b1a..1416651976 100644 --- a/runtime/frequency/src/xcm/tests/mod.rs +++ b/runtime/frequency/src/xcm/tests/mod.rs @@ -1,4 +1,4 @@ mod mock; -mod fee_estimation; mod check_whitelist; +mod fee_estimation;