diff --git a/Cargo.lock b/Cargo.lock index 8578cca8f04..9b65c29216c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -116,6 +116,154 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" +[[package]] +name = "alloy-core" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "575053cea24ea8cb7e775e39d5c53c33b19cfd0ca1cf6c0fd653f3d8c682095f" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-rlp", + "alloy-sol-types", +] + +[[package]] +name = "alloy-dyn-abi" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6c2905bafc2df7ccd32ca3af13f0b0d82f2e2ff9dfbeb12196c0d978d5c0deb" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-type-parser", + "alloy-sol-types", + "itoa", + "serde", + "serde_json", + "winnow", +] + +[[package]] +name = "alloy-json-abi" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2acb6637a9c0e1cdf8971e0ced8f3fa34c04c5e9dccf6bb184f6a64fe0e37d8" +dependencies = [ + "alloy-primitives", + "alloy-sol-type-parser", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-primitives" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b77f7d5e60ad8ae6bd2200b8097919712a07a6db622a4b201e7ead6166f02e5" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 2.0.1", + "foldhash 0.2.0", + "hashbrown 0.16.0", + "indexmap 2.9.0", + "itoa", + "k256", + "keccak-asm", + "paste", + "proptest", + "rand 0.9.1", + "ruint", + "rustc-hash 2.1.1", + "serde", + "sha3", + "tiny-keccak", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f70d83b765fdc080dbcd4f4db70d8d23fe4761f2f02ebfa9146b833900634b4" +dependencies = [ + "arrayvec 0.7.6", + "bytes", +] + +[[package]] +name = "alloy-sol-macro" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c84c3637bee9b5c4a4d2b93360ee16553d299c3b932712353caf1cea76d0e6" +dependencies = [ + "alloy-sol-macro-expander", + "alloy-sol-macro-input", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a882aa4e1790063362434b9b40d358942b188477ac1c44cfb8a52816ffc0cc17" +dependencies = [ + "alloy-sol-macro-input", + "const-hex", + "heck 0.5.0", + "indexmap 2.9.0", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.101", + "syn-solidity", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18e5772107f9bb265d8d8c86e0733937bb20d0857ea5425b1b6ddf51a9804042" +dependencies = [ + "const-hex", + "dunce", + "heck 0.5.0", + "macro-string", + "proc-macro2", + "quote", + "syn 2.0.101", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-type-parser" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e188b939aa4793edfaaa099cb1be4e620036a775b4bdf24fdc56f1cd6fd45890" +dependencies = [ + "serde", + "winnow", +] + +[[package]] +name = "alloy-sol-types" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c8a9a909872097caffc05df134e5ef2253a1cdb56d3a9cf0052a042ac763f9" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-macro", + "serde", +] + [[package]] name = "always-assert" version = "0.1.3" @@ -310,6 +458,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" @@ -326,7 +492,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rustc_version", + "rustc_version 0.4.1", "zeroize", ] @@ -350,6 +516,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" @@ -370,6 +546,18 @@ dependencies = [ "syn 2.0.101", ] +[[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" @@ -424,6 +612,16 @@ dependencies = [ "hashbrown 0.15.3", ] +[[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" @@ -471,6 +669,16 @@ dependencies = [ "syn 2.0.101", ] +[[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" @@ -530,6 +738,16 @@ version = "6.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" +[[package]] +name = "array-bytes" +version = "9.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27d55334c98d756b32dcceb60248647ab34f027690f87f9a362fd292676ee927" +dependencies = [ + "smallvec", + "thiserror 2.0.12", +] + [[package]] name = "arrayref" version = "0.3.9" @@ -627,7 +845,7 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" [[package]] name = "async-backing-primitives" version = "0.9.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "sp-api", "sp-consensus-slots", @@ -980,7 +1198,7 @@ checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" [[package]] name = "binary-merkle-tree" version = "16.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "hash-db", "log", @@ -1047,6 +1265,21 @@ 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" @@ -1224,14 +1457,15 @@ dependencies = [ [[package]] name = "bp-bridge-hub-cumulus" -version = "0.21.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.22.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-messages", "bp-polkadot-core", "bp-runtime", "frame-support", "frame-system", + "parachains-common", "polkadot-primitives", "sp-api", "sp-std", @@ -1239,8 +1473,8 @@ dependencies = [ [[package]] name = "bp-header-chain" -version = "0.20.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-runtime", "finality-grandpa", @@ -1256,8 +1490,8 @@ dependencies = [ [[package]] name = "bp-messages" -version = "0.20.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-header-chain", "bp-runtime", @@ -1304,8 +1538,8 @@ dependencies = [ [[package]] name = "bp-parachains" -version = "0.20.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-header-chain", "bp-polkadot-core", @@ -1321,8 +1555,8 @@ dependencies = [ [[package]] name = "bp-polkadot-core" -version = "0.20.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-messages", "bp-runtime", @@ -1338,8 +1572,8 @@ dependencies = [ [[package]] name = "bp-relayers" -version = "0.20.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-header-chain", "bp-messages", @@ -1356,8 +1590,8 @@ dependencies = [ [[package]] name = "bp-runtime" -version = "0.20.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "frame-system", @@ -1379,8 +1613,8 @@ dependencies = [ [[package]] name = "bp-test-utils" -version = "0.20.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-header-chain", "bp-parachains", @@ -1399,8 +1633,8 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub" -version = "0.6.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-messages", "bp-runtime", @@ -1416,8 +1650,8 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" -version = "0.17.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.18.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "scale-info", @@ -1428,8 +1662,8 @@ dependencies = [ [[package]] name = "bridge-hub-common" -version = "0.13.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.14.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1447,8 +1681,8 @@ dependencies = [ [[package]] name = "bridge-runtime-common" -version = "0.21.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.22.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-header-chain", "bp-messages", @@ -1541,6 +1775,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" @@ -1697,6 +1934,7 @@ dependencies = [ "iana-time-zone", "js-sys", "num-traits", + "serde", "wasm-bindgen", "windows-link", ] @@ -2267,10 +2505,36 @@ dependencies = [ "cipher 0.4.4", ] +[[package]] +name = "cumulus-client-bootnodes" +version = "0.2.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" +dependencies = [ + "array-bytes 6.2.3", + "async-channel 1.9.0", + "cumulus-client-network", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "futures 0.3.31", + "hex", + "ip_network", + "log", + "num-traits", + "parachains-common", + "parity-scale-codec", + "prost 0.12.6", + "prost-build 0.13.5", + "sc-network", + "sc-service", + "sp-consensus-babe", + "sp-runtime", + "tokio", +] + [[package]] name = "cumulus-client-cli" -version = "0.23.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.24.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "clap", "parity-scale-codec", @@ -2286,8 +2550,8 @@ dependencies = [ [[package]] name = "cumulus-client-collator" -version = "0.23.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.24.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -2309,13 +2573,14 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" -version = "0.23.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.24.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "cumulus-client-pov-recovery", "cumulus-primitives-core", "cumulus-relay-chain-interface", + "cumulus-relay-chain-streams", "dyn-clone", "futures 0.3.31", "log", @@ -2324,6 +2589,7 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-consensus-babe", + "sc-network", "schnellru", "sp-blockchain", "sp-consensus", @@ -2339,8 +2605,8 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" -version = "0.19.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.20.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "anyhow", "async-trait", @@ -2354,8 +2620,8 @@ dependencies = [ [[package]] name = "cumulus-client-network" -version = "0.23.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.24.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -2368,6 +2634,7 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-primitives", "sc-client-api", + "sc-network", "sp-api", "sp-blockchain", "sp-consensus", @@ -2380,8 +2647,8 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" -version = "0.17.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.18.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2390,7 +2657,8 @@ dependencies = [ "cumulus-test-relay-sproof-builder", "parity-scale-codec", "sc-client-api", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sc-consensus-babe", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-inherents", "sp-runtime", "sp-state-machine", @@ -2400,12 +2668,13 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" -version = "0.23.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.24.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", + "cumulus-relay-chain-streams", "futures 0.3.31", "futures-timer", "parity-scale-codec", @@ -2416,6 +2685,7 @@ dependencies = [ "rand 0.8.5", "sc-client-api", "sc-consensus", + "sc-network", "sp-api", "sp-consensus", "sp-maybe-compressed-blob", @@ -2426,9 +2696,10 @@ dependencies = [ [[package]] name = "cumulus-client-service" -version = "0.24.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.25.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ + "async-channel 1.9.0", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-common", @@ -2439,8 +2710,10 @@ dependencies = [ "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", + "cumulus-relay-chain-streams", "futures 0.3.31", "polkadot-primitives", + "prometheus", "sc-client-api", "sc-consensus", "sc-network", @@ -2463,9 +2736,10 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" -version = "0.20.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ + "array-bytes 6.2.3", "bytes", "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -2475,6 +2749,7 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "hashbrown 0.15.3", "impl-trait-for-tuples", "log", "pallet-message-queue", @@ -2482,6 +2757,7 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-runtime-parachains", "scale-info", + "sp-consensus-babe", "sp-core", "sp-externalities", "sp-inherents", @@ -2499,7 +2775,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -2509,8 +2785,8 @@ dependencies = [ [[package]] name = "cumulus-pallet-weight-reclaim" -version = "0.2.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.3.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cumulus-primitives-storage-weight-reclaim", "derive-where", @@ -2528,8 +2804,8 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" -version = "0.19.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.20.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2543,9 +2819,10 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" -version = "0.20.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ + "approx", "bounded-collections", "bp-xcm-bridge-hub-router", "cumulus-primitives-core", @@ -2568,8 +2845,8 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" -version = "0.18.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.19.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2580,12 +2857,13 @@ dependencies = [ "sp-runtime", "sp-trie", "staging-xcm", + "tracing", ] [[package]] name = "cumulus-primitives-parachain-inherent" -version = "0.18.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.19.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2598,8 +2876,8 @@ dependencies = [ [[package]] name = "cumulus-primitives-proof-size-hostfunction" -version = "0.12.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.13.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "sp-externalities", "sp-runtime-interface", @@ -2608,8 +2886,8 @@ dependencies = [ [[package]] name = "cumulus-primitives-storage-weight-reclaim" -version = "11.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "12.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -2625,8 +2903,8 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" -version = "0.20.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2642,18 +2920,22 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" -version = "0.24.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.25.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ + "async-channel 1.9.0", "async-trait", + "cumulus-client-bootnodes", "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures 0.3.31", "futures-timer", "polkadot-cli", + "polkadot-primitives", "polkadot-service", "sc-cli", "sc-client-api", + "sc-network", "sc-sysinfo", "sc-telemetry", "sc-tracing", @@ -2666,8 +2948,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" -version = "0.23.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.24.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2676,6 +2958,7 @@ dependencies = [ "parity-scale-codec", "polkadot-overseer", "sc-client-api", + "sc-network", "sp-api", "sp-blockchain", "sp-state-machine", @@ -2685,11 +2968,13 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" -version = "0.24.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.25.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", + "async-channel 1.9.0", "async-trait", + "cumulus-client-bootnodes", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", @@ -2719,8 +3004,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" -version = "0.23.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.24.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2735,6 +3020,7 @@ dependencies = [ "prometheus", "rand 0.8.5", "sc-client-api", + "sc-network", "sc-rpc-api", "sc-service", "schnellru", @@ -2757,10 +3043,24 @@ dependencies = [ "url", ] +[[package]] +name = "cumulus-relay-chain-streams" +version = "0.2.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" +dependencies = [ + "cumulus-relay-chain-interface", + "futures 0.3.31", + "polkadot-node-subsystem", + "polkadot-primitives", + "sp-api", + "sp-consensus", + "tracing", +] + [[package]] name = "cumulus-test-relay-sproof-builder" -version = "0.19.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.20.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2781,7 +3081,7 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version", + "rustc_version 0.4.1", "subtle 2.6.1", "zeroize", ] @@ -2820,7 +3120,7 @@ dependencies = [ "cxxbridge-cmd", "cxxbridge-flags", "cxxbridge-macro", - "foldhash", + "foldhash 0.1.5", "link-cplusplus", ] @@ -2875,8 +3175,18 @@ version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", ] [[package]] @@ -2893,13 +3203,38 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.101", +] + [[package]] name = "darling_macro" version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core", + "darling_core 0.20.11", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", "quote", "syn 2.0.101", ] @@ -3032,7 +3367,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version", + "rustc_version 0.4.1", "syn 2.0.101", ] @@ -3042,7 +3377,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]] @@ -3057,6 +3401,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.101", + "unicode-xid", +] + [[package]] name = "digest" version = "0.8.1" @@ -3200,6 +3556,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" @@ -3392,6 +3754,16 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "env_filter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +dependencies = [ + "log", + "regex", +] + [[package]] name = "env_logger" version = "0.10.2" @@ -3427,16 +3799,6 @@ 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" @@ -3445,7 +3807,7 @@ checksum = "8c321610643004cf908ec0f5f2aa0d8f1f8e14b540562a2887a1111ff1ecbf7b" dependencies = [ "crunchy", "fixed-hash", - "impl-codec", + "impl-codec 0.7.1", "impl-rlp", "impl-serde", "scale-info", @@ -3455,7 +3817,8 @@ dependencies = [ [[package]] name = "ethereum" version = "0.18.2" -source = "git+https://github.com/rust-ethereum/ethereum?rev=cf3076f07e61102eec686f6816da668f97d94f1f#cf3076f07e61102eec686f6816da668f97d94f1f" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ee371ebb7479ed3258617557ab0b3247e741075cb6b02b820d188f68da44441" dependencies = [ "bytes", "ethereum-types", @@ -3463,13 +3826,21 @@ dependencies = [ "hash256-std-hasher", "k256", "parity-scale-codec", - "rlp", + "rlp 0.6.1", "scale-info", "serde", "sha3", "trie-root", ] +[[package]] +name = "ethereum-standards" +version = "0.1.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" +dependencies = [ + "alloy-core", +] + [[package]] name = "ethereum-types" version = "0.15.1" @@ -3478,10 +3849,10 @@ checksum = "1ab15ed80916029f878e0267c3a9f92b67df55e79af370bf66199059ae2b4ee3" dependencies = [ "ethbloom", "fixed-hash", - "impl-codec", + "impl-codec 0.7.1", "impl-rlp", "impl-serde", - "primitive-types", + "primitive-types 0.13.1", "scale-info", "uint 0.10.0", ] @@ -3527,7 +3898,7 @@ dependencies = [ [[package]] name = "evm" version = "0.43.4" -source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-stable2503#b3d5b09d5136f76a7e63fae94674f194542e6144" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-stable2506#6917b131d552559ee84b0b3ea5450d9890a7e9bd" dependencies = [ "auto_impl", "environmental", @@ -3537,8 +3908,8 @@ dependencies = [ "evm-runtime", "log", "parity-scale-codec", - "primitive-types", - "rlp", + "primitive-types 0.13.1", + "rlp 0.6.1", "scale-info", "serde", "sha3", @@ -3547,10 +3918,10 @@ dependencies = [ [[package]] name = "evm-core" version = "0.43.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-stable2503#b3d5b09d5136f76a7e63fae94674f194542e6144" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-stable2506#6917b131d552559ee84b0b3ea5450d9890a7e9bd" dependencies = [ "parity-scale-codec", - "primitive-types", + "primitive-types 0.13.1", "scale-info", "serde", ] @@ -3558,23 +3929,23 @@ dependencies = [ [[package]] name = "evm-gasometer" version = "0.43.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-stable2503#b3d5b09d5136f76a7e63fae94674f194542e6144" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-stable2506#6917b131d552559ee84b0b3ea5450d9890a7e9bd" dependencies = [ "environmental", "evm-core", "evm-runtime", - "primitive-types", + "primitive-types 0.13.1", ] [[package]] name = "evm-runtime" version = "0.43.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-stable2503#b3d5b09d5136f76a7e63fae94674f194542e6144" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-stable2506#6917b131d552559ee84b0b3ea5450d9890a7e9bd" dependencies = [ "auto_impl", "environmental", "evm-core", - "primitive-types", + "primitive-types 0.13.1", "sha3", ] @@ -3588,7 +3959,6 @@ dependencies = [ "evm-gasometer", "evm-runtime", "parity-scale-codec", - "sp-runtime-interface", ] [[package]] @@ -3642,6 +4012,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" @@ -3669,7 +4061,7 @@ dependencies = [ [[package]] name = "fc-api" version = "1.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "async-trait", "fp-storage", @@ -3681,7 +4073,7 @@ dependencies = [ [[package]] name = "fc-consensus" version = "2.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "async-trait", "fp-consensus", @@ -3697,7 +4089,7 @@ dependencies = [ [[package]] name = "fc-db" version = "2.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "async-trait", "ethereum", @@ -3727,7 +4119,7 @@ dependencies = [ [[package]] name = "fc-mapping-sync" version = "2.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "fc-db", "fc-storage", @@ -3750,7 +4142,7 @@ dependencies = [ [[package]] name = "fc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "ethereum", "ethereum-types", @@ -3771,7 +4163,7 @@ dependencies = [ "parity-scale-codec", "prometheus", "rand 0.9.1", - "rlp", + "rlp 0.6.1", "sc-client-api", "sc-consensus-aura", "sc-network", @@ -3804,23 +4196,23 @@ dependencies = [ [[package]] name = "fc-rpc-core" version = "1.1.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "ethereum", "ethereum-types", "jsonrpsee", - "rlp", + "rlp 0.6.1", "rustc-hex", "serde", "serde_json", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", ] [[package]] name = "fc-rpc-v2-api" version = "0.1.0" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "ethereum-types", "fc-rpc-v2-types", @@ -3830,7 +4222,7 @@ dependencies = [ [[package]] name = "fc-rpc-v2-types" version = "0.1.0" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "const-hex", "ethereum-types", @@ -3841,13 +4233,12 @@ dependencies = [ [[package]] name = "fc-storage" version = "1.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "ethereum", "ethereum-types", "fp-rpc", "fp-storage", - "log", "parity-scale-codec", "sc-client-api", "sp-api", @@ -3984,6 +4375,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "foreign-types" version = "0.3.2" @@ -4002,7 +4399,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "13.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", ] @@ -4029,7 +4426,7 @@ dependencies = [ [[package]] name = "fp-account" version = "1.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "hex", "impl-serde", @@ -4041,14 +4438,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-runtime-interface", "staging-xcm", ] [[package]] name = "fp-consensus" version = "2.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "ethereum", "parity-scale-codec", @@ -4059,7 +4455,7 @@ dependencies = [ [[package]] name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "ethereum", "ethereum-types", @@ -4071,7 +4467,7 @@ dependencies = [ [[package]] name = "fp-evm" version = "3.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "environmental", "evm", @@ -4087,7 +4483,7 @@ dependencies = [ [[package]] name = "fp-rpc" version = "3.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "ethereum", "ethereum-types", @@ -4103,7 +4499,7 @@ dependencies = [ [[package]] name = "fp-self-contained" version = "1.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "frame-support", "parity-scale-codec", @@ -4115,7 +4511,7 @@ dependencies = [ [[package]] name = "fp-storage" version = "2.0.0" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "parity-scale-codec", "serde", @@ -4129,8 +4525,8 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" -version = "40.2.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "frame-support-procedural", @@ -4153,17 +4549,19 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" -version = "48.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "49.1.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "Inflector", - "array-bytes", + "array-bytes 6.2.3", "chrono", "clap", "comfy-table", "cumulus-client-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", + "env_filter", "frame-benchmarking", + "frame-storage-access-test-runtime", "frame-support", "frame-system", "gethostname", @@ -4182,6 +4580,8 @@ dependencies = [ "sc-client-api", "sc-client-db", "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", "sc-runtime-utilities", "sc-service", "sc-sysinfo", @@ -4198,6 +4598,7 @@ dependencies = [ "sp-io", "sp-keystore", "sp-runtime", + "sp-runtime-interface", "sp-state-machine", "sp-storage", "sp-timestamp", @@ -4213,13 +4614,13 @@ dependencies = [ [[package]] name = "frame-decode" -version = "0.5.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6027a409bac4fe95b4d107f965fcdbc252fc89d884a360d076b3070b6128c094" +checksum = "a7cb8796f93fa038f979a014234d632e9688a120e745f936e2635123c77537f7" dependencies = [ - "frame-metadata 17.0.0", + "frame-metadata 20.0.0", "parity-scale-codec", - "scale-decode 0.14.0", + "scale-decode", "scale-info", "scale-type-resolver", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4228,7 +4629,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "16.1.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -4238,8 +4639,8 @@ dependencies = [ [[package]] name = "frame-election-provider-support" -version = "40.1.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -4250,12 +4651,13 @@ dependencies = [ "sp-core", "sp-npos-elections", "sp-runtime", + "sp-std", ] [[package]] name = "frame-executive" -version = "40.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.2" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "aquamarine", "frame-support", @@ -4272,9 +4674,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "17.0.0" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "701bac17e9b55e0f95067c428ebcb46496587f08e8cf4ccc0fe5903bea10dbb8" +checksum = "26de808fa6461f2485dc51811aefed108850064994fb4a62b3ac21ffa62ac8df" dependencies = [ "cfg-if", "parity-scale-codec", @@ -4284,9 +4686,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "20.0.0" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26de808fa6461f2485dc51811aefed108850064994fb4a62b3ac21ffa62ac8df" +checksum = "d8c26fcb0454397c522c05fdad5380c4e622f8a875638af33bff5a320d1fc965" dependencies = [ "cfg-if", "parity-scale-codec", @@ -4296,10 +4698,10 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" -version = "0.8.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.9.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "const-hex", "docify", "frame-support", @@ -4310,18 +4712,32 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "frame-storage-access-test-runtime" +version = "0.2.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" +dependencies = [ + "cumulus-pallet-parachain-system", + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-trie", + "substrate-wasm-builder", +] + [[package]] name = "frame-support" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "aquamarine", - "array-bytes", + "array-bytes 6.2.3", "binary-merkle-tree", "bitflags 1.3.2", "docify", "environmental", - "frame-metadata 20.0.0", + "frame-metadata 23.0.0", "frame-support-procedural", "impl-trait-for-tuples", "k256", @@ -4353,8 +4769,8 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "33.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "34.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "Inflector", "cfg-expr", @@ -4367,14 +4783,14 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "syn 2.0.101", ] [[package]] name = "frame-support-procedural-tools" version = "13.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.3.0", @@ -4386,7 +4802,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "12.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "proc-macro2", "quote", @@ -4395,8 +4811,8 @@ dependencies = [ [[package]] name = "frame-system" -version = "40.2.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.2" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cfg-if", "docify", @@ -4414,8 +4830,8 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" -version = "40.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -4428,8 +4844,8 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" -version = "36.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "parity-scale-codec", @@ -4438,8 +4854,8 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.46.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.47.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "parity-scale-codec", @@ -4915,7 +5331,17 @@ checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +dependencies = [ + "foldhash 0.2.0", + "serde", ] [[package]] @@ -5195,6 +5621,16 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" +[[package]] +name = "humantime-serde" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" +dependencies = [ + "humantime", + "serde", +] + [[package]] name = "hyper" version = "0.14.32" @@ -5212,7 +5648,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.9", "tokio", "tower-service", "tracing", @@ -5500,6 +5936,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" @@ -5526,7 +5971,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54ed8ad1f3877f7e775b8cbf30ed1bd3209a95401817f19a0eb4402d13f8cf90" dependencies = [ - "rlp", + "rlp 0.6.1", ] [[package]] @@ -5587,6 +6032,7 @@ checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", "hashbrown 0.15.3", + "serde", ] [[package]] @@ -5957,13 +6403,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", ] @@ -6778,6 +7234,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.101", +] + [[package]] name = "macro_magic" version = "0.5.1" @@ -6895,24 +7362,26 @@ dependencies = [ [[package]] name = "memory-db" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" +checksum = "7e300c54e3239a86f9c61cc63ab0f03862eb40b1c6e065dc6fd6ceaeff6da93d" dependencies = [ + "foldhash 0.1.5", "hash-db", + "hashbrown 0.15.3", ] [[package]] name = "merkleized-metadata" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc9b7ac0ce054412d9a85ff39bac27aec27483b06cef8756b57d9c29d448d081" +checksum = "b3e3e3f549d27d2dc054372f320ddf68045a833fab490563ff70d4cf1b9d91ea" dependencies = [ - "array-bytes", + "array-bytes 9.3.0", "blake3", - "frame-metadata 20.0.0", + "frame-metadata 23.0.0", "parity-scale-codec", - "scale-decode 0.13.1", + "scale-decode", "scale-info", ] @@ -6981,8 +7450,8 @@ dependencies = [ [[package]] name = "mmr-gadget" -version = "45.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "46.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "log", @@ -7000,8 +7469,8 @@ dependencies = [ [[package]] name = "mmr-rpc" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -7051,7 +7520,7 @@ dependencies = [ "loom", "parking_lot 0.12.3", "portable-atomic", - "rustc_version", + "rustc_version 0.4.1", "smallvec", "tagptr", "thiserror 1.0.69", @@ -7080,7 +7549,7 @@ dependencies = [ "fp-self-contained", "frame-benchmarking", "frame-executive", - "frame-metadata 20.0.0", + "frame-metadata 23.0.0", "frame-metadata-hash-extension", "frame-support", "frame-system", @@ -7177,7 +7646,7 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-parachains", "precompile-utils", - "rlp", + "rlp 0.6.1", "scale-info", "serde", "serde_json", @@ -7258,7 +7727,7 @@ dependencies = [ "bip32", "clap", "libsecp256k1", - "primitive-types", + "primitive-types 0.13.1", "sp-runtime", "tiny-bip39", "url", @@ -7482,7 +7951,7 @@ dependencies = [ "fp-self-contained", "frame-benchmarking", "frame-executive", - "frame-metadata 20.0.0", + "frame-metadata 23.0.0", "frame-metadata-hash-extension", "frame-support", "frame-system", @@ -7582,7 +8051,7 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-parachains", "precompile-utils", - "rlp", + "rlp 0.6.1", "scale-info", "serde", "serde_json", @@ -7631,6 +8100,7 @@ dependencies = [ "moonbeam-core-primitives", "pallet-author-inherent", "pallet-balances", + "pallet-identity", "pallet-message-queue", "pallet-migrations", "pallet-moonbeam-foreign-assets", @@ -7816,7 +8286,7 @@ dependencies = [ "fp-self-contained", "frame-benchmarking", "frame-executive", - "frame-metadata 20.0.0", + "frame-metadata 23.0.0", "frame-metadata-hash-extension", "frame-support", "frame-system", @@ -7916,7 +8386,7 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-parachains", "precompile-utils", - "rlp", + "rlp 0.6.1", "scale-info", "serde", "serde_json", @@ -8198,7 +8668,7 @@ dependencies = [ [[package]] name = "nimbus-consensus" version = "0.9.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "async-backing-primitives", "async-trait", @@ -8239,7 +8709,7 @@ dependencies = [ [[package]] name = "nimbus-primitives" version = "0.9.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "async-trait", "frame-benchmarking", @@ -8249,6 +8719,7 @@ dependencies = [ "scale-info", "sp-api", "sp-application-crypto", + "sp-core", "sp-inherents", "sp-runtime", "sp-std", @@ -8323,6 +8794,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -8649,8 +9129,8 @@ dependencies = [ [[package]] name = "pallet-asset-conversion" -version = "22.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "23.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -8667,8 +9147,8 @@ dependencies = [ [[package]] name = "pallet-asset-rate" -version = "19.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "20.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -8681,8 +9161,8 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -8691,21 +9171,22 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", "sp-io", "sp-runtime", ] [[package]] name = "pallet-assets" -version = "42.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "43.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ + "ethereum-standards", "frame-benchmarking", "frame-support", "frame-system", "impl-trait-for-tuples", "log", + "pallet-revive", "parity-scale-codec", "scale-info", "sp-core", @@ -8715,7 +9196,7 @@ dependencies = [ [[package]] name = "pallet-async-backing" version = "0.9.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -8735,7 +9216,7 @@ dependencies = [ [[package]] name = "pallet-author-inherent" version = "0.9.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "frame-benchmarking", "frame-support", @@ -8754,7 +9235,7 @@ dependencies = [ [[package]] name = "pallet-author-mapping" version = "2.0.5" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "frame-benchmarking", "frame-support", @@ -8773,7 +9254,7 @@ dependencies = [ [[package]] name = "pallet-author-slot-filter" version = "0.9.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "frame-benchmarking", "frame-support", @@ -8790,8 +9271,8 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "frame-system", @@ -8805,8 +9286,8 @@ dependencies = [ [[package]] name = "pallet-authorship" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "frame-system", @@ -8818,8 +9299,8 @@ dependencies = [ [[package]] name = "pallet-babe" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -8841,8 +9322,8 @@ dependencies = [ [[package]] name = "pallet-bags-list" -version = "39.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "aquamarine", "docify", @@ -8862,8 +9343,8 @@ dependencies = [ [[package]] name = "pallet-balances" -version = "41.1.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "42.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "frame-benchmarking", @@ -8878,8 +9359,8 @@ dependencies = [ [[package]] name = "pallet-beefy" -version = "41.1.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "42.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "frame-system", @@ -8897,10 +9378,10 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" -version = "41.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "42.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "binary-merkle-tree", "frame-benchmarking", "frame-support", @@ -8922,8 +9403,8 @@ dependencies = [ [[package]] name = "pallet-bounties" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -8939,8 +9420,8 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" -version = "0.20.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-header-chain", "bp-runtime", @@ -8958,8 +9439,8 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" -version = "0.20.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-header-chain", "bp-messages", @@ -8977,8 +9458,8 @@ dependencies = [ [[package]] name = "pallet-bridge-parachains" -version = "0.20.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-header-chain", "bp-parachains", @@ -8997,8 +9478,8 @@ dependencies = [ [[package]] name = "pallet-bridge-relayers" -version = "0.20.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-header-chain", "bp-messages", @@ -9020,8 +9501,8 @@ dependencies = [ [[package]] name = "pallet-broker" -version = "0.19.2" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.20.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bitvec", "frame-benchmarking", @@ -9038,8 +9519,8 @@ dependencies = [ [[package]] name = "pallet-child-bounties" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -9056,8 +9537,8 @@ dependencies = [ [[package]] name = "pallet-collator-selection" -version = "21.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "22.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -9075,8 +9556,8 @@ dependencies = [ [[package]] name = "pallet-collective" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "frame-benchmarking", @@ -9092,8 +9573,8 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "assert_matches", "frame-benchmarking", @@ -9129,8 +9610,8 @@ dependencies = [ [[package]] name = "pallet-delegated-staking" -version = "7.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "8.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "frame-system", @@ -9144,8 +9625,8 @@ dependencies = [ [[package]] name = "pallet-democracy" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -9161,15 +9642,14 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" -version = "39.2.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", "log", - "pallet-election-provider-support-benchmarking", "parity-scale-codec", "rand 0.8.5", "scale-info", @@ -9183,8 +9663,8 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9196,8 +9676,8 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" -version = "41.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "42.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -9215,7 +9695,7 @@ dependencies = [ [[package]] name = "pallet-emergency-para-xcm" version = "0.1.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -9257,7 +9737,7 @@ dependencies = [ [[package]] name = "pallet-ethereum" version = "4.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "environmental", "ethereum", @@ -9300,7 +9780,7 @@ dependencies = [ "pallet-proxy", "pallet-timestamp", "parity-scale-codec", - "rlp", + "rlp 0.6.1", "scale-info", "sp-core", "sp-io", @@ -9312,7 +9792,7 @@ dependencies = [ [[package]] name = "pallet-evm" version = "6.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "cumulus-primitives-storage-weight-reclaim", "environmental", @@ -9337,7 +9817,7 @@ dependencies = [ [[package]] name = "pallet-evm-chain-id" version = "1.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "frame-support", "frame-system", @@ -9415,7 +9895,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-blake2" version = "2.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "fp-evm", ] @@ -9423,19 +9903,19 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-bls12381" version = "1.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "ark-bls12-381 0.4.0", "ark-ec 0.4.2", "ark-ff 0.4.2", - "ark-std 0.4.0", + "ark-std 0.5.0", "fp-evm", ] [[package]] name = "pallet-evm-precompile-bn128" version = "2.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "fp-evm", "sp-core", @@ -9590,7 +10070,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-modexp" version = "2.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "fp-evm", "num", @@ -9791,16 +10271,18 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-sha3fips" version = "2.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "fp-evm", + "frame-support", + "pallet-evm", "tiny-keccak", ] [[package]] name = "pallet-evm-precompile-simple" version = "2.0.0-dev" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "fp-evm", "ripemd", @@ -9810,7 +10292,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-xcm" version = "0.1.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "cumulus-primitives-core", "evm", @@ -9915,8 +10397,8 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "frame-benchmarking", @@ -9933,8 +10415,8 @@ dependencies = [ [[package]] name = "pallet-grandpa" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -9955,8 +10437,8 @@ dependencies = [ [[package]] name = "pallet-identity" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "enumflags2", "frame-benchmarking", @@ -9965,15 +10447,14 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core", "sp-io", "sp-runtime", ] [[package]] name = "pallet-im-online" -version = "39.1.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -9991,8 +10472,8 @@ dependencies = [ [[package]] name = "pallet-indices" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -10007,7 +10488,7 @@ dependencies = [ [[package]] name = "pallet-maintenance-mode" version = "0.1.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -10020,26 +10501,10 @@ dependencies = [ "xcm-primitives 0.1.0", ] -[[package]] -name = "pallet-membership" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", -] - [[package]] name = "pallet-message-queue" -version = "43.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "44.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "environmental", "frame-benchmarking", @@ -10057,8 +10522,8 @@ dependencies = [ [[package]] name = "pallet-meta-tx" -version = "0.2.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.3.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "frame-benchmarking", @@ -10075,8 +10540,8 @@ dependencies = [ [[package]] name = "pallet-migrations" -version = "10.1.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "11.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "frame-benchmarking", @@ -10094,8 +10559,8 @@ dependencies = [ [[package]] name = "pallet-mmr" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "log", "parity-scale-codec", @@ -10144,7 +10609,7 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "precompile-utils", - "rlp", + "rlp 0.6.1", "scale-info", "sp-core", "sp-io", @@ -10171,8 +10636,8 @@ dependencies = [ [[package]] name = "pallet-multisig" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "log", "parity-scale-codec", @@ -10182,8 +10647,8 @@ dependencies = [ [[package]] name = "pallet-nis" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10192,8 +10657,8 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" -version = "38.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "39.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "frame-system", @@ -10210,8 +10675,8 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" -version = "38.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "39.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10230,8 +10695,8 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" -version = "36.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -10240,8 +10705,8 @@ dependencies = [ [[package]] name = "pallet-offences" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "frame-system", @@ -10255,8 +10720,8 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10300,8 +10765,8 @@ dependencies = [ [[package]] name = "pallet-parameters" -version = "0.11.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.12.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cumulus-primitives-storage-weight-reclaim", "docify", @@ -10338,8 +10803,8 @@ dependencies = [ [[package]] name = "pallet-preimage" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -10354,8 +10819,8 @@ dependencies = [ [[package]] name = "pallet-proxy" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10383,7 +10848,7 @@ dependencies = [ [[package]] name = "pallet-randomness" version = "0.1.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "environmental", "frame-benchmarking", @@ -10407,8 +10872,8 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.2" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -10425,22 +10890,18 @@ dependencies = [ [[package]] name = "pallet-recovery" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", - "sp-io", - "sp-runtime", ] [[package]] name = "pallet-referenda" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "assert_matches", "frame-benchmarking", @@ -10458,7 +10919,7 @@ dependencies = [ [[package]] name = "pallet-relay-storage-roots" version = "0.1.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -10479,23 +10940,104 @@ dependencies = [ ] [[package]] -name = "pallet-root-testing" -version = "16.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +name = "pallet-revive" +version = "0.7.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ + "alloy-core", + "derive_more 0.99.20", + "environmental", + "ethereum-standards", + "ethereum-types", + "frame-benchmarking", "frame-support", "frame-system", + "hex-literal", + "humantime-serde", + "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", + "rand_pcg", + "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", + "substrate-bn", + "subxt-signer", +] + +[[package]] +name = "pallet-revive-fixtures" +version = "0.4.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" +dependencies = [ + "anyhow", + "cargo_metadata", + "pallet-revive-uapi", + "polkavm-linker 0.21.0", + "sp-core", + "sp-io", + "toml 0.8.22", +] + +[[package]] +name = "pallet-revive-proc-macro" +version = "0.3.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "pallet-revive-uapi" +version = "0.5.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" +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 = "17.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-scheduler" -version = "41.2.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "42.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "frame-benchmarking", @@ -10511,8 +11053,8 @@ dependencies = [ [[package]] name = "pallet-session" -version = "40.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "frame-system", @@ -10532,8 +11074,8 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -10548,8 +11090,8 @@ dependencies = [ [[package]] name = "pallet-society" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -10565,8 +11107,8 @@ dependencies = [ [[package]] name = "pallet-staking" -version = "40.1.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10585,10 +11127,46 @@ dependencies = [ "sp-staking", ] +[[package]] +name = "pallet-staking-async-ah-client" +version = "0.2.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" +dependencies = [ + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "pallet-staking-async-rc-client", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-staking", +] + +[[package]] +name = "pallet-staking-async-rc-client" +version = "0.2.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-staking", + "staging-xcm", +] + [[package]] name = "pallet-staking-reward-fn" -version = "22.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "23.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "log", "sp-arithmetic", @@ -10596,8 +11174,8 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" -version = "26.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "27.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "sp-api", @@ -10606,8 +11184,8 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" -version = "45.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "46.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -10622,8 +11200,8 @@ dependencies = [ [[package]] name = "pallet-sudo" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "frame-benchmarking", @@ -10637,8 +11215,8 @@ dependencies = [ [[package]] name = "pallet-timestamp" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "frame-benchmarking", @@ -10648,7 +11226,6 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-inherents", - "sp-io", "sp-runtime", "sp-storage", "sp-timestamp", @@ -10656,8 +11233,8 @@ dependencies = [ [[package]] name = "pallet-tips" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -10674,8 +11251,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -10683,15 +11260,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", "sp-io", "sp-runtime", ] [[package]] name = "pallet-transaction-payment-rpc" -version = "43.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "44.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -10706,8 +11282,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -10718,8 +11294,8 @@ dependencies = [ [[package]] name = "pallet-treasury" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "frame-benchmarking", @@ -10737,8 +11313,8 @@ dependencies = [ [[package]] name = "pallet-utility" -version = "40.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -10752,15 +11328,14 @@ dependencies = [ [[package]] name = "pallet-verify-signature" -version = "0.3.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.4.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core", "sp-io", "sp-runtime", "sp-weights", @@ -10768,8 +11343,8 @@ dependencies = [ [[package]] name = "pallet-vesting" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -10782,8 +11357,8 @@ dependencies = [ [[package]] name = "pallet-whitelist" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10792,8 +11367,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "19.2.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "20.1.3" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -10817,8 +11392,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "20.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "21.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-benchmarking", "frame-support", @@ -10834,8 +11409,8 @@ dependencies = [ [[package]] name = "pallet-xcm-bridge-hub" -version = "0.16.3" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.17.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-messages", "bp-runtime", @@ -10901,8 +11476,8 @@ dependencies = [ [[package]] name = "parachains-common" -version = "21.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "22.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -10935,8 +11510,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" dependencies = [ "bitcoin_hashes 0.13.0", - "rand 0.7.3", - "rand_core 0.5.1", + "rand 0.8.5", + "rand_core 0.6.4", "serde", "unicode-normalization", ] @@ -11232,8 +11807,8 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "polkadot-approval-distribution" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "futures-timer", @@ -11250,8 +11825,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "23.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "futures-timer", @@ -11265,8 +11840,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "fatality", "futures 0.3.31", @@ -11288,8 +11863,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "fatality", @@ -11321,8 +11896,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "24.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "25.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "clap", "frame-benchmarking-cli", @@ -11345,8 +11920,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bitvec", "fatality", @@ -11368,8 +11943,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "17.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "18.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "scale-info", @@ -11379,8 +11954,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "fatality", "futures 0.3.31", @@ -11401,8 +11976,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "19.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "20.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -11415,8 +11990,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "23.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "futures-timer", @@ -11429,15 +12004,15 @@ dependencies = [ "sc-network", "sp-application-crypto", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-keystore", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "always-assert", "async-trait", @@ -11459,8 +12034,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "parity-scale-codec", @@ -11477,8 +12052,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "bitvec", @@ -11509,8 +12084,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting-parallel" -version = "0.6.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "futures 0.3.31", @@ -11533,8 +12108,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bitvec", "futures 0.3.31", @@ -11552,8 +12127,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bitvec", "fatality", @@ -11573,8 +12148,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "polkadot-node-subsystem", @@ -11588,8 +12163,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "futures 0.3.31", @@ -11610,8 +12185,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "polkadot-node-metrics", @@ -11624,8 +12199,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "futures-timer", @@ -11640,8 +12215,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "fatality", "futures 0.3.31", @@ -11658,8 +12233,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "futures 0.3.31", @@ -11675,8 +12250,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" -version = "22.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "23.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "fatality", "futures 0.3.31", @@ -11689,8 +12264,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bitvec", "fatality", @@ -11706,11 +12281,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "always-assert", - "array-bytes", + "array-bytes 6.2.3", "futures 0.3.31", "futures-timer", "parity-scale-codec", @@ -11734,8 +12309,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "polkadot-node-subsystem", @@ -11747,8 +12322,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" -version = "19.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "20.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cpu-time", "futures 0.3.31", @@ -11763,7 +12338,7 @@ dependencies = [ "sc-executor-wasmtime", "seccompiler", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-externalities", "sp-io", "sp-tracing", @@ -11773,8 +12348,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "polkadot-node-metrics", @@ -11788,8 +12363,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bs58", "futures 0.3.31", @@ -11805,8 +12380,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "23.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -11830,8 +12405,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "19.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "20.1.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bitvec", "bounded-vec", @@ -11854,8 +12429,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "polkadot-node-subsystem-types", "polkadot-overseer", @@ -11863,8 +12438,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "derive_more 0.99.20", @@ -11891,8 +12466,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "fatality", "futures 0.3.31", @@ -11911,7 +12486,6 @@ dependencies = [ "polkadot-primitives", "prioritized-metered-channel", "rand 0.8.5", - "sc-client-api", "sc-keystore", "schnellru", "sp-application-crypto", @@ -11923,8 +12497,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "futures 0.3.31", @@ -11943,8 +12517,8 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" -version = "16.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "17.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bounded-collections", "derive_more 0.99.20", @@ -11959,10 +12533,11 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "18.2.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "19.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bitvec", + "bounded-collections", "hex-literal", "log", "parity-scale-codec", @@ -11987,8 +12562,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "24.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "25.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -12020,8 +12595,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "19.1.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "20.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bitvec", "frame-benchmarking", @@ -12070,8 +12645,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "20.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "21.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bs58", "frame-benchmarking", @@ -12082,12 +12657,13 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "19.2.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "20.0.3" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bitflags 1.3.2", "bitvec", "frame-benchmarking", + "frame-election-provider-support", "frame-support", "frame-system", "impl-trait-for-tuples", @@ -12127,19 +12703,10 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "polkadot-sdk" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb819108697967452fa6d8d96ab4c0d48cbaa423b3156499dcb24f1cf95d6775" -dependencies = [ - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "polkadot-sdk-frame" -version = "0.9.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.10.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "frame-benchmarking", @@ -12173,8 +12740,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "24.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "25.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "frame-benchmarking", @@ -12281,15 +12848,13 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "arrayvec 0.7.6", "bitvec", "fatality", "futures 0.3.31", "futures-timer", - "indexmap 2.9.0", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -12297,15 +12862,14 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "sp-keystore", - "sp-staking", "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-statement-table" -version = "19.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "20.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -12314,52 +12878,106 @@ dependencies = [ [[package]] name = "polkavm" -version = "0.18.0" +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]] +name = "polkavm" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd044ab1d3b11567ab6b98ca71259a992b4034220d5972988a0e96518e5d343d" +checksum = "f2a01db119bb3a86572c0641ba6e7c9786fbd2ac89c25b43b688c4e353787526" dependencies = [ "libc", "log", - "polkavm-assembler", - "polkavm-common", - "polkavm-linux-raw", + "polkavm-assembler 0.24.0", + "polkavm-common 0.24.0", + "polkavm-linux-raw 0.24.0", ] [[package]] name = "polkavm-assembler" -version = "0.18.0" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f512bc80cb10439391a7c13a9eb2d37cf66b7305e7df0a06d662eff4f5b07625" +dependencies = [ + "log", +] + +[[package]] +name = "polkavm-assembler" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaad38dc420bfed79e6f731471c973ce5ff5e47ab403e63cf40358fef8a6368f" +checksum = "eea6105f3f344abe0bf0151d67b3de6f5d24353f2393355ecf3f5f6e06d7fd0b" dependencies = [ "log", ] [[package]] name = "polkavm-common" -version = "0.18.0" +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]] +name = "polkavm-common" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31ff33982a807d8567645d4784b9b5d7ab87bcb494f534a57cadd9012688e102" +checksum = "d91ed9e5af472f729fcf3b3c1cf17508ddbb3505259dd6e2ee0fb5a29e105d22" dependencies = [ "log", - "polkavm-assembler", + "polkavm-assembler 0.24.0", ] [[package]] name = "polkavm-derive" -version = "0.18.0" +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]] +name = "polkavm-derive" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "176144f8661117ea95fa7cf868c9a62d6b143e8a2ebcb7582464c3faade8669a" +dependencies = [ + "polkavm-derive-impl-macro 0.24.0", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2eb703f3b6404c13228402e98a5eae063fd16b8f58afe334073ec105ee4117e" +checksum = "24fd6c6215450c3e57511df5c38a82eb4bde208de15ee15046ac33852f3c3eaa" dependencies = [ - "polkavm-derive-impl-macro", + "polkavm-common 0.21.0", + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] name = "polkavm-derive-impl" -version = "0.18.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f2116a92e6e96220a398930f4c8a6cda1264206f3e2034fc9982bfd93f261f7" +checksum = "c5a21844afdfcc10c92b9ef288ccb926211af27478d1730fcd55e4aec710179d" dependencies = [ - "polkavm-common", + "polkavm-common 0.24.0", "proc-macro2", "quote", "syn 2.0.101", @@ -12367,35 +12985,67 @@ dependencies = [ [[package]] name = "polkavm-derive-impl-macro" -version = "0.18.0" +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.101", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c16669ddc7433e34c1007d31080b80901e3e8e523cb9d4b441c3910cf9294b" +checksum = "ba0ef0f17ad81413ea1ca5b1b67553aedf5650c88269b673d3ba015c83bc2651" dependencies = [ - "polkavm-derive-impl", + "polkavm-derive-impl 0.24.0", "syn 2.0.101", ] [[package]] name = "polkavm-linker" -version = "0.18.0" +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", +] + +[[package]] +name = "polkavm-linker" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9bfe793b094d9ea5c99b7c43ba46e277b0f8f48f4bbfdbabf8d3ebf701a4bd3" +checksum = "06c95a521a1331024ebe5823ffdfba9ea6df40b934b0804049d5171887579806" dependencies = [ "dirs", "gimli 0.31.1", "hashbrown 0.14.5", "log", "object 0.36.7", - "polkavm-common", + "polkavm-common 0.24.0", "regalloc2 0.9.3", "rustc-demangle", ] [[package]] name = "polkavm-linux-raw" -version = "0.18.0" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be6cd1d48c5e7814d287a3e12a339386a5dfa2f3ac72f932335f4cf56467f1b3" + +[[package]] +name = "polkavm-linux-raw" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23eff02c070c70f31878a3d915e88a914ecf3e153741e2fb572dde28cce20fde" +checksum = "4ec0b13e26ec7234dba213ca17118c70c562809bdce0eefe84f92613d5c8da26" [[package]] name = "polling" @@ -12475,7 +13125,7 @@ dependencies = [ [[package]] name = "precompile-utils" version = "0.1.0" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "derive_more 1.0.0", "environmental", @@ -12504,14 +13154,14 @@ dependencies = [ [[package]] name = "precompile-utils-macro" version = "0.1.0" -source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2503#5b38fdfd0362f7f941d14e1ab9dea39ddf9efd65" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-stable2506#29be929e37829e5bb23a633b0afc3707b6483664" dependencies = [ "case", "num_enum 0.7.3", "prettyplease", "proc-macro2", "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "syn 2.0.101", ] @@ -12560,6 +13210,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" @@ -12567,7 +13228,7 @@ 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", @@ -12719,6 +13380,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", @@ -12726,6 +13389,8 @@ dependencies = [ "rand_chacha 0.3.1", "rand_xorshift", "regex-syntax 0.8.5", + "rusty-fork", + "tempfile", "unarray", ] @@ -12766,7 +13431,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ "heck 0.5.0", - "itertools 0.11.0", + "itertools 0.13.0", "log", "multimap", "once_cell", @@ -12786,7 +13451,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" dependencies = [ "heck 0.5.0", - "itertools 0.11.0", + "itertools 0.13.0", "log", "multimap", "once_cell", @@ -12819,7 +13484,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.11.0", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.101", @@ -12832,7 +13497,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" dependencies = [ "anyhow", - "itertools 0.11.0", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.101", @@ -12880,6 +13545,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" @@ -13005,6 +13676,7 @@ checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", + "serde", ] [[package]] @@ -13062,6 +13734,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom 0.3.2", + "serde", ] [[package]] @@ -13332,6 +14005,16 @@ dependencies = [ "digest 0.10.7", ] +[[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" @@ -13366,8 +14049,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "binary-merkle-tree", "bitvec", @@ -13464,8 +14147,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "20.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "21.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "polkadot-primitives", @@ -13523,6 +14206,39 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "ruint" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" +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" @@ -13547,6 +14263,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" @@ -13706,6 +14431,18 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +[[package]] +name = "rusty-fork" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + [[package]] name = "ruzstd" version = "0.4.0" @@ -13773,8 +14510,8 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "31.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "32.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "log", "sp-core", @@ -13784,8 +14521,8 @@ dependencies = [ [[package]] name = "sc-authority-discovery" -version = "0.50.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.51.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "futures 0.3.31", @@ -13800,6 +14537,8 @@ dependencies = [ "sc-client-api", "sc-network", "sc-network-types", + "serde", + "serde_json", "sp-api", "sp-authority-discovery", "sp-blockchain", @@ -13808,12 +14547,13 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror 1.0.69", + "tokio", ] [[package]] name = "sc-basic-authorship" -version = "0.49.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.50.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "log", @@ -13833,8 +14573,8 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.44.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.45.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "sp-api", @@ -13848,10 +14588,10 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "43.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "44.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "docify", "memmap2 0.9.5", "parity-scale-codec", @@ -13864,7 +14604,7 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-genesis-builder", "sp-io", "sp-runtime", @@ -13875,7 +14615,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "12.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -13885,10 +14625,10 @@ dependencies = [ [[package]] name = "sc-cli" -version = "0.52.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.53.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "chrono", "clap", "fdlimit", @@ -13930,8 +14670,8 @@ dependencies = [ [[package]] name = "sc-client-api" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "fnv", "futures 0.3.31", @@ -13956,8 +14696,8 @@ dependencies = [ [[package]] name = "sc-client-db" -version = "0.46.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.47.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "hash-db", "kvdb", @@ -13978,12 +14718,14 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-trie", + "substrate-prometheus-endpoint", + "sysinfo", ] [[package]] name = "sc-consensus" -version = "0.49.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.50.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "futures 0.3.31", @@ -14005,8 +14747,8 @@ dependencies = [ [[package]] name = "sc-consensus-aura" -version = "0.50.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.51.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "futures 0.3.31", @@ -14034,8 +14776,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.50.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.51.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "fork-tree", @@ -14060,7 +14802,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-inherents", "sp-keystore", "sp-runtime", @@ -14070,8 +14812,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" -version = "0.50.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.51.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "jsonrpsee", @@ -14092,10 +14834,10 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" -version = "29.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "30.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "futures 0.3.31", @@ -14126,8 +14868,8 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" -version = "29.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "30.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "jsonrpsee", @@ -14146,8 +14888,8 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" -version = "0.49.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.50.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "fork-tree", "parity-scale-codec", @@ -14159,11 +14901,11 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" -version = "0.35.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.36.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "ahash", - "array-bytes", + "array-bytes 6.2.3", "async-trait", "dyn-clone", "finality-grandpa", @@ -14194,7 +14936,7 @@ dependencies = [ "sp-consensus", "sp-consensus-grandpa", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -14203,8 +14945,8 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" -version = "0.35.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.36.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "finality-grandpa", "futures 0.3.31", @@ -14223,8 +14965,8 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" -version = "0.51.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.52.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "assert_matches", "async-trait", @@ -14258,8 +15000,8 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.49.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.50.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "futures 0.3.31", @@ -14281,8 +15023,8 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.42.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.43.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "log", "parity-scale-codec", @@ -14305,11 +15047,11 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.38.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.39.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", - "polkavm", + "polkavm 0.24.0", "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface", @@ -14319,19 +15061,19 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" -version = "0.35.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.36.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "log", - "polkavm", + "polkavm 0.24.0", "sc-executor-common", "sp-wasm-interface", ] [[package]] name = "sc-executor-wasmtime" -version = "0.38.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.39.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "anyhow", "log", @@ -14347,8 +15089,8 @@ dependencies = [ [[package]] name = "sc-informant" -version = "0.49.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.50.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "console", "futures 0.3.31", @@ -14363,10 +15105,10 @@ dependencies = [ [[package]] name = "sc-keystore" -version = "35.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "36.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "parking_lot 0.12.3", "serde_json", "sp-application-crypto", @@ -14377,10 +15119,10 @@ dependencies = [ [[package]] name = "sc-mixnet" -version = "0.20.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "arrayvec 0.7.6", "blake2 0.10.6", "bytes", @@ -14405,10 +15147,10 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.50.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.51.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "asynchronous-codec 0.6.2", @@ -14455,8 +15197,8 @@ dependencies = [ [[package]] name = "sc-network-common" -version = "0.48.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.49.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -14465,8 +15207,8 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.50.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.51.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "ahash", "futures 0.3.31", @@ -14484,10 +15226,10 @@ dependencies = [ [[package]] name = "sc-network-light" -version = "0.49.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.50.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "async-channel 1.9.0", "futures 0.3.31", "log", @@ -14505,10 +15247,10 @@ dependencies = [ [[package]] name = "sc-network-sync" -version = "0.49.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.50.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "fork-tree", @@ -14540,10 +15282,10 @@ dependencies = [ [[package]] name = "sc-network-transactions" -version = "0.49.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.50.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "futures 0.3.31", "log", "parity-scale-codec", @@ -14559,8 +15301,8 @@ dependencies = [ [[package]] name = "sc-network-types" -version = "0.16.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.17.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bs58", "bytes", @@ -14572,14 +15314,16 @@ dependencies = [ "multiaddr 0.18.2", "multihash 0.19.3", "rand 0.8.5", + "serde", + "serde_with", "thiserror 1.0.69", "zeroize", ] [[package]] name = "sc-offchain" -version = "45.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "46.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bytes", "fnv", @@ -14613,7 +15357,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.20.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -14621,8 +15365,8 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "45.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "46.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "jsonrpsee", @@ -14653,8 +15397,8 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.49.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.50.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -14673,8 +15417,8 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "22.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "23.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "dyn-clone", "forwarded-header-value", @@ -14697,10 +15441,10 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" -version = "0.50.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.51.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "futures 0.3.31", "futures-util", "hex", @@ -14730,14 +15474,14 @@ dependencies = [ [[package]] name = "sc-runtime-utilities" -version = "0.2.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.3.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "sc-executor", "sc-executor-common", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-state-machine", "sp-wasm-interface", "thiserror 1.0.69", @@ -14745,8 +15489,8 @@ dependencies = [ [[package]] name = "sc-service" -version = "0.51.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.52.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "directories", @@ -14809,8 +15553,8 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.38.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.39.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "log", "parity-scale-codec", @@ -14820,8 +15564,8 @@ dependencies = [ [[package]] name = "sc-storage-monitor" -version = "0.24.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.25.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "clap", "fs4", @@ -14833,8 +15577,8 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" -version = "0.50.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.51.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -14852,8 +15596,8 @@ dependencies = [ [[package]] name = "sc-sysinfo" -version = "42.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "43.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "derive_more 0.99.20", "futures 0.3.31", @@ -14866,14 +15610,14 @@ dependencies = [ "serde", "serde_json", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-io", ] [[package]] name = "sc-telemetry" -version = "28.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "29.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "chrono", "futures 0.3.31", @@ -14891,11 +15635,12 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "chrono", "console", + "frame-metadata 23.0.0", "is-terminal", "libc", "log", @@ -14921,7 +15666,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -14931,8 +15676,8 @@ dependencies = [ [[package]] name = "sc-transaction-pool" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.1.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "futures 0.3.31", @@ -14940,7 +15685,6 @@ dependencies = [ "indexmap 2.9.0", "itertools 0.11.0", "linked-hash-map", - "log", "parity-scale-codec", "parking_lot 0.12.3", "sc-client-api", @@ -14950,7 +15694,7 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-runtime", "sp-tracing", "sp-transaction-pool", @@ -14963,8 +15707,8 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "futures 0.3.31", @@ -14980,8 +15724,8 @@ dependencies = [ [[package]] name = "sc-utils" -version = "18.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "19.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-channel 1.9.0", "futures 0.3.31", @@ -14994,9 +15738,9 @@ dependencies = [ [[package]] name = "scale-bits" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54" +checksum = "27243ab0d2d6235072b017839c5f0cd1a3b1ce45c0f7a715363b0c7d36c76c94" dependencies = [ "parity-scale-codec", "scale-info", @@ -15006,39 +15750,26 @@ dependencies = [ [[package]] name = "scale-decode" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" -dependencies = [ - "derive_more 0.99.20", - "parity-scale-codec", - "scale-bits", - "scale-type-resolver", - "smallvec", -] - -[[package]] -name = "scale-decode" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ae9cc099ae85ff28820210732b00f019546f36f33225f509fe25d5816864a0" +checksum = "4d78196772d25b90a98046794ce0fe2588b39ebdfbdc1e45b4c6c85dd43bebad" dependencies = [ - "derive_more 1.0.0", "parity-scale-codec", - "primitive-types", + "primitive-types 0.13.1", "scale-bits", "scale-decode-derive", "scale-type-resolver", "smallvec", + "thiserror 2.0.12", ] [[package]] name = "scale-decode-derive" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ed9401effa946b493f9f84dc03714cca98119b230497df6f3df6b84a2b03648" +checksum = "2f4b54a1211260718b92832b661025d1f1a4b6930fbadd6908e00edd265fa5f7" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.101", @@ -15046,26 +15777,26 @@ dependencies = [ [[package]] name = "scale-encode" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9271284d05d0749c40771c46180ce89905fd95aa72a2a2fddb4b7c0aa424db" +checksum = "64901733157f9d25ef86843bd783eda439fac7efb0ad5a615d12d2cf3a29464b" dependencies = [ - "derive_more 1.0.0", "parity-scale-codec", - "primitive-types", + "primitive-types 0.13.1", "scale-bits", "scale-encode-derive", "scale-type-resolver", "smallvec", + "thiserror 2.0.12", ] [[package]] name = "scale-encode-derive" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "102fbc6236de6c53906c0b262f12c7aa69c2bdc604862c12728f5f4d370bc137" +checksum = "78a3993a13b4eafa89350604672c8757b7ea84c7c5947d4b3691e3169c96379b" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro-crate 3.3.0", "proc-macro2", "quote", @@ -15110,34 +15841,33 @@ dependencies = [ [[package]] name = "scale-typegen" -version = "0.9.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc4c70c7fea2eef1740f0081d3fe385d8bee1eef11e9272d3bec7dc8e5438e0" +checksum = "05c61b6b706a3eaad63b506ab50a1d2319f817ae01cf753adcc3f055f9f0fcd6" dependencies = [ "proc-macro2", "quote", "scale-info", "syn 2.0.101", - "thiserror 1.0.69", + "thiserror 2.0.12", ] [[package]] name = "scale-value" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e0ef2a0ee1e02a69ada37feb87ea1616ce9808aca072befe2d3131bf28576e" +checksum = "8ca8b26b451ecb7fd7b62b259fa28add63d12ec49bbcac0e01fcb4b5ae0c09aa" dependencies = [ "base58", "blake2 0.10.6", - "derive_more 1.0.0", "either", "parity-scale-codec", "scale-bits", - "scale-decode 0.14.0", + "scale-decode", "scale-encode", - "scale-info", "scale-type-resolver", "serde", + "thiserror 2.0.12", "yap", ] @@ -15366,7 +16096,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]] @@ -15384,6 +16123,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" @@ -15434,6 +16182,34 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_with" +version = "3.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c522100790450cf78eeac1507263d0a350d4d5b30df0c8e1fe051a10c22b376e" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327ada00f7d64abaac1e55a6911e90cf665aa051b9a561c7006c157f4633135e" +dependencies = [ + "darling 0.21.3", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "serdect" version = "0.2.0" @@ -15447,7 +16223,7 @@ dependencies = [ [[package]] name = "session-keys-primitives" version = "0.1.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "async-trait", "frame-support", @@ -15522,6 +16298,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" @@ -15633,8 +16419,8 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "17.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "18.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "enumn", "parity-scale-codec", @@ -15889,18 +16675,17 @@ dependencies = [ "curve25519-dalek", "rand_core 0.6.4", "ring 0.17.14", - "rustc_version", + "rustc_version 0.4.1", "sha2 0.10.9", "subtle 2.6.1", ] [[package]] name = "snowbridge-core" -version = "0.13.2" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.14.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bp-relayers", - "ethabi-decode", "frame-support", "frame-system", "hex-literal", @@ -15982,8 +16767,8 @@ dependencies = [ [[package]] name = "sp-api" -version = "36.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "hash-db", @@ -16004,8 +16789,8 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "22.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "23.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "Inflector", "blake2 0.10.6", @@ -16018,8 +16803,8 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "40.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "scale-info", @@ -16030,8 +16815,8 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "26.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "27.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "integer-sqrt", @@ -16044,8 +16829,8 @@ dependencies = [ [[package]] name = "sp-authority-discovery" -version = "36.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "scale-info", @@ -16056,8 +16841,8 @@ dependencies = [ [[package]] name = "sp-block-builder" -version = "36.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "sp-api", "sp-inherents", @@ -16066,8 +16851,8 @@ dependencies = [ [[package]] name = "sp-blockchain" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "parity-scale-codec", @@ -16085,8 +16870,8 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.42.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.43.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "futures 0.3.31", @@ -16099,8 +16884,8 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.42.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.43.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "parity-scale-codec", @@ -16115,8 +16900,8 @@ dependencies = [ [[package]] name = "sp-consensus-babe" -version = "0.42.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.43.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "parity-scale-codec", @@ -16133,8 +16918,8 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" -version = "24.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "25.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "scale-info", @@ -16142,7 +16927,7 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-io", "sp-keystore", "sp-mmr-primitives", @@ -16153,8 +16938,8 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" -version = "23.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "finality-grandpa", "log", @@ -16170,8 +16955,8 @@ dependencies = [ [[package]] name = "sp-consensus-slots" -version = "0.42.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.43.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "scale-info", @@ -16181,16 +16966,16 @@ dependencies = [ [[package]] name = "sp-core" -version = "36.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "ark-vrf", - "array-bytes", + "array-bytes 6.2.3", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", "bs58", - "dyn-clonable", + "dyn-clone", "ed25519-zebra", "futures 0.3.31", "hash-db", @@ -16205,14 +16990,15 @@ 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", "secp256k1 0.28.2", "secrecy 0.8.0", "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sha2 0.10.9", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -16243,7 +17029,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "blake2b_simd", "byteorder", @@ -16256,17 +17042,17 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "syn 2.0.101", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -16275,7 +17061,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "proc-macro2", "quote", @@ -16285,7 +17071,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.30.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "environmental", "parity-scale-codec", @@ -16294,8 +17080,8 @@ dependencies = [ [[package]] name = "sp-genesis-builder" -version = "0.17.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.18.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "scale-info", @@ -16306,8 +17092,8 @@ dependencies = [ [[package]] name = "sp-inherents" -version = "36.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -16319,8 +17105,8 @@ dependencies = [ [[package]] name = "sp-io" -version = "40.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "41.0.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bytes", "docify", @@ -16328,11 +17114,11 @@ dependencies = [ "libsecp256k1", "log", "parity-scale-codec", - "polkavm-derive", + "polkavm-derive 0.24.0", "rustversion", "secp256k1 0.28.2", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-externalities", "sp-keystore", "sp-runtime-interface", @@ -16345,8 +17131,8 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "41.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "42.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "sp-core", "sp-runtime", @@ -16355,8 +17141,8 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.42.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.43.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -16367,7 +17153,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "thiserror 1.0.69", "zstd 0.12.4", @@ -16375,18 +17161,18 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.10.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.11.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "frame-metadata 20.0.0", + "frame-metadata 23.0.0", "parity-scale-codec", "scale-info", ] [[package]] name = "sp-mixnet" -version = "0.14.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.15.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "scale-info", @@ -16396,8 +17182,8 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" -version = "36.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "log", "parity-scale-codec", @@ -16413,8 +17199,8 @@ dependencies = [ [[package]] name = "sp-npos-elections" -version = "36.2.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "scale-info", @@ -16426,8 +17212,8 @@ dependencies = [ [[package]] name = "sp-offchain" -version = "36.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "sp-api", "sp-core", @@ -16437,7 +17223,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.2" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "backtrace", "regex", @@ -16445,8 +17231,8 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "34.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "35.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -16455,8 +17241,8 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "41.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "42.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "binary-merkle-tree", "docify", @@ -16484,14 +17270,14 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "29.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "30.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "polkavm-derive", - "primitive-types", + "polkavm-derive 0.24.0", + "primitive-types 0.13.1", "sp-externalities", "sp-runtime-interface-proc-macro", "sp-std", @@ -16503,8 +17289,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "18.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "19.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "Inflector", "expander", @@ -16516,8 +17302,8 @@ dependencies = [ [[package]] name = "sp-session" -version = "38.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "39.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "scale-info", @@ -16530,8 +17316,8 @@ dependencies = [ [[package]] name = "sp-staking" -version = "38.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "39.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -16543,8 +17329,8 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.45.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.46.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "hash-db", "log", @@ -16563,8 +17349,8 @@ dependencies = [ [[package]] name = "sp-statement-store" -version = "20.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "21.2.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "aes-gcm", "curve25519-dalek", @@ -16577,7 +17363,7 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", "sp-externalities", "sp-runtime", "sp-runtime-interface", @@ -16588,12 +17374,12 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" [[package]] name = "sp-storage" version = "22.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "impl-serde", "parity-scale-codec", @@ -16604,8 +17390,8 @@ dependencies = [ [[package]] name = "sp-timestamp" -version = "36.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "parity-scale-codec", @@ -16617,7 +17403,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "17.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "tracing", @@ -16627,8 +17413,8 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "36.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "sp-api", "sp-runtime", @@ -16636,8 +17422,8 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" -version = "36.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "37.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "parity-scale-codec", @@ -16650,11 +17436,13 @@ dependencies = [ [[package]] name = "sp-trie" -version = "39.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "ahash", + "foldhash 0.1.5", "hash-db", + "hashbrown 0.15.3", "memory-db", "nohash-hasher", "parity-scale-codec", @@ -16664,6 +17452,7 @@ dependencies = [ "schnellru", "sp-core", "sp-externalities", + "substrate-prometheus-endpoint", "thiserror 1.0.69", "tracing", "trie-db", @@ -16672,8 +17461,8 @@ dependencies = [ [[package]] name = "sp-version" -version = "39.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "40.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "impl-serde", "parity-scale-codec", @@ -16690,7 +17479,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "15.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "parity-scale-codec", "proc-macro-warning", @@ -16701,8 +17490,8 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "21.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "22.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -16713,8 +17502,8 @@ dependencies = [ [[package]] name = "sp-weights" -version = "31.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "32.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -16902,8 +17691,8 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" -version = "0.20.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.21.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -16915,10 +17704,10 @@ dependencies = [ [[package]] name = "staging-xcm" -version = "16.2.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "17.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "bounded-collections", "derive-where", "environmental", @@ -16936,8 +17725,8 @@ dependencies = [ [[package]] name = "staging-xcm-builder" -version = "20.1.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "21.1.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "environmental", "frame-support", @@ -16960,8 +17749,8 @@ dependencies = [ [[package]] name = "staging-xcm-executor" -version = "19.1.3" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "20.0.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "environmental", "frame-benchmarking", @@ -17087,7 +17876,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.6.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -17112,7 +17901,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" [[package]] name = "substrate-fixed" @@ -17126,8 +17915,8 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" -version = "44.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "45.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -17146,8 +17935,8 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.17.3" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.17.6" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "http-body-util", "hyper 1.6.0", @@ -17160,8 +17949,8 @@ dependencies = [ [[package]] name = "substrate-rpc-client" -version = "0.49.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.50.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "async-trait", "jsonrpsee", @@ -17173,8 +17962,8 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" -version = "43.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "44.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -17191,9 +17980,9 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "async-trait", "futures 0.3.31", "parity-scale-codec", @@ -17216,9 +18005,9 @@ dependencies = [ [[package]] name = "substrate-test-runtime" version = "2.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "frame-executive", "frame-metadata-hash-extension", "frame-support", @@ -17228,6 +18017,7 @@ dependencies = [ "pallet-babe", "pallet-balances", "pallet-timestamp", + "pallet-utility", "parity-scale-codec", "sc-service", "scale-info", @@ -17239,7 +18029,8 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-grandpa", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506)", + "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", @@ -17260,7 +18051,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime-client" version = "2.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "futures 0.3.31", "sc-block-builder", @@ -17287,20 +18078,20 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "26.0.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "27.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "build-helper", "cargo_metadata", "console", "filetime", - "frame-metadata 20.0.0", + "frame-metadata 23.0.0", "jobserver", "merkleized-metadata", "parity-scale-codec", "parity-wasm", - "polkavm-linker", + "polkavm-linker 0.24.0", "sc-executor", "shlex", "sp-core", @@ -17335,33 +18126,32 @@ checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" [[package]] name = "subxt" -version = "0.38.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c17d7ec2359d33133b63c97e28c8b7cd3f0a5bc6ce567ae3aef9d9e85be3433" +checksum = "03459d84546def5e1d0d22b162754609f18e031522b0319b53306f5829de9c09" dependencies = [ "async-trait", "derive-where", "either", - "frame-metadata 17.0.0", + "frame-metadata 20.0.0", "futures 0.3.31", "hex", - "impl-serde", - "jsonrpsee", "parity-scale-codec", - "polkadot-sdk", - "primitive-types", + "primitive-types 0.13.1", "scale-bits", - "scale-decode 0.14.0", + "scale-decode", "scale-encode", "scale-info", "scale-value", "serde", "serde_json", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core", "subxt-lightclient", "subxt-macro", "subxt-metadata", - "thiserror 1.0.69", + "subxt-rpcs", + "thiserror 2.0.12", "tokio", "tokio-util", "tracing", @@ -17371,9 +18161,9 @@ dependencies = [ [[package]] name = "subxt-codegen" -version = "0.38.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6550ef451c77db6e3bc7c56fb6fe1dca9398a2c8fc774b127f6a396a769b9c5b" +checksum = "324c52c09919fec8c22a4b572a466878322e99fe14a9e3d50d6c3700a226ec25" dependencies = [ "heck 0.5.0", "parity-scale-codec", @@ -17383,50 +18173,51 @@ dependencies = [ "scale-typegen", "subxt-metadata", "syn 2.0.101", - "thiserror 1.0.69", + "thiserror 2.0.12", ] [[package]] name = "subxt-core" -version = "0.38.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7a1bc6c9c1724971636a66e3225a7253cdb35bb6efb81524a6c71c04f08c59" +checksum = "66ef00be9d64885ec94e478a58e4e39d222024b20013ae7df4fc6ece545391aa" dependencies = [ "base58", "blake2 0.10.6", "derive-where", "frame-decode", - "frame-metadata 17.0.0", + "frame-metadata 20.0.0", "hashbrown 0.14.5", "hex", "impl-serde", "keccak-hash", "parity-scale-codec", - "polkadot-sdk", - "primitive-types", + "primitive-types 0.13.1", "scale-bits", - "scale-decode 0.14.0", + "scale-decode", "scale-encode", "scale-info", "scale-value", "serde", "serde_json", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-metadata", + "thiserror 2.0.12", "tracing", ] [[package]] name = "subxt-lightclient" -version = "0.38.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ebc9131da4d0ba1f7814495b8cc79698798ccd52cacd7bcefe451e415bd945" +checksum = "ce07c2515b2e63b85ec3043fe4461b287af0615d4832c2fe6e81ba780b906bc0" dependencies = [ "futures 0.3.31", "futures-util", "serde", "serde_json", "smoldot-light 0.16.2", - "thiserror 1.0.69", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", @@ -17434,11 +18225,11 @@ dependencies = [ [[package]] name = "subxt-macro" -version = "0.38.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7819c5e09aae0319981ee853869f2fcd1fac4db8babd0d004c17161297aadc05" +checksum = "7c2c8da275a620dd676381d72395dfea91f0a6cd849665b4f1d0919371850701" dependencies = [ - "darling", + "darling 0.20.11", "parity-scale-codec", "proc-macro-error2", "quote", @@ -17450,23 +18241,47 @@ dependencies = [ [[package]] name = "subxt-metadata" -version = "0.38.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aacd4e7484fef58deaa2dcb32d94753a864b208a668c0dd0c28be1d8abeeadb2" +checksum = "fff4591673600c4388e21305788282414d26c791b4dee21b7cb0b19c10076f98" dependencies = [ "frame-decode", - "frame-metadata 17.0.0", + "frame-metadata 20.0.0", "hashbrown 0.14.5", "parity-scale-codec", - "polkadot-sdk", "scale-info", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 2.0.12", +] + +[[package]] +name = "subxt-rpcs" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ba7494d250d65dc3439365ac5e8e0fbb9c3992e6e84b7aa01d69e082249b8b8" +dependencies = [ + "derive-where", + "frame-metadata 20.0.0", + "futures 0.3.31", + "hex", + "impl-serde", + "jsonrpsee", + "parity-scale-codec", + "primitive-types 0.13.1", + "serde", + "serde_json", + "subxt-core", + "subxt-lightclient", + "thiserror 2.0.12", + "tracing", + "url", ] [[package]] name = "subxt-signer" -version = "0.38.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d680352d04665b1e4eb6f9d2a54b800c4d8e1b20478e69be1b7d975b08d9fc34" +checksum = "4a2370298a210ed1df26152db7209a85e0ed8cfbce035309c3b37f7b61755377" dependencies = [ "base64 0.22.1", "bip32", @@ -17478,7 +18293,6 @@ dependencies = [ "keccak-hash", "parity-scale-codec", "pbkdf2 0.12.2", - "polkadot-sdk", "regex", "schnorrkel 0.11.4", "scrypt", @@ -17487,19 +18301,21 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core", + "thiserror 2.0.12", "zeroize", ] [[package]] name = "subxt-utils-fetchmetadata" -version = "0.38.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3c53bc3eeaacc143a2f29ace4082edd2edaccab37b69ad20befba9fb00fdb3d" +checksum = "fc868b55fe2303788dc7703457af390111940c3da4714b510983284501780ed5" dependencies = [ "hex", "parity-scale-codec", - "thiserror 1.0.69", + "thiserror 2.0.12", ] [[package]] @@ -17536,6 +18352,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn-solidity" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2375c17f6067adc651d8c2c51658019cef32edfff4a982adaf1d7fd1c039f08b" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -17559,6 +18387,21 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "sysinfo" +version = "0.30.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "rayon", + "windows 0.52.0", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -18058,8 +18901,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "19.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "20.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "coarsetime", "polkadot-primitives", @@ -18070,7 +18913,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "expander", "proc-macro-crate 3.3.0", @@ -18177,7 +19020,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.7.3", + "rand 0.8.5", "static_assertions", ] @@ -18448,6 +19291,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" @@ -18960,8 +19812,8 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "westend-runtime" -version = "23.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "24.0.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "binary-merkle-tree", "bitvec", @@ -18988,12 +19840,10 @@ dependencies = [ "pallet-delegated-staking", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", - "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-grandpa", "pallet-identity", "pallet-indices", - "pallet-membership", "pallet-message-queue", "pallet-meta-tx", "pallet-migrations", @@ -19013,10 +19863,10 @@ dependencies = [ "pallet-scheduler", "pallet-session", "pallet-session-benchmarking", - "pallet-society", "pallet-staking", + "pallet-staking-async-ah-client", + "pallet-staking-async-rc-client", "pallet-staking-runtime-api", - "pallet-state-trie-migration", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -19069,8 +19919,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "20.0.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "21.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "polkadot-primitives", @@ -19130,6 +19980,16 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core 0.52.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows" version = "0.53.0" @@ -19162,6 +20022,15 @@ dependencies = [ "windows-core 0.61.0", ] +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.53.0" @@ -19572,13 +20441,13 @@ dependencies = [ [[package]] name = "xcm-primitives" version = "0.1.0" -source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2503#f8fa83c577f15c69b394df0f5f648386344e0593" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-stable2506#94e544eb7d6a441ff01fda600309f499087250e3" dependencies = [ "frame-support", "impl-trait-for-tuples", "log", "parity-scale-codec", - "primitive-types", + "primitive-types 0.13.1", "sp-core", "sp-runtime", "sp-std", @@ -19609,7 +20478,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "11.0.2" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "Inflector", "proc-macro2", @@ -19619,8 +20488,8 @@ dependencies = [ [[package]] name = "xcm-runtime-apis" -version = "0.7.1" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "0.8.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "parity-scale-codec", @@ -19633,8 +20502,8 @@ dependencies = [ [[package]] name = "xcm-simulator" -version = "20.1.0" -source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2503#73cb19c8551acea93a4f0eee5aa01bf7a5bfaca0" +version = "21.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-stable2506#9304b02e5ea0268001114655643b95666215e025" dependencies = [ "frame-support", "frame-system", @@ -19700,9 +20569,9 @@ dependencies = [ [[package]] name = "yap" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4524214bc4629eba08d78ceb1d6507070cc0bcbbed23af74e19e6e924a24cf" +checksum = "bfe269e7b803a5e8e20cbd97860e136529cd83bf2c9c6d37b142467e7e1f051f" [[package]] name = "yasna" diff --git a/Cargo.toml b/Cargo.toml index d804902a991..3349932f6ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,6 +50,9 @@ authors = ["PureStake"] edition = "2021" repository = "https://github.com/PureStake/moonbeam" +[workspace.lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(substrate_runtime)'] } + [workspace.dependencies] # Dependencies are split into 2 groups: wasm and client. # - "wasm" dependencies requires to be no_std compatible, which often requires @@ -129,231 +132,232 @@ moonbase-runtime = { path = "runtime/moonbase" } moonbeam-runtime = { path = "runtime/moonbeam" } moonriver-runtime = { path = "runtime/moonriver" } -frame-benchmarking = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -frame-executive = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -frame-support = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -frame-system = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -frame-system-benchmarking = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -frame-try-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-assets = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-balances = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-collective = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-conviction-voting = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-identity = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-message-queue = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-multisig = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-migrations = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-preimage = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-parameters = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-proxy = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-referenda = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-root-testing = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-scheduler = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-staking = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-sudo = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-timestamp = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-transaction-payment = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-treasury = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-utility = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-whitelist = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } +frame-benchmarking = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +frame-executive = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +frame-support = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +frame-system = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +frame-system-benchmarking = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +frame-try-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-assets = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-balances = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-collective = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-conviction-voting = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-identity = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-message-queue = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-multisig = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-migrations = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-preimage = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-parameters = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-proxy = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-referenda = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-root-testing = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-scheduler = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-staking = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-sudo = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-timestamp = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-transaction-payment = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-treasury = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-utility = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-whitelist = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } parity-scale-codec = { version = "3.7.5", default-features = false, features = [ "derive", ] } scale-info = { version = "2.11.6", default-features = false, features = [ "derive", ] } -sp-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-application-crypto = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-block-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-consensus-slots = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-core = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-debug-derive = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-externalities = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-inherents = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-io = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-keyring = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-keystore = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-offchain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-runtime-interface = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-session = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-std = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-state-machine = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-tracing = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-transaction-pool = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-trie = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-version = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-weights = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -sp-genesis-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } +sp-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-application-crypto = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-block-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-consensus-slots = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-core = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-debug-derive = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-externalities = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-inherents = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-io = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-keyring = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-keystore = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-offchain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-runtime-interface = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-session = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-std = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-state-machine = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-tracing = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-transaction-pool = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-trie = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-version = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-weights = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +sp-genesis-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } substrate-fixed = { git = "https://github.com/encointer/substrate-fixed", default-features = false } # Substrate (client) -frame-benchmarking-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -pallet-transaction-payment-rpc = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-basic-authorship = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-block-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-chain-spec = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-client-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-client-db = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-consensus = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-consensus-manual-seal = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-executor = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-network = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-network-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-network-sync = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-offchain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-rpc = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-service = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-sysinfo = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-telemetry = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-tracing = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-transaction-pool = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-transaction-pool-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sc-utils = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sp-blockchain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sp-consensus = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sp-storage = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sp-timestamp = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -sp-rpc = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -substrate-build-script-utils = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -substrate-frame-rpc-system = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -substrate-prometheus-endpoint = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -substrate-test-client = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -substrate-test-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -substrate-test-runtime-client = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -substrate-wasm-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -substrate-rpc-client = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } +frame-benchmarking-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +pallet-transaction-payment-rpc = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-basic-authorship = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-block-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-chain-spec = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-client-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-client-db = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-consensus = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-consensus-manual-seal = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-executor = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-network = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-network-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-network-sync = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-offchain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-rpc = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-service = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-sysinfo = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-telemetry = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-tracing = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-transaction-pool = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-transaction-pool-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sc-utils = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sp-blockchain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sp-consensus = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sp-storage = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sp-timestamp = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +sp-rpc = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +substrate-build-script-utils = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +substrate-frame-rpc-system = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +substrate-prometheus-endpoint = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +substrate-test-client = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +substrate-test-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +substrate-test-runtime-client = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +substrate-wasm-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +substrate-rpc-client = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } # Frontier (wasm) -ethereum = { git = "https://github.com/rust-ethereum/ethereum", rev = "cf3076f07e61102eec686f6816da668f97d94f1f", default-features = false, features = [ +ethereum = { version = "0.18.2", default-features = false, features = [ "with-scale", ] } ethereum-types = { version = "0.15.1", default-features = false } -evm = { git = "https://github.com/moonbeam-foundation/evm", branch = "moonbeam-polkadot-stable2503", default-features = false } -evm-gasometer = { git = "https://github.com/moonbeam-foundation/evm", branch = "moonbeam-polkadot-stable2503", default-features = false } -evm-runtime = { git = "https://github.com/moonbeam-foundation/evm", branch = "moonbeam-polkadot-stable2503", default-features = false } -fp-ethereum = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } -fp-evm = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } -fp-rpc = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } -fp-self-contained = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-ethereum = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false, features = [ +evm = { git = "https://github.com/moonbeam-foundation/evm", branch = "moonbeam-polkadot-stable2506", default-features = false } +evm-gasometer = { git = "https://github.com/moonbeam-foundation/evm", branch = "moonbeam-polkadot-stable2506", default-features = false } +evm-runtime = { git = "https://github.com/moonbeam-foundation/evm", branch = "moonbeam-polkadot-stable2506", default-features = false } +fp-ethereum = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } +fp-evm = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } +fp-rpc = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } +fp-self-contained = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-ethereum = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false, features = [ "forbid-evm-reentrancy", ] } -pallet-evm = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false, features = [ +pallet-evm = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false, features = [ "forbid-evm-reentrancy", ] } -pallet-evm-chain-id = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-evm-precompile-blake2 = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-evm-precompile-bn128 = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-evm-precompile-modexp = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-evm-precompile-sha3fips = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-evm-precompile-simple = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-evm-precompile-bls12381 = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } +pallet-evm-chain-id = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-evm-precompile-blake2 = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-evm-precompile-bn128 = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-evm-precompile-modexp = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-evm-precompile-sha3fips = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-evm-precompile-simple = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-evm-precompile-bls12381 = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } -precompile-utils = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } -precompile-utils-macro = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", default-features = false } +precompile-utils = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } +precompile-utils-macro = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", default-features = false } # Frontier (client) -fc-consensus = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503" } -fc-db = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503" } -fc-api = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503" } -fc-mapping-sync = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503" } -fc-rpc = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503", features = [ +fc-consensus = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506" } +fc-db = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506" } +fc-api = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506" } +fc-mapping-sync = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506" } +fc-rpc = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506", features = [ "rpc-binary-search-estimate", ] } -fc-rpc-core = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503" } -fc-rpc-v2-api = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503" } -fc-storage = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2503" } +fc-rpc-core = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506" } +fc-rpc-v2-api = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506" } +fc-storage = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-stable2506" } # Cumulus (wasm) -cumulus-pallet-parachain-system = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -cumulus-pallet-weight-reclaim = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -cumulus-primitives-core = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -cumulus-primitives-parachain-inherent = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -cumulus-test-relay-sproof-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -parachain-info = { package = "staging-parachain-info", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -parachains-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +cumulus-pallet-weight-reclaim = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +cumulus-primitives-core = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +cumulus-primitives-parachain-inherent = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +cumulus-test-relay-sproof-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +parachain-info = { package = "staging-parachain-info", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +parachains-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } # Cumulus (client) -cumulus-client-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -cumulus-client-collator = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -cumulus-client-consensus-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -cumulus-client-consensus-proposer = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -cumulus-client-service = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -cumulus-client-parachain-inherent = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -cumulus-relay-chain-interface = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -cumulus-relay-chain-minimal-node = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } +cumulus-client-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +cumulus-client-collator = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +cumulus-client-consensus-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +cumulus-client-consensus-proposer = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +cumulus-client-service = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +cumulus-client-parachain-inherent = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +cumulus-relay-chain-interface = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +cumulus-relay-chain-minimal-node = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } # Polkadot / XCM (wasm) -pallet-xcm = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-xcm-benchmarks = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -polkadot-core-primitives = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -polkadot-parachain = { package = "polkadot-parachain-primitives", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -polkadot-runtime-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -polkadot-runtime-parachains = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -xcm = { package = "staging-xcm", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -xcm-runtime-apis = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } +pallet-xcm = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-xcm-benchmarks = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +polkadot-core-primitives = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +polkadot-parachain = { package = "polkadot-parachain-primitives", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +polkadot-runtime-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +polkadot-runtime-parachains = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +xcm-runtime-apis = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } # Polkadot / XCM (client) -polkadot-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -polkadot-primitives = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -polkadot-service = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -westend-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } -xcm-simulator = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503" } +polkadot-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +polkadot-primitives = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +polkadot-service = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +westend-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } +xcm-simulator = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506" } # Bridge dependencies -bridge-runtime-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -bp-header-chain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -bp-messages = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -bp-parachains = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -bp-polkadot-core = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -bp-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -bp-westend = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -bp-bridge-hub-cumulus = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-bridge-grandpa = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-bridge-parachains = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-bridge-messages = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-xcm-bridge = { package = "pallet-xcm-bridge-hub", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } -bridge-hub-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } +bridge-runtime-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +bp-header-chain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +bp-messages = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +bp-parachains = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +bp-polkadot-core = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +bp-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +bp-westend = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +bp-bridge-hub-cumulus = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-bridge-grandpa = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-bridge-parachains = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-bridge-messages = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-xcm-bridge = { package = "pallet-xcm-bridge-hub", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } +bridge-hub-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } # Moonkit (wasm) -async-backing-primitives = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -moonkit-xcm-primitives = { package = "xcm-primitives", git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -nimbus-primitives = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-async-backing = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-author-inherent = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-author-mapping = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-author-slot-filter = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-emergency-para-xcm = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-evm-precompile-xcm = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-maintenance-mode = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-randomness = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -pallet-relay-storage-roots = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } -session-keys-primitives = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503", default-features = false } +async-backing-primitives = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +moonkit-xcm-primitives = { package = "xcm-primitives", git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +nimbus-primitives = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-async-backing = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-author-inherent = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-author-mapping = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-author-slot-filter = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-emergency-para-xcm = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-evm-precompile-xcm = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-maintenance-mode = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-randomness = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +pallet-relay-storage-roots = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } +session-keys-primitives = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506", default-features = false } # Moonkit (client) -nimbus-consensus = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2503" } +nimbus-consensus = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-stable2506" } # Other (wasm) async-trait = { version = "0.1.42" } derive_more = "0.99.17" environmental = { version = "1.1.4", default-features = false } -frame-metadata = { version = "20.0.0", default-features = false, features = ["current"] } -frame-metadata-hash-extension = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2503", default-features = false } +frame-metadata = { version = "23.0.0", default-features = false, features = ["current"] } +frame-metadata-hash-extension = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-stable2506", default-features = false } hex = { version = "0.4.3", default-features = false } hex-literal = { version = "0.4.1", default-features = false } impl-serde = { version = "0.5.0", default-features = false } @@ -479,4 +483,4 @@ panic = "unwind" debug = 1 # debug symbols are useful for profilers debug-assertions = true # Enable debug-assert! for non-production profiles inherits = "release" -overflow-checks = true \ No newline at end of file +overflow-checks = true diff --git a/node/cli/src/command.rs b/node/cli/src/command.rs index f121d1217c0..265bd5ca90e 100644 --- a/node/cli/src/command.rs +++ b/node/cli/src/command.rs @@ -627,7 +627,7 @@ pub fn run() -> Result<()> { let db = params.backend.expose_db(); let storage = params.backend.expose_storage(); - cmd.run(config, params.client, db, storage) + cmd.run(config, params.client, db, storage, None) }) } #[cfg(feature = "moonbeam-native")] @@ -646,7 +646,7 @@ pub fn run() -> Result<()> { let db = params.backend.expose_db(); let storage = params.backend.expose_storage(); - cmd.run(config, params.client, db, storage) + cmd.run(config, params.client, db, storage, None) }) } #[cfg(feature = "moonbase-native")] @@ -665,7 +665,7 @@ pub fn run() -> Result<()> { let db = params.backend.expose_db(); let storage = params.backend.expose_storage(); - cmd.run(config, params.client, db, storage) + cmd.run(config, params.client, db, storage, None) }) } #[cfg(not(feature = "moonbase-native"))] diff --git a/node/service/src/lazy_loading/substrate_backend.rs b/node/service/src/lazy_loading/substrate_backend.rs index ec211516742..e0949cb12c4 100644 --- a/node/service/src/lazy_loading/substrate_backend.rs +++ b/node/service/src/lazy_loading/substrate_backend.rs @@ -33,7 +33,7 @@ use std::{ }; use sc_client_api::{ - backend::{self, NewBlockState}, + backend::{self, NewBlockState, TrieCacheContext}, blockchain::{self, BlockStatus, HeaderBackend}, leaves::LeafSet, UsageInfo, @@ -1231,7 +1231,7 @@ impl backend::Backend for Backend sp_blockchain::Result { - let old_state = self.state_at(Default::default())?; + let old_state = self.state_at(Default::default(), TrieCacheContext::Untrusted)?; Ok(BlockImportOperation { pending_block: None, old_state, @@ -1249,7 +1249,7 @@ impl backend::Backend for Backend sp_blockchain::Result<()> { - operation.old_state = self.state_at(block)?; + operation.old_state = self.state_at(block, TrieCacheContext::Untrusted)?; Ok(()) } @@ -1330,7 +1330,11 @@ impl backend::Backend for Backend sp_blockchain::Result { + fn state_at( + &self, + hash: Block::Hash, + _cache_context: sc_client_api::backend::TrieCacheContext, + ) -> sp_blockchain::Result { if hash == Default::default() { return Ok(ForkedLazyBackend:: { rpc_client: self.rpc_client.clone(), @@ -1359,7 +1363,9 @@ impl backend::Backend for Backend { rpc_client: self.rpc_client.clone(), diff --git a/node/service/src/lib.rs b/node/service/src/lib.rs index 2a41e7caad3..c3dc3106409 100644 --- a/node/service/src/lib.rs +++ b/node/service/src/lib.rs @@ -641,7 +641,7 @@ async fn build_relay_chain_interface( Arc<(dyn RelayChainInterface + 'static)>, Option, )> { - if let cumulus_client_cli::RelayChainMode::ExternalRpc(rpc_target_urls) = + let result = if let cumulus_client_cli::RelayChainMode::ExternalRpc(rpc_target_urls) = collator_options.relay_chain_mode { build_minimal_relay_chain_node_with_rpc( @@ -659,7 +659,11 @@ async fn build_relay_chain_interface( task_manager, hwbench, ) - } + }; + + // Extract only the first two elements from the 4-tuple + result + .map(|(relay_chain_interface, collator_pair, _, _)| (relay_chain_interface, collator_pair)) } /// Start a node with the given parachain `Configuration` and relay chain `Configuration`. @@ -736,6 +740,12 @@ where relay_chain_interface: relay_chain_interface.clone(), net_config, sybil_resistance_level: CollatorSybilResistance::Resistant, + metrics: Net::register_notification_metrics( + parachain_config + .prometheus_config + .as_ref() + .map(|config| &config.registry), + ), }) .await?; @@ -946,6 +956,7 @@ where relay_chain_slot_duration, recovery_handle: Box::new(overseer_handle.clone()), sync_service: sync_service.clone(), + prometheus_registry: prometheus_registry.as_ref(), })?; let BlockImportPipeline::Parachain(block_import) = block_import else { @@ -1726,6 +1737,7 @@ mod tests { path: tmp.path().into(), cache_size: 1024, }, + metrics_registry: None, }, u64::MAX, ) @@ -1801,6 +1813,7 @@ mod tests { cache_size: 128, }, trie_cache_maximum_size: Some(16777216), + warm_up_trie_cache: None, state_pruning: Default::default(), blocks_pruning: sc_service::BlocksPruning::KeepAll, chain_spec: Box::new(spec), diff --git a/node/service/src/rpc.rs b/node/service/src/rpc.rs index d906dd87f92..18cc6676779 100644 --- a/node/service/src/rpc.rs +++ b/node/service/src/rpc.rs @@ -273,6 +273,8 @@ where relay_chain_state, downward_messages: Default::default(), horizontal_messages: Default::default(), + relay_parent_descendants: Default::default(), + collator_peer_id: None, }; Ok((timestamp, parachain_inherent_data)) diff --git a/pallets/crowdloan-rewards/Cargo.toml b/pallets/crowdloan-rewards/Cargo.toml index 9fbd09a949e..469b9d48cb4 100644 --- a/pallets/crowdloan-rewards/Cargo.toml +++ b/pallets/crowdloan-rewards/Cargo.toml @@ -12,18 +12,18 @@ parity-scale-codec = { version = "3.6.12", default-features = false} scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } serde = { version = "1.0.188", optional = true, features = ["derive"], default-features = false } -frame-support = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", default-features = false, branch = "moonbeam-polkadot-stable2503" } -frame-system = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", default-features = false, branch = "moonbeam-polkadot-stable2503" } -sp-core = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", default-features = false, branch = "moonbeam-polkadot-stable2503" } -sp-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", default-features = false, branch = "moonbeam-polkadot-stable2503" } -sp-std = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", default-features = false, branch = "moonbeam-polkadot-stable2503" } -sp-io = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", default-features = false, branch = "moonbeam-polkadot-stable2503" } -frame-benchmarking = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", default-features = false, optional = true, branch = "moonbeam-polkadot-stable2503" } -sp-trie = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", default-features = false, optional = true, branch = "moonbeam-polkadot-stable2503" } +frame-support = { workspace = true } +frame-system = { workspace = true } +sp-core = { workspace = true } +sp-runtime = { workspace = true } +sp-std = { workspace = true } +sp-io = { workspace = true } +frame-benchmarking = { workspace = true, optional = true } +sp-trie = { workspace = true, optional = true } [dev-dependencies] -pallet-balances = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", default-features = false, branch = "moonbeam-polkadot-stable2503" } -pallet-utility = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", default-features = false, branch = "moonbeam-polkadot-stable2503" } +pallet-balances = { workspace = true, features = ["std"] } +pallet-utility = { workspace = true, features = ["std"] } [features] default = ["std"] diff --git a/pallets/crowdloan-rewards/src/lib.rs b/pallets/crowdloan-rewards/src/lib.rs index 3899438eafd..b5a4db03622 100644 --- a/pallets/crowdloan-rewards/src/lib.rs +++ b/pallets/crowdloan-rewards/src/lib.rs @@ -70,9 +70,7 @@ pub mod pallet { /// Configuration trait of this pallet. #[pallet::config] - pub trait Config: frame_system::Config { - /// The overarching event type - type RuntimeEvent: From> + IsType<::RuntimeEvent>; + pub trait Config: frame_system::Config>> { /// Checker for the reward vec, is it initalized already? type Initialized: Get; /// Percentage to be payed at initialization diff --git a/pallets/crowdloan-rewards/src/mock.rs b/pallets/crowdloan-rewards/src/mock.rs index 29cf64b9272..9cbe41614cb 100644 --- a/pallets/crowdloan-rewards/src/mock.rs +++ b/pallets/crowdloan-rewards/src/mock.rs @@ -129,7 +129,6 @@ parameter_types! { } impl Config for Test { - type RuntimeEvent = RuntimeEvent; type Initialized = Initialized; type InitializationPayment = InitializationPayment; type MaxInitContributors = MaxInitContributors; diff --git a/pallets/erc20-xcm-bridge/src/mock.rs b/pallets/erc20-xcm-bridge/src/mock.rs index 283db1397c2..0cd37201b20 100644 --- a/pallets/erc20-xcm-bridge/src/mock.rs +++ b/pallets/erc20-xcm-bridge/src/mock.rs @@ -144,7 +144,6 @@ impl pallet_evm::Config for Test { type WithdrawOrigin = EnsureAddressTruncated; type AddressMapping = HashedAddressMapping; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type PrecompilesType = (); type PrecompilesValue = (); type Runner = pallet_evm::runner::stack::Runner; diff --git a/pallets/erc20-xcm-bridge/src/xcm_holding_ext.rs b/pallets/erc20-xcm-bridge/src/xcm_holding_ext.rs index 1b2126ec1af..6374220c6ec 100644 --- a/pallets/erc20-xcm-bridge/src/xcm_holding_ext.rs +++ b/pallets/erc20-xcm-bridge/src/xcm_holding_ext.rs @@ -108,8 +108,9 @@ where fn prepare( message: xcm::latest::Xcm, - ) -> Result> { - InnerXcmExecutor::prepare(message) + weight_limit: Weight, + ) -> Result { + InnerXcmExecutor::prepare(message, weight_limit) } fn execute( diff --git a/pallets/ethereum-xcm/src/lib.rs b/pallets/ethereum-xcm/src/lib.rs index 43b2d7421fe..56f1bf39096 100644 --- a/pallets/ethereum-xcm/src/lib.rs +++ b/pallets/ethereum-xcm/src/lib.rs @@ -121,9 +121,9 @@ pub mod pallet { use frame_support::pallet_prelude::*; #[pallet::config] - pub trait Config: frame_system::Config + pallet_evm::Config { - /// The overarching event type. - type RuntimeEvent: From> + IsType<::RuntimeEvent>; + pub trait Config: + frame_system::Config>> + pallet_evm::Config + { /// Invalid transaction error type InvalidEvmTransactionError: From; /// Handler for applying an already validated transaction diff --git a/pallets/ethereum-xcm/src/mock.rs b/pallets/ethereum-xcm/src/mock.rs index fd5d46e78aa..adc38231af4 100644 --- a/pallets/ethereum-xcm/src/mock.rs +++ b/pallets/ethereum-xcm/src/mock.rs @@ -185,7 +185,6 @@ impl pallet_evm::Config for Test { type WithdrawOrigin = EnsureAddressTruncated; type AddressMapping = HashedAddressMapping; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type PrecompilesType = (); type PrecompilesValue = (); type Runner = pallet_evm::runner::stack::Runner; @@ -209,7 +208,6 @@ parameter_types! { } impl pallet_ethereum::Config for Test { - type RuntimeEvent = RuntimeEvent; type StateRoot = IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; type ExtraDataLength = ConstU32<30>; @@ -294,7 +292,6 @@ impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { } impl crate::Config for Test { - type RuntimeEvent = RuntimeEvent; type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; type XcmEthereumOrigin = crate::EnsureXcmEthereumTransaction; diff --git a/pallets/moonbeam-foreign-assets/src/lib.rs b/pallets/moonbeam-foreign-assets/src/lib.rs index 396488bd224..6b59cb8412b 100644 --- a/pallets/moonbeam-foreign-assets/src/lib.rs +++ b/pallets/moonbeam-foreign-assets/src/lib.rs @@ -184,7 +184,11 @@ pub mod pallet { pub const PALLET_ID: frame_support::PalletId = frame_support::PalletId(*b"forgasst"); #[pallet::config] - pub trait Config: frame_system::Config + pallet_evm::Config + scale_info::TypeInfo { + pub trait Config: + frame_system::Config>> + + pallet_evm::Config + + scale_info::TypeInfo + { // Convert AccountId to H160 type AccountIdToH160: Convert; @@ -215,9 +219,6 @@ pub mod pallet { /// Maximum numbers of different foreign assets type MaxForeignAssets: Get; - /// The overarching event type. - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - /// Weight information for extrinsics in this pallet. type WeightInfo: WeightInfo; diff --git a/pallets/moonbeam-foreign-assets/src/mock.rs b/pallets/moonbeam-foreign-assets/src/mock.rs index 6e967d2d7e7..dc3ac0ab530 100644 --- a/pallets/moonbeam-foreign-assets/src/mock.rs +++ b/pallets/moonbeam-foreign-assets/src/mock.rs @@ -133,7 +133,6 @@ impl pallet_evm::Config for Test { type WithdrawOrigin = pallet_evm::EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type PrecompilesType = (); type PrecompilesValue = (); type Runner = pallet_evm::runner::stack::Runner; @@ -157,7 +156,6 @@ parameter_types! { } impl pallet_ethereum::Config for Test { - type RuntimeEvent = RuntimeEvent; type StateRoot = IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; type ExtraDataLength = ConstU32<30>; @@ -269,7 +267,6 @@ impl crate::Config for Test { type ForeignAssetUnfreezerOrigin = ForeignAssetManagerOrigin; type OnForeignAssetCreated = NoteDownHook; type MaxForeignAssets = ConstU32<3>; - type RuntimeEvent = RuntimeEvent; type WeightInfo = (); type XcmLocationToH160 = (); type ForeignAssetCreationDeposit = ForeignAssetCreationDeposit; diff --git a/pallets/moonbeam-lazy-migrations/src/mock.rs b/pallets/moonbeam-lazy-migrations/src/mock.rs index d8594630b4b..390090efbfa 100644 --- a/pallets/moonbeam-lazy-migrations/src/mock.rs +++ b/pallets/moonbeam-lazy-migrations/src/mock.rs @@ -133,7 +133,6 @@ impl pallet_evm::Config for Test { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = (); type PrecompilesValue = (); diff --git a/pallets/moonbeam-orbiters/src/lib.rs b/pallets/moonbeam-orbiters/src/lib.rs index cdd8991f73e..7e41398eeca 100644 --- a/pallets/moonbeam-orbiters/src/lib.rs +++ b/pallets/moonbeam-orbiters/src/lib.rs @@ -65,10 +65,7 @@ pub mod pallet { >>::ReserveIdentifier; #[pallet::config] - pub trait Config: frame_system::Config { - /// Overarching event type. - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - + pub trait Config: frame_system::Config>> { /// A type to convert between AuthorId and AccountId. This pallet wrap the lookup to allow /// orbiters authoring. type AccountLookup: AccountLookup; diff --git a/pallets/moonbeam-orbiters/src/mock.rs b/pallets/moonbeam-orbiters/src/mock.rs index b3e89cb6d97..f1337861567 100644 --- a/pallets/moonbeam-orbiters/src/mock.rs +++ b/pallets/moonbeam-orbiters/src/mock.rs @@ -130,7 +130,6 @@ impl AccountLookup for MockAccountLookup { } impl pallet_moonbeam_orbiters::Config for Test { - type RuntimeEvent = RuntimeEvent; type AccountLookup = MockAccountLookup; type AddCollatorOrigin = EnsureRoot; type Currency = Balances; diff --git a/pallets/parachain-staking/src/lib.rs b/pallets/parachain-staking/src/lib.rs index 81f63b3fcbe..d54d40bcd60 100644 --- a/pallets/parachain-staking/src/lib.rs +++ b/pallets/parachain-staking/src/lib.rs @@ -119,9 +119,7 @@ pub mod pallet { /// Configuration trait of this pallet. #[pallet::config] - pub trait Config: frame_system::Config { - /// Overarching event type - type RuntimeEvent: From> + IsType<::RuntimeEvent>; + pub trait Config: frame_system::Config>> { /// The fungible type for handling balances type Currency: Inspect + Mutate diff --git a/pallets/parachain-staking/src/mock.rs b/pallets/parachain-staking/src/mock.rs index 95274f1e5b7..e1f1d4f23ac 100644 --- a/pallets/parachain-staking/src/mock.rs +++ b/pallets/parachain-staking/src/mock.rs @@ -152,7 +152,6 @@ parameter_types! { } impl Config for Test { - type RuntimeEvent = RuntimeEvent; type Currency = Balances; type RuntimeFreezeReason = RuntimeFreezeReason; type MonetaryGovernanceOrigin = frame_system::EnsureRoot; diff --git a/pallets/xcm-transactor/src/benchmarks.rs b/pallets/xcm-transactor/src/benchmarks.rs index 0da20c4c130..109f04d9e50 100644 --- a/pallets/xcm-transactor/src/benchmarks.rs +++ b/pallets/xcm-transactor/src/benchmarks.rs @@ -24,6 +24,13 @@ use sp_std::boxed::Box; use sp_std::vec; use xcm::latest::prelude::*; +/// Helper function to set up XCM router for benchmarks +fn setup_xcm_router() { + // Ensure the XCM sender is properly configured for benchmarks + // This sets up the HostConfiguration for sending messages to the relay chain + T::XcmSender::ensure_successful_delivery(Some(Location::parent())); +} + #[benchmarks( where T::Transactor: Default, T::CurrencyId: From )] @@ -135,6 +142,9 @@ mod benchmarks { // Worst Case: transacInfo db reads #[benchmark] fn transact_through_derivative() -> Result<(), BenchmarkError> { + // Set up XCM router for benchmarks + setup_xcm_router::(); + let fee_per_second = 1; let extra_weight: Weight = Weight::from_parts(300000000u64, 0); let max_weight: Weight = Weight::from_parts(20000000000u64, u64::MAX); @@ -193,6 +203,9 @@ mod benchmarks { #[benchmark] fn transact_through_sovereign() -> Result<(), BenchmarkError> { + // Set up XCM router for benchmarks + setup_xcm_router::(); + let fee_per_second = 1; let extra_weight: Weight = Weight::from_parts(300000000u64, 0); let max_weight: Weight = Weight::from_parts(20000000000u64, u64::MAX); @@ -251,6 +264,9 @@ mod benchmarks { #[benchmark] fn transact_through_signed() -> Result<(), BenchmarkError> { + // Set up XCM router for benchmarks + setup_xcm_router::(); + let fee_per_second = 1; let extra_weight: Weight = Weight::from_parts(300000000u64, 0); let max_weight: Weight = Weight::from_parts(20000000000u64, u64::MAX); @@ -298,6 +314,9 @@ mod benchmarks { #[benchmark] fn hrmp_manage() -> Result<(), BenchmarkError> { + // Set up XCM router for benchmarks + setup_xcm_router::(); + let fee_per_second = 1; let extra_weight: Weight = Weight::from_parts(300000000u64, 0); let max_weight: Weight = Weight::from_parts(20000000000u64, u64::MAX); diff --git a/pallets/xcm-transactor/src/lib.rs b/pallets/xcm-transactor/src/lib.rs index 7b5819c5446..63b22fb1074 100644 --- a/pallets/xcm-transactor/src/lib.rs +++ b/pallets/xcm-transactor/src/lib.rs @@ -112,7 +112,7 @@ pub mod pallet { dispatch::DispatchResult, pallet_prelude::*, weights::constants::WEIGHT_REF_TIME_PER_SECOND, }; use frame_system::{ensure_signed, pallet_prelude::*}; - use sp_runtime::traits::{AtLeast32BitUnsigned, Bounded, Convert}; + use sp_runtime::traits::{AtLeast32BitUnsigned, Convert}; use sp_std::boxed::Box; use sp_std::convert::TryFrom; use sp_std::prelude::*; @@ -130,8 +130,7 @@ pub mod pallet { pub struct Pallet(pub PhantomData); #[pallet::config] - pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; + pub trait Config: frame_system::Config>> { /// The balance type. type Balance: Parameter + Member @@ -1267,9 +1266,8 @@ pub mod pallet { xcm: Xcm(vec![]), }, ]); - T::Weigher::weight(&mut xcm.into()).map_or(Weight::max_value(), |w| { - T::BaseXcmWeight::get().saturating_add(w) - }) + T::Weigher::weight(&mut xcm.into(), Weight::MAX) + .map_or(Weight::MAX, |w| T::BaseXcmWeight::get().saturating_add(w)) } /// Returns the fee for a given set of parameters diff --git a/pallets/xcm-transactor/src/mock.rs b/pallets/xcm-transactor/src/mock.rs index 37403de3cf5..f3d3242f483 100644 --- a/pallets/xcm-transactor/src/mock.rs +++ b/pallets/xcm-transactor/src/mock.rs @@ -31,7 +31,7 @@ use sp_io; use sp_runtime::traits::{BlakeTwo256, IdentityLookup}; use sp_runtime::BuildStorage; use xcm::latest::{ - opaque, Asset, Error as XcmError, Instruction, InteriorLocation, + opaque, Asset, Error as XcmError, Instruction, InstructionError, InteriorLocation, Junction::{AccountKey20, GlobalConsensus, PalletInstance, Parachain}, Location, NetworkId, Result as XcmResult, SendError, SendResult, SendXcm, Xcm, XcmContext, XcmHash, @@ -204,10 +204,10 @@ use sp_std::marker::PhantomData; pub struct DummyWeigher(PhantomData); impl WeightBounds for DummyWeigher { - fn weight(_message: &mut Xcm) -> Result { + fn weight(_message: &mut Xcm, _weight_limit: Weight) -> Result { Ok(Weight::zero()) } - fn instr_weight(_instruction: &mut Instruction) -> Result { + fn instr_weight(_instruction: &mut Instruction) -> Result { Ok(Weight::zero()) } } @@ -407,7 +407,6 @@ parameter_types! { pub type MaxHrmpRelayFee = xcm_builder::Case; impl Config for Test { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; type Transactor = Transactors; type DerivativeAddressRegistrationOrigin = EnsureRoot; diff --git a/pallets/xcm-weight-trader/src/benchmarking.rs b/pallets/xcm-weight-trader/src/benchmarking.rs index 1d711289ebc..86e9dffb278 100644 --- a/pallets/xcm-weight-trader/src/benchmarking.rs +++ b/pallets/xcm-weight-trader/src/benchmarking.rs @@ -22,7 +22,7 @@ use frame_benchmarking::{v2::*, BenchmarkError}; use frame_support::traits::EnsureOrigin; use frame_system::EventRecord; -fn assert_last_event(generic_event: ::RuntimeEvent) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = frame_system::Pallet::::events(); let system_event: ::RuntimeEvent = generic_event.into(); // compare to the last event record diff --git a/pallets/xcm-weight-trader/src/lib.rs b/pallets/xcm-weight-trader/src/lib.rs index 81fcc06cf9d..fdac858b347 100644 --- a/pallets/xcm-weight-trader/src/lib.rs +++ b/pallets/xcm-weight-trader/src/lib.rs @@ -61,7 +61,7 @@ pub mod pallet { /// Configuration trait of this pallet. #[pallet::config] - pub trait Config: frame_system::Config { + pub trait Config: frame_system::Config>> { /// Convert `T::AccountId` to `Location`. type AccountIdToLocation: Convert; @@ -90,9 +90,6 @@ pub mod pallet { /// Origin that is allowed to remove a supported asset type RemoveSupportedAssetOrigin: EnsureOrigin; - /// The overarching event type. - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - /// Origin that is allowed to unpause a supported asset type ResumeSupportedAssetOrigin: EnsureOrigin; diff --git a/pallets/xcm-weight-trader/src/mock.rs b/pallets/xcm-weight-trader/src/mock.rs index fe955031f10..fa77bf0203c 100644 --- a/pallets/xcm-weight-trader/src/mock.rs +++ b/pallets/xcm-weight-trader/src/mock.rs @@ -178,7 +178,6 @@ impl Config for Test { type NativeLocation = NativeLocation; type PauseSupportedAssetOrigin = EnsureSignedBy; type RemoveSupportedAssetOrigin = EnsureSignedBy; - type RuntimeEvent = RuntimeEvent; type ResumeSupportedAssetOrigin = EnsureSignedBy; type WeightInfo = (); type WeightToFee = IdentityFee; diff --git a/precompiles/author-mapping/src/lib.rs b/precompiles/author-mapping/src/lib.rs index 67c74c8406c..f906d0d0625 100644 --- a/precompiles/author-mapping/src/lib.rs +++ b/precompiles/author-mapping/src/lib.rs @@ -60,7 +60,6 @@ impl AuthorMappingPrecompile where Runtime: pallet_author_mapping::Config + pallet_evm::Config + frame_system::Config, Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, - ::RuntimeOrigin: From>, Runtime::RuntimeCall: From>, Runtime::Hash: From, Runtime::AccountId: Into, @@ -80,7 +79,12 @@ where let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); let call = AuthorMappingCall::::add_association { nimbus_id }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -106,7 +110,12 @@ where new_nimbus_id, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -124,7 +133,12 @@ where let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); let call = AuthorMappingCall::::clear_association { nimbus_id }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -140,7 +154,12 @@ where let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); let call = AuthorMappingCall::::remove_keys {}; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -154,7 +173,12 @@ where let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); let call = AuthorMappingCall::::set_keys { keys: keys.into() }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } diff --git a/precompiles/author-mapping/src/mock.rs b/precompiles/author-mapping/src/mock.rs index 4316925988e..4e086957d9a 100644 --- a/precompiles/author-mapping/src/mock.rs +++ b/precompiles/author-mapping/src/mock.rs @@ -134,7 +134,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; @@ -168,7 +167,6 @@ parameter_types! { } impl pallet_author_mapping::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type DepositCurrency = Balances; type DepositAmount = DepositAmount; type Keys = nimbus_primitives::NimbusId; diff --git a/precompiles/balances-erc20/src/eip2612.rs b/precompiles/balances-erc20/src/eip2612.rs index afeca1a667d..c26142598a5 100644 --- a/precompiles/balances-erc20/src/eip2612.rs +++ b/precompiles/balances-erc20/src/eip2612.rs @@ -41,7 +41,6 @@ where Runtime: pallet_balances::Config + pallet_evm::Config, Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, Runtime::RuntimeCall: From>, - ::RuntimeOrigin: From>, BalanceOf: TryFrom + Into, Metadata: Erc20Metadata, Instance: InstanceToPrefix + 'static, diff --git a/precompiles/balances-erc20/src/lib.rs b/precompiles/balances-erc20/src/lib.rs index fe56e34fcee..858aaf4dbf1 100644 --- a/precompiles/balances-erc20/src/lib.rs +++ b/precompiles/balances-erc20/src/lib.rs @@ -184,7 +184,6 @@ where Runtime: pallet_balances::Config + pallet_evm::Config, Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, Runtime::RuntimeCall: From>, - ::RuntimeOrigin: From>, BalanceOf: TryFrom + Into, Metadata: Erc20Metadata, Instance: InstanceToPrefix + 'static, @@ -284,7 +283,7 @@ where // Dispatch call (if enough gas). RuntimeHelper::::try_dispatch( handle, - Some(origin).into(), + frame_system::RawOrigin::Signed(origin).into(), pallet_balances::Call::::transfer_allow_death { dest: Runtime::Lookup::unlookup(to), value, @@ -350,7 +349,7 @@ where // Dispatch call (if enough gas). RuntimeHelper::::try_dispatch( handle, - Some(from).into(), + frame_system::RawOrigin::Signed(from).into(), pallet_balances::Call::::transfer_allow_death { dest: Runtime::Lookup::unlookup(to), value, @@ -412,7 +411,7 @@ where // Send back funds received by the precompile. RuntimeHelper::::try_dispatch( handle, - Some(precompile).into(), + frame_system::RawOrigin::Signed(precompile).into(), pallet_balances::Call::::transfer_allow_death { dest: Runtime::Lookup::unlookup(caller), value: amount, diff --git a/precompiles/balances-erc20/src/mock.rs b/precompiles/balances-erc20/src/mock.rs index 9882fc582ed..cc06cd7ea37 100644 --- a/precompiles/balances-erc20/src/mock.rs +++ b/precompiles/balances-erc20/src/mock.rs @@ -134,7 +134,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; diff --git a/precompiles/batch/src/mock.rs b/precompiles/batch/src/mock.rs index 06dc663149d..55c7772688e 100644 --- a/precompiles/batch/src/mock.rs +++ b/precompiles/batch/src/mock.rs @@ -149,7 +149,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; diff --git a/precompiles/call-permit/src/mock.rs b/precompiles/call-permit/src/mock.rs index 569c31cb844..842560b5546 100644 --- a/precompiles/call-permit/src/mock.rs +++ b/precompiles/call-permit/src/mock.rs @@ -129,7 +129,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; diff --git a/precompiles/collective/src/lib.rs b/precompiles/collective/src/lib.rs index 6bdc08667fd..4f2f9e77216 100644 --- a/precompiles/collective/src/lib.rs +++ b/precompiles/collective/src/lib.rs @@ -99,7 +99,6 @@ where Runtime::RuntimeCall: Dispatchable + GetDispatchInfo + Decode, Runtime::RuntimeCall: From>, >::Proposal: From, - ::RuntimeOrigin: From>, Runtime::AccountId: Into, H256: From<::Hash> + Into<::Hash>, @@ -133,7 +132,7 @@ where let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); RuntimeHelper::::try_dispatch( handle, - Some(origin).into(), + frame_system::RawOrigin::Signed(origin).into(), pallet_collective::Call::::execute { proposal, length_bound: proposal_length, @@ -193,7 +192,7 @@ where let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); RuntimeHelper::::try_dispatch( handle, - Some(origin).into(), + frame_system::RawOrigin::Signed(origin).into(), pallet_collective::Call::::propose { threshold, proposal, @@ -228,7 +227,7 @@ where let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); RuntimeHelper::::try_dispatch( handle, - Some(origin).into(), + frame_system::RawOrigin::Signed(origin).into(), pallet_collective::Call::::vote { proposal: proposal_hash.into(), index: proposal_index, @@ -257,7 +256,7 @@ where let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); let post_dispatch_info = RuntimeHelper::::try_dispatch( handle, - Some(origin).into(), + frame_system::RawOrigin::Signed(origin).into(), pallet_collective::Call::::close { proposal_hash: proposal_hash.into(), index: proposal_index, diff --git a/precompiles/collective/src/mock.rs b/precompiles/collective/src/mock.rs index ae4d4f5abbc..e815da40c83 100644 --- a/precompiles/collective/src/mock.rs +++ b/precompiles/collective/src/mock.rs @@ -150,7 +150,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; diff --git a/precompiles/conviction-voting/src/mock.rs b/precompiles/conviction-voting/src/mock.rs index a1a990dc6f8..8a92a3f972b 100644 --- a/precompiles/conviction-voting/src/mock.rs +++ b/precompiles/conviction-voting/src/mock.rs @@ -140,7 +140,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; diff --git a/precompiles/crowdloan-rewards/Cargo.toml b/precompiles/crowdloan-rewards/Cargo.toml index 423513fdfa0..ce49cc8bf23 100644 --- a/precompiles/crowdloan-rewards/Cargo.toml +++ b/precompiles/crowdloan-rewards/Cargo.toml @@ -7,6 +7,7 @@ version = "0.6.0" [dependencies] log = { workspace = true } +parity-scale-codec = { workspace = true } # Moonbeam pallet-crowdloan-rewards = { workspace = true } diff --git a/precompiles/crowdloan-rewards/src/lib.rs b/precompiles/crowdloan-rewards/src/lib.rs index d0ec5f242f7..e7c4ffc76bf 100644 --- a/precompiles/crowdloan-rewards/src/lib.rs +++ b/precompiles/crowdloan-rewards/src/lib.rs @@ -24,6 +24,7 @@ use frame_support::{ traits::Currency, }; use pallet_evm::AddressMapping; +use parity_scale_codec::EncodeLike; use precompile_utils::prelude::*; use sp_core::{H160, U256}; @@ -52,10 +53,17 @@ impl CrowdloanRewardsPrecompile where Runtime: pallet_crowdloan_rewards::Config + pallet_evm::Config + frame_system::Config, BalanceOf: TryFrom + TryInto + Debug, - Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, - ::RuntimeOrigin: From>, - Runtime::RuntimeCall: From>, - ::AddressMapping: AddressMapping, + ::RewardCurrency: + frame_support::traits::Currency<::AccountId>, + ::RuntimeCall: + Dispatchable + GetDispatchInfo, + ::RuntimeCall: + From>, + ::AddressMapping: + AddressMapping<::AccountId>, + ::AccountId: From<::AccountId> + + Into<::AccountId> + + EncodeLike<::AccountId>, { // The accessors are first. #[precompile::public("isContributor(address)")] @@ -78,7 +86,7 @@ where // fetch data from pallet let is_contributor: bool = - pallet_crowdloan_rewards::Pallet::::accounts_payable(account).is_some(); + pallet_crowdloan_rewards::Pallet::::accounts_payable(account.into()).is_some(); log::trace!(target: "crowldoan-rewards-precompile", "Result from pallet is {:?}", is_contributor); @@ -107,7 +115,8 @@ where ); // fetch data from pallet - let reward_info = pallet_crowdloan_rewards::Pallet::::accounts_payable(account); + let reward_info = + pallet_crowdloan_rewards::Pallet::::accounts_payable(account.into()); let (total, claimed): (U256, U256) = if let Some(reward_info) = reward_info { let total_reward: u128 = reward_info @@ -137,7 +146,12 @@ where let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); let call = pallet_crowdloan_rewards::Call::::claim {}; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin.into()).into(), + call, + 0, + )?; Ok(()) } @@ -160,10 +174,16 @@ where log::trace!(target: "crowdloan-rewards-precompile", "New account is {:?}", new_address); let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); - let call = - pallet_crowdloan_rewards::Call::::update_reward_address { new_reward_account }; + let call = pallet_crowdloan_rewards::Call::::update_reward_address { + new_reward_account: new_reward_account.into(), + }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin.into()).into(), + call, + 0, + )?; Ok(()) } diff --git a/precompiles/crowdloan-rewards/src/mock.rs b/precompiles/crowdloan-rewards/src/mock.rs index 5b64e8c5f25..266b012dc43 100644 --- a/precompiles/crowdloan-rewards/src/mock.rs +++ b/precompiles/crowdloan-rewards/src/mock.rs @@ -25,7 +25,7 @@ use frame_support::{ use frame_system::{pallet_prelude::BlockNumberFor, EnsureSigned}; use pallet_evm::{EnsureAddressNever, EnsureAddressRoot, FrameSystemAccountProvider}; use precompile_utils::{precompile_set::*, testing::MockAccount}; -use sp_core::{H256, U256}; +use sp_core::{ConstU32, H256, U256}; use sp_io; use sp_runtime::traits::BlockNumberProvider; use sp_runtime::{ @@ -70,6 +70,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ConsensusHook = cumulus_pallet_parachain_system::ExpectParentIncluded; type WeightInfo = cumulus_pallet_parachain_system::weights::SubstrateWeight; type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; + type RelayParentOffset = ConstU32<0>; } parameter_types! { @@ -189,7 +190,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesValue = PrecompilesValue; type PrecompilesType = Precompiles; @@ -228,7 +228,6 @@ parameter_types! { } impl pallet_crowdloan_rewards::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Initialized = TestInitialized; type InitializationPayment = TestInitializationPayment; type MaxInitContributors = TestMaxInitContributors; diff --git a/precompiles/gmp/src/mock.rs b/precompiles/gmp/src/mock.rs index 994dd60e1d6..a98106bf6a1 100644 --- a/precompiles/gmp/src/mock.rs +++ b/precompiles/gmp/src/mock.rs @@ -18,8 +18,7 @@ use super::*; use cumulus_primitives_core::{relay_chain::HrmpChannelId, ParaId}; use frame_support::traits::{ - ConstBool, Disabled, EnsureOrigin, Everything, Nothing, OriginTrait, - PalletInfo as PalletInfoTrait, + Disabled, EnsureOrigin, Everything, Nothing, OriginTrait, PalletInfo as PalletInfoTrait, }; use frame_support::{construct_runtime, parameter_types, weights::Weight}; use pallet_evm::{EnsureAddressNever, EnsureAddressRoot, FrameSystemAccountProvider}; @@ -166,7 +165,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } parameter_types! { @@ -279,7 +277,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; @@ -358,7 +355,6 @@ parameter_types! { } impl pallet_xcm_transactor::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; type Transactor = MockTransactors; type DerivativeAddressRegistrationOrigin = frame_system::EnsureRoot; diff --git a/precompiles/identity/src/lib.rs b/precompiles/identity/src/lib.rs index a08614f4af7..16ff05c6c7d 100644 --- a/precompiles/identity/src/lib.rs +++ b/precompiles/identity/src/lib.rs @@ -79,7 +79,6 @@ where Runtime::AccountId: Into, Runtime::Hash: From, Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, - ::RuntimeOrigin: From>, Runtime::RuntimeCall: From>, BalanceOf: TryFrom + Into + solidity::Codec, ::AddressMapping: AddressMapping, @@ -106,7 +105,12 @@ where let call = pallet_identity::Call::::set_identity { info }; let origin = Runtime::AddressMapping::into_account_id(caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; event.record(handle)?; @@ -130,7 +134,12 @@ where let call = pallet_identity::Call::::set_subs { subs: call_subs }; let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -149,7 +158,12 @@ where let call = pallet_identity::Call::::clear_identity {}; let origin = Runtime::AddressMapping::into_account_id(caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; event.record(handle)?; @@ -177,7 +191,12 @@ where let call = pallet_identity::Call::::request_judgement { reg_index, max_fee }; let origin = Runtime::AddressMapping::into_account_id(caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; event.record(handle)?; @@ -198,7 +217,12 @@ where let call = pallet_identity::Call::::cancel_request { reg_index }; let origin = Runtime::AddressMapping::into_account_id(caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; event.record(handle)?; @@ -213,7 +237,12 @@ where let call = pallet_identity::Call::::set_fee { index, fee }; let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -224,7 +253,12 @@ where let call = pallet_identity::Call::::set_account_id { index, new }; let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -239,7 +273,12 @@ where let call = pallet_identity::Call::::set_fields { index, fields }; let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -274,7 +313,12 @@ where }; let origin = Runtime::AddressMapping::into_account_id(caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; event.record(handle)?; @@ -299,7 +343,12 @@ where let call = pallet_identity::Call::::add_sub { sub, data }; let origin = Runtime::AddressMapping::into_account_id(caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; event.record(handle)?; @@ -315,7 +364,12 @@ where let call = pallet_identity::Call::::rename_sub { sub, data }; let origin = Runtime::AddressMapping::into_account_id(handle.context().caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -335,7 +389,12 @@ where let call = pallet_identity::Call::::remove_sub { sub }; let origin = Runtime::AddressMapping::into_account_id(caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; event.record(handle)?; @@ -356,7 +415,12 @@ where let call = pallet_identity::Call::::quit_sub {}; let origin = Runtime::AddressMapping::into_account_id(caller); - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; event.record(handle)?; diff --git a/precompiles/identity/src/mock.rs b/precompiles/identity/src/mock.rs index 389e6f80f95..3e5021dc922 100644 --- a/precompiles/identity/src/mock.rs +++ b/precompiles/identity/src/mock.rs @@ -143,7 +143,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; @@ -197,6 +196,28 @@ impl core::fmt::Debug for MaxAdditionalFields { write!(f, "<>") } } + +#[cfg(feature = "runtime-benchmarks")] +pub struct IdentityBenchmarkHelper; +#[cfg(feature = "runtime-benchmarks")] +impl + pallet_identity::BenchmarkHelper< + ::Signer, + MockSignature, + > for IdentityBenchmarkHelper +{ + fn sign_message( + _message: &[u8], + ) -> ( + ::Signer, + MockSignature, + ) { + // This is only used in runtime benchmarks, not in precompile tests + // So we panic here since this should never be called in tests + panic!("BenchmarkHelper::sign_message should not be called in precompile tests") + } +} + impl pallet_identity::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; @@ -218,6 +239,8 @@ impl pallet_identity::Config for Runtime { type WeightInfo = (); type UsernameGracePeriod = (); type UsernameDeposit = (); + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = IdentityBenchmarkHelper; } pub(crate) struct ExtBuilder { diff --git a/precompiles/parachain-staking/src/lib.rs b/precompiles/parachain-staking/src/lib.rs index 58c6220eaad..50b34c02f22 100644 --- a/precompiles/parachain-staking/src/lib.rs +++ b/precompiles/parachain-staking/src/lib.rs @@ -52,7 +52,6 @@ where Runtime: pallet_parachain_staking::Config + pallet_evm::Config, Runtime::AccountId: Into, Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, - ::RuntimeOrigin: From>, Runtime::RuntimeCall: From>, BalanceOf: TryFrom + Into + solidity::Codec, ::AddressMapping: AddressMapping, @@ -501,7 +500,12 @@ where }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -521,7 +525,12 @@ where }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -544,7 +553,12 @@ where }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -563,7 +577,12 @@ where pallet_parachain_staking::Call::::cancel_leave_candidates { candidate_count }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -576,7 +595,12 @@ where let call = pallet_parachain_staking::Call::::go_offline {}; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -589,7 +613,12 @@ where let call = pallet_parachain_staking::Call::::go_online {}; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -604,7 +633,12 @@ where let call = pallet_parachain_staking::Call::::candidate_bond_more { more }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -619,7 +653,12 @@ where let call = pallet_parachain_staking::Call::::schedule_candidate_bond_less { less }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -638,7 +677,12 @@ where pallet_parachain_staking::Call::::execute_candidate_bond_less { candidate }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -651,7 +695,12 @@ where let call = pallet_parachain_staking::Call::::cancel_candidate_bond_less {}; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -695,7 +744,12 @@ where }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -715,7 +769,12 @@ where }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -736,7 +795,12 @@ where pallet_parachain_staking::Call::::delegator_bond_more { candidate, more }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -759,7 +823,12 @@ where }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -782,7 +851,12 @@ where }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -801,7 +875,12 @@ where pallet_parachain_staking::Call::::cancel_delegation_request { candidate }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -839,7 +918,12 @@ where }; // Dispatch call (if enough gas). - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } diff --git a/precompiles/parachain-staking/src/mock.rs b/precompiles/parachain-staking/src/mock.rs index d6cb439ca67..15720479bb1 100644 --- a/precompiles/parachain-staking/src/mock.rs +++ b/precompiles/parachain-staking/src/mock.rs @@ -145,7 +145,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; @@ -205,7 +204,6 @@ impl Get for StakingRoundSlotProvider { } impl pallet_parachain_staking::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Currency = Balances; type MonetaryGovernanceOrigin = frame_system::EnsureRoot; type MinBlocksPerRound = MinBlocksPerRound; diff --git a/precompiles/precompile-registry/src/mock.rs b/precompiles/precompile-registry/src/mock.rs index d5777b97186..161471a7124 100644 --- a/precompiles/precompile-registry/src/mock.rs +++ b/precompiles/precompile-registry/src/mock.rs @@ -129,7 +129,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; diff --git a/precompiles/preimage/src/mock.rs b/precompiles/preimage/src/mock.rs index 15f38f5e1be..2bb13080943 100644 --- a/precompiles/preimage/src/mock.rs +++ b/precompiles/preimage/src/mock.rs @@ -132,7 +132,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; diff --git a/precompiles/proxy/src/mock.rs b/precompiles/proxy/src/mock.rs index 8d603a7009f..19f1ab1417a 100644 --- a/precompiles/proxy/src/mock.rs +++ b/precompiles/proxy/src/mock.rs @@ -175,7 +175,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; diff --git a/precompiles/randomness/src/mock.rs b/precompiles/randomness/src/mock.rs index 351390baf87..8398658d362 100644 --- a/precompiles/randomness/src/mock.rs +++ b/precompiles/randomness/src/mock.rs @@ -133,7 +133,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = TestPrecompiles; type PrecompilesValue = PrecompilesValue; @@ -166,7 +165,6 @@ parameter_types! { pub const DepositAmount: Balance = 100; } impl pallet_author_mapping::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type DepositCurrency = Balances; type DepositAmount = DepositAmount; type Keys = VrfId; @@ -190,7 +188,6 @@ parameter_types! { pub const MaxBlockDelay: u32 = 20; } impl pallet_randomness::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type AddressMapping = AccountId; type Currency = Balances; type BabeDataGetter = BabeDataGetter; diff --git a/precompiles/referenda/src/mock.rs b/precompiles/referenda/src/mock.rs index 36946e113ba..841d134ea76 100644 --- a/precompiles/referenda/src/mock.rs +++ b/precompiles/referenda/src/mock.rs @@ -156,7 +156,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = TestPrecompiles; type PrecompilesValue = PrecompilesValue; diff --git a/precompiles/relay-data-verifier/src/mock.rs b/precompiles/relay-data-verifier/src/mock.rs index ced6448cb68..68d2e013069 100644 --- a/precompiles/relay-data-verifier/src/mock.rs +++ b/precompiles/relay-data-verifier/src/mock.rs @@ -196,7 +196,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesValue = PrecompilesValue; type PrecompilesType = Precompiles; diff --git a/precompiles/relay-encoder/src/mock.rs b/precompiles/relay-encoder/src/mock.rs index 5e3bcaf10dd..678418baf31 100644 --- a/precompiles/relay-encoder/src/mock.rs +++ b/precompiles/relay-encoder/src/mock.rs @@ -112,6 +112,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ConsensusHook = cumulus_pallet_parachain_system::ExpectParentIncluded; type WeightInfo = cumulus_pallet_parachain_system::weights::SubstrateWeight; type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; + type RelayParentOffset = ConstU32<0>; } parameter_types! { @@ -309,7 +310,6 @@ parameter_types! { } impl pallet_xcm_transactor::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; type Transactor = MockTransactors; type DerivativeAddressRegistrationOrigin = frame_system::EnsureRoot; @@ -363,7 +363,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesValue = PrecompilesValue; type PrecompilesType = Precompiles; diff --git a/precompiles/xcm-transactor/src/functions.rs b/precompiles/xcm-transactor/src/functions.rs index 1e9839a6ff8..671fe23a297 100644 --- a/precompiles/xcm-transactor/src/functions.rs +++ b/precompiles/xcm-transactor/src/functions.rs @@ -55,7 +55,6 @@ where Runtime: pallet_xcm_transactor::Config + pallet_evm::Config + frame_system::Config, Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, Runtime::RuntimeCall: From>, - ::RuntimeOrigin: From>, TransactorOf: TryFrom, Runtime::AccountId: Into, Runtime: AccountIdToCurrencyId>, @@ -183,7 +182,12 @@ where refund: false, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -230,7 +234,12 @@ where refund: false, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -280,7 +289,12 @@ where refund: false, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -336,7 +350,12 @@ where refund: false, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -372,7 +391,12 @@ where call, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -413,7 +437,12 @@ where call, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -459,7 +488,12 @@ where call, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -510,7 +544,12 @@ where call, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -607,7 +646,12 @@ where refund, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -663,7 +707,12 @@ where refund, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -704,7 +753,12 @@ where call, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } @@ -755,7 +809,12 @@ where call, }; - RuntimeHelper::::try_dispatch(handle, Some(origin).into(), call, 0)?; + RuntimeHelper::::try_dispatch( + handle, + frame_system::RawOrigin::Signed(origin).into(), + call, + 0, + )?; Ok(()) } diff --git a/precompiles/xcm-transactor/src/mock.rs b/precompiles/xcm-transactor/src/mock.rs index 2bb6c51be4d..8c372441dc0 100644 --- a/precompiles/xcm-transactor/src/mock.rs +++ b/precompiles/xcm-transactor/src/mock.rs @@ -211,7 +211,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesValue = PrecompilesValue; type PrecompilesType = Precompiles; @@ -331,7 +330,6 @@ parameter_types! { } impl pallet_xcm_transactor::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; type Transactor = MockTransactors; type DerivativeAddressRegistrationOrigin = frame_system::EnsureRoot; diff --git a/precompiles/xcm-transactor/src/v1/mod.rs b/precompiles/xcm-transactor/src/v1/mod.rs index 1df87d4c4d3..851eb51fb7b 100644 --- a/precompiles/xcm-transactor/src/v1/mod.rs +++ b/precompiles/xcm-transactor/src/v1/mod.rs @@ -36,7 +36,6 @@ where Runtime: pallet_xcm_transactor::Config + pallet_evm::Config + frame_system::Config, Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, Runtime::RuntimeCall: From>, - ::RuntimeOrigin: From>, TransactorOf: TryFrom, Runtime::AccountId: Into, Runtime: AccountIdToCurrencyId>, diff --git a/precompiles/xcm-transactor/src/v2/mod.rs b/precompiles/xcm-transactor/src/v2/mod.rs index 3653a6b816d..3ddd9d58fca 100644 --- a/precompiles/xcm-transactor/src/v2/mod.rs +++ b/precompiles/xcm-transactor/src/v2/mod.rs @@ -36,7 +36,6 @@ where Runtime: pallet_xcm_transactor::Config + pallet_evm::Config + frame_system::Config, Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, Runtime::RuntimeCall: From>, - ::RuntimeOrigin: From>, TransactorOf: TryFrom, Runtime::AccountId: Into, Runtime: AccountIdToCurrencyId>, diff --git a/precompiles/xcm-transactor/src/v3/mod.rs b/precompiles/xcm-transactor/src/v3/mod.rs index c7f185c8e51..6e4b6676677 100644 --- a/precompiles/xcm-transactor/src/v3/mod.rs +++ b/precompiles/xcm-transactor/src/v3/mod.rs @@ -37,7 +37,6 @@ where Runtime: pallet_xcm_transactor::Config + pallet_evm::Config + frame_system::Config, Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, Runtime::RuntimeCall: From>, - ::RuntimeOrigin: From>, TransactorOf: TryFrom, Runtime::AccountId: Into, Runtime: AccountIdToCurrencyId>, diff --git a/precompiles/xcm-utils/src/lib.rs b/precompiles/xcm-utils/src/lib.rs index 7c31b637c13..17706bef96e 100644 --- a/precompiles/xcm-utils/src/lib.rs +++ b/precompiles/xcm-utils/src/lib.rs @@ -193,9 +193,8 @@ where .map(Xcm::<::RuntimeCall>::try_from); let result = match msg { - Ok(Ok(mut x)) => { - XcmConfig::Weigher::weight(&mut x).map_err(|_| revert("failed weighting")) - } + Ok(Ok(mut x)) => XcmConfig::Weigher::weight(&mut x, Weight::MAX) + .map_err(|_| revert("failed weighting")), _ => Err(RevertReason::custom("Failed decoding") .in_field("message") .into()), diff --git a/precompiles/xcm-utils/src/mock.rs b/precompiles/xcm-utils/src/mock.rs index b38fdfa6f01..a3a2a251736 100644 --- a/precompiles/xcm-utils/src/mock.rs +++ b/precompiles/xcm-utils/src/mock.rs @@ -16,7 +16,7 @@ //! Test utilities use super::*; -use frame_support::traits::{ConstBool, Disabled}; +use frame_support::traits::Disabled; use frame_support::{ construct_runtime, parameter_types, traits::{ConstU32, Everything, Nothing, OriginTrait, PalletInfo as _}, @@ -221,7 +221,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } pub type Precompiles = PrecompileSetBuilder< R, @@ -274,7 +273,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesValue = PrecompilesValue; type PrecompilesType = Precompiles; diff --git a/precompiles/xtokens/src/mock.rs b/precompiles/xtokens/src/mock.rs index 104ff5b2606..751a31faf03 100644 --- a/precompiles/xtokens/src/mock.rs +++ b/precompiles/xtokens/src/mock.rs @@ -18,7 +18,7 @@ use super::*; use cumulus_primitives_core::{relay_chain::HrmpChannelId, ParaId}; use frame_support::traits::{ - ConstBool, ConstU32, Disabled, EnsureOrigin, Everything, Nothing, OriginTrait, + ConstU32, Disabled, EnsureOrigin, Everything, Nothing, OriginTrait, PalletInfo as PalletInfoTrait, }; use frame_support::{construct_runtime, parameter_types, weights::Weight}; @@ -167,7 +167,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = AccountId; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = Precompiles; type PrecompilesValue = PrecompilesValue; @@ -291,7 +290,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } #[derive(Encode, Decode)] @@ -354,7 +352,6 @@ parameter_types! { } impl pallet_xcm_transactor::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; type Transactor = MockTransactors; type DerivativeAddressRegistrationOrigin = frame_system::EnsureRoot; diff --git a/primitives/ext/Cargo.toml b/primitives/ext/Cargo.toml index 1843a35b589..4d1aa4a4e14 100644 --- a/primitives/ext/Cargo.toml +++ b/primitives/ext/Cargo.toml @@ -7,6 +7,9 @@ license = "GPL-3.0-only" repository = { workspace = true } version = "0.1.0" +[lints] +workspace = true + [dependencies] # Moonbeam diff --git a/primitives/ext/src/lib.rs b/primitives/ext/src/lib.rs index 3a27a166eeb..8762573aefb 100644 --- a/primitives/ext/src/lib.rs +++ b/primitives/ext/src/lib.rs @@ -23,7 +23,10 @@ //! - Host functions will decode the input and emit an event `with` environmental. #![cfg_attr(not(feature = "std"), no_std)] -use sp_runtime_interface::runtime_interface; +use sp_runtime_interface::{ + pass_by::{AllocateAndReturnByCodec, PassFatPointerAndRead}, + runtime_interface, +}; use parity_scale_codec::Decode; use sp_std::vec::Vec; @@ -32,20 +35,20 @@ use evm_tracing_events::{Event, EvmEvent, GasometerEvent, RuntimeEvent, StepEven #[runtime_interface] pub trait MoonbeamExt { - fn raw_step(&mut self, _data: Vec) {} + fn raw_step(&mut self, _data: PassFatPointerAndRead>) {} - fn raw_gas(&mut self, _data: Vec) {} + fn raw_gas(&mut self, _data: PassFatPointerAndRead>) {} - fn raw_return_value(&mut self, _data: Vec) {} + fn raw_return_value(&mut self, _data: PassFatPointerAndRead>) {} - fn call_list_entry(&mut self, _index: u32, _value: Vec) {} + fn call_list_entry(&mut self, _index: u32, _value: PassFatPointerAndRead>) {} fn call_list_new(&mut self) {} // New design, proxy events. /// An `Evm` event proxied by the Moonbeam runtime to this host function. /// evm -> moonbeam_runtime -> host. - fn evm_event(&mut self, event: Vec) { + fn evm_event(&mut self, event: PassFatPointerAndRead>) { if let Ok(event) = EvmEvent::decode(&mut &event[..]) { Event::Evm(event).emit(); } @@ -53,7 +56,7 @@ pub trait MoonbeamExt { /// A `Gasometer` event proxied by the Moonbeam runtime to this host function. /// evm_gasometer -> moonbeam_runtime -> host. - fn gasometer_event(&mut self, event: Vec) { + fn gasometer_event(&mut self, event: PassFatPointerAndRead>) { if let Ok(event) = GasometerEvent::decode(&mut &event[..]) { Event::Gasometer(event).emit(); } @@ -61,7 +64,7 @@ pub trait MoonbeamExt { /// A `Runtime` event proxied by the Moonbeam runtime to this host function. /// evm_runtime -> moonbeam_runtime -> host. - fn runtime_event(&mut self, event: Vec) { + fn runtime_event(&mut self, event: PassFatPointerAndRead>) { if let Ok(event) = RuntimeEvent::decode(&mut &event[..]) { Event::Runtime(event).emit(); } @@ -70,7 +73,7 @@ pub trait MoonbeamExt { /// Allow the tracing module in the runtime to know how to filter Step event /// content, as cloning the entire data is expensive and most of the time /// not necessary. - fn step_event_filter(&self) -> StepEventFilter { + fn step_event_filter(&self) -> AllocateAndReturnByCodec { evm_tracing_events::step_event_filter().unwrap_or_default() } diff --git a/primitives/rpc/evm-tracing-events/Cargo.toml b/primitives/rpc/evm-tracing-events/Cargo.toml index c309507a08d..d1ec73f205a 100644 --- a/primitives/rpc/evm-tracing-events/Cargo.toml +++ b/primitives/rpc/evm-tracing-events/Cargo.toml @@ -12,7 +12,6 @@ environmental = { workspace = true } # Substrate parity-scale-codec = { workspace = true } -sp-runtime-interface = { workspace = true } # Ethereum ethereum-types = { workspace = true } @@ -29,6 +28,5 @@ std = [ "evm-runtime/std", "evm/std", "parity-scale-codec/std", - "sp-runtime-interface/std", ] evm-tracing = [ "evm-gasometer/tracing", "evm-runtime/tracing", "evm/tracing" ] diff --git a/primitives/rpc/evm-tracing-events/src/lib.rs b/primitives/rpc/evm-tracing-events/src/lib.rs index a390ad8a85e..8a5a7835f44 100644 --- a/primitives/rpc/evm-tracing-events/src/lib.rs +++ b/primitives/rpc/evm-tracing-events/src/lib.rs @@ -41,7 +41,6 @@ pub use runtime::RuntimeEvent; use ethereum_types::{H160, U256}; use parity_scale_codec::{Decode, Encode}; -use sp_runtime_interface::pass_by::PassByCodec; environmental::environmental!(listener: dyn Listener + 'static); @@ -52,7 +51,7 @@ pub fn using R>(l: &mut (dyn Listener + 'static), f: F) -> R { /// Allow to configure which data of the Step event /// we want to keep or discard. Not discarding the data requires cloning the data /// in the runtime which have a significant cost for each step. -#[derive(Clone, Copy, Eq, PartialEq, Debug, Encode, Decode, Default, PassByCodec)] +#[derive(Clone, Copy, Eq, PartialEq, Debug, Encode, Decode, Default)] pub struct StepEventFilter { pub enable_stack: bool, pub enable_memory: bool, diff --git a/runtime/common/Cargo.toml b/runtime/common/Cargo.toml index 730c69152f2..96d097fe20d 100644 --- a/runtime/common/Cargo.toml +++ b/runtime/common/Cargo.toml @@ -23,6 +23,7 @@ pallet-xcm-bridge = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } pallet-balances = { workspace = true } +pallet-identity = { workspace = true, optional = true } pallet-treasury = { workspace = true } pallet-xcm = { workspace = true } sp-core = { workspace = true } @@ -71,12 +72,14 @@ std = [ "xcm/std", "account/std", "pallet-xcm-bridge/std", + "pallet-identity/std" ] runtime-benchmarks = [ "cumulus-primitives-core/runtime-benchmarks", "pallet-message-queue/runtime-benchmarks", "pallet-author-inherent/runtime-benchmarks", "pallet-balances/runtime-benchmarks", + "pallet-identity/runtime-benchmarks", "pallet-treasury/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", ] diff --git a/runtime/common/src/apis.rs b/runtime/common/src/apis.rs index 560e86c564c..265f9060d0c 100644 --- a/runtime/common/src/apis.rs +++ b/runtime/common/src/apis.rs @@ -802,7 +802,6 @@ macro_rules! impl_runtime_apis_plus_common { use frame_support::traits::StorageInfoTrait; use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; - use pallet_transaction_payment::benchmarking::Pallet as PalletTransactionPaymentBenchmark; let mut list = Vec::::new(); list_benchmarks!(list, extra); @@ -846,17 +845,33 @@ macro_rules! impl_runtime_apis_plus_common { pub const RandomParaId: ParaId = ParaId::new(43211234); } + /// Custom delivery helper for Moonbeam that works with H160 accounts. + /// This is needed because Moonbeam uses AccountKey20 (H160) accounts + /// instead of AccountId32, and the standard ToParentDeliveryHelper + /// fails when trying to deposit assets to an origin location. pub struct TestDeliveryHelper; impl xcm_builder::EnsureDelivery for TestDeliveryHelper { fn ensure_successful_delivery( origin_ref: &Location, - _dest: &Location, + dest: &Location, _fee_reason: xcm_executor::traits::FeeReason, ) -> (Option, Option) { use xcm_executor::traits::ConvertLocation; + + // Ensure the XCM sender is properly configured for benchmarks + // This sets up the HostConfiguration for sending messages + ::ensure_successful_delivery(Some(dest.clone())); + + // Open HRMP channel for sibling parachain destinations + if let Some(Parachain(para_id)) = dest.interior().first() { + ParachainSystem::open_outbound_hrmp_channel_for_benchmarks_or_tests( + (*para_id).into() + ); + } + + // Deposit existential deposit to the origin account if we can convert it if let Some(account) = xcm_config::LocationToH160::convert_location(origin_ref) { - // Give the existential deposit at least - let balance = ExistentialDeposit::get(); + let balance = ExistentialDeposit::get() * 1000u128; let _ = >:: make_free_balance_be(&account.into(), balance); } @@ -865,18 +880,6 @@ macro_rules! impl_runtime_apis_plus_common { } } - use pallet_transaction_payment::benchmarking::Pallet as PalletTransactionPaymentBenchmark; - impl pallet_transaction_payment::benchmarking::Config for Runtime { - fn setup_benchmark_environment() { - let alice = AccountId::from(sp_core::hex2array!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")); - pallet_author_inherent::Author::::put(&alice); - - let caller: AccountId = frame_benchmarking::account("caller", 0, 0); - let balance = 1_000_000_000_000_000_000u64.into(); // 1 UNIT - >::make_free_balance_be(&caller, balance); - } - } - impl pallet_xcm::benchmarking::Config for Runtime { type DeliveryHelper = TestDeliveryHelper; @@ -958,7 +961,7 @@ macro_rules! impl_runtime_apis_plus_common { impl pallet_xcm_benchmarks::Config for Runtime { type XcmConfig = xcm_config::XcmExecutorConfig; type AccountIdConverter = xcm_config::LocationToAccountId; - type DeliveryHelper = (); + type DeliveryHelper = TestDeliveryHelper; fn valid_destination() -> Result { Ok(Location::parent()) } diff --git a/runtime/common/src/benchmarking.rs b/runtime/common/src/benchmarking.rs index 018e1077035..1123f5e1eae 100644 --- a/runtime/common/src/benchmarking.rs +++ b/runtime/common/src/benchmarking.rs @@ -16,12 +16,14 @@ use account::AccountId20; use frame_support::traits::fungible::NativeOrWithId; -use moonbeam_core_primitives::AssetId; +use moonbeam_core_primitives::{AssetId, Signature}; +use pallet_identity; use pallet_treasury::ArgumentsFactory; +use sp_runtime::traits::PhantomData; -pub struct BenchmarkHelper; +pub struct BenchmarkHelper(PhantomData); -impl ArgumentsFactory, AccountId20> for BenchmarkHelper { +impl ArgumentsFactory, AccountId20> for BenchmarkHelper { fn create_asset_kind(seed: u32) -> NativeOrWithId { NativeOrWithId::WithId(seed.into()) } @@ -34,3 +36,30 @@ impl ArgumentsFactory, AccountId20> for BenchmarkHelper AccountId20::from(seed) } } + +impl< + T: pallet_identity::Config< + OffchainSignature = Signature, + SigningPublicKey = ::Signer, + >, + > pallet_identity::BenchmarkHelper + for BenchmarkHelper +{ + fn sign_message(message: &[u8]) -> (T::SigningPublicKey, T::OffchainSignature) { + // Generate an ECDSA keypair using host functions (similar to default pallet_identity implementation) + let public = sp_io::crypto::ecdsa_generate(0.into(), None); + + // Hash the message with keccak256 (Ethereum standard) + let hash = sp_io::hashing::keccak_256(message); + + // Sign using the generated key + let signature = sp_io::crypto::ecdsa_sign_prehashed(0.into(), &public, &hash) + .expect("signing should succeed"); + + // Convert to Ethereum types using existing From implementations + let eth_signature = T::OffchainSignature::from(signature); + let eth_signer = T::SigningPublicKey::from(public); + + (eth_signer, eth_signature) + } +} diff --git a/runtime/common/src/bridge.rs b/runtime/common/src/bridge.rs index 899cca31f24..e9108dbb535 100644 --- a/runtime/common/src/bridge.rs +++ b/runtime/common/src/bridge.rs @@ -17,7 +17,7 @@ use core::marker::PhantomData; use cumulus_primitives_core::AggregateMessageOrigin; use frame_support::pallet_prelude::Get; -use frame_support::traits::{EnqueueMessage, ProcessMessage}; +use frame_support::traits::{EnqueueMessage, ProcessMessage, QueueFootprintQuery}; use frame_support::{ensure, BoundedVec}; use pallet_xcm_bridge::BridgeId; use parity_scale_codec::{Decode, Encode}; @@ -124,8 +124,9 @@ where type Error = SendError; fn is_congested(_with: &Location) -> bool { - let book_state = - pallet_message_queue::Pallet::::footprint(AggregateMessageOrigin::Here); + let book_state = as QueueFootprintQuery< + AggregateMessageOrigin, + >>::footprint(AggregateMessageOrigin::Here); book_state.ready_pages >= MESSAGE_QUEUE_CONGESTION_THRESHOLD } diff --git a/runtime/moonbase/Cargo.toml b/runtime/moonbase/Cargo.toml index ca7bf88f930..a2fd1108e5b 100644 --- a/runtime/moonbase/Cargo.toml +++ b/runtime/moonbase/Cargo.toml @@ -131,7 +131,7 @@ fp-self-contained = { workspace = true, features = ["serde"] } pallet-ethereum = { workspace = true, features = ["forbid-evm-reentrancy"] } pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } pallet-evm-precompile-blake2 = { workspace = true } -pallet-evm-precompile-bls12381 = {workspace = true} +pallet-evm-precompile-bls12381 = { workspace = true } pallet-evm-precompile-bn128 = { workspace = true } pallet-evm-precompile-modexp = { workspace = true } pallet-evm-precompile-sha3fips = { workspace = true } @@ -426,7 +426,6 @@ try-runtime = [ "pallet-transaction-payment/try-runtime", "parachain-info/try-runtime", "pallet-evm-chain-id/try-runtime", - "parachain-info/try-runtime", "pallet-evm/try-runtime", "pallet-ethereum/try-runtime", "pallet-treasury/try-runtime", @@ -434,7 +433,6 @@ try-runtime = [ "pallet-crowdloan-rewards/try-runtime", "pallet-proxy/try-runtime", "pallet-identity/try-runtime", - "pallet-xcm-transactor/try-runtime", "pallet-proxy-genesis-companion/try-runtime", "pallet-moonbeam-orbiters/try-runtime", "pallet-ethereum-xcm/try-runtime", @@ -444,4 +442,5 @@ try-runtime = [ "pallet-multisig/try-runtime", "pallet-async-backing/try-runtime", "pallet-precompile-benchmarks/try-runtime", + "parachains-common/try-runtime", ] diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index d790fa4e945..3738923a9cf 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -521,7 +521,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = IdentityAddressMapping; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = MoonbasePrecompiles; type PrecompilesValue = PrecompilesValue; @@ -615,7 +614,7 @@ impl pallet_treasury::Config for Runtime { type BalanceConverter = AssetRateConverter; type PayoutPeriod = ConstU32<{ 30 * DAYS }>; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = BenchmarkHelper; + type BenchmarkHelper = BenchmarkHelper; type BlockNumberProvider = System; } @@ -657,6 +656,8 @@ impl pallet_identity::Config for Runtime { type WeightInfo = moonbase_weights::pallet_identity::WeightInfo; type UsernameDeposit = ConstU128<{ currency::deposit(0, MaxUsernameLength::get()) }>; type UsernameGracePeriod = ConstU32<{ 30 * DAYS }>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = BenchmarkHelper; } pub struct TransactionConverter; @@ -688,7 +689,6 @@ parameter_types! { } impl pallet_ethereum::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type StateRoot = pallet_ethereum::IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; @@ -713,7 +713,6 @@ impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { } impl pallet_ethereum_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; @@ -759,6 +758,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type DmpQueue = frame_support::traits::EnqueueWithOrigin; type WeightInfo = moonbase_weights::cumulus_pallet_parachain_system::WeightInfo; type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; + type RelayParentOffset = ConstU32<0>; } impl parachain_info::Config for Runtime {} @@ -825,7 +825,6 @@ impl Get for RelayChainSlotProvider { } impl pallet_parachain_staking::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Currency = Balances; type MonetaryGovernanceOrigin = MonetaryGovernanceOrigin; /// Minimum round length is 2 minutes (10 * 12 second block times) @@ -890,7 +889,6 @@ mod mock { } impl pallet_author_slot_filter::Config for Runtime { - type RuntimeEvent = RuntimeEvent; #[cfg(not(test))] type RandomnessSource = Randomness; #[cfg(test)] @@ -914,7 +912,6 @@ parameter_types! { } impl pallet_crowdloan_rewards::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Initialized = ConstBool; type InitializationPayment = InitializationPayment; type MaxInitContributors = ConstU32<500>; @@ -934,7 +931,6 @@ impl pallet_crowdloan_rewards::Config for Runtime { // This is a simple session key manager. It should probably either work with, or be replaced // entirely by pallet sessions impl pallet_author_mapping::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type DepositCurrency = Balances; type DepositAmount = ConstU128<{ 100 * currency::UNIT * currency::SUPPLY_FACTOR }>; type Keys = session_keys_primitives::VrfId; @@ -1249,7 +1245,6 @@ impl moonkit_xcm_primitives::PauseXcmExecution for XcmExecutionManager { } impl pallet_maintenance_mode::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type NormalCallFilter = NormalFilter; type MaintenanceCallFilter = MaintenanceFilter; type MaintenanceOrigin = @@ -1272,7 +1267,6 @@ type DelCollatorOrigin = EitherOfDiverse, governance::custom_origins::GeneralAdmin>; impl pallet_moonbeam_orbiters::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type AccountLookup = AuthorMapping; type AddCollatorOrigin = AddCollatorOrigin; type Currency = Balances; @@ -1338,7 +1332,6 @@ where } impl pallet_randomness::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type AddressMapping = sp_runtime::traits::ConvertInto; type Currency = Balances; type BabeDataGetter = BabeDataGetter; @@ -1549,7 +1542,7 @@ mod benches { [pallet_crowdloan_rewards, CrowdloanRewards] [pallet_author_mapping, AuthorMapping] [pallet_proxy, Proxy] - [pallet_transaction_payment, PalletTransactionPaymentBenchmark::] + [pallet_transaction_payment, TransactionPayment] [pallet_identity, Identity] [cumulus_pallet_parachain_system, ParachainSystem] [cumulus_pallet_xcmp_queue, XcmpQueue] diff --git a/runtime/moonbase/src/precompiles.rs b/runtime/moonbase/src/precompiles.rs index 4aeffcfbbcc..59d4bc67431 100644 --- a/runtime/moonbase/src/precompiles.rs +++ b/runtime/moonbase/src/precompiles.rs @@ -143,7 +143,11 @@ type MoonbasePrecompilesAt = ( // (0x100 => 256) https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md PrecompileAt, P256Verify, EthereumPrecompilesChecks>, // Non-Moonbeam specific nor Ethereum precompiles : - PrecompileAt, Sha3FIPS256, (CallableByContract, CallableByPrecompile)>, + PrecompileAt< + AddressU64<1024>, + Sha3FIPS256, + (CallableByContract, CallableByPrecompile), + >, RemovedPrecompileAt>, // Dispatch PrecompileAt, ECRecoverPublicKey, (CallableByContract, CallableByPrecompile)>, RemovedPrecompileAt>, // Previous: PrecompileAt, StorageCleanerPrecompile, CallableByPrecompile> diff --git a/runtime/moonbase/src/weights/cumulus_pallet_xcmp_queue.rs b/runtime/moonbase/src/weights/cumulus_pallet_xcmp_queue.rs index 4ec0e5ba257..8526e9eb902 100644 --- a/runtime/moonbase/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/runtime/moonbase/src/weights/cumulus_pallet_xcmp_queue.rs @@ -56,8 +56,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `142` // Estimated: `1497` - // Minimum execution time: 5_015_000 picoseconds. - Weight::from_parts(5_378_000, 1497) + // Minimum execution time: 3_000_000 picoseconds. + Weight::from_parts(4_000_000, 1497) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -71,15 +71,15 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `MessageQueue::Pages` (r:0 w:1) /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 105467]`. + /// The range of component `n` is `[0, 105467]`. fn enqueue_n_bytes_xcmp_message(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `148` // Estimated: `5487` - // Minimum execution time: 12_536_000 picoseconds. - Weight::from_parts(9_423_779, 5487) - // Standard Error: 5 - .saturating_add(Weight::from_parts(878, 0).saturating_mul(n.into())) + // Minimum execution time: 9_000_000 picoseconds. + Weight::from_parts(10_465_265, 5487) + // Standard Error: 0 + .saturating_add(Weight::from_parts(184, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -93,23 +93,87 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `MessageQueue::Pages` (r:0 w:1) /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `MaxEncodedLen`) - fn enqueue_2_empty_xcmp_messages() -> Weight { + /// The range of component `n` is `[0, 1000]`. + fn enqueue_n_empty_xcmp_messages(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `148` // Estimated: `5487` - // Minimum execution time: 20_459_000 picoseconds. - Weight::from_parts(21_165_000, 5487) + // Minimum execution time: 8_000_000 picoseconds. + Weight::from_parts(11_013_196, 5487) + // Standard Error: 109 + .saturating_add(Weight::from_parts(103_569, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `Measured`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `Measured`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `Measured`) + /// The range of component `n` is `[0, 105457]`. + fn enqueue_empty_xcmp_message_at(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `330 + n * (1 ±0)` + // Estimated: `3793 + n * (1 ±0)` + // Minimum execution time: 14_000_000 picoseconds. + Weight::from_parts(14_563_588, 3793) + // Standard Error: 2 + .saturating_add(Weight::from_parts(667, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:0 w:100) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 100]`. + fn enqueue_n_full_pages(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `183` + // Estimated: `5487` + // Minimum execution time: 9_000_000 picoseconds. + Weight::from_parts(9_000_000, 5487) + // Standard Error: 35_491 + .saturating_add(Weight::from_parts(23_552_433, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `Measured`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `Measured`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `Measured`) + fn enqueue_1000_small_xcmp_messages() -> Weight { + // Proof Size summary in bytes: + // Measured: `53063` + // Estimated: `56528` + // Minimum execution time: 151_000_000 picoseconds. + Weight::from_parts(154_000_000, 56528) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) fn suspend_channel() -> Weight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `2767` - // Minimum execution time: 3_137_000 picoseconds. - Weight::from_parts(3_370_000, 2767) + // Minimum execution time: 2_000_000 picoseconds. + Weight::from_parts(2_000_000, 2767) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -119,8 +183,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `177` // Estimated: `2767` - // Minimum execution time: 4_389_000 picoseconds. - Weight::from_parts(4_605_000, 2767) + // Minimum execution time: 3_000_000 picoseconds. + Weight::from_parts(3_000_000, 2767) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -128,8 +192,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_171_000 picoseconds. - Weight::from_parts(5_371_000, 0) + // Minimum execution time: 7_000_000 picoseconds. + Weight::from_parts(8_000_000, 0) } /// Storage: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) /// Proof: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) @@ -149,8 +213,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `105713` // Estimated: `109178` - // Minimum execution time: 168_699_000 picoseconds. - Weight::from_parts(171_160_000, 109178) + // Minimum execution time: 71_000_000 picoseconds. + Weight::from_parts(129_000_000, 109178) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -172,8 +236,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `65782` // Estimated: `69247` - // Minimum execution time: 110_828_000 picoseconds. - Weight::from_parts(113_303_000, 69247) + // Minimum execution time: 105_000_000 picoseconds. + Weight::from_parts(108_000_000, 69247) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } diff --git a/runtime/moonbase/src/weights/pallet_xcm.rs b/runtime/moonbase/src/weights/pallet_xcm.rs index 29a577e08be..24a65424864 100644 --- a/runtime/moonbase/src/weights/pallet_xcm.rs +++ b/runtime/moonbase/src/weights/pallet_xcm.rs @@ -62,10 +62,10 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `111` - // Estimated: `3576` - // Minimum execution time: 25_074_000 picoseconds. - Weight::from_parts(26_313_000, 3576) + // Measured: `181` + // Estimated: `3646` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(20_000_000, 3646) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -78,12 +78,6 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. Weight::from_parts(18_446_744_073_709_551_000, 0) } - /// Storage: UNKNOWN KEY `0x0b375bcf789eda4990e6aaebbecc9ea4` (r:1 w:0) - /// Proof: UNKNOWN KEY `0x0b375bcf789eda4990e6aaebbecc9ea4` (r:1 w:0) - /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) - /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::LastRelayChainBlockNumber` (r:1 w:0) - /// Proof: `ParachainSystem::LastRelayChainBlockNumber` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) @@ -102,19 +96,13 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(105506), added: 107981, mode: `MaxEncodedLen`) fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `423` - // Estimated: `3888` - // Minimum execution time: 100_882_000 picoseconds. - Weight::from_parts(103_242_000, 3888) - .saturating_add(T::DbWeight::get().reads(10_u64)) + // Measured: `419` + // Estimated: `3884` + // Minimum execution time: 69_000_000 picoseconds. + Weight::from_parts(70_000_000, 3884) + .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: UNKNOWN KEY `0x0b375bcf789eda4990e6aaebbecc9ea4` (r:1 w:0) - /// Proof: UNKNOWN KEY `0x0b375bcf789eda4990e6aaebbecc9ea4` (r:1 w:0) - /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) - /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::LastRelayChainBlockNumber` (r:1 w:0) - /// Proof: `ParachainSystem::LastRelayChainBlockNumber` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) @@ -155,11 +143,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `12432` - // Estimated: `20847` - // Minimum execution time: 337_529_000 picoseconds. - Weight::from_parts(347_720_000, 20847) - .saturating_add(T::DbWeight::get().reads(26_u64)) + // Measured: `12498` + // Estimated: `20913` + // Minimum execution time: 228_000_000 picoseconds. + Weight::from_parts(233_000_000, 20913) + .saturating_add(T::DbWeight::get().reads(23_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) @@ -168,8 +156,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69` // Estimated: `1554` - // Minimum execution time: 10_976_000 picoseconds. - Weight::from_parts(11_375_000, 1554) + // Minimum execution time: 7_000_000 picoseconds. + Weight::from_parts(8_000_000, 1554) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) @@ -178,8 +166,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_126_000 picoseconds. - Weight::from_parts(7_430_000, 0) + // Minimum execution time: 5_000_000 picoseconds. + Weight::from_parts(5_000_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) @@ -188,8 +176,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_457_000 picoseconds. - Weight::from_parts(2_629_000, 0) + // Minimum execution time: 1_000_000 picoseconds. + Weight::from_parts(2_000_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) @@ -210,10 +198,10 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `111` - // Estimated: `3576` - // Minimum execution time: 29_258_000 picoseconds. - Weight::from_parts(29_957_000, 3576) + // Measured: `181` + // Estimated: `3646` + // Minimum execution time: 23_000_000 picoseconds. + Weight::from_parts(24_000_000, 3646) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -233,10 +221,10 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `329` - // Estimated: `3794` - // Minimum execution time: 34_393_000 picoseconds. - Weight::from_parts(35_526_000, 3794) + // Measured: `395` + // Estimated: `3860` + // Minimum execution time: 25_000_000 picoseconds. + Weight::from_parts(25_000_000, 3860) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -246,8 +234,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_398_000 picoseconds. - Weight::from_parts(2_630_000, 0) + // Minimum execution time: 1_000_000 picoseconds. + Weight::from_parts(2_000_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `PolkadotXcm::SupportedVersion` (r:6 w:2) @@ -256,8 +244,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `125` // Estimated: `15965` - // Minimum execution time: 22_601_000 picoseconds. - Weight::from_parts(23_394_000, 15965) + // Minimum execution time: 18_000_000 picoseconds. + Weight::from_parts(19_000_000, 15965) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -267,8 +255,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `129` // Estimated: `15969` - // Minimum execution time: 22_998_000 picoseconds. - Weight::from_parts(23_567_000, 15969) + // Minimum execution time: 18_000_000 picoseconds. + Weight::from_parts(18_000_000, 15969) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -278,8 +266,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `212` // Estimated: `18527` - // Minimum execution time: 28_774_000 picoseconds. - Weight::from_parts(29_227_000, 18527) + // Minimum execution time: 23_000_000 picoseconds. + Weight::from_parts(24_000_000, 18527) .saturating_add(T::DbWeight::get().reads(7_u64)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) @@ -292,16 +280,14 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: // Measured: `178` // Estimated: `6118` - // Minimum execution time: 27_320_000 picoseconds. - Weight::from_parts(28_219_000, 6118) - .saturating_add(T::DbWeight::get().reads(7_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + // Minimum execution time: 16_000_000 picoseconds. + Weight::from_parts(17_000_000, 6118) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -309,8 +295,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `215` // Estimated: `13580` - // Minimum execution time: 20_082_000 picoseconds. - Weight::from_parts(20_383_000, 13580) + // Minimum execution time: 16_000_000 picoseconds. + Weight::from_parts(16_000_000, 13580) .saturating_add(T::DbWeight::get().reads(5_u64)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:2) @@ -319,12 +305,12 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `136` // Estimated: `15976` - // Minimum execution time: 23_340_000 picoseconds. - Weight::from_parts(24_326_000, 15976) + // Minimum execution time: 18_000_000 picoseconds. + Weight::from_parts(18_000_000, 15976) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:2) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:1) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -334,16 +320,14 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) - /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: // Measured: `178` // Estimated: `16018` - // Minimum execution time: 40_575_000 picoseconds. - Weight::from_parts(42_069_000, 16018) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Minimum execution time: 26_000_000 picoseconds. + Weight::from_parts(26_000_000, 16018) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -353,8 +337,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69` // Estimated: `1554` - // Minimum execution time: 5_102_000 picoseconds. - Weight::from_parts(5_329_000, 1554) + // Minimum execution time: 3_000_000 picoseconds. + Weight::from_parts(4_000_000, 1554) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -364,8 +348,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7706` // Estimated: `11171` - // Minimum execution time: 27_307_000 picoseconds. - Weight::from_parts(28_101_000, 11171) + // Minimum execution time: 27_000_000 picoseconds. + Weight::from_parts(28_000_000, 11171) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -377,8 +361,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `126` // Estimated: `3591` - // Minimum execution time: 40_106_000 picoseconds. - Weight::from_parts(41_096_000, 3591) + // Minimum execution time: 29_000_000 picoseconds. + Weight::from_parts(30_000_000, 3591) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/moonbase/src/weights/pallet_xcm_transactor.rs b/runtime/moonbase/src/weights/pallet_xcm_transactor.rs index 34025d51c03..4d8d01adc79 100644 --- a/runtime/moonbase/src/weights/pallet_xcm_transactor.rs +++ b/runtime/moonbase/src/weights/pallet_xcm_transactor.rs @@ -56,8 +56,8 @@ impl pallet_xcm_transactor::WeightInfo for WeightInfo pallet_xcm_transactor::WeightInfo for WeightInfo pallet_xcm_transactor::WeightInfo for WeightInfo pallet_xcm_transactor::WeightInfo for WeightInfo pallet_xcm_transactor::WeightInfo for WeightInfo pallet_xcm_transactor::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: - // Measured: `1584` - // Estimated: `7524` - // Minimum execution time: 125_392_000 picoseconds. - Weight::from_parts(128_465_000, 7524) + // Measured: `1654` + // Estimated: `7594` + // Minimum execution time: 81_000_000 picoseconds. + Weight::from_parts(83_000_000, 7594) .saturating_add(T::DbWeight::get().reads(22_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -192,10 +192,10 @@ impl pallet_xcm_transactor::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: - // Measured: `1518` - // Estimated: `7458` - // Minimum execution time: 117_042_000 picoseconds. - Weight::from_parts(123_766_000, 7458) + // Measured: `1588` + // Estimated: `7528` + // Minimum execution time: 76_000_000 picoseconds. + Weight::from_parts(77_000_000, 7528) .saturating_add(T::DbWeight::get().reads(20_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -217,10 +217,10 @@ impl pallet_xcm_transactor::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: - // Measured: `456` - // Estimated: `3921` - // Minimum execution time: 44_962_000 picoseconds. - Weight::from_parts(46_520_000, 3921) + // Measured: `526` + // Estimated: `3991` + // Minimum execution time: 32_000_000 picoseconds. + Weight::from_parts(33_000_000, 3991) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -244,10 +244,10 @@ impl pallet_xcm_transactor::WeightInfo for WeightInfo Weight { // Proof Size summary in bytes: - // Measured: `460` - // Estimated: `3925` - // Minimum execution time: 49_137_000 picoseconds. - Weight::from_parts(50_391_000, 3925) + // Measured: `530` + // Estimated: `3995` + // Minimum execution time: 35_000_000 picoseconds. + Weight::from_parts(36_000_000, 3995) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } diff --git a/runtime/moonbase/src/xcm_config.rs b/runtime/moonbase/src/xcm_config.rs index 8db585ece0d..15929e6cb05 100644 --- a/runtime/moonbase/src/xcm_config.rs +++ b/runtime/moonbase/src/xcm_config.rs @@ -319,33 +319,6 @@ pub type XcmExecutor = pallet_erc20_xcm_bridge::XcmExecutorWrapper< xcm_executor::XcmExecutor, >; -parameter_types! { - /// AssetHub migration start block for development/testing environments - /// - /// Set to 0 by default since Moonbase is not affected by the actual AssetHub migration. - /// This can be overridden for testing migration scenarios in development. - pub storage AssetHubMigrationStartsAtRelayBlock: u32 = 0; -} - -/// AssetHub migration status provider for Moonbase -/// -/// # Purpose -/// While Moonbase will not be affected by the actual AssetHub migration on Polkadot, -/// this implementation allows simulation and testing of migration behavior in -/// development environments. -pub struct AssetHubMigrationStarted; -impl Get for AssetHubMigrationStarted { - fn get() -> bool { - use cumulus_pallet_parachain_system::RelaychainDataProvider; - use sp_runtime::traits::BlockNumberProvider; - - let ahm_relay_block = AssetHubMigrationStartsAtRelayBlock::get(); - let current_relay_block_number = RelaychainDataProvider::::current_block_number(); - - current_relay_block_number >= ahm_relay_block - } -} - impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; type SendXcmOrigin = EnsureXcmOrigin; @@ -371,7 +344,6 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = moonbase_weights::pallet_xcm::WeightInfo; type AdminOrigin = EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = AssetHubMigrationStarted; } impl cumulus_pallet_xcm::Config for Runtime { @@ -454,7 +426,6 @@ pub type ResumeXcmOrigin = EitherOfDiverse< >; impl pallet_emergency_para_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type CheckAssociatedRelayNumber = cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; type QueuePausedQuery = (MaintenanceMode, NarrowOriginToSibling); @@ -673,7 +644,6 @@ pub type DerivativeAddressRegistrationOrigin = EitherOfDiverse, governance::custom_origins::GeneralAdmin>; impl pallet_xcm_transactor::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; type Transactor = Transactors; type DerivativeAddressRegistrationOrigin = DerivativeAddressRegistrationOrigin; @@ -757,7 +727,6 @@ impl pallet_moonbeam_foreign_assets::Config for Runtime { type ForeignAssetUnfreezerOrigin = ForeignAssetManagerOrigin; type OnForeignAssetCreated = (); type MaxForeignAssets = ConstU32<256>; - type RuntimeEvent = RuntimeEvent; type WeightInfo = moonbase_weights::pallet_moonbeam_foreign_assets::WeightInfo; type XcmLocationToH160 = LocationToH160; type ForeignAssetCreationDeposit = dynamic_params::xcm_config::ForeignAssetCreationDeposit; @@ -800,7 +769,6 @@ impl pallet_xcm_weight_trader::Config for Runtime { type PauseSupportedAssetOrigin = AddAndEditSupportedAssetOrigin; type ResumeSupportedAssetOrigin = AddAndEditSupportedAssetOrigin; type RemoveSupportedAssetOrigin = RemoveSupportedAssetOrigin; - type RuntimeEvent = RuntimeEvent; type WeightInfo = moonbase_weights::pallet_xcm_weight_trader::WeightInfo; type WeightToFee = ::WeightToFee; type XcmFeesAccount = XcmFeesAccount; diff --git a/runtime/moonbase/tests/common/mod.rs b/runtime/moonbase/tests/common/mod.rs index dbe6e9192ec..cf4b5e9bc33 100644 --- a/runtime/moonbase/tests/common/mod.rs +++ b/runtime/moonbase/tests/common/mod.rs @@ -34,6 +34,7 @@ use sp_core::{Encode, H160}; use sp_runtime::{traits::Dispatchable, BuildStorage, Digest, DigestItem, Perbill, Percent}; use cumulus_pallet_parachain_system::MessagingStateSnapshot; +use cumulus_primitives_core::relay_chain::{AbridgedHostConfiguration, AsyncBackingParams}; use cumulus_primitives_core::AbridgedHrmpChannel; use fp_rpc::ConvertTransaction; use moonbase_runtime::XcmWeightTrader; @@ -44,6 +45,25 @@ pub fn existential_deposit() -> u128 { ::ExistentialDeposit::get() } +/// Returns mock AbridgedHostConfiguration for ParachainSystem tests +pub fn mock_abridged_host_config() -> AbridgedHostConfiguration { + AbridgedHostConfiguration { + max_code_size: 3_145_728, + max_head_data_size: 20_480, + max_upward_queue_count: 174_762, + max_upward_queue_size: 1_048_576, + max_upward_message_size: 65_531, + max_upward_message_num_per_candidate: 16, + hrmp_max_message_num_per_candidate: 10, + validation_upgrade_cooldown: 6, + validation_upgrade_delay: 6, + async_backing_params: AsyncBackingParams { + max_candidate_depth: 3, + allowed_ancestry_len: 2, + }, + } +} + // A valid signed Alice transfer. pub const VALID_ETH_TX: &str = "02f86d8205018085174876e80085e8d4a5100082520894f24ff3a9cf04c71dbc94d0b566f7a27b9456\ @@ -289,6 +309,11 @@ impl ExtBuilder { let xcm_assets = self.xcm_assets.clone(); ext.execute_with(|| { + // Mock host configuration for ParachainSystem + cumulus_pallet_parachain_system::HostConfiguration::::put( + mock_abridged_host_config(), + ); + // Mock hrmp egress_channels cumulus_pallet_parachain_system::RelevantMessagingState::::put( MessagingStateSnapshot { @@ -413,6 +438,8 @@ pub fn set_parachain_inherent_data() { relay_chain_state: relay_chain_state, downward_messages: Default::default(), horizontal_messages: Default::default(), + collator_peer_id: Default::default(), + relay_parent_descendants: Default::default(), }; assert_ok!(RuntimeCall::ParachainSystem( cumulus_pallet_parachain_system::Call::::set_validation_data { diff --git a/runtime/moonbase/tests/evm_tracing.rs b/runtime/moonbase/tests/evm_tracing.rs index e423e9bdcb3..556da048f95 100644 --- a/runtime/moonbase/tests/evm_tracing.rs +++ b/runtime/moonbase/tests/evm_tracing.rs @@ -57,7 +57,7 @@ mod tests { let block = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: 1, + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; @@ -98,7 +98,7 @@ mod tests { let block = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: 1, + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; @@ -116,7 +116,7 @@ mod tests { let block = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: 1, + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; diff --git a/runtime/moonbase/tests/integration_test.rs b/runtime/moonbase/tests/integration_test.rs index a125ed717ad..b9501f11559 100644 --- a/runtime/moonbase/tests/integration_test.rs +++ b/runtime/moonbase/tests/integration_test.rs @@ -1082,7 +1082,7 @@ fn xtokens_precompiles_transfer() { weight: 4_000_000, }, ) - .expect_cost(260283) + .expect_cost(248588) .expect_no_logs() // We expect an evm subcall ERC20.burnFrom .with_subcall_handle(move |subcall| { @@ -1173,7 +1173,7 @@ fn xtokens_precompiles_transfer_multiasset() { weight: 4_000_000, }, ) - .expect_cost(260283) + .expect_cost(248588) .expect_no_logs() // We expect an evm subcall ERC20.burnFrom .with_subcall_handle(move |subcall| { @@ -1257,7 +1257,7 @@ fn xtokens_precompiles_transfer_native() { weight: 4_000_000, }, ) - .expect_cost(108683) + .expect_cost(96988) .expect_no_logs() .execute_returns(()); }) @@ -1639,9 +1639,12 @@ fn root_can_change_default_xcm_vers() { })), Box::new(VersionedAssets::from(asset.clone())), 0, - WeightLimit::Unlimited + WeightLimit::Unlimited, ), - pallet_xcm::Error::::LocalExecutionIncomplete + pallet_xcm::Error::::LocalExecutionIncompleteWithError { + index: 2, + error: pallet_xcm::ExecutionError::DestinationUnsupported + } ); // Root sets the defaultXcm @@ -1834,7 +1837,7 @@ fn transact_through_signed_precompile_works_v1() { call: bytes.into(), }, ) - .expect_cost(30883) + .expect_cost(30342) .expect_no_logs() .execute_returns(()); }); @@ -1874,7 +1877,7 @@ fn transact_through_signed_precompile_works_v2() { overall_weight: total_weight, }, ) - .expect_cost(30883) + .expect_cost(30342) .expect_no_logs() .execute_returns(()); }); @@ -2190,7 +2193,7 @@ fn test_nested_batch_calls_from_xcm_transact() { call: valid_nested_calls.encode().into(), }]); - assert!(XcmExecutor::prepare(valid_message).is_ok()); + assert!(XcmExecutor::prepare(valid_message, Weight::MAX).is_ok()); let excessive_nested_calls = RuntimeCall::Utility(pallet_utility::Call::batch { calls: vec![valid_nested_calls], @@ -2202,7 +2205,7 @@ fn test_nested_batch_calls_from_xcm_transact() { call: excessive_nested_calls.encode().into(), }]); // Expect to fail because we have too many nested calls - assert!(XcmExecutor::prepare(invalid_message).is_err()); + assert!(XcmExecutor::prepare(invalid_message, Weight::MAX).is_err()); }); } diff --git a/runtime/moonbase/tests/runtime_apis.rs b/runtime/moonbase/tests/runtime_apis.rs index cbe6c9e494d..b2d20e3c3f5 100644 --- a/runtime/moonbase/tests/runtime_apis.rs +++ b/runtime/moonbase/tests/runtime_apis.rs @@ -328,7 +328,7 @@ fn can_author_when_selected_is_empty() { let parent = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: Default::default(), + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; diff --git a/runtime/moonbase/tests/xcm_mock/parachain.rs b/runtime/moonbase/tests/xcm_mock/parachain.rs index 1fc32c0d1b5..e546e208c9b 100644 --- a/runtime/moonbase/tests/xcm_mock/parachain.rs +++ b/runtime/moonbase/tests/xcm_mock/parachain.rs @@ -34,7 +34,7 @@ use moonbeam_runtime_common::{ use pallet_moonbeam_foreign_assets::{MapSuccessToGovernance, MapSuccessToXcm}; use pallet_xcm::{migration::v1::VersionUncheckedMigrateToV1, EnsureXcm}; use parity_scale_codec::{Decode, DecodeWithMemTracking, Encode, MaxEncodedLen}; -use sp_core::{ConstBool, H160, H256}; +use sp_core::{H160, H256}; use sp_runtime::{ traits::{BlakeTwo256, Hash, IdentityLookup, MaybeEquivalence, Zero}, Permill, @@ -399,7 +399,7 @@ impl pallet_treasury::Config for Runtime { type BalanceConverter = AssetRateConverter; type PayoutPeriod = ConstU32<0>; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = ArgumentsBenchmarkHelper; + type BenchmarkHelper = ArgumentsBenchmarkHelper; type BlockNumberProvider = System; } @@ -410,7 +410,6 @@ pub mod mock_msg_queue { #[pallet::config] pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; type XcmExecutor: ExecuteXcm; } @@ -439,7 +438,7 @@ pub mod mock_msg_queue { /// Some XCM was executed OK. Success(Option), /// Some XCM failed. - Fail(Option, XcmError), + Fail(Option, InstructionError), /// Bad XCM version used. BadVersion(Option), /// Bad XCM format used. @@ -464,7 +463,7 @@ pub mod mock_msg_queue { _sent_at: RelayBlockNumber, xcm: VersionedXcm, max_weight: Weight, - ) -> Result { + ) -> Result { let hash = Encode::using_encoded(&xcm, T::Hashing::hash); let (result, event) = match Xcm::::try_from(xcm) { Ok(xcm) => { @@ -478,7 +477,7 @@ pub mod mock_msg_queue { max_weight, Weight::zero(), ) { - Outcome::Error { error } => { + Outcome::Error(error) => { (Err(error.clone()), Event::Fail(Some(hash), error)) } Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), @@ -490,7 +489,10 @@ pub mod mock_msg_queue { } } Err(()) => ( - Err(XcmError::UnhandledXcmVersion), + Err(InstructionError { + error: XcmError::UnhandledXcmVersion, + index: 0, + }), Event::BadVersion(Some(hash)), ), }; @@ -565,9 +567,7 @@ pub mod mock_version_changer { use frame_support::pallet_prelude::*; #[pallet::config] - pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - } + pub trait Config: frame_system::Config {} #[pallet::call] impl Pallet {} @@ -602,13 +602,10 @@ pub mod mock_version_changer { } impl mock_msg_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; } -impl mock_version_changer::Config for Runtime { - type RuntimeEvent = RuntimeEvent; -} +impl mock_version_changer::Config for Runtime {} pub type LocalOriginToLocation = xcm_primitives::SignedToAccountId20; @@ -644,7 +641,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } #[derive( @@ -696,7 +692,6 @@ impl pallet_moonbeam_foreign_assets::Config for Runtime { type ForeignAssetUnfreezerOrigin = ForeignAssetManagerOrigin; type OnForeignAssetCreated = (); type MaxForeignAssets = ConstU32<256>; - type RuntimeEvent = RuntimeEvent; type WeightInfo = (); type XcmLocationToH160 = LocationToH160; type ForeignAssetCreationDeposit = ForeignAssetCreationDeposit; @@ -710,7 +705,6 @@ parameter_types! { } impl pallet_xcm_transactor::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; type Transactor = MockTransactors; type DerivativeAddressRegistrationOrigin = EnsureRoot; @@ -745,7 +739,6 @@ impl pallet_xcm_weight_trader::Config for Runtime { type NativeLocation = SelfReserve; type PauseSupportedAssetOrigin = EnsureRoot; type RemoveSupportedAssetOrigin = EnsureRoot; - type RuntimeEvent = RuntimeEvent; type ResumeSupportedAssetOrigin = EnsureRoot; type WeightInfo = (); type WeightToFee = WeightToFee; @@ -783,7 +776,6 @@ impl pallet_evm::Config for Runtime { type Currency = Balances; type Runner = pallet_evm::runner::stack::Runner; - type RuntimeEvent = RuntimeEvent; type PrecompilesType = (); type PrecompilesValue = (); type ChainId = (); @@ -895,7 +887,6 @@ parameter_types! { } impl pallet_ethereum::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type StateRoot = pallet_ethereum::IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; @@ -982,7 +973,6 @@ impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { } impl pallet_ethereum_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; diff --git a/runtime/moonbase/tests/xcm_mock/relay_chain.rs b/runtime/moonbase/tests/xcm_mock/relay_chain.rs index 4c9c91b611c..0a3404fa4ed 100644 --- a/runtime/moonbase/tests/xcm_mock/relay_chain.rs +++ b/runtime/moonbase/tests/xcm_mock/relay_chain.rs @@ -247,7 +247,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } parameter_types! { @@ -284,6 +283,9 @@ impl paras::Config for Runtime { type QueueFootprinter = (); type OnNewHead = (); type AssignCoretime = (); + type Fungible = (); + type CooldownRemovalMultiplier = (); + type AuthorizeCurrentCodeOrigin = frame_system::EnsureRoot; } impl dmp::Config for Runtime {} @@ -322,6 +324,10 @@ where fn create_inherent(call: RuntimeCall) -> UncheckedExtrinsic { UncheckedExtrinsic::new_bare(call) } + + fn create_bare(call: RuntimeCall) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_bare(call) + } } parameter_types! { @@ -388,7 +394,7 @@ pub(crate) fn relay_events() -> Vec { .collect::>() } -use frame_support::traits::{ConstBool, Disabled, OnFinalize, OnInitialize}; +use frame_support::traits::{Disabled, OnFinalize, OnInitialize}; pub(crate) fn relay_roll_to(n: BlockNumber) { while System::block_number() < n { diff --git a/runtime/moonbase/tests/xcm_mock/statemint_like.rs b/runtime/moonbase/tests/xcm_mock/statemint_like.rs index 7e18e0fcbc1..34651e82cb4 100644 --- a/runtime/moonbase/tests/xcm_mock/statemint_like.rs +++ b/runtime/moonbase/tests/xcm_mock/statemint_like.rs @@ -16,7 +16,7 @@ //! Relay chain runtime mock. -use frame_support::traits::{ConstBool, Disabled}; +use frame_support::traits::Disabled; use frame_support::{ construct_runtime, parameter_types, traits::{AsEnsureOriginWithArg, Contains, ContainsPair, Everything, Get, Nothing}, @@ -383,7 +383,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } impl cumulus_pallet_xcm::Config for Runtime { @@ -398,7 +397,6 @@ pub mod mock_msg_queue { #[pallet::config] pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; type XcmExecutor: ExecuteXcm; } @@ -427,7 +425,7 @@ pub mod mock_msg_queue { /// Some XCM was executed OK. Success(Option), /// Some XCM failed. - Fail(Option, XcmError), + Fail(Option, InstructionError), /// Bad XCM version used. BadVersion(Option), /// Bad XCM format used. @@ -452,7 +450,7 @@ pub mod mock_msg_queue { _sent_at: RelayBlockNumber, xcm: VersionedXcm, max_weight: Weight, - ) -> Result { + ) -> Result { let hash = Encode::using_encoded(&xcm, T::Hashing::hash); let (result, event) = match Xcm::::try_from(xcm) { Ok(xcm) => { @@ -466,7 +464,7 @@ pub mod mock_msg_queue { max_weight, Weight::zero(), ) { - Outcome::Error { error } => { + Outcome::Error(error) => { (Err(error.clone()), Event::Fail(Some(hash), error)) } Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), @@ -478,7 +476,10 @@ pub mod mock_msg_queue { } } Err(()) => ( - Err(XcmError::UnhandledXcmVersion), + Err(InstructionError { + error: XcmError::UnhandledXcmVersion, + index: 0, + }), Event::BadVersion(Some(hash)), ), }; @@ -546,7 +547,6 @@ pub mod mock_msg_queue { } } impl mock_msg_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; } @@ -557,9 +557,7 @@ pub mod mock_statemint_prefix { use frame_support::pallet_prelude::*; #[pallet::config] - pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - } + pub trait Config: frame_system::Config {} #[pallet::call] impl Pallet {} @@ -593,9 +591,7 @@ pub mod mock_statemint_prefix { } } -impl mock_statemint_prefix::Config for Runtime { - type RuntimeEvent = RuntimeEvent; -} +impl mock_statemint_prefix::Config for Runtime {} type Block = frame_system::mocking::MockBlockU32; construct_runtime!( diff --git a/runtime/moonbase/tests/xcm_tests.rs b/runtime/moonbase/tests/xcm_tests.rs index 1f29143a7cb..9a1eaa86acd 100644 --- a/runtime/moonbase/tests/xcm_tests.rs +++ b/runtime/moonbase/tests/xcm_tests.rs @@ -35,12 +35,13 @@ use xcm::{ AccountId32, AccountKey20, All, Asset, AssetId, Assets as XcmAssets, BuyExecution, ClearOrigin, DepositAsset, Fungibility, GeneralIndex, Junction, Junctions, Limited, Location, OriginKind, PalletInstance, Parachain, QueryResponse, Reanchorable, Response, - WeightLimit, WithdrawAsset, Xcm, + WeightLimit, Wild, WithdrawAsset, Xcm, }, - VersionedAssets, + VersionedAssetId, VersionedAssets, VersionedXcm, }; use xcm::{IntoVersion, VersionedLocation, WrapVersion}; use xcm_executor::traits::ConvertLocation; +use xcm_executor::traits::TransferType; use xcm_mock::*; use xcm_primitives::{ split_location_into_chain_part_and_beneficiary, UtilityEncodeCall, DEFAULT_PROOF_SIZE, @@ -130,12 +131,19 @@ fn receive_relay_asset_from_relay() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([], 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -189,12 +197,19 @@ fn send_relay_asset_to_relay() { // First send relay chain asset to Parachain like in previous test Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).into()), Box::new(([], 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -227,12 +242,19 @@ fn send_relay_asset_to_relay() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 123); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary, + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(asset)), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -304,12 +326,19 @@ fn send_relay_asset_to_para_b() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([], 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -338,12 +367,19 @@ fn send_relay_asset_to_para_b() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary, + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::RemoteReserve(Location::parent().into())), + Box::new(fees_id), + Box::new(TransferType::RemoteReserve(Location::parent().into())), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -843,12 +879,19 @@ fn receive_relay_asset_with_trader() { // Therefore with no refund, we should receive 10 tokens less // Native trader fails for this, and we use the asset trader Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([], 100).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1075,12 +1118,19 @@ fn error_when_not_paying_enough() { // If we set the dest weight to be 1e7, we know the buy_execution will spend 1e7*1e6/1e12 = 10 // Therefore with no refund, we should receive 10 tokens less Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([], 5).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1147,12 +1197,19 @@ fn transact_through_derivative_multilocation() { .into(); Relay::execute_with(|| { // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([], 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1189,13 +1246,20 @@ fn transact_through_derivative_multilocation() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1309,12 +1373,19 @@ fn transact_through_derivative_with_custom_fee_weight() { .into(); Relay::execute_with(|| { // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([], 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1351,13 +1422,20 @@ fn transact_through_derivative_with_custom_fee_weight() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1473,12 +1551,19 @@ fn transact_through_derivative_with_custom_fee_weight_refund() { .into(); Relay::execute_with(|| { // 4000000000 transact + 9000 correspond to 4000009000 tokens. 100 more for the transfer call - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([], 4000009100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1515,13 +1600,20 @@ fn transact_through_derivative_with_custom_fee_weight_refund() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1649,12 +1741,19 @@ fn transact_through_sovereign() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([], 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1690,13 +1789,20 @@ fn transact_through_sovereign() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1916,12 +2022,19 @@ fn transact_through_sovereign_with_custom_fee_weight() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([], 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1957,13 +2070,20 @@ fn transact_through_sovereign_with_custom_fee_weight() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -2079,12 +2199,19 @@ fn transact_through_sovereign_with_custom_fee_weight_refund() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([], 4000009100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2120,13 +2247,20 @@ fn transact_through_sovereign_with_custom_fee_weight_refund() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -2272,12 +2406,19 @@ fn test_automatic_versioning_on_runtime_upgrade_with_relay() { )); // Transfer assets. Since it is an unknown destination, it will query for version - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([], 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); @@ -2534,12 +2675,19 @@ fn receive_asset_with_no_sufficients_is_possible_for_non_existent_account() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([], 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2589,12 +2737,19 @@ fn receive_assets_with_sufficients_true_allows_non_funded_account_to_receive_ass } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([], 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2652,12 +2807,19 @@ fn evm_account_receiving_assets_should_handle_sufficients_ref_count() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([], 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2729,12 +2891,19 @@ fn empty_account_should_not_be_reset() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([], 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2856,25 +3025,43 @@ fn test_statemint_like() { .into(); // Send asset with previous prefix - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new(VersionedLocation::from(dest).clone()), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - xcm::latest::prelude::GeneralIndex(0), - ], - 123 - ) - .into() - ), + let fees_id: VersionedAssetId = AssetId(Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + xcm::latest::prelude::GeneralIndex(0), + ], + )) + .into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new( + ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8 + ), + xcm::latest::prelude::GeneralIndex(0), + ], + 123 + ) + .into() + ), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -2968,16 +3155,19 @@ fn send_statemint_asset_from_para_a_to_statemint_with_relay_fee() { // Send relay chain asset to Alice in Parachain A Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_from_relay.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_from_relay) - .clone() - .into() - ), Box::new(([], 200).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -3018,29 +3208,43 @@ fn send_statemint_asset_from_para_a_to_statemint_with_relay_fee() { .into(); // Send with new prefix - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_from_statemint) - .clone() - .into() - ), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - GeneralIndex(10), - ], - 125 - ) - .into() - ), + let fees_id: VersionedAssetId = AssetId(Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + )) + .into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_from_statemint.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new( + ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8 + ), + GeneralIndex(10), + ], + 125 + ) + .into() + ), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); let statemint_beneficiary = Location { @@ -3085,12 +3289,19 @@ fn send_statemint_asset_from_para_a_to_statemint_with_relay_fee() { ); let asset_fee = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 100); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset_fee, asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) )); }); @@ -3193,18 +3404,23 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer() { )); // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 200).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3230,12 +3446,19 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer() { // Finally we test that we are able to send back the DOTs to AssetHub from the ParaA ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 100); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); @@ -3256,18 +3479,23 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer() { // Send back tokens from AH to ParaA from Bob's account Statemint::execute_with(|| { // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 100).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!(StatemintBalances::free_balance(RELAYBOB), INITIAL_BALANCE); @@ -3360,18 +3588,23 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_with_fee() { )); // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 200).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3398,12 +3631,19 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_with_fee() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 100); let asset_fee = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 10); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset_fee, asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); @@ -3424,18 +3664,23 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_with_fee() { // Send back tokens from AH to ParaA from Bob's account Statemint::execute_with(|| { // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 100).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!( @@ -3531,18 +3776,23 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiasset() { )); // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 200).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3571,12 +3821,19 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiasset() { }; // Finally we test that we are able to send back the DOTs to AssetHub from the ParaA ParaA::execute_with(|| { - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary, + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(asset)), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); @@ -3597,18 +3854,23 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiasset() { // Send back tokens from AH to ParaA from Bob's account Statemint::execute_with(|| { // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 100).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!(StatemintBalances::free_balance(RELAYBOB), INITIAL_BALANCE); @@ -3755,43 +4017,62 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multicurrencies() { )); // Now send relay tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 200).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // Send USDC - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - GeneralIndex(10), - ], - 125 - ) - .into() - ), + let fees_id: VersionedAssetId = AssetId(Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + )) + .into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new( + ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8 + ), + GeneralIndex(10), + ], + 125 + ) + .into() + ), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3828,12 +4109,19 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multicurrencies() { ); let asset_fee = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 100); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset_fee, asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) )); @@ -3859,18 +4147,23 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multicurrencies() { let bob_previous_balance = StatemintBalances::free_balance(RELAYBOB); // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 100).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!( @@ -4020,43 +4313,62 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiassets() { )); // Now send relay tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 200).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // Send USDC - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - GeneralIndex(10), - ], - 125 - ) - .into() - ), + let fees_id: VersionedAssetId = AssetId(Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + )) + .into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new( + ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8 + ), + GeneralIndex(10), + ], + 125 + ) + .into() + ), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -4104,12 +4416,19 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiassets() { // Finally we test that we are able to send back the DOTs to AssetHub from the ParaA ParaA::execute_with(|| { - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary, + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(assets_to_send)), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) )); @@ -4135,18 +4454,23 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiassets() { let bob_previous_balance = StatemintBalances::free_balance(RELAYBOB); // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 100).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!( diff --git a/runtime/moonbeam/Cargo.toml b/runtime/moonbeam/Cargo.toml index edef87deeff..c7e07d12054 100644 --- a/runtime/moonbeam/Cargo.toml +++ b/runtime/moonbeam/Cargo.toml @@ -240,7 +240,6 @@ std = [ "moonbeam-runtime-common/std", "moonkit-xcm-primitives/std", "nimbus-primitives/std", - "pallet-assets/std", "pallet-async-backing/std", "pallet-author-inherent/std", "pallet-author-mapping/std", @@ -374,7 +373,6 @@ runtime-benchmarks = [ "hex-literal", "moonbeam-runtime-common/runtime-benchmarks", "parachains-common/runtime-benchmarks", - "pallet-assets/runtime-benchmarks", "pallet-author-inherent/runtime-benchmarks", "pallet-author-mapping/runtime-benchmarks", "pallet-author-slot-filter/runtime-benchmarks", @@ -462,7 +460,6 @@ try-runtime = [ "pallet-crowdloan-rewards/try-runtime", "pallet-proxy/try-runtime", "pallet-identity/try-runtime", - "pallet-assets/try-runtime", "pallet-xcm-transactor/try-runtime", "pallet-proxy-genesis-companion/try-runtime", "pallet-moonbeam-orbiters/try-runtime", @@ -475,4 +472,5 @@ try-runtime = [ "pallet-bridge-parachains/try-runtime", "pallet-bridge-messages/try-runtime", "pallet-xcm-bridge/try-runtime", + "parachains-common/try-runtime", ] diff --git a/runtime/moonbeam/src/bridge_config.rs b/runtime/moonbeam/src/bridge_config.rs index 26c03b441c2..1c92e9c97ed 100644 --- a/runtime/moonbeam/src/bridge_config.rs +++ b/runtime/moonbeam/src/bridge_config.rs @@ -89,6 +89,7 @@ impl pallet_bridge_parachains::Config for Runtime { type ParaStoredHeaderDataBuilder = SingleParaStoredHeaderDataBuilder; type HeadsToKeep = ParachainHeadsToKeep; type MaxParaHeadDataSize = MaxKusamaParaHeadDataSize; + type OnNewHead = (); type WeightInfo = moonbeam_weights::pallet_bridge_parachains::WeightInfo; } diff --git a/runtime/moonbeam/src/lib.rs b/runtime/moonbeam/src/lib.rs index e4aaf71a8c7..def0c29a991 100644 --- a/runtime/moonbeam/src/lib.rs +++ b/runtime/moonbeam/src/lib.rs @@ -516,7 +516,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = IdentityAddressMapping; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = MoonbeamPrecompiles; type PrecompilesValue = PrecompilesValue; @@ -608,7 +607,7 @@ impl pallet_treasury::Config for Runtime { type BalanceConverter = AssetRateConverter; type PayoutPeriod = ConstU32<{ 30 * DAYS }>; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = BenchmarkHelper; + type BenchmarkHelper = BenchmarkHelper; type BlockNumberProvider = System; } @@ -650,6 +649,8 @@ impl pallet_identity::Config for Runtime { type WeightInfo = moonbeam_weights::pallet_identity::WeightInfo; type UsernameDeposit = ConstU128<{ currency::deposit(0, MaxUsernameLength::get()) }>; type UsernameGracePeriod = ConstU32<{ 30 * DAYS }>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = BenchmarkHelper; } pub struct TransactionConverter; @@ -681,7 +682,6 @@ parameter_types! { } impl pallet_ethereum::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type StateRoot = pallet_ethereum::IntermediateStateRoot; type PostLogContent = PostBlockAndTxnHashes; type ExtraDataLength = ConstU32<30>; @@ -716,6 +716,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type DmpQueue = frame_support::traits::EnqueueWithOrigin; type WeightInfo = moonbeam_weights::cumulus_pallet_parachain_system::WeightInfo; type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; + type RelayParentOffset = ConstU32<0>; } pub struct EthereumXcmEnsureProxy; @@ -736,7 +737,6 @@ impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { } impl pallet_ethereum_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; @@ -821,7 +821,6 @@ parameter_types! { } impl pallet_parachain_staking::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Currency = Balances; type MonetaryGovernanceOrigin = MonetaryGovernanceOrigin; /// Minimum round length is 2 minutes (10 * 12 second block times) @@ -875,7 +874,6 @@ impl pallet_author_inherent::Config for Runtime { } impl pallet_author_slot_filter::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type RandomnessSource = Randomness; type PotentialAuthors = ParachainStaking; type WeightInfo = moonbeam_weights::pallet_author_slot_filter::WeightInfo; @@ -895,7 +893,6 @@ parameter_types! { } impl pallet_crowdloan_rewards::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Initialized = ConstBool; type InitializationPayment = InitializationPayment; type MaxInitContributors = ConstU32<500>; @@ -914,7 +911,6 @@ impl pallet_crowdloan_rewards::Config for Runtime { // This is a simple session key manager. It should probably either work with, or be replaced // entirely by pallet sessions impl pallet_author_mapping::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type DepositCurrency = Balances; type DepositAmount = ConstU128<{ 100 * currency::GLMR * currency::SUPPLY_FACTOR }>; type Keys = session_keys_primitives::VrfId; @@ -1244,7 +1240,6 @@ impl moonkit_xcm_primitives::PauseXcmExecution for XcmExecutionManager { } impl pallet_maintenance_mode::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type NormalCallFilter = NormalFilter; type MaintenanceCallFilter = MaintenanceFilter; type MaintenanceOrigin = @@ -1267,7 +1262,6 @@ type DelCollatorOrigin = EitherOfDiverse, governance::custom_origins::GeneralAdmin>; impl pallet_moonbeam_orbiters::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type AccountLookup = AuthorMapping; type AddCollatorOrigin = AddCollatorOrigin; type Currency = Balances; @@ -1333,7 +1327,6 @@ where } impl pallet_randomness::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type AddressMapping = sp_runtime::traits::ConvertInto; type Currency = Balances; type BabeDataGetter = BabeDataGetter; @@ -1544,7 +1537,6 @@ mod benches { [pallet_crowdloan_rewards, CrowdloanRewards] [pallet_author_mapping, AuthorMapping] [pallet_proxy, Proxy] - [pallet_transaction_payment, PalletTransactionPaymentBenchmark::] [pallet_identity, Identity] [cumulus_pallet_parachain_system, ParachainSystem] [cumulus_pallet_xcmp_queue, XcmpQueue] diff --git a/runtime/moonbeam/src/precompiles.rs b/runtime/moonbeam/src/precompiles.rs index 05a27a54167..0c2fb10a2d6 100644 --- a/runtime/moonbeam/src/precompiles.rs +++ b/runtime/moonbeam/src/precompiles.rs @@ -145,7 +145,11 @@ type MoonbeamPrecompilesAt = ( // (0x100 => 256) https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md PrecompileAt, P256Verify, EthereumPrecompilesChecks>, // Non-Moonbeam specific nor Ethereum precompiles : - PrecompileAt, Sha3FIPS256, (CallableByContract, CallableByPrecompile)>, + PrecompileAt< + AddressU64<1024>, + Sha3FIPS256, + (CallableByContract, CallableByPrecompile), + >, RemovedPrecompileAt>, // Dispatch PrecompileAt, ECRecoverPublicKey, (CallableByContract, CallableByPrecompile)>, // Moonbeam specific precompiles: diff --git a/runtime/moonbeam/src/weights/cumulus_pallet_xcmp_queue.rs b/runtime/moonbeam/src/weights/cumulus_pallet_xcmp_queue.rs index 46ce12c967d..bc86333eb81 100644 --- a/runtime/moonbeam/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/runtime/moonbeam/src/weights/cumulus_pallet_xcmp_queue.rs @@ -56,8 +56,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `142` // Estimated: `1497` - // Minimum execution time: 5_139_000 picoseconds. - Weight::from_parts(5_496_000, 1497) + // Minimum execution time: 3_000_000 picoseconds. + Weight::from_parts(4_000_000, 1497) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -71,15 +71,15 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `MessageQueue::Pages` (r:0 w:1) /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 105467]`. + /// The range of component `n` is `[0, 105467]`. fn enqueue_n_bytes_xcmp_message(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `148` // Estimated: `5487` - // Minimum execution time: 12_623_000 picoseconds. - Weight::from_parts(9_225_689, 5487) - // Standard Error: 5 - .saturating_add(Weight::from_parts(881, 0).saturating_mul(n.into())) + // Minimum execution time: 10_000_000 picoseconds. + Weight::from_parts(12_977_994, 5487) + // Standard Error: 9 + .saturating_add(Weight::from_parts(204, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -93,23 +93,87 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `MessageQueue::Pages` (r:0 w:1) /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `MaxEncodedLen`) - fn enqueue_2_empty_xcmp_messages() -> Weight { + /// The range of component `n` is `[0, 1000]`. + fn enqueue_n_empty_xcmp_messages(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `148` // Estimated: `5487` - // Minimum execution time: 20_651_000 picoseconds. - Weight::from_parts(21_139_000, 5487) + // Minimum execution time: 8_000_000 picoseconds. + Weight::from_parts(13_271_241, 5487) + // Standard Error: 1_602 + .saturating_add(Weight::from_parts(113_854, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `Measured`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `Measured`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `Measured`) + /// The range of component `n` is `[0, 105457]`. + fn enqueue_empty_xcmp_message_at(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `330 + n * (1 ±0)` + // Estimated: `3793 + n * (1 ±0)` + // Minimum execution time: 15_000_000 picoseconds. + Weight::from_parts(17_747_207, 3793) + // Standard Error: 22 + .saturating_add(Weight::from_parts(836, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:0 w:100) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 100]`. + fn enqueue_n_full_pages(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `183` + // Estimated: `5487` + // Minimum execution time: 10_000_000 picoseconds. + Weight::from_parts(10_000_000, 5487) + // Standard Error: 134_287 + .saturating_add(Weight::from_parts(28_160_834, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `Measured`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `Measured`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `Measured`) + fn enqueue_1000_small_xcmp_messages() -> Weight { + // Proof Size summary in bytes: + // Measured: `53063` + // Estimated: `56528` + // Minimum execution time: 160_000_000 picoseconds. + Weight::from_parts(163_000_000, 56528) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) fn suspend_channel() -> Weight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `2767` - // Minimum execution time: 3_254_000 picoseconds. - Weight::from_parts(3_434_000, 2767) + // Minimum execution time: 2_000_000 picoseconds. + Weight::from_parts(2_000_000, 2767) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -119,8 +183,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `177` // Estimated: `2767` - // Minimum execution time: 4_489_000 picoseconds. - Weight::from_parts(4_644_000, 2767) + // Minimum execution time: 3_000_000 picoseconds. + Weight::from_parts(3_000_000, 2767) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -128,8 +192,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_282_000 picoseconds. - Weight::from_parts(5_562_000, 0) + // Minimum execution time: 7_000_000 picoseconds. + Weight::from_parts(8_000_000, 0) } /// Storage: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) /// Proof: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) @@ -149,8 +213,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `105713` // Estimated: `109178` - // Minimum execution time: 168_757_000 picoseconds. - Weight::from_parts(172_788_000, 109178) + // Minimum execution time: 67_000_000 picoseconds. + Weight::from_parts(69_000_000, 109178) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -172,8 +236,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `65782` // Estimated: `69247` - // Minimum execution time: 111_942_000 picoseconds. - Weight::from_parts(114_503_000, 69247) + // Minimum execution time: 45_000_000 picoseconds. + Weight::from_parts(47_000_000, 69247) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } diff --git a/runtime/moonbeam/src/weights/pallet_randomness.rs b/runtime/moonbeam/src/weights/pallet_randomness.rs index 4eba015a31d..42f5cf386e0 100644 --- a/runtime/moonbeam/src/weights/pallet_randomness.rs +++ b/runtime/moonbeam/src/weights/pallet_randomness.rs @@ -17,10 +17,10 @@ //! Autogenerated weights for `pallet_randomness` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 48.0.0 -//! DATE: 2025-10-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 47.2.0 +//! DATE: 2025-11-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! HOSTNAME: `MacBook-Pro-de-romarq.local`, CPU: `` //! WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024 // Executed Command: @@ -28,7 +28,7 @@ // v1 // benchmark // pallet -// --runtime=./target/production/wbuild/moonbeam-runtime/moonbeam_runtime.wasm +// --runtime=./target/release/wbuild/moonbeam-runtime/moonbeam_runtime.wasm // --genesis-builder=runtime // --genesis-builder-preset=development // --steps=50 @@ -64,8 +64,8 @@ impl pallet_randomness::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `263` // Estimated: `3728` - // Minimum execution time: 14_582_000 picoseconds. - Weight::from_parts(15_092_000, 3728) + // Minimum execution time: 12_000_000 picoseconds. + Weight::from_parts(26_000_000, 3728) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -83,8 +83,8 @@ impl pallet_randomness::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `686` // Estimated: `4151` - // Minimum execution time: 510_967_000 picoseconds. - Weight::from_parts(522_688_000, 4151) + // Minimum execution time: 338_000_000 picoseconds. + Weight::from_parts(352_000_000, 4151) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -102,8 +102,8 @@ impl pallet_randomness::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `483` // Estimated: `6172` - // Minimum execution time: 58_912_000 picoseconds. - Weight::from_parts(60_286_000, 6172) + // Minimum execution time: 46_000_000 picoseconds. + Weight::from_parts(47_000_000, 6172) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -116,10 +116,10 @@ impl pallet_randomness::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `412` // Estimated: `3877` - // Minimum execution time: 10_579_000 picoseconds. - Weight::from_parts(11_144_699, 3877) - // Standard Error: 341 - .saturating_add(Weight::from_parts(258_040, 0).saturating_mul(x.into())) + // Minimum execution time: 8_000_000 picoseconds. + Weight::from_parts(9_397_166, 3877) + // Standard Error: 10_168 + .saturating_add(Weight::from_parts(264_910, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: `System::Account` (r:2 w:2) @@ -132,8 +132,8 @@ impl pallet_randomness::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `673` // Estimated: `6172` - // Minimum execution time: 53_987_000 picoseconds. - Weight::from_parts(54_937_000, 6172) + // Minimum execution time: 42_000_000 picoseconds. + Weight::from_parts(44_000_000, 6172) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -145,8 +145,8 @@ impl pallet_randomness::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `759` // Estimated: `6172` - // Minimum execution time: 51_363_000 picoseconds. - Weight::from_parts(52_003_000, 6172) + // Minimum execution time: 39_000_000 picoseconds. + Weight::from_parts(41_000_000, 6172) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -160,8 +160,8 @@ impl pallet_randomness::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `802` // Estimated: `6172` - // Minimum execution time: 55_556_000 picoseconds. - Weight::from_parts(57_096_000, 6172) + // Minimum execution time: 44_000_000 picoseconds. + Weight::from_parts(45_000_000, 6172) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } diff --git a/runtime/moonbeam/src/xcm_config.rs b/runtime/moonbeam/src/xcm_config.rs index 14d87839245..c5c62436853 100644 --- a/runtime/moonbeam/src/xcm_config.rs +++ b/runtime/moonbeam/src/xcm_config.rs @@ -312,43 +312,6 @@ pub type XcmRouter = WithUniqueTopic<( >, )>; -parameter_types! { - /// Conservative estimation for when AssetHub migration will start on Polkadot - /// - /// # Calculation Details - /// - **Computation date**: 2025-09-01 16:43:54 UTC - /// - **Reference block**: 27_580_400 - /// - **Reference timestamp**: 1_756_741_434 (2025-09-01 16:43:54 UTC) - /// - **Target date**: 2025-11-03 00:00:00 UTC (1 day before the migration) - /// - **Target timestamp**: 1_762_128_000 - /// - /// # Block Estimation - /// ```text - /// Time difference: 1_762_128_000 - 1_756_741_434 = 5_386_566 seconds - /// Estimated blocks: 5_386_566 ÷ 6 = 897_761 blocks (assuming 6s block time) - /// Target block: 27_580_400 + 897_761 = 28_478_161 - /// ``` - /// - /// **Note**: This assumes consistent 6-second block times and no network delays. - /// The actual migration is guaranteed to start no earlier than this block. - /// - /// If the timeline changes, this value can be updated through a governance proposal. - pub storage AssetHubMigrationStartsAtRelayBlock: u32 = 28_478_161; -} - -pub struct AssetHubMigrationStarted; -impl Get for AssetHubMigrationStarted { - fn get() -> bool { - use cumulus_pallet_parachain_system::RelaychainDataProvider; - use sp_runtime::traits::BlockNumberProvider; - - let ahm_relay_block = AssetHubMigrationStartsAtRelayBlock::get(); - let current_relay_block_number = RelaychainDataProvider::::current_block_number(); - - current_relay_block_number >= ahm_relay_block - } -} - impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; type SendXcmOrigin = EnsureXcmOrigin; @@ -374,22 +337,6 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = moonbeam_weights::pallet_xcm::WeightInfo; type AdminOrigin = EnsureRoot; type AuthorizedAliasConsideration = Disabled; - /// Configuration for pallet-xcm AssetHub migration timing - /// - /// This type alias informs pallet-xcm when to enable DOT reserve checks - /// introduced in [PR #9137](https://github.com/paritytech/polkadot-sdk/pull/9137). - /// - /// # Migration Strategy - /// Rather than immediately enforcing strict reserve checks (which would cause - /// hard failures), this provides a grace period for dApps to update their - /// implementations and adapt to the new reserve validation requirements. - /// - /// # Behavior - /// - **Before migration**: Permissive reserve handling (legacy behavior) - /// - **After migration**: Strict DOT reserve checks enforced - /// - /// The migration timing is controlled by [`AssetHubMigrationStartsAtRelayBlock`]. - type AssetHubMigrationStarted = AssetHubMigrationStarted; } impl cumulus_pallet_xcm::Config for Runtime { @@ -472,7 +419,6 @@ pub type ResumeXcmOrigin = EitherOfDiverse< >; impl pallet_emergency_para_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type CheckAssociatedRelayNumber = cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; type QueuePausedQuery = (MaintenanceMode, NarrowOriginToSibling); @@ -690,7 +636,6 @@ pub type DerivativeAddressRegistrationOrigin = EitherOfDiverse, governance::custom_origins::GeneralAdmin>; impl pallet_xcm_transactor::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; type Transactor = Transactors; type DerivativeAddressRegistrationOrigin = DerivativeAddressRegistrationOrigin; @@ -774,7 +719,6 @@ impl pallet_moonbeam_foreign_assets::Config for Runtime { type ForeignAssetUnfreezerOrigin = ForeignAssetManagerOrigin; type OnForeignAssetCreated = (); type MaxForeignAssets = ConstU32<256>; - type RuntimeEvent = RuntimeEvent; type WeightInfo = moonbeam_weights::pallet_moonbeam_foreign_assets::WeightInfo; type XcmLocationToH160 = LocationToH160; type ForeignAssetCreationDeposit = dynamic_params::xcm_config::ForeignAssetCreationDeposit; @@ -817,7 +761,6 @@ impl pallet_xcm_weight_trader::Config for Runtime { type PauseSupportedAssetOrigin = AddAndEditSupportedAssetOrigin; type ResumeSupportedAssetOrigin = AddAndEditSupportedAssetOrigin; type RemoveSupportedAssetOrigin = RemoveSupportedAssetOrigin; - type RuntimeEvent = RuntimeEvent; type WeightInfo = moonbeam_weights::pallet_xcm_weight_trader::WeightInfo; type WeightToFee = ::WeightToFee; type XcmFeesAccount = XcmFeesAccount; @@ -854,15 +797,3 @@ mod testing { } } } - -#[cfg(test)] -mod tests { - use super::AssetHubMigrationStartsAtRelayBlock; - - #[test] - fn check_type_parameter_key() { - let implicit_key = AssetHubMigrationStartsAtRelayBlock::key(); - let explicit_key = sp_core::twox_128(b":AssetHubMigrationStartsAtRelayBlock:"); - assert_eq!(implicit_key, explicit_key); - } -} diff --git a/runtime/moonbeam/tests/common/mod.rs b/runtime/moonbeam/tests/common/mod.rs index dfea98c5231..204a6253ffd 100644 --- a/runtime/moonbeam/tests/common/mod.rs +++ b/runtime/moonbeam/tests/common/mod.rs @@ -33,7 +33,8 @@ use sp_consensus_slots::Slot; use sp_core::{Encode, H160}; use sp_runtime::{traits::Dispatchable, BuildStorage, Digest, DigestItem, Perbill, Percent}; -use cumulus_pallet_parachain_system::{MessagingStateSnapshot, ValidationData}; +use cumulus_pallet_parachain_system::MessagingStateSnapshot; +use cumulus_primitives_core::relay_chain::{AbridgedHostConfiguration, AsyncBackingParams}; use cumulus_primitives_core::AbridgedHrmpChannel; use fp_rpc::ConvertTransaction; use moonbeam_runtime::bridge_config::XcmOverKusamaInstance; @@ -45,6 +46,25 @@ pub fn existential_deposit() -> u128 { ::ExistentialDeposit::get() } +/// Returns mock AbridgedHostConfiguration for ParachainSystem tests +pub fn mock_abridged_host_config() -> AbridgedHostConfiguration { + AbridgedHostConfiguration { + max_code_size: 3_145_728, + max_head_data_size: 20_480, + max_upward_queue_count: 174_762, + max_upward_queue_size: 1_048_576, + max_upward_message_size: 65_531, + max_upward_message_num_per_candidate: 16, + hrmp_max_message_num_per_candidate: 10, + validation_upgrade_cooldown: 6, + validation_upgrade_delay: 6, + async_backing_params: AsyncBackingParams { + max_candidate_depth: 3, + allowed_ancestry_len: 2, + }, + } +} + // A valid signed Alice transfer. pub const VALID_ETH_TX: &str = "02f869820501808085e8d4a51000825208943cd0a705a2dc65e5b1e1205896baa2be8a07c6e00180c\ @@ -125,7 +145,6 @@ pub struct XcmAssetInitialization { } pub struct ExtBuilder { - asset_hub_migration_started: bool, // endowed accounts with balances balances: Vec<(AccountId, Balance)>, // [collator, amount] @@ -152,7 +171,6 @@ pub struct ExtBuilder { impl Default for ExtBuilder { fn default() -> ExtBuilder { ExtBuilder { - asset_hub_migration_started: false, balances: vec![], delegations: vec![], collators: vec![], @@ -188,11 +206,6 @@ impl Default for ExtBuilder { } impl ExtBuilder { - pub fn asset_hub_migration_has_started(mut self) -> Self { - self.asset_hub_migration_started = true; - self - } - pub fn with_evm_accounts(mut self, accounts: BTreeMap) -> Self { self.evm_accounts = accounts; self @@ -324,16 +337,10 @@ impl ExtBuilder { let mut ext = sp_io::TestExternalities::new(t); let xcm_assets = self.xcm_assets.clone(); ext.execute_with(|| { - if self.asset_hub_migration_started { - // Indicate that the asset-hub migration has already started - moonbeam_runtime::xcm_config::AssetHubMigrationStartsAtRelayBlock::set(&0); - - let mut validation_data = ValidationData::::get().unwrap_or_default(); - - validation_data.relay_parent_number = - moonbeam_runtime::xcm_config::AssetHubMigrationStartsAtRelayBlock::get(); - ValidationData::::set(Some(validation_data)); - } + // Mock host configuration for ParachainSystem + cumulus_pallet_parachain_system::HostConfiguration::::put( + mock_abridged_host_config(), + ); // Mock hrmp egress_channels cumulus_pallet_parachain_system::RelevantMessagingState::::put( @@ -447,6 +454,8 @@ pub fn set_parachain_inherent_data() { relay_chain_state: relay_chain_state, downward_messages: Default::default(), horizontal_messages: Default::default(), + collator_peer_id: Default::default(), + relay_parent_descendants: Default::default(), }; assert_ok!(RuntimeCall::ParachainSystem( cumulus_pallet_parachain_system::Call::::set_validation_data { diff --git a/runtime/moonbeam/tests/evm_tracing.rs b/runtime/moonbeam/tests/evm_tracing.rs index 2679377d3d1..2d65b3228da 100644 --- a/runtime/moonbeam/tests/evm_tracing.rs +++ b/runtime/moonbeam/tests/evm_tracing.rs @@ -57,7 +57,7 @@ mod tests { let block = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: 1, + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; @@ -98,7 +98,7 @@ mod tests { let block = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: 1, + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; @@ -116,7 +116,7 @@ mod tests { let block = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: 1, + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; diff --git a/runtime/moonbeam/tests/integration_test.rs b/runtime/moonbeam/tests/integration_test.rs index 3cdd56de2b9..e7a33340050 100644 --- a/runtime/moonbeam/tests/integration_test.rs +++ b/runtime/moonbeam/tests/integration_test.rs @@ -65,9 +65,9 @@ use sp_runtime::{ BuildStorage, DispatchError, ModuleError, Percent, }; use std::str::from_utf8; -use xcm::{latest::prelude::*, VersionedAssets, VersionedLocation}; +use xcm::{latest::prelude::*, VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm}; use xcm_builder::{ParentIsPreset, SiblingParachainConvertsVia}; -use xcm_executor::traits::ConvertLocation; +use xcm_executor::traits::{ConvertLocation, TransferType}; use xcm_primitives::split_location_into_chain_part_and_beneficiary; type BatchPCall = pallet_evm_precompile_batch::BatchPrecompileCall; @@ -1159,9 +1159,12 @@ fn root_can_change_default_xcm_vers() { })), Box::new(VersionedAssets::from(asset.clone())), 0, - WeightLimit::Unlimited + WeightLimit::Unlimited, ), - pallet_xcm::Error::::LocalExecutionIncomplete + pallet_xcm::Error::::LocalExecutionIncompleteWithError { + index: 2, + error: pallet_xcm::ExecutionError::DestinationUnsupported + } ); // Root sets the defaultXcm @@ -1717,72 +1720,10 @@ fn transactor_cannot_use_more_than_max_weight() { }) } -// TODO: Unify all "call_pallet_xcm_with_fee" prefixed tests after the asset hub migration #[test] fn call_pallet_xcm_with_fee() { let asset_id = 1; - - ExtBuilder::default() - .with_balances(vec![ - (AccountId::from(ALICE), 2_000 * GLMR), - (AccountId::from(BOB), 1_000 * GLMR), - ]) - .with_safe_xcm_version(3) - .with_xcm_assets(vec![XcmAssetInitialization { - asset_id, - xcm_location: Location::parent(), - name: "RelayToken", - symbol: "Relay", - decimals: 12, - balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], - }]) - .build() - .execute_with(|| { - let dest = Location { - parents: 1, - interior: [AccountId32 { - network: None, - id: [1u8; 32], - }] - .into(), - }; - - let before_balance = - EvmForeignAssets::balance(asset_id, AccountId::from(ALICE)).unwrap(); - let (chain_part, beneficiary) = - split_location_into_chain_part_and_beneficiary(dest).unwrap(); - let asset_amount = 100_000_000_000_000u128; - let asset_fee_amount = 100u128; - let asset = currency_to_asset(CurrencyId::ForeignAsset(asset_id), asset_amount); - let asset_fee = currency_to_asset(CurrencyId::ForeignAsset(asset_id), asset_fee_amount); - // We are able to transfer with fee - assert_ok!(PolkadotXcm::transfer_assets( - origin_of(AccountId::from(ALICE)), - Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(vec![asset_fee, asset])), - 0, - WeightLimit::Limited(4000000000.into()) - )); - - let after_balance = - EvmForeignAssets::balance(asset_id, AccountId::from(ALICE)).unwrap(); - // At least these much (plus fees) should have been charged - assert_eq!( - before_balance - .saturating_sub(asset_amount.into()) - .saturating_sub(asset_fee_amount.into()), - after_balance - ); - }); -} - -// TODO: Unify all "call_pallet_xcm_with_fee" prefixed tests after the asset hub migration -#[test] -fn call_pallet_xcm_with_fee_after_ahm() { - let asset_id = 1; ExtBuilder::default() - .asset_hub_migration_has_started() .with_balances(vec![ (AccountId::from(ALICE), 2_000 * GLMR), (AccountId::from(BOB), 1_000 * GLMR), @@ -1813,78 +1754,26 @@ fn call_pallet_xcm_with_fee_after_ahm() { split_location_into_chain_part_and_beneficiary(dest).unwrap(); let asset = currency_to_asset(CurrencyId::ForeignAsset(asset_id), 100_000_000_000_000); let asset_fee = currency_to_asset(CurrencyId::ForeignAsset(asset_id), 100); - - // Once the AH migration starts, we should no longer be able to use the parent location as reserve. - assert_noop!( - PolkadotXcm::transfer_assets( - origin_of(AccountId::from(ALICE)), - Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(vec![asset_fee, asset])), - 0, - WeightLimit::Limited(4000000000.into()) - ), - pallet_xcm::Error::::InvalidAssetUnknownReserve - ); - - let after_balance = - EvmForeignAssets::balance(asset_id, AccountId::from(ALICE)).unwrap(); - // At least these much (plus fees) should have been charged - assert_eq!(before_balance, after_balance); - }); -} - -// TODO: Unify all "call_pallet_xcm_with_fee" prefixed tests after the asset hub migration -#[test] -fn call_pallet_xcm_with_fee_before_ahm() { - let asset_id = 1; - ExtBuilder::default() - .with_balances(vec![ - (AccountId::from(ALICE), 2_000 * GLMR), - (AccountId::from(BOB), 1_000 * GLMR), - ]) - .with_safe_xcm_version(3) - .with_xcm_assets(vec![XcmAssetInitialization { - asset_id, - xcm_location: Location::parent(), - name: "RelayToken", - symbol: "Relay", - decimals: 12, - balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], - }]) - .build() - .execute_with(|| { - let dest = Location { - parents: 1, - interior: [AccountId32 { - network: None, - id: [1u8; 32], - }] - .into(), - }; - let before_balance = - EvmForeignAssets::balance(asset_id, AccountId::from(ALICE)).unwrap(); - let (chain_part, beneficiary) = - split_location_into_chain_part_and_beneficiary(dest).unwrap(); - let asset = currency_to_asset(CurrencyId::ForeignAsset(asset_id), 100_000_000_000_000); - let asset_fee = currency_to_asset(CurrencyId::ForeignAsset(asset_id), 100); - // We are able to transfer with fee - assert_ok!(PolkadotXcm::transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( origin_of(AccountId::from(ALICE)), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset_fee, asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(4000000000.into()) )); let after_balance = EvmForeignAssets::balance(asset_id, AccountId::from(ALICE)).unwrap(); - // At least these much (plus fees) should have been charged - assert_eq!( - before_balance - 100_000_000_000_000u128 - 100u128, - after_balance - ); + // Balance should have been reduced by the transfer amount plus fees + assert!(after_balance < before_balance); }); } @@ -2022,7 +1911,7 @@ fn test_nested_batch_calls_from_xcm_transact() { call: valid_nested_calls.encode().into(), }]); - assert!(XcmExecutor::prepare(valid_message).is_ok()); + assert!(XcmExecutor::prepare(valid_message, Weight::MAX).is_ok()); let excessive_nested_calls = RuntimeCall::Utility(pallet_utility::Call::batch { calls: vec![valid_nested_calls], @@ -2034,7 +1923,7 @@ fn test_nested_batch_calls_from_xcm_transact() { call: excessive_nested_calls.encode().into(), }]); // Expect to fail because we have too many nested calls - assert!(XcmExecutor::prepare(invalid_message).is_err()); + assert!(XcmExecutor::prepare(invalid_message, Weight::MAX).is_err()); }); } diff --git a/runtime/moonbeam/tests/runtime_apis.rs b/runtime/moonbeam/tests/runtime_apis.rs index c360f1ed50d..99d1a26169c 100644 --- a/runtime/moonbeam/tests/runtime_apis.rs +++ b/runtime/moonbeam/tests/runtime_apis.rs @@ -333,7 +333,7 @@ fn can_author_when_selected_is_empty() { let parent = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: Default::default(), + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; diff --git a/runtime/moonbeam/tests/xcm_mock/parachain.rs b/runtime/moonbeam/tests/xcm_mock/parachain.rs index e43606e53f3..faf1ed58714 100644 --- a/runtime/moonbeam/tests/xcm_mock/parachain.rs +++ b/runtime/moonbeam/tests/xcm_mock/parachain.rs @@ -392,7 +392,7 @@ impl pallet_treasury::Config for Runtime { type BalanceConverter = AssetRateConverter; type PayoutPeriod = ConstU32<0>; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = ArgumentsBenchmarkHelper; + type BenchmarkHelper = ArgumentsBenchmarkHelper; type BlockNumberProvider = System; } @@ -403,7 +403,6 @@ pub mod mock_msg_queue { #[pallet::config] pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; type XcmExecutor: ExecuteXcm; } @@ -432,7 +431,7 @@ pub mod mock_msg_queue { /// Some XCM was executed OK. Success(Option), /// Some XCM failed. - Fail(Option, XcmError), + Fail(Option, InstructionError), /// Bad XCM version used. BadVersion(Option), /// Bad XCM format used. @@ -457,7 +456,7 @@ pub mod mock_msg_queue { _sent_at: RelayBlockNumber, xcm: VersionedXcm, max_weight: Weight, - ) -> Result { + ) -> Result { let hash = Encode::using_encoded(&xcm, T::Hashing::hash); let (result, event) = match Xcm::::try_from(xcm) { Ok(xcm) => { @@ -471,7 +470,7 @@ pub mod mock_msg_queue { max_weight, Weight::zero(), ) { - Outcome::Error { error } => { + Outcome::Error(error) => { (Err(error.clone()), Event::Fail(Some(hash), error)) } Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), @@ -483,7 +482,10 @@ pub mod mock_msg_queue { } } Err(()) => ( - Err(XcmError::UnhandledXcmVersion), + Err(InstructionError { + error: XcmError::UnhandledXcmVersion, + index: 0, + }), Event::BadVersion(Some(hash)), ), }; @@ -558,9 +560,7 @@ pub mod mock_version_changer { use frame_support::pallet_prelude::*; #[pallet::config] - pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - } + pub trait Config: frame_system::Config {} #[pallet::call] impl Pallet {} @@ -595,13 +595,10 @@ pub mod mock_version_changer { } impl mock_msg_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; } -impl mock_version_changer::Config for Runtime { - type RuntimeEvent = RuntimeEvent; -} +impl mock_version_changer::Config for Runtime {} pub type LocalOriginToLocation = xcm_primitives::SignedToAccountId20; @@ -637,7 +634,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } #[derive( @@ -689,7 +685,6 @@ impl pallet_moonbeam_foreign_assets::Config for Runtime { type ForeignAssetUnfreezerOrigin = ForeignAssetManagerOrigin; type OnForeignAssetCreated = (); type MaxForeignAssets = ConstU32<256>; - type RuntimeEvent = RuntimeEvent; type WeightInfo = (); type XcmLocationToH160 = LocationToH160; type ForeignAssetCreationDeposit = ForeignAssetCreationDeposit; @@ -703,7 +698,6 @@ parameter_types! { } impl pallet_xcm_transactor::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; type Transactor = MockTransactors; type DerivativeAddressRegistrationOrigin = EnsureRoot; @@ -738,7 +732,6 @@ impl pallet_xcm_weight_trader::Config for Runtime { type NativeLocation = SelfReserve; type PauseSupportedAssetOrigin = EnsureRoot; type RemoveSupportedAssetOrigin = EnsureRoot; - type RuntimeEvent = RuntimeEvent; type ResumeSupportedAssetOrigin = EnsureRoot; type WeightInfo = (); type WeightToFee = WeightToFee; @@ -776,7 +769,6 @@ impl pallet_evm::Config for Runtime { type Currency = Balances; type Runner = pallet_evm::runner::stack::Runner; - type RuntimeEvent = RuntimeEvent; type PrecompilesType = (); type PrecompilesValue = (); type ChainId = (); @@ -888,7 +880,6 @@ parameter_types! { } impl pallet_ethereum::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type StateRoot = pallet_ethereum::IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; @@ -975,7 +966,6 @@ impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { } impl pallet_ethereum_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; @@ -1017,9 +1007,7 @@ pub(crate) fn para_events() -> Vec { .collect::>() } -use frame_support::traits::{ - ConstBool, Disabled, OnFinalize, OnInitialize, UncheckedOnRuntimeUpgrade, -}; +use frame_support::traits::{Disabled, OnFinalize, OnInitialize, UncheckedOnRuntimeUpgrade}; use moonbeam_runtime::{currency, xcm_config::LocationToH160}; use pallet_evm::FrameSystemAccountProvider; use sp_weights::constants::WEIGHT_REF_TIME_PER_SECOND; diff --git a/runtime/moonbeam/tests/xcm_mock/relay_chain.rs b/runtime/moonbeam/tests/xcm_mock/relay_chain.rs index 6d3efcfd29e..dfc0eabea08 100644 --- a/runtime/moonbeam/tests/xcm_mock/relay_chain.rs +++ b/runtime/moonbeam/tests/xcm_mock/relay_chain.rs @@ -247,7 +247,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } parameter_types! { @@ -284,6 +283,9 @@ impl paras::Config for Runtime { type QueueFootprinter = (); type OnNewHead = (); type AssignCoretime = (); + type Fungible = (); + type CooldownRemovalMultiplier = (); + type AuthorizeCurrentCodeOrigin = frame_system::EnsureRoot; } impl dmp::Config for Runtime {} @@ -322,6 +324,10 @@ where fn create_inherent(call: RuntimeCall) -> UncheckedExtrinsic { UncheckedExtrinsic::new_bare(call) } + + fn create_bare(call: RuntimeCall) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_bare(call) + } } parameter_types! { @@ -388,7 +394,7 @@ pub(crate) fn relay_events() -> Vec { .collect::>() } -use frame_support::traits::{ConstBool, Disabled, OnFinalize, OnInitialize}; +use frame_support::traits::{Disabled, OnFinalize, OnInitialize}; pub(crate) fn relay_roll_to(n: BlockNumber) { while System::block_number() < n { XcmPallet::on_finalize(System::block_number()); diff --git a/runtime/moonbeam/tests/xcm_mock/statemint_like.rs b/runtime/moonbeam/tests/xcm_mock/statemint_like.rs index 9a9c5c8435e..6df87c7a9dc 100644 --- a/runtime/moonbeam/tests/xcm_mock/statemint_like.rs +++ b/runtime/moonbeam/tests/xcm_mock/statemint_like.rs @@ -16,7 +16,7 @@ //! Relay chain runtime mock. -use frame_support::traits::{ConstBool, Disabled}; +use frame_support::traits::Disabled; use frame_support::{ construct_runtime, parameter_types, traits::{AsEnsureOriginWithArg, Contains, ContainsPair, Everything, Get, Nothing}, @@ -385,7 +385,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } impl cumulus_pallet_xcm::Config for Runtime { @@ -400,7 +399,6 @@ pub mod mock_msg_queue { #[pallet::config] pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; type XcmExecutor: ExecuteXcm; } @@ -429,7 +427,7 @@ pub mod mock_msg_queue { /// Some XCM was executed OK. Success(Option), /// Some XCM failed. - Fail(Option, XcmError), + Fail(Option, InstructionError), /// Bad XCM version used. BadVersion(Option), /// Bad XCM format used. @@ -454,7 +452,7 @@ pub mod mock_msg_queue { _sent_at: RelayBlockNumber, xcm: VersionedXcm, max_weight: Weight, - ) -> Result { + ) -> Result { let hash = Encode::using_encoded(&xcm, T::Hashing::hash); let (result, event) = match Xcm::::try_from(xcm) { Ok(xcm) => { @@ -468,7 +466,7 @@ pub mod mock_msg_queue { max_weight, Weight::zero(), ) { - Outcome::Error { error } => { + Outcome::Error(error) => { (Err(error.clone()), Event::Fail(Some(hash), error)) } Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), @@ -480,7 +478,10 @@ pub mod mock_msg_queue { } } Err(()) => ( - Err(XcmError::UnhandledXcmVersion), + Err(InstructionError { + error: XcmError::UnhandledXcmVersion, + index: 0, + }), Event::BadVersion(Some(hash)), ), }; @@ -548,7 +549,6 @@ pub mod mock_msg_queue { } } impl mock_msg_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; } @@ -559,9 +559,7 @@ pub mod mock_statemint_prefix { use frame_support::pallet_prelude::*; #[pallet::config] - pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - } + pub trait Config: frame_system::Config {} #[pallet::call] impl Pallet {} @@ -595,9 +593,7 @@ pub mod mock_statemint_prefix { } } -impl mock_statemint_prefix::Config for Runtime { - type RuntimeEvent = RuntimeEvent; -} +impl mock_statemint_prefix::Config for Runtime {} type Block = frame_system::mocking::MockBlockU32; construct_runtime!( diff --git a/runtime/moonbeam/tests/xcm_tests.rs b/runtime/moonbeam/tests/xcm_tests.rs index 9996a241a2c..6f94097e511 100644 --- a/runtime/moonbeam/tests/xcm_tests.rs +++ b/runtime/moonbeam/tests/xcm_tests.rs @@ -33,17 +33,14 @@ use sp_core::ConstU32; use sp_core::U256; use sp_runtime::traits::Convert; use xcm::{ - latest::{ - prelude::{ - AccountId32, AccountKey20, Fungible, GeneralIndex, Junction, Junctions, Limited, - Location, OriginKind, PalletInstance, Parachain, QueryResponse, Reanchorable, Response, - WeightLimit, Xcm, - }, - Asset, AssetId, Assets as XcmAssets, Fungibility, + latest::prelude::{ + AccountId32, AccountKey20, All, Asset, AssetId, Assets as XcmAssets, DepositAsset, + Fungibility, Fungible, GeneralIndex, Junction, Junctions, Limited, Location, OriginKind, + PalletInstance, Parachain, QueryResponse, Reanchorable, Response, WeightLimit, Wild, Xcm, }, - IntoVersion, VersionedAssets, VersionedLocation, WrapVersion, + IntoVersion, VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm, WrapVersion, }; -use xcm_executor::traits::ConvertLocation; +use xcm_executor::traits::{ConvertLocation, TransferType}; use xcm_mock::parachain::{self, EvmForeignAssets, PolkadotXcm, Treasury}; use xcm_mock::relay_chain; use xcm_mock::*; @@ -135,12 +132,19 @@ fn receive_relay_asset_from_relay() { // First send relay chain asset to Parachain Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -194,12 +198,19 @@ fn send_relay_asset_to_relay() { // First send relay chain asset to Parachain like in previous test Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -230,12 +241,19 @@ fn send_relay_asset_to_relay() { let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap(); ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 123); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(asset)), - 0, + Box::new(VersionedAssets::from(vec![asset])), + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -306,12 +324,19 @@ fn send_relay_asset_to_para_b() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -339,12 +364,19 @@ fn send_relay_asset_to_para_b() { let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap(); ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(asset)), - 0, + Box::new(VersionedAssets::from(vec![asset])), + Box::new(TransferType::RemoteReserve(Location::parent().into())), + Box::new(fees_id), + Box::new(TransferType::RemoteReserve(Location::parent().into())), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -721,12 +753,19 @@ fn receive_relay_asset_with_trader() { // Therefore with no refund, we should receive 10 tokens less // Native trader fails for this, and we use the asset trader Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 100).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -951,12 +990,19 @@ fn error_when_not_paying_enough() { // If we set the dest weight to be 1e7, we know the buy_execution will spend 1e7*1e6/1e12 = 10 // Therefore with no refund, we should receive 10 tokens less Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 5).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1023,12 +1069,19 @@ fn transact_through_derivative_multilocation() { .into(); Relay::execute_with(|| { // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1066,12 +1119,19 @@ fn transact_through_derivative_multilocation() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(asset)), - 0, + Box::new(VersionedAssets::from(vec![asset])), + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1175,12 +1235,19 @@ fn transact_through_derivative_with_custom_fee_weight() { .into(); Relay::execute_with(|| { // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1218,12 +1285,19 @@ fn transact_through_derivative_with_custom_fee_weight() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(asset)), - 0, + Box::new(VersionedAssets::from(vec![asset])), + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1339,12 +1413,19 @@ fn transact_through_derivative_with_custom_fee_weight_refund() { .into(); Relay::execute_with(|| { // 4000000000 transact + 9000 correspond to 4000009000 tokens. 100 more for the transfer call - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000009100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1382,12 +1463,19 @@ fn transact_through_derivative_with_custom_fee_weight_refund() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(asset)), - 0, + Box::new(VersionedAssets::from(vec![asset])), + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1515,12 +1603,19 @@ fn transact_through_sovereign() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1557,12 +1652,19 @@ fn transact_through_sovereign() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(asset)), - 0, + Box::new(VersionedAssets::from(vec![asset])), + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1782,12 +1884,19 @@ fn transact_through_sovereign_with_custom_fee_weight() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1824,12 +1933,19 @@ fn transact_through_sovereign_with_custom_fee_weight() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(asset)), - 0, + Box::new(VersionedAssets::from(vec![asset])), + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1945,12 +2061,19 @@ fn transact_through_sovereign_with_custom_fee_weight_refund() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000009100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1987,12 +2110,19 @@ fn transact_through_sovereign_with_custom_fee_weight_refund() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(asset)), - 0, + Box::new(VersionedAssets::from(vec![asset])), + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -2139,12 +2269,19 @@ fn test_automatic_versioning_on_runtime_upgrade_with_relay() { )); // Transfer assets. Since it is an unknown destination, it will query for version - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); @@ -2241,12 +2378,19 @@ fn receive_asset_with_no_sufficients_is_possible_for_non_existent_account() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2296,12 +2440,19 @@ fn receive_assets_with_sufficients_true_allows_non_funded_account_to_receive_ass } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2360,12 +2511,19 @@ fn evm_account_receiving_assets_should_handle_sufficients_ref_count() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2437,12 +2595,19 @@ fn empty_account_should_not_be_reset() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2566,25 +2731,42 @@ fn test_statemint_like() { .into(); // Send with new prefix - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new(VersionedLocation::from(dest).clone()), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - xcm::latest::prelude::GeneralIndex(0), - ], - 123 - ) - .into() - ), + let assets: VersionedAssets = ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + xcm::latest::prelude::GeneralIndex(0), + ], + 123, + ) + .into(); + let fees_id: VersionedAssetId = AssetId(Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + xcm::latest::prelude::GeneralIndex(0), + ], + )) + .into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -2681,16 +2863,20 @@ fn send_statemint_asset_from_para_a_to_statemint_with_relay_fee() { // Send relay chain asset to Alice in Parachain A Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let assets: VersionedAssets = ([] /* Here */, 200).into(); + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_from_relay.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_from_relay) - .clone() - .into() - ), - Box::new(([] /* Here */, 200).into()), - 0, + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2731,29 +2917,42 @@ fn send_statemint_asset_from_para_a_to_statemint_with_relay_fee() { .into(); // Send with new prefix - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_from_statemint) - .clone() - .into() - ), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - GeneralIndex(10), - ], - 125 - ) - .into() - ), + let assets: VersionedAssets = ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + 125, + ) + .into(); + let fees_id: VersionedAssetId = AssetId(Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + )) + .into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_from_statemint.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); let statemint_beneficiary = Location { @@ -2799,12 +2998,19 @@ fn send_statemint_asset_from_para_a_to_statemint_with_relay_fee() { let assets_to_send: XcmAssets = XcmAssets::from(vec![asset, asset_fee.clone()]); assert_eq!(assets_to_send.get(0).unwrap(), &asset_fee); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(assets_to_send)), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) )); }); @@ -2910,18 +3116,24 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer() { )); // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let assets: VersionedAssets = (Location::parent(), 200).into(); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -2947,12 +3159,19 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer() { // Finally we test that we are able to send back the DOTs to AssetHub from the ParaA ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 100); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(asset)), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); @@ -2973,18 +3192,24 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer() { // Send back tokens from AH to ParaA from Bob's account Statemint::execute_with(|| { // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let assets: VersionedAssets = (Location::parent(), 100).into(); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!(StatemintBalances::free_balance(RELAYBOB), INITIAL_BALANCE); @@ -3079,18 +3304,24 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_with_fee() { )); // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let assets: VersionedAssets = (Location::parent(), 200).into(); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3117,12 +3348,19 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_with_fee() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 100); let asset_fee = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 10); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset_fee, asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); @@ -3143,18 +3381,24 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_with_fee() { // Send back tokens from AH to ParaA from Bob's account Statemint::execute_with(|| { // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let assets: VersionedAssets = (Location::parent(), 100).into(); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!( @@ -3252,18 +3496,24 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiasset() { )); // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let assets: VersionedAssets = (Location::parent(), 200).into(); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3287,12 +3537,19 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiasset() { let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap(); // Finally we test that we are able to send back the DOTs to AssetHub from the ParaA ParaA::execute_with(|| { - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from((Location::parent(), 100))), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); @@ -3313,18 +3570,24 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiasset() { // Send back tokens from AH to ParaA from Bob's account Statemint::execute_with(|| { // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let assets: VersionedAssets = (Location::parent(), 100).into(); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!(StatemintBalances::free_balance(RELAYBOB), INITIAL_BALANCE); @@ -3477,43 +3740,62 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multicurrencies() { )); // Now send relay tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let assets: VersionedAssets = (Location::parent(), 200).into(); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // Send USDC - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - GeneralIndex(10), - ], - 125 - ) - .into() - ), + let assets: VersionedAssets = ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + 125, + ) + .into(); + let fees_id: VersionedAssetId = AssetId(Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + )) + .into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3551,12 +3833,19 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multicurrencies() { ); let asset_2 = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 100); let assets_to_send = vec![asset_1, asset_2]; - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(assets_to_send)), - 1, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) )); @@ -3582,18 +3871,24 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multicurrencies() { let bob_previous_balance = StatemintBalances::free_balance(RELAYBOB); // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let assets: VersionedAssets = (Location::parent(), 100).into(); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!( @@ -3749,43 +4044,62 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiassets() { )); // Now send relay tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let assets: VersionedAssets = (Location::parent(), 200).into(); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // Send USDC - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - GeneralIndex(10), - ], - 125 - ) - .into() - ), + let assets: VersionedAssets = ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + 125, + ) + .into(); + let fees_id: VersionedAssetId = AssetId(Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + )) + .into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3832,12 +4146,19 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiassets() { // Finally we test that we are able to send back the DOTs to AssetHub from the ParaA ParaA::execute_with(|| { - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(assets_to_send)), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) )); @@ -3863,18 +4184,24 @@ fn send_dot_from_moonbeam_to_statemint_via_xtokens_transfer_multiassets() { let bob_previous_balance = StatemintBalances::free_balance(RELAYBOB); // Now send those tokens to ParaA - assert_ok!(StatemintChainPalletXcm::limited_reserve_transfer_assets( - statemint_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let assets: VersionedAssets = (Location::parent(), 100).into(); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemintChainPalletXcm::transfer_assets_using_type_and_then( + statemint_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(assets), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!( diff --git a/runtime/moonriver/Cargo.toml b/runtime/moonriver/Cargo.toml index 5ae83287a4e..5a5493ae95f 100644 --- a/runtime/moonriver/Cargo.toml +++ b/runtime/moonriver/Cargo.toml @@ -241,7 +241,6 @@ std = [ "moonbeam-runtime-common/std", "moonkit-xcm-primitives/std", "nimbus-primitives/std", - "pallet-assets/std", "pallet-async-backing/std", "pallet-author-inherent/std", "pallet-author-mapping/std", @@ -380,7 +379,6 @@ runtime-benchmarks = [ "hex-literal", "moonbeam-runtime-common/runtime-benchmarks", "parachains-common/runtime-benchmarks", - "pallet-assets/runtime-benchmarks", "pallet-author-inherent/runtime-benchmarks", "pallet-author-mapping/runtime-benchmarks", "pallet-author-slot-filter/runtime-benchmarks", @@ -467,7 +465,6 @@ try-runtime = [ "pallet-crowdloan-rewards/try-runtime", "pallet-proxy/try-runtime", "pallet-identity/try-runtime", - "pallet-assets/try-runtime", "pallet-async-backing/try-runtime", "pallet-xcm-transactor/try-runtime", "pallet-proxy-genesis-companion/try-runtime", @@ -481,4 +478,5 @@ try-runtime = [ "pallet-bridge-parachains/try-runtime", "pallet-bridge-messages/try-runtime", "pallet-xcm-bridge/try-runtime", + "parachains-common/try-runtime", ] diff --git a/runtime/moonriver/src/bridge_config.rs b/runtime/moonriver/src/bridge_config.rs index 47df7db9bfa..1be51946ac2 100644 --- a/runtime/moonriver/src/bridge_config.rs +++ b/runtime/moonriver/src/bridge_config.rs @@ -89,6 +89,7 @@ impl pallet_bridge_parachains::Config for Runtime { type ParaStoredHeaderDataBuilder = SingleParaStoredHeaderDataBuilder; type HeadsToKeep = ParachainHeadsToKeep; type MaxParaHeadDataSize = MaxPolkadotParaHeadDataSize; + type OnNewHead = (); type WeightInfo = moonriver_weights::pallet_bridge_parachains::WeightInfo; } diff --git a/runtime/moonriver/src/lib.rs b/runtime/moonriver/src/lib.rs index cc89145e15e..60703319cab 100644 --- a/runtime/moonriver/src/lib.rs +++ b/runtime/moonriver/src/lib.rs @@ -523,7 +523,6 @@ impl pallet_evm::Config for Runtime { type WithdrawOrigin = EnsureAddressNever; type AddressMapping = IdentityAddressMapping; type Currency = Balances; - type RuntimeEvent = RuntimeEvent; type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = MoonriverPrecompiles; type PrecompilesValue = PrecompilesValue; @@ -615,7 +614,7 @@ impl pallet_treasury::Config for Runtime { type BalanceConverter = AssetRateConverter; type PayoutPeriod = ConstU32<{ 30 * DAYS }>; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = BenchmarkHelper; + type BenchmarkHelper = BenchmarkHelper; type BlockNumberProvider = System; } @@ -657,6 +656,8 @@ impl pallet_identity::Config for Runtime { type WeightInfo = moonriver_weights::pallet_identity::WeightInfo; type UsernameDeposit = ConstU128<{ currency::deposit(0, MaxUsernameLength::get()) }>; type UsernameGracePeriod = ConstU32<{ 30 * DAYS }>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = BenchmarkHelper; } pub struct TransactionConverter; @@ -688,7 +689,6 @@ parameter_types! { } impl pallet_ethereum::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type StateRoot = pallet_ethereum::IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; @@ -713,7 +713,6 @@ impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { } impl pallet_ethereum_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; @@ -759,6 +758,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type DmpQueue = frame_support::traits::EnqueueWithOrigin; type WeightInfo = moonriver_weights::cumulus_pallet_parachain_system::WeightInfo; type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; + type RelayParentOffset = ConstU32<0>; } impl parachain_info::Config for Runtime {} @@ -825,7 +825,6 @@ impl Get for RelayChainSlotProvider { } impl pallet_parachain_staking::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Currency = Balances; type RuntimeFreezeReason = RuntimeFreezeReason; type MonetaryGovernanceOrigin = MonetaryGovernanceOrigin; @@ -879,7 +878,6 @@ impl pallet_author_inherent::Config for Runtime { } impl pallet_author_slot_filter::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type RandomnessSource = Randomness; type PotentialAuthors = ParachainStaking; type WeightInfo = moonriver_weights::pallet_author_slot_filter::WeightInfo; @@ -900,7 +898,6 @@ parameter_types! { } impl pallet_crowdloan_rewards::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Initialized = ConstBool; type InitializationPayment = InitializationPayment; type MaxInitContributors = ConstU32<500>; @@ -919,7 +916,6 @@ impl pallet_crowdloan_rewards::Config for Runtime { // This is a simple session key manager. It should probably either work with, or be replaced // entirely by pallet sessions impl pallet_author_mapping::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type DepositCurrency = Balances; type DepositAmount = ConstU128<{ 100 * currency::MOVR * currency::SUPPLY_FACTOR }>; type Keys = session_keys_primitives::VrfId; @@ -1248,7 +1244,6 @@ impl moonkit_xcm_primitives::PauseXcmExecution for XcmExecutionManager { } impl pallet_maintenance_mode::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type NormalCallFilter = NormalFilter; type MaintenanceCallFilter = MaintenanceFilter; type MaintenanceOrigin = @@ -1271,7 +1266,6 @@ type DelCollatorOrigin = EitherOfDiverse, governance::custom_origins::GeneralAdmin>; impl pallet_moonbeam_orbiters::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type AccountLookup = AuthorMapping; type AddCollatorOrigin = AddCollatorOrigin; type Currency = Balances; @@ -1337,7 +1331,6 @@ where } impl pallet_randomness::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type AddressMapping = sp_runtime::traits::ConvertInto; type Currency = Balances; type BabeDataGetter = BabeDataGetter; @@ -1543,7 +1536,7 @@ mod benches { [pallet_crowdloan_rewards, CrowdloanRewards] [pallet_author_mapping, AuthorMapping] [pallet_proxy, Proxy] - [pallet_transaction_payment, PalletTransactionPaymentBenchmark::] + [pallet_transaction_payment, TransactionPayment] [pallet_identity, Identity] [cumulus_pallet_parachain_system, ParachainSystem] [cumulus_pallet_xcmp_queue, XcmpQueue] diff --git a/runtime/moonriver/src/precompiles.rs b/runtime/moonriver/src/precompiles.rs index ec395698f25..6488820e82a 100644 --- a/runtime/moonriver/src/precompiles.rs +++ b/runtime/moonriver/src/precompiles.rs @@ -141,7 +141,11 @@ type MoonriverPrecompilesAt = ( // (0x100 => 256) https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md PrecompileAt, P256Verify, EthereumPrecompilesChecks>, // Non-Moonbeam specific nor Ethereum precompiles : - PrecompileAt, Sha3FIPS256, (CallableByContract, CallableByPrecompile)>, + PrecompileAt< + AddressU64<1024>, + Sha3FIPS256, + (CallableByContract, CallableByPrecompile), + >, RemovedPrecompileAt>, // Dispatch PrecompileAt, ECRecoverPublicKey, (CallableByContract, CallableByPrecompile)>, // Moonbeam specific precompiles: diff --git a/runtime/moonriver/src/weights/cumulus_pallet_xcmp_queue.rs b/runtime/moonriver/src/weights/cumulus_pallet_xcmp_queue.rs index 6dd5d99efe8..42293b977ff 100644 --- a/runtime/moonriver/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/runtime/moonriver/src/weights/cumulus_pallet_xcmp_queue.rs @@ -56,8 +56,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `142` // Estimated: `1497` - // Minimum execution time: 4_880_000 picoseconds. - Weight::from_parts(5_232_000, 1497) + // Minimum execution time: 3_000_000 picoseconds. + Weight::from_parts(3_000_000, 1497) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -71,15 +71,15 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `MessageQueue::Pages` (r:0 w:1) /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 105467]`. + /// The range of component `n` is `[0, 105467]`. fn enqueue_n_bytes_xcmp_message(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `148` // Estimated: `5487` - // Minimum execution time: 12_770_000 picoseconds. - Weight::from_parts(9_330_606, 5487) - // Standard Error: 5 - .saturating_add(Weight::from_parts(915, 0).saturating_mul(n.into())) + // Minimum execution time: 10_000_000 picoseconds. + Weight::from_parts(10_810_679, 5487) + // Standard Error: 0 + .saturating_add(Weight::from_parts(186, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -93,23 +93,87 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `MessageQueue::Pages` (r:0 w:1) /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `MaxEncodedLen`) - fn enqueue_2_empty_xcmp_messages() -> Weight { + /// The range of component `n` is `[0, 1000]`. + fn enqueue_n_empty_xcmp_messages(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `148` // Estimated: `5487` - // Minimum execution time: 21_173_000 picoseconds. - Weight::from_parts(21_510_000, 5487) + // Minimum execution time: 8_000_000 picoseconds. + Weight::from_parts(10_721_859, 5487) + // Standard Error: 117 + .saturating_add(Weight::from_parts(103_219, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `Measured`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `Measured`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `Measured`) + /// The range of component `n` is `[0, 105457]`. + fn enqueue_empty_xcmp_message_at(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `330 + n * (1 ±0)` + // Estimated: `3793 + n * (1 ±0)` + // Minimum execution time: 15_000_000 picoseconds. + Weight::from_parts(15_913_241, 3793) + // Standard Error: 3 + .saturating_add(Weight::from_parts(683, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::Pages` (r:0 w:100) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 100]`. + fn enqueue_n_full_pages(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `183` + // Estimated: `5487` + // Minimum execution time: 9_000_000 picoseconds. + Weight::from_parts(9_000_000, 5487) + // Standard Error: 22_075 + .saturating_add(Weight::from_parts(24_041_157, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `Measured`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:1 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(105521), added: 107996, mode: `Measured`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `Measured`) + fn enqueue_1000_small_xcmp_messages() -> Weight { + // Proof Size summary in bytes: + // Measured: `53063` + // Estimated: `56528` + // Minimum execution time: 151_000_000 picoseconds. + Weight::from_parts(154_000_000, 56528) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) fn suspend_channel() -> Weight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `2767` - // Minimum execution time: 3_242_000 picoseconds. - Weight::from_parts(3_451_000, 2767) + // Minimum execution time: 2_000_000 picoseconds. + Weight::from_parts(2_000_000, 2767) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -119,8 +183,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `177` // Estimated: `2767` - // Minimum execution time: 4_512_000 picoseconds. - Weight::from_parts(4_707_000, 2767) + // Minimum execution time: 3_000_000 picoseconds. + Weight::from_parts(3_000_000, 2767) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -128,8 +192,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_284_000 picoseconds. - Weight::from_parts(5_496_000, 0) + // Minimum execution time: 7_000_000 picoseconds. + Weight::from_parts(8_000_000, 0) } /// Storage: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) /// Proof: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) @@ -149,8 +213,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `105713` // Estimated: `109178` - // Minimum execution time: 176_063_000 picoseconds. - Weight::from_parts(179_278_000, 109178) + // Minimum execution time: 61_000_000 picoseconds. + Weight::from_parts(62_000_000, 109178) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -172,8 +236,8 @@ impl cumulus_pallet_xcmp_queue::WeightInfo for WeightIn // Proof Size summary in bytes: // Measured: `65782` // Estimated: `69247` - // Minimum execution time: 115_349_000 picoseconds. - Weight::from_parts(117_636_000, 69247) + // Minimum execution time: 42_000_000 picoseconds. + Weight::from_parts(44_000_000, 69247) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } diff --git a/runtime/moonriver/src/xcm_config.rs b/runtime/moonriver/src/xcm_config.rs index bc2d20b7f8e..de4b976f52b 100644 --- a/runtime/moonriver/src/xcm_config.rs +++ b/runtime/moonriver/src/xcm_config.rs @@ -320,43 +320,6 @@ pub type XcmRouter = WithUniqueTopic<( >, )>; -parameter_types! { - /// Conservative estimation for when AssetHub migration will start on Kusama - /// - /// # Calculation Details - /// - **Computation date**: 2025-09-01 16:29:48 UTC - /// - **Reference block**: 29_913_400 - /// - **Reference timestamp**: 1_756_740_588 (2025-09-01 16:29:48 UTC) - /// - **Target date**: 2025-10-06 00:00:00 UTC (1 day before the migration) - /// - **Target timestamp**: 1_759_705_200 - /// - /// # Block Estimation - /// ```text - /// Time difference: 1_759_705_200 - 1_756_740_588 = 2_964_612 seconds - /// Estimated blocks: 2_964_612 ÷ 6 = 494_102 blocks (assuming 6s block time) - /// Target block: 29_913_400 + 494_102 = 30_407_502 - /// ``` - /// - /// **Note**: This assumes consistent 6-second block times and no network delays. - /// The actual migration is guaranteed to start no earlier than this block. - /// - /// If the timeline changes, this value can be updated through a governance proposal. - pub storage AssetHubMigrationStartsAtRelayBlock: u32 = 30_407_502; -} - -pub struct AssetHubMigrationStarted; -impl Get for AssetHubMigrationStarted { - fn get() -> bool { - use cumulus_pallet_parachain_system::RelaychainDataProvider; - use sp_runtime::traits::BlockNumberProvider; - - let ahm_relay_block = AssetHubMigrationStartsAtRelayBlock::get(); - let current_relay_block_number = RelaychainDataProvider::::current_block_number(); - - current_relay_block_number >= ahm_relay_block - } -} - impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; type SendXcmOrigin = EnsureXcmOrigin; @@ -382,22 +345,6 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = moonriver_weights::pallet_xcm::WeightInfo; type AdminOrigin = EnsureRoot; type AuthorizedAliasConsideration = Disabled; - /// Configuration for pallet-xcm AssetHub migration timing - /// - /// This type alias informs pallet-xcm when to enable KSM reserve checks - /// introduced in [PR #9137](https://github.com/paritytech/polkadot-sdk/pull/9137). - /// - /// # Migration Strategy - /// Rather than immediately enforcing strict reserve checks (which would cause - /// hard failures), this provides a grace period for dApps to update their - /// implementations and adapt to the new reserve validation requirements. - /// - /// # Behavior - /// - **Before migration**: Permissive reserve handling (legacy behavior) - /// - **After migration**: Strict KSM reserve checks enforced - /// - /// The migration timing is controlled by [`AssetHubMigrationStartsAtRelayBlock`]. - type AssetHubMigrationStarted = AssetHubMigrationStarted; } impl cumulus_pallet_xcm::Config for Runtime { @@ -480,7 +427,6 @@ pub type ResumeXcmOrigin = EitherOfDiverse< >; impl pallet_emergency_para_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type CheckAssociatedRelayNumber = cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; type QueuePausedQuery = (MaintenanceMode, NarrowOriginToSibling); @@ -703,7 +649,6 @@ pub type DerivativeAddressRegistrationOrigin = EitherOfDiverse, governance::custom_origins::GeneralAdmin>; impl pallet_xcm_transactor::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; type Transactor = Transactors; type DerivativeAddressRegistrationOrigin = DerivativeAddressRegistrationOrigin; @@ -786,7 +731,6 @@ impl pallet_moonbeam_foreign_assets::Config for Runtime { type ForeignAssetUnfreezerOrigin = ForeignAssetManagerOrigin; type OnForeignAssetCreated = (); type MaxForeignAssets = ConstU32<256>; - type RuntimeEvent = RuntimeEvent; type WeightInfo = moonriver_weights::pallet_moonbeam_foreign_assets::WeightInfo; type XcmLocationToH160 = LocationToH160; type ForeignAssetCreationDeposit = dynamic_params::xcm_config::ForeignAssetCreationDeposit; @@ -829,7 +773,6 @@ impl pallet_xcm_weight_trader::Config for Runtime { type PauseSupportedAssetOrigin = AddAndEditSupportedAssetOrigin; type ResumeSupportedAssetOrigin = AddAndEditSupportedAssetOrigin; type RemoveSupportedAssetOrigin = RemoveSupportedAssetOrigin; - type RuntimeEvent = RuntimeEvent; type WeightInfo = moonriver_weights::pallet_xcm_weight_trader::WeightInfo; type WeightToFee = ::WeightToFee; type XcmFeesAccount = XcmFeesAccount; @@ -866,15 +809,3 @@ mod testing { } } } - -#[cfg(test)] -mod tests { - use super::AssetHubMigrationStartsAtRelayBlock; - - #[test] - fn check_type_parameter_key() { - let implicit_key = AssetHubMigrationStartsAtRelayBlock::key(); - let explicit_key = sp_core::twox_128(b":AssetHubMigrationStartsAtRelayBlock:"); - assert_eq!(implicit_key, explicit_key); - } -} diff --git a/runtime/moonriver/tests/common/mod.rs b/runtime/moonriver/tests/common/mod.rs index e6921f21808..5d7d9487185 100644 --- a/runtime/moonriver/tests/common/mod.rs +++ b/runtime/moonriver/tests/common/mod.rs @@ -33,7 +33,8 @@ use sp_consensus_slots::Slot; use sp_core::{Encode, H160}; use sp_runtime::{traits::Dispatchable, BuildStorage, Digest, DigestItem, Perbill, Percent}; -use cumulus_pallet_parachain_system::{MessagingStateSnapshot, ValidationData}; +use cumulus_pallet_parachain_system::MessagingStateSnapshot; +use cumulus_primitives_core::relay_chain::{AbridgedHostConfiguration, AsyncBackingParams}; use cumulus_primitives_core::AbridgedHrmpChannel; use fp_rpc::ConvertTransaction; use moonriver_runtime::bridge_config::XcmOverPolkadotInstance; @@ -46,6 +47,25 @@ pub fn existential_deposit() -> u128 { ::ExistentialDeposit::get() } +/// Returns mock AbridgedHostConfiguration for ParachainSystem tests +pub fn mock_abridged_host_config() -> AbridgedHostConfiguration { + AbridgedHostConfiguration { + max_code_size: 3_145_728, + max_head_data_size: 20_480, + max_upward_queue_count: 174_762, + max_upward_queue_size: 1_048_576, + max_upward_message_size: 65_531, + max_upward_message_num_per_candidate: 16, + hrmp_max_message_num_per_candidate: 10, + validation_upgrade_cooldown: 6, + validation_upgrade_delay: 6, + async_backing_params: AsyncBackingParams { + max_candidate_depth: 3, + allowed_ancestry_len: 2, + }, + } +} + // A valid signed Alice transfer. pub const VALID_ETH_TX: &str = "02f86d8205018085174876e80085e8d4a5100082520894f24ff3a9cf04c71dbc94d0b566f7a27b9456\ @@ -126,7 +146,6 @@ pub struct XcmAssetInitialization { } pub struct ExtBuilder { - asset_hub_migration_started: bool, // endowed accounts with balances balances: Vec<(AccountId, Balance)>, // [collator, amount] @@ -152,7 +171,6 @@ pub struct ExtBuilder { impl Default for ExtBuilder { fn default() -> ExtBuilder { ExtBuilder { - asset_hub_migration_started: false, balances: vec![], delegations: vec![], collators: vec![], @@ -187,11 +205,6 @@ impl Default for ExtBuilder { } impl ExtBuilder { - pub fn asset_hub_migration_has_started(mut self) -> Self { - self.asset_hub_migration_started = true; - self - } - pub fn with_evm_accounts(mut self, accounts: BTreeMap) -> Self { self.evm_accounts = accounts; self @@ -324,16 +337,10 @@ impl ExtBuilder { let mut ext = sp_io::TestExternalities::new(t); let xcm_assets = self.xcm_assets.clone(); ext.execute_with(|| { - if self.asset_hub_migration_started { - // Indicate that the asset-hub migration has already started - moonriver_runtime::xcm_config::AssetHubMigrationStartsAtRelayBlock::set(&0); - - let mut validation_data = ValidationData::::get().unwrap_or_default(); - - validation_data.relay_parent_number = - moonriver_runtime::xcm_config::AssetHubMigrationStartsAtRelayBlock::get(); - ValidationData::::set(Some(validation_data)); - } + // Mock host configuration for ParachainSystem + cumulus_pallet_parachain_system::HostConfiguration::::put( + mock_abridged_host_config(), + ); // Mock hrmp egress_channels cumulus_pallet_parachain_system::RelevantMessagingState::::put( @@ -447,6 +454,8 @@ pub fn set_parachain_inherent_data() { relay_chain_state: relay_chain_state, downward_messages: Default::default(), horizontal_messages: Default::default(), + collator_peer_id: Default::default(), + relay_parent_descendants: Default::default(), }; assert_ok!(RuntimeCall::ParachainSystem( cumulus_pallet_parachain_system::Call::::set_validation_data { diff --git a/runtime/moonriver/tests/evm_tracing.rs b/runtime/moonriver/tests/evm_tracing.rs index f8a356f04bb..c512a93d44e 100644 --- a/runtime/moonriver/tests/evm_tracing.rs +++ b/runtime/moonriver/tests/evm_tracing.rs @@ -57,7 +57,7 @@ mod tests { let block = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: 1, + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; @@ -98,7 +98,7 @@ mod tests { let block = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: 1, + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; @@ -116,7 +116,7 @@ mod tests { let block = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: 1, + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; diff --git a/runtime/moonriver/tests/integration_test.rs b/runtime/moonriver/tests/integration_test.rs index 8f56137b22f..df7f0fabdcf 100644 --- a/runtime/moonriver/tests/integration_test.rs +++ b/runtime/moonriver/tests/integration_test.rs @@ -64,9 +64,9 @@ use sp_runtime::{ }; use std::str::from_utf8; use xcm::latest::prelude::*; -use xcm::{VersionedAssets, VersionedLocation}; +use xcm::{VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm}; use xcm_builder::{ParentIsPreset, SiblingParachainConvertsVia}; -use xcm_executor::traits::ConvertLocation; +use xcm_executor::traits::{ConvertLocation, TransferType}; use xcm_primitives::split_location_into_chain_part_and_beneficiary; type BatchPCall = pallet_evm_precompile_batch::BatchPrecompileCall; @@ -1153,9 +1153,12 @@ fn root_can_change_default_xcm_vers() { })), Box::new(VersionedAssets::from(asset.clone())), 0, - WeightLimit::Unlimited + WeightLimit::Unlimited, ), - pallet_xcm::Error::::LocalExecutionIncomplete + pallet_xcm::Error::::LocalExecutionIncompleteWithError { + index: 2, + error: pallet_xcm::ExecutionError::DestinationUnsupported + } ); // Root sets the defaultXcm @@ -1737,73 +1740,10 @@ fn transact_through_signed_cannot_send_to_local_chain() { }); } -// TODO: Unify all "call_pallet_xcm_with_fee" prefixed tests after the asset hub migration #[test] fn call_pallet_xcm_with_fee() { let asset_id = 1; ExtBuilder::default() - .with_balances(vec![ - (AccountId::from(ALICE), 2_000 * MOVR), - (AccountId::from(BOB), 1_000 * MOVR), - ]) - .with_safe_xcm_version(3) - .with_xcm_assets(vec![XcmAssetInitialization { - asset_id, - xcm_location: AssetHubLocation::get(), - name: "Dot", - symbol: "Dot", - decimals: 12, - balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], - }]) - .build() - .execute_with(|| { - let dest = Location { - parents: 1, - interior: [AccountId32 { - network: None, - id: [1u8; 32], - }] - .into(), - }; - - let before_balance = - EvmForeignAssets::balance(asset_id, AccountId::from(ALICE)).unwrap(); - let (chain_part, beneficiary) = - split_location_into_chain_part_and_beneficiary(dest).unwrap(); - let asset_amount = 100_000_000_000_000u128; - let asset_fee_amount = 100u128; - - let asset = currency_to_asset(CurrencyId::ForeignAsset(asset_id), asset_amount); - let asset_fee = currency_to_asset(CurrencyId::ForeignAsset(asset_id), asset_fee_amount); - - // We are able to transfer with fee - assert_ok!(PolkadotXcm::transfer_assets( - origin_of(AccountId::from(ALICE)), - Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(vec![asset_fee, asset])), - 0, - WeightLimit::Limited(4000000000.into()), - ),); - - let after_balance = - EvmForeignAssets::balance(asset_id, AccountId::from(ALICE)).unwrap(); - // At least these much (plus fees) should have been charged - assert_eq!( - before_balance - .saturating_sub(asset_amount.into()) - .saturating_sub(asset_fee_amount.into()), - after_balance - ); - }); -} - -// TODO: Unify all "call_pallet_xcm_with_fee" prefixed tests after the asset hub migration -#[test] -fn call_pallet_xcm_with_fee_after_ahm() { - let asset_id = 1; - ExtBuilder::default() - .asset_hub_migration_has_started() .with_balances(vec![ (AccountId::from(ALICE), 2_000 * MOVR), (AccountId::from(BOB), 1_000 * MOVR), @@ -1834,79 +1774,26 @@ fn call_pallet_xcm_with_fee_after_ahm() { split_location_into_chain_part_and_beneficiary(dest).unwrap(); let asset = currency_to_asset(CurrencyId::ForeignAsset(asset_id), 100_000_000_000_000); let asset_fee = currency_to_asset(CurrencyId::ForeignAsset(asset_id), 100); - - // Once the AH migration starts, we should no longer be able to use the parent location as reserve. - assert_noop!( - PolkadotXcm::transfer_assets( - origin_of(AccountId::from(ALICE)), - Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), - Box::new(VersionedAssets::from(vec![asset_fee, asset])), - 0, - WeightLimit::Limited(4000000000.into()) - ), - pallet_xcm::Error::::InvalidAssetUnknownReserve - ); - - let after_balance = - EvmForeignAssets::balance(asset_id, AccountId::from(ALICE)).unwrap(); - // At least these much (plus fees) should have been charged - assert_eq!(before_balance, after_balance); - }); -} - -// TODO: Unify all "call_pallet_xcm_with_fee" prefixed tests after the asset hub migration -#[test] -fn call_pallet_xcm_with_fee_before_ahm() { - let asset_id = 1; - ExtBuilder::default() - .with_balances(vec![ - (AccountId::from(ALICE), 2_000 * MOVR), - (AccountId::from(BOB), 1_000 * MOVR), - ]) - .with_safe_xcm_version(3) - .with_xcm_assets(vec![XcmAssetInitialization { - asset_id, - xcm_location: Location::parent(), - name: "RelayToken", - symbol: "Relay", - decimals: 12, - balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], - }]) - .build() - .execute_with(|| { - let dest = Location { - parents: 1, - interior: [AccountId32 { - network: None, - id: [1u8; 32], - }] - .into(), - }; - - let before_balance = - EvmForeignAssets::balance(asset_id, AccountId::from(ALICE)).unwrap(); - let (chain_part, beneficiary) = - split_location_into_chain_part_and_beneficiary(dest).unwrap(); - let asset = currency_to_asset(CurrencyId::ForeignAsset(asset_id), 100_000_000_000_000); - let asset_fee = currency_to_asset(CurrencyId::ForeignAsset(asset_id), 100); - // We are able to transfer with fee - assert_ok!(PolkadotXcm::transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( origin_of(AccountId::from(ALICE)), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset_fee, asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(4000000000.into()) )); let after_balance = EvmForeignAssets::balance(asset_id, AccountId::from(ALICE)).unwrap(); - // At least these much (plus fees) should have been charged - assert_eq!( - before_balance - 100_000_000_000_000u128 - 100u128, - after_balance - ); + // Balance should have been reduced by the transfer amount plus fees + assert!(after_balance < before_balance); }); } @@ -2019,7 +1906,7 @@ fn test_nested_batch_calls_from_xcm_transact() { call: valid_nested_calls.encode().into(), }]); - assert!(XcmExecutor::prepare(valid_message).is_ok()); + assert!(XcmExecutor::prepare(valid_message, Weight::MAX).is_ok()); let excessive_nested_calls = RuntimeCall::Utility(pallet_utility::Call::batch { calls: vec![valid_nested_calls], @@ -2031,7 +1918,7 @@ fn test_nested_batch_calls_from_xcm_transact() { call: excessive_nested_calls.encode().into(), }]); // Expect to fail because we have too many nested calls - assert!(XcmExecutor::prepare(invalid_message).is_err()); + assert!(XcmExecutor::prepare(invalid_message, Weight::MAX).is_err()); }); } diff --git a/runtime/moonriver/tests/runtime_apis.rs b/runtime/moonriver/tests/runtime_apis.rs index cc932356bf2..00c41f3a2e8 100644 --- a/runtime/moonriver/tests/runtime_apis.rs +++ b/runtime/moonriver/tests/runtime_apis.rs @@ -336,7 +336,7 @@ fn can_author_when_selected_is_empty() { let parent = Header { digest: Default::default(), extrinsics_root: Default::default(), - number: Default::default(), + number: 2, parent_hash: Default::default(), state_root: Default::default(), }; diff --git a/runtime/moonriver/tests/xcm_mock/parachain.rs b/runtime/moonriver/tests/xcm_mock/parachain.rs index 194ab87af4e..d78b9e040e0 100644 --- a/runtime/moonriver/tests/xcm_mock/parachain.rs +++ b/runtime/moonriver/tests/xcm_mock/parachain.rs @@ -382,7 +382,7 @@ impl pallet_treasury::Config for Runtime { type BalanceConverter = AssetRateConverter; type PayoutPeriod = ConstU32<0>; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = ArgumentsBenchmarkHelper; + type BenchmarkHelper = ArgumentsBenchmarkHelper; type BlockNumberProvider = System; } @@ -393,7 +393,6 @@ pub mod mock_msg_queue { #[pallet::config] pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; type XcmExecutor: ExecuteXcm; } @@ -422,7 +421,7 @@ pub mod mock_msg_queue { /// Some XCM was executed OK. Success(Option), /// Some XCM failed. - Fail(Option, XcmError), + Fail(Option, InstructionError), /// Bad XCM version used. BadVersion(Option), /// Bad XCM format used. @@ -447,7 +446,7 @@ pub mod mock_msg_queue { _sent_at: RelayBlockNumber, xcm: VersionedXcm, max_weight: Weight, - ) -> Result { + ) -> Result { let hash = Encode::using_encoded(&xcm, T::Hashing::hash); let (result, event) = match Xcm::::try_from(xcm) { Ok(xcm) => { @@ -461,7 +460,7 @@ pub mod mock_msg_queue { max_weight, Weight::zero(), ) { - Outcome::Error { error } => { + Outcome::Error(error) => { (Err(error.clone()), Event::Fail(Some(hash), error)) } Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), @@ -473,7 +472,10 @@ pub mod mock_msg_queue { } } Err(()) => ( - Err(XcmError::UnhandledXcmVersion), + Err(InstructionError { + error: XcmError::UnhandledXcmVersion, + index: 0, + }), Event::BadVersion(Some(hash)), ), }; @@ -548,9 +550,7 @@ pub mod mock_version_changer { use frame_support::pallet_prelude::*; #[pallet::config] - pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - } + pub trait Config: frame_system::Config {} #[pallet::call] impl Pallet {} @@ -585,13 +585,10 @@ pub mod mock_version_changer { } impl mock_msg_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; } -impl mock_version_changer::Config for Runtime { - type RuntimeEvent = RuntimeEvent; -} +impl mock_version_changer::Config for Runtime {} pub type LocalOriginToLocation = xcm_primitives::SignedToAccountId20; @@ -627,7 +624,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } #[derive( @@ -686,7 +682,6 @@ impl pallet_moonbeam_foreign_assets::Config for Runtime { type ForeignAssetUnfreezerOrigin = ForeignAssetManagerOrigin; type OnForeignAssetCreated = (); type MaxForeignAssets = ConstU32<256>; - type RuntimeEvent = RuntimeEvent; type WeightInfo = (); type XcmLocationToH160 = LocationToH160; type ForeignAssetCreationDeposit = ForeignAssetCreationDeposit; @@ -700,7 +695,6 @@ parameter_types! { } impl pallet_xcm_transactor::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type Balance = Balance; type Transactor = moonriver_runtime::xcm_config::Transactors; type DerivativeAddressRegistrationOrigin = EnsureRoot; @@ -735,7 +729,6 @@ impl pallet_xcm_weight_trader::Config for Runtime { type NativeLocation = SelfReserve; type PauseSupportedAssetOrigin = EnsureRoot; type RemoveSupportedAssetOrigin = EnsureRoot; - type RuntimeEvent = RuntimeEvent; type ResumeSupportedAssetOrigin = EnsureRoot; type WeightInfo = (); type WeightToFee = WeightToFee; @@ -773,7 +766,6 @@ impl pallet_evm::Config for Runtime { type Currency = Balances; type Runner = pallet_evm::runner::stack::Runner; - type RuntimeEvent = RuntimeEvent; type PrecompilesType = (); type PrecompilesValue = (); type ChainId = (); @@ -862,7 +854,6 @@ parameter_types! { } impl pallet_ethereum::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type StateRoot = pallet_ethereum::IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; @@ -950,7 +941,6 @@ impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { } impl pallet_ethereum_xcm::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; @@ -992,9 +982,7 @@ pub(crate) fn para_events() -> Vec { .collect::>() } -use frame_support::traits::{ - ConstBool, Disabled, OnFinalize, OnInitialize, UncheckedOnRuntimeUpgrade, -}; +use frame_support::traits::{Disabled, OnFinalize, OnInitialize, UncheckedOnRuntimeUpgrade}; use moonriver_runtime::{currency, xcm_config::LocationToH160}; use pallet_evm::FrameSystemAccountProvider; diff --git a/runtime/moonriver/tests/xcm_mock/relay_chain.rs b/runtime/moonriver/tests/xcm_mock/relay_chain.rs index 6d3efcfd29e..dfc0eabea08 100644 --- a/runtime/moonriver/tests/xcm_mock/relay_chain.rs +++ b/runtime/moonriver/tests/xcm_mock/relay_chain.rs @@ -247,7 +247,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } parameter_types! { @@ -284,6 +283,9 @@ impl paras::Config for Runtime { type QueueFootprinter = (); type OnNewHead = (); type AssignCoretime = (); + type Fungible = (); + type CooldownRemovalMultiplier = (); + type AuthorizeCurrentCodeOrigin = frame_system::EnsureRoot; } impl dmp::Config for Runtime {} @@ -322,6 +324,10 @@ where fn create_inherent(call: RuntimeCall) -> UncheckedExtrinsic { UncheckedExtrinsic::new_bare(call) } + + fn create_bare(call: RuntimeCall) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_bare(call) + } } parameter_types! { @@ -388,7 +394,7 @@ pub(crate) fn relay_events() -> Vec { .collect::>() } -use frame_support::traits::{ConstBool, Disabled, OnFinalize, OnInitialize}; +use frame_support::traits::{Disabled, OnFinalize, OnInitialize}; pub(crate) fn relay_roll_to(n: BlockNumber) { while System::block_number() < n { XcmPallet::on_finalize(System::block_number()); diff --git a/runtime/moonriver/tests/xcm_mock/statemine_like.rs b/runtime/moonriver/tests/xcm_mock/statemine_like.rs index 592c7f40205..bed2d064f45 100644 --- a/runtime/moonriver/tests/xcm_mock/statemine_like.rs +++ b/runtime/moonriver/tests/xcm_mock/statemine_like.rs @@ -16,7 +16,7 @@ //! Relay chain runtime mock. -use frame_support::traits::{ConstBool, Disabled}; +use frame_support::traits::Disabled; use frame_support::{ construct_runtime, parameter_types, traits::{AsEnsureOriginWithArg, Contains, ContainsPair, Everything, Get, Nothing}, @@ -385,7 +385,6 @@ impl pallet_xcm::Config for Runtime { type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; type AuthorizedAliasConsideration = Disabled; - type AssetHubMigrationStarted = ConstBool; } impl cumulus_pallet_xcm::Config for Runtime { @@ -400,7 +399,6 @@ pub mod mock_msg_queue { #[pallet::config] pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; type XcmExecutor: ExecuteXcm; } @@ -429,7 +427,7 @@ pub mod mock_msg_queue { /// Some XCM was executed OK. Success(Option), /// Some XCM failed. - Fail(Option, XcmError), + Fail(Option, InstructionError), /// Bad XCM version used. BadVersion(Option), /// Bad XCM format used. @@ -454,7 +452,7 @@ pub mod mock_msg_queue { _sent_at: RelayBlockNumber, xcm: VersionedXcm, max_weight: Weight, - ) -> Result { + ) -> Result { let hash = Encode::using_encoded(&xcm, T::Hashing::hash); let (result, event) = match Xcm::::try_from(xcm) { Ok(xcm) => { @@ -468,7 +466,7 @@ pub mod mock_msg_queue { max_weight, Weight::zero(), ) { - Outcome::Error { error } => { + Outcome::Error(error) => { (Err(error.clone()), Event::Fail(Some(hash), error)) } Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), @@ -480,7 +478,10 @@ pub mod mock_msg_queue { } } Err(()) => ( - Err(XcmError::UnhandledXcmVersion), + Err(InstructionError { + error: XcmError::UnhandledXcmVersion, + index: 0, + }), Event::BadVersion(Some(hash)), ), }; @@ -548,7 +549,6 @@ pub mod mock_msg_queue { } } impl mock_msg_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; } @@ -559,9 +559,7 @@ pub mod mock_statemine_prefix { use frame_support::pallet_prelude::*; #[pallet::config] - pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - } + pub trait Config: frame_system::Config {} #[pallet::call] impl Pallet {} @@ -595,9 +593,7 @@ pub mod mock_statemine_prefix { } } -impl mock_statemine_prefix::Config for Runtime { - type RuntimeEvent = RuntimeEvent; -} +impl mock_statemine_prefix::Config for Runtime {} type Block = frame_system::mocking::MockBlockU32; construct_runtime!( diff --git a/runtime/moonriver/tests/xcm_tests.rs b/runtime/moonriver/tests/xcm_tests.rs index 6b577724496..840f7393e00 100644 --- a/runtime/moonriver/tests/xcm_tests.rs +++ b/runtime/moonriver/tests/xcm_tests.rs @@ -32,11 +32,11 @@ use xcm::{ AccountId32, AccountKey20, All, Asset, AssetId, Assets as XcmAssets, BuyExecution, ClearOrigin, DepositAsset, Fungibility, GeneralIndex, Junction, Junctions, Limited, Location, OriginKind, PalletInstance, Parachain, QueryResponse, Reanchorable, Response, - WeightLimit, WithdrawAsset, Xcm, + WeightLimit, Wild, WithdrawAsset, Xcm, }, - IntoVersion, VersionedAssets, VersionedLocation, WrapVersion, + IntoVersion, VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm, WrapVersion, }; -use xcm_executor::traits::ConvertLocation; +use xcm_executor::traits::{ConvertLocation, TransferType}; use xcm_mock::parachain::{self, EvmForeignAssets, PolkadotXcm, Treasury}; use xcm_mock::relay_chain; use xcm_mock::*; @@ -130,12 +130,19 @@ fn receive_relay_asset_from_relay() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -189,12 +196,19 @@ fn send_relay_asset_to_relay() { // First send relay chain asset to Parachain like in previous test Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -214,24 +228,31 @@ fn send_relay_asset_to_relay() { }); // We now send back some money to the relay - let dest = Location { - parents: 1, + let dest_chain = Location::parent(); + let beneficiary = Location { + parents: 0, interior: [AccountId32 { network: None, id: RELAYALICE.into(), }] .into(), }; - let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap(); ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 123); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), - Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), + Box::new(VersionedLocation::from(dest_chain)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -302,12 +323,19 @@ fn send_relay_asset_to_para_b() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -335,12 +363,19 @@ fn send_relay_asset_to_para_b() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::RemoteReserve(Location::parent().into())), + Box::new(fees_id), + Box::new(TransferType::RemoteReserve(Location::parent().into())), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -889,12 +924,19 @@ fn receive_relay_asset_with_trader() { // Therefore with no refund, we should receive 10 tokens less // Native trader fails for this, and we use the asset trader Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 100).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1120,12 +1162,19 @@ fn error_when_not_paying_enough() { // If we set the dest weight to be 1e7, we know the buy_execution will spend 1e7*1e6/1e12 = 10 // Therefore with no refund, we should receive 10 tokens less Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 5).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1192,12 +1241,19 @@ fn transact_through_derivative_multilocation() { .into(); Relay::execute_with(|| { // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1235,12 +1291,19 @@ fn transact_through_derivative_multilocation() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1344,12 +1407,19 @@ fn transact_through_derivative_with_custom_fee_weight() { .into(); Relay::execute_with(|| { // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1387,12 +1457,19 @@ fn transact_through_derivative_with_custom_fee_weight() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1508,12 +1585,19 @@ fn transact_through_derivative_with_custom_fee_weight_refund() { .into(); Relay::execute_with(|| { // 4000000000 transact + 9000 correspond to 4000009000 tokens. 100 more for the transfer call - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000009100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1551,12 +1635,19 @@ fn transact_through_derivative_with_custom_fee_weight_refund() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1684,12 +1775,19 @@ fn transact_through_sovereign() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1726,12 +1824,19 @@ fn transact_through_sovereign() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -1951,12 +2056,19 @@ fn transact_through_sovereign_with_custom_fee_weight() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000003100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -1993,12 +2105,19 @@ fn transact_through_sovereign_with_custom_fee_weight() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -2114,12 +2233,19 @@ fn transact_through_sovereign_with_custom_fee_weight_refund() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 4000009100u128).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2156,12 +2282,19 @@ fn transact_through_sovereign_with_custom_fee_weight_refund() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_id), 100); // free execution, full amount received - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); }); @@ -2308,12 +2441,19 @@ fn test_automatic_versioning_on_runtime_upgrade_with_relay() { )); // Transfer assets. Since it is an unknown destination, it will query for version - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest).clone()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); @@ -2570,12 +2710,19 @@ fn receive_asset_with_no_sufficients_is_possible_for_non_existent_account() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2625,12 +2772,19 @@ fn receive_assets_with_sufficients_true_allows_non_funded_account_to_receive_ass } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2689,12 +2843,19 @@ fn evm_account_receiving_assets_should_handle_sufficients_ref_count() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2766,12 +2927,19 @@ fn empty_account_should_not_be_reset() { } .into(); Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new(VersionedLocation::from(dest.clone()).clone().into()), Box::new(([] /* Here */, 123).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -2894,25 +3062,32 @@ fn test_statemine_like() { .into(); // Send with new prefix - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new(VersionedLocation::from(dest).clone()), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - xcm::latest::prelude::GeneralIndex(0), - ], - 123 - ) - .into() - ), + let asset_location = Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + xcm::latest::prelude::GeneralIndex(0), + ], + ); + let fees_id: VersionedAssetId = AssetId(asset_location.clone()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: dest.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((asset_location, 123).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3010,16 +3185,19 @@ fn send_statemine_asset_from_para_a_to_statemine_with_relay_fee() { // Send relay chain asset to Alice in Parachain A Relay::execute_with(|| { - assert_ok!(RelayChainPalletXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::here()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_from_relay.clone(), + }]); + assert_ok!(RelayChainPalletXcm::transfer_assets_using_type_and_then( relay_chain::RuntimeOrigin::signed(RELAYALICE), Box::new(Parachain(1).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_from_relay) - .clone() - .into() - ), Box::new(([] /* Here */, 200).into()), - 0, + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Unlimited )); }); @@ -3060,29 +3238,32 @@ fn send_statemine_asset_from_para_a_to_statemine_with_relay_fee() { .into(); // Send with new prefix - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_from_statemine) - .clone() - .into() - ), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - GeneralIndex(10), - ], - 125 - ) - .into() - ), + let asset_location = Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + ); + let fees_id: VersionedAssetId = AssetId(asset_location.clone()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_from_statemine.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((asset_location, 125).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); let statemine_beneficiary = Location { @@ -3125,13 +3306,20 @@ fn send_statemine_asset_from_para_a_to_statemine_with_relay_fee() { 100, ); let asset_2 = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 100); + let fees_id: VersionedAssetId = asset_2.id.clone().into(); let assets_to_send = vec![asset_1, asset_2]; - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(assets_to_send)), - 1, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) )); }); @@ -3237,18 +3425,23 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer() { )); // Now send those tokens to ParaA - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 200).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3273,12 +3466,19 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer() { // Finally we test that we are able to send back the DOTs to AssetHub from the ParaA ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 100); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); @@ -3299,18 +3499,23 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer() { // Send back tokens from AH to ParaA from Bob's account Statemine::execute_with(|| { // Now send those tokens to ParaA - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 100).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!(StatemineBalances::free_balance(RELAYBOB), INITIAL_BALANCE); @@ -3406,18 +3611,23 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_with_fee() { )); // Now send those tokens to ParaA - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 200).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3443,12 +3653,19 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_with_fee() { ParaA::execute_with(|| { let asset = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 100); let asset_fee = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 10); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset_fee, asset])), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); @@ -3469,18 +3686,23 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_with_fee() { // Send back tokens from AH to ParaA from Bob's account Statemine::execute_with(|| { // Now send those tokens to ParaA - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 100).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!( @@ -3579,18 +3801,23 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_multiasset() { )); // Now send those tokens to ParaA - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 200).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3616,14 +3843,21 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_multiasset() { // Finally we test that we are able to send back the DOTs to AssetHub from the ParaA ParaA::execute_with(|| { - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from( vec![(Location::parent(), 100).into()] )), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) )); @@ -3644,18 +3878,23 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_multiasset() { // Send back tokens from AH to ParaA from Bob's account Statemine::execute_with(|| { // Now send those tokens to ParaA - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 100).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!(StatemineBalances::free_balance(RELAYBOB), INITIAL_BALANCE); @@ -3810,43 +4049,51 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_multicurrencies() { )); // Now send relay tokens to ParaA - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 200).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // Send USDC - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - GeneralIndex(10), - ], - 125 - ) - .into() - ), + let asset_location = Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + ); + let fees_id: VersionedAssetId = AssetId(asset_location.clone()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((asset_location, 125).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -3883,12 +4130,19 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_multicurrencies() { 100, ); let asset_2 = currency_to_asset(parachain::CurrencyId::ForeignAsset(source_relay_id), 100); - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(vec![asset_1, asset_2])), - 1, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) )); @@ -3915,18 +4169,23 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_multicurrencies() { let bob_previous_balance = StatemineBalances::free_balance(RELAYBOB); // Now send those tokens to ParaA - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 100).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!( @@ -4084,43 +4343,51 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_multiassets() { )); // Now send relay tokens to ParaA - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new((Location::parent(), 200).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 200).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // Send USDC - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYALICE), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute.clone()) - .clone() - .into() - ), - Box::new( - ( - [ - xcm::latest::prelude::PalletInstance( - ::index() as u8 - ), - GeneralIndex(10), - ], - 125 - ) - .into() - ), + let asset_location = Location::new( 0, - WeightLimit::Unlimited - )); + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8, + ), + GeneralIndex(10), + ], + ); + let fees_id: VersionedAssetId = AssetId(asset_location.clone()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((asset_location, 125).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); }); ParaA::execute_with(|| { @@ -4167,12 +4434,19 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_multiassets() { // Finally we test that we are able to send back the DOTs to AssetHub from the ParaA ParaA::execute_with(|| { - assert_ok!(PolkadotXcm::limited_reserve_transfer_assets( + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: beneficiary.clone(), + }]); + assert_ok!(PolkadotXcm::transfer_assets_using_type_and_then( parachain::RuntimeOrigin::signed(PARAALICE.into()), Box::new(VersionedLocation::from(chain_part)), - Box::new(VersionedLocation::from(beneficiary)), Box::new(VersionedAssets::from(assets_to_send)), - 0, + Box::new(TransferType::DestinationReserve), + Box::new(fees_id), + Box::new(TransferType::DestinationReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) )); @@ -4199,18 +4473,23 @@ fn send_dot_from_moonbeam_to_statemine_via_xtokens_transfer_multiassets() { let bob_previous_balance = StatemineBalances::free_balance(RELAYBOB); // Now send those tokens to ParaA - assert_ok!(StatemineChainPalletXcm::limited_reserve_transfer_assets( - statemine_like::RuntimeOrigin::signed(RELAYBOB), - Box::new(Location::new(1, [Parachain(1)]).into()), - Box::new( - VersionedLocation::from(parachain_beneficiary_absolute) - .clone() - .into() - ), - Box::new((Location::parent(), 100).into()), - 0, - WeightLimit::Unlimited - )); + let fees_id: VersionedAssetId = AssetId(Location::parent()).into(); + let xcm_on_dest = Xcm::<()>(vec![DepositAsset { + assets: Wild(All), + beneficiary: parachain_beneficiary_absolute.clone(), + }]); + assert_ok!( + StatemineChainPalletXcm::transfer_assets_using_type_and_then( + statemine_like::RuntimeOrigin::signed(RELAYBOB), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new((Location::parent(), 100).into()), + Box::new(TransferType::LocalReserve), + Box::new(fees_id), + Box::new(TransferType::LocalReserve), + Box::new(VersionedXcm::V5(xcm_on_dest)), + WeightLimit::Unlimited + ) + ); // 100 DOTs were deducted from Bob's account assert_eq!( diff --git a/rust-toolchain b/rust-toolchain index 3eca8c776df..a2e000f0f2a 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1,5 +1,5 @@ [toolchain] -channel = "1.84.1" +channel = "1.88.0" components = [ "rustfmt", "clippy", "rust-src" ] targets = [ "wasm32v1-none" ] profile = "minimal" diff --git a/test/suites/dev/moonbase/test-randomness/test-randomness-vrf-lottery4.ts b/test/suites/dev/moonbase/test-randomness/test-randomness-vrf-lottery4.ts index 84af43edadc..aef6917159f 100644 --- a/test/suites/dev/moonbase/test-randomness/test-randomness-vrf-lottery4.ts +++ b/test/suites/dev/moonbase/test-randomness/test-randomness-vrf-lottery4.ts @@ -20,7 +20,7 @@ describeSuite({ value: 1n * GLMR, }); log("Estimated Gas for startLottery", estimatedGas); - expect(estimatedGas).to.equal(111875n); + expect(estimatedGas).to.equal(111495n); await context.writeContract!({ contractAddress: lotteryContract, diff --git a/test/suites/dev/moonbase/test-xcm/test-xcm-dry-run-api.ts b/test/suites/dev/moonbase/test-xcm/test-xcm-dry-run-api.ts index db9d561d0ea..18064abc3bf 100644 --- a/test/suites/dev/moonbase/test-xcm/test-xcm-dry-run-api.ts +++ b/test/suites/dev/moonbase/test-xcm/test-xcm-dry-run-api.ts @@ -13,6 +13,7 @@ import { XcmFragment, } from "../../../../helpers"; import { parseEther } from "ethers"; +import type { DispatchError } from "@polkadot/types/interfaces"; describeSuite({ id: "D024016", @@ -23,6 +24,7 @@ describeSuite({ beforeAll(async function () { polkadotJs = context.polkadotJs(); + await context.createBlock(); }); for (const xcmVersion of XCM_VERSIONS) {