diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 13bfe7f93b..b57b752e09 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -258,6 +258,9 @@ jobs: - name: Srtool build id: srtool_build uses: chevdor/srtool-actions@v0.8.0 + env: + # needed to enable metadata hash generation + BUILD_OPTS: "--features on-chain-release-build" with: chain: ${{ matrix.chain }} runtime_dir: runtime/${{ matrix.chain }} diff --git a/Cargo.lock b/Cargo.lock index 880c99e6cd..17a02c347b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,6 +218,20 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "aquamarine" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" +dependencies = [ + "include_dir", + "itertools 0.10.5", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "ark-bls12-377" version = "0.4.0" @@ -429,20 +443,6 @@ dependencies = [ "hashbrown 0.13.2", ] -[[package]] -name = "ark-scale" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51bd73bb6ddb72630987d37fa963e99196896c0d0ea81b7c894567e74a2f83af" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", - "parity-scale-codec", - "scale-info", -] - [[package]] name = "ark-scale" version = "0.0.12" @@ -460,7 +460,7 @@ dependencies = [ [[package]] name = "ark-secret-scalar" version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-ec", "ark-ff", @@ -502,14 +502,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand 0.8.5", + "rand", "rayon", ] [[package]] name = "ark-transcript" version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-ff", "ark-serialize", @@ -546,12 +546,6 @@ dependencies = [ "nodrop", ] -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "arrayvec" version = "0.7.4" @@ -649,6 +643,7 @@ dependencies = [ "fp-storage", "frame-benchmarking", "frame-benchmarking-cli", + "frame-metadata-hash-extension", "frame-system", "frame-try-runtime", "futures 0.3.30", @@ -730,6 +725,7 @@ dependencies = [ "frame-system", "impl-trait-for-tuples", "log", + "once_cell", "orml-oracle", "orml-traits", "pallet-assets", @@ -747,7 +743,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -773,6 +769,7 @@ dependencies = [ "fp-self-contained", "frame-benchmarking", "frame-executive", + "frame-metadata-hash-extension", "frame-support", "frame-system", "frame-system-benchmarking", @@ -784,7 +781,6 @@ dependencies = [ "moonbeam-rpc-primitives-debug", "moonbeam-rpc-primitives-txpool", "num_enum 0.5.11", - "oracle-benchmarks", "orml-oracle", "orml-xcm-support", "orml-xtokens", @@ -848,9 +844,9 @@ dependencies = [ "sp-io", "sp-offchain", "sp-runtime", - "sp-runtime-interface 17.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-session", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -891,7 +887,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -1149,7 +1145,7 @@ dependencies = [ [[package]] name = "bandersnatch_vrfs" version = "0.0.4" -source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-bls12-381", "ark-ec", @@ -1159,7 +1155,7 @@ dependencies = [ "ark-std", "dleq_vrf", "fflonk", - "merlin 3.0.0", + "merlin", "rand_chacha 0.3.1", "rand_core 0.6.4", "ring 0.1.0", @@ -1193,6 +1189,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "base64ct" version = "1.6.0" @@ -1225,8 +1227,8 @@ dependencies = [ [[package]] name = "binary-merkle-tree" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "hash-db", "log", @@ -1268,19 +1270,31 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ - "bitcoin_hashes", - "rand 0.8.5", - "rand_core 0.6.4", - "serde", - "unicode-normalization", + "bitcoin_hashes 0.11.0", ] +[[package]] +name = "bitcoin-internals" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" + [[package]] name = "bitcoin_hashes" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" +[[package]] +name = "bitcoin_hashes" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +dependencies = [ + "bitcoin-internals", + "hex-conservative", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -1372,18 +1386,6 @@ dependencies = [ "constant_time_eq 0.3.0", ] -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - [[package]] name = "block-buffer" version = "0.9.0" @@ -1402,15 +1404,6 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", -] - [[package]] name = "blocking" version = "1.6.1" @@ -1426,9 +1419,9 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.1.9" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca548b6163b872067dc5eb82fd130c56881435e30367d2073594a3d9744120dd" +checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" dependencies = [ "log", "parity-scale-codec", @@ -1447,8 +1440,8 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "scale-info", @@ -1483,16 +1476,6 @@ dependencies = [ "regex-automata 0.1.10", ] -[[package]] -name = "bstr" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "build-helper" version = "0.1.1" @@ -1845,7 +1828,7 @@ dependencies = [ "hmac 0.12.1", "once_cell", "pbkdf2 0.12.2", - "rand 0.8.5", + "rand", "sha2 0.10.8", "thiserror", ] @@ -1899,7 +1882,7 @@ dependencies = [ "ark-std", "fflonk", "getrandom_or_panic", - "merlin 3.0.0", + "merlin", "rand_chacha 0.3.1", ] @@ -2071,7 +2054,7 @@ dependencies = [ "gimli 0.27.3", "hashbrown 0.13.2", "log", - "regalloc2", + "regalloc2 0.6.1", "smallvec", "target-lexicon", ] @@ -2237,16 +2220,6 @@ dependencies = [ "subtle 2.5.0", ] -[[package]] -name = "crypto-mac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" -dependencies = [ - "generic-array 0.14.7", - "subtle 2.5.0", -] - [[package]] name = "ctr" version = "0.9.2" @@ -2258,8 +2231,8 @@ dependencies = [ [[package]] name = "cumulus-client-cli" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "clap", "parity-scale-codec", @@ -2267,6 +2240,7 @@ dependencies = [ "sc-cli", "sc-client-api", "sc-service", + "sp-blockchain", "sp-core", "sp-runtime", "url", @@ -2274,8 +2248,8 @@ dependencies = [ [[package]] name = "cumulus-client-collator" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -2297,16 +2271,16 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "cumulus-client-collator", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", + "cumulus-client-parachain-inherent", "cumulus-primitives-aura", "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", "futures 0.3.30", "parity-scale-codec", @@ -2339,8 +2313,8 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -2368,8 +2342,8 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "anyhow", "async-trait", @@ -2383,8 +2357,8 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-relay-chain" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -2406,8 +2380,8 @@ dependencies = [ [[package]] name = "cumulus-client-network" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -2428,9 +2402,33 @@ dependencies = [ ] [[package]] -name = "cumulus-client-pov-recovery" +name = "cumulus-client-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", + "cumulus-test-relay-sproof-builder", + "parity-scale-codec", + "sc-client-api", + "scale-info", + "sp-api", + "sp-crypto-hashing", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-trie", + "tracing", +] + +[[package]] +name = "cumulus-client-pov-recovery" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2442,7 +2440,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-client-api", "sc-consensus", "sp-consensus", @@ -2453,8 +2451,8 @@ dependencies = [ [[package]] name = "cumulus-client-service" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -2489,8 +2487,8 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -2502,13 +2500,13 @@ dependencies = [ "sp-application-crypto", "sp-consensus-aura", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "cumulus-pallet-dmp-queue" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -2519,14 +2517,14 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", ] [[package]] name = "cumulus-pallet-parachain-system" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2542,15 +2540,16 @@ dependencies = [ "pallet-message-queue", "parity-scale-codec", "polkadot-parachain-primitives", + "polkadot-runtime-common", "polkadot-runtime-parachains", "scale-info", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-inherents", "sp-io", "sp-runtime", "sp-state-machine", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", "sp-version", "staging-xcm", @@ -2559,10 +2558,10 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.66", @@ -2570,8 +2569,8 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2580,14 +2579,14 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", ] [[package]] name = "cumulus-pallet-xcmp-queue" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -2604,15 +2603,15 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-executor", ] [[package]] name = "cumulus-primitives-aura" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2620,13 +2619,13 @@ dependencies = [ "sp-api", "sp-consensus-aura", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "cumulus-primitives-core" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2635,72 +2634,64 @@ dependencies = [ "scale-info", "sp-api", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", "staging-xcm", ] [[package]] name = "cumulus-primitives-parachain-inherent" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "cumulus-test-relay-sproof-builder", "parity-scale-codec", - "sc-client-api", "scale-info", - "sp-api", "sp-core", "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", - "tracing", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.2.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "sp-externalities 0.19.0", - "sp-runtime-interface 17.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", ] [[package]] name = "cumulus-primitives-timestamp" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cumulus-primitives-core", "futures 0.3.30", "parity-scale-codec", "sp-inherents", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-timestamp", ] [[package]] name = "cumulus-primitives-utility" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cumulus-primitives-core", "frame-support", "log", - "pallet-xcm-benchmarks", + "pallet-asset-conversion", "parity-scale-codec", "polkadot-runtime-common", "polkadot-runtime-parachains", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2708,8 +2699,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2732,8 +2723,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2750,8 +2741,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "async-trait", @@ -2772,6 +2763,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", + "polkadot-service", "sc-authority-discovery", "sc-client-api", "sc-network", @@ -2791,8 +2783,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2804,7 +2796,7 @@ dependencies = [ "parity-scale-codec", "pin-project", "polkadot-overseer", - "rand 0.8.5", + "rand", "sc-client-api", "sc-rpc-api", "sc-service", @@ -2819,7 +2811,7 @@ dependencies = [ "sp-core", "sp-runtime", "sp-state-machine", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-version", "thiserror", "tokio", @@ -2830,31 +2822,18 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives", "sp-runtime", "sp-state-machine", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", ] -[[package]] -name = "curve25519-dalek" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" -dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", - "subtle 2.5.0", - "zeroize", -] - [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -2959,7 +2938,20 @@ version = "0.1.0" dependencies = [ "astar-primitives", "sp-api", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", ] [[package]] @@ -3165,11 +3157,11 @@ dependencies = [ [[package]] name = "dleq_vrf" version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-ec", "ark-ff", - "ark-scale 0.0.11", + "ark-scale", "ark-secret-scalar", "ark-serialize", "ark-std", @@ -3266,6 +3258,7 @@ dependencies = [ "digest 0.10.7", "elliptic-curve", "rfc6979", + "serdect", "signature", "spki", ] @@ -3345,6 +3338,7 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sec1", + "serdect", "subtle 2.5.0", "zeroize", ] @@ -3375,7 +3369,7 @@ dependencies = [ "hex", "k256", "log", - "rand 0.8.5", + "rand", "rlp", "serde", "sha3", @@ -3485,7 +3479,7 @@ dependencies = [ "hex", "hmac 0.12.1", "pbkdf2 0.11.0", - "rand 0.8.5", + "rand", "scrypt", "serde", "serde_json", @@ -3662,7 +3656,7 @@ dependencies = [ "num_enum 0.7.2", "once_cell", "open-fastrlp", - "rand 0.8.5", + "rand", "rlp", "serde", "serde_json", @@ -3749,7 +3743,7 @@ dependencies = [ "elliptic-curve", "eth-keystore", "ethers-core", - "rand 0.8.5", + "rand", "sha2 0.10.8", "thiserror", "tracing", @@ -3862,7 +3856,7 @@ dependencies = [ "evm-gasometer", "evm-runtime", "parity-scale-codec", - "sp-runtime-interface 17.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -3911,16 +3905,16 @@ dependencies = [ ] [[package]] -name = "fake-simd" -version = "0.1.2" +name = "fallible-iterator" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fallible-iterator" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" [[package]] name = "faster-hex" @@ -3971,7 +3965,7 @@ dependencies = [ [[package]] name = "fc-api" version = "1.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "async-trait", "fp-storage", @@ -3983,7 +3977,7 @@ dependencies = [ [[package]] name = "fc-consensus" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "async-trait", "fp-consensus", @@ -3999,7 +3993,7 @@ dependencies = [ [[package]] name = "fc-db" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "async-trait", "fc-api", @@ -4020,7 +4014,7 @@ dependencies = [ [[package]] name = "fc-mapping-sync" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "fc-db", "fc-storage", @@ -4041,7 +4035,7 @@ dependencies = [ [[package]] name = "fc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "ethereum", "ethereum-types", @@ -4061,7 +4055,7 @@ dependencies = [ "pallet-evm", "parity-scale-codec", "prometheus", - "rand 0.8.5", + "rand", "rlp", "sc-client-api", "sc-consensus-aura", @@ -4081,12 +4075,12 @@ dependencies = [ "sp-consensus", "sp-consensus-aura", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-inherents", "sp-io", "sp-runtime", "sp-state-machine", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-timestamp", "substrate-prometheus-endpoint", "thiserror", @@ -4096,20 +4090,22 @@ dependencies = [ [[package]] name = "fc-rpc-core" version = "1.1.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "ethereum", "ethereum-types", "jsonrpsee", + "rlp", "rustc-hex", "serde", "serde_json", + "sp-crypto-hashing", ] [[package]] name = "fc-storage" version = "1.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "ethereum", "ethereum-types", @@ -4121,7 +4117,7 @@ dependencies = [ "sp-blockchain", "sp-io", "sp-runtime", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -4154,7 +4150,7 @@ dependencies = [ "ark-poly", "ark-serialize", "ark-std", - "merlin 3.0.0", + "merlin", ] [[package]] @@ -4208,7 +4204,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand", "rustc-hex", "static_assertions", ] @@ -4247,8 +4243,8 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "12.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", ] @@ -4265,7 +4261,7 @@ dependencies = [ [[package]] name = "fp-account" version = "1.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "hex", "impl-serde", @@ -4277,39 +4273,39 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-runtime-interface 17.0.0", - "sp-std 8.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "fp-consensus" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "ethereum", "parity-scale-codec", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "ethereum", "ethereum-types", "fp-evm", "frame-support", "parity-scale-codec", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "fp-evm" version = "3.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "evm", "frame-support", @@ -4319,13 +4315,13 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "fp-rpc" version = "3.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "ethereum", "ethereum-types", @@ -4336,13 +4332,13 @@ dependencies = [ "sp-core", "sp-runtime", "sp-state-machine", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "fp-self-contained" version = "1.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "frame-support", "parity-scale-codec", @@ -4354,7 +4350,7 @@ dependencies = [ [[package]] name = "fp-storage" version = "2.0.0" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "parity-scale-codec", "serde", @@ -4368,8 +4364,8 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-support-procedural", @@ -4385,16 +4381,16 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-runtime-interface 17.0.0", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "static_assertions", ] [[package]] name = "frame-benchmarking-cli" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "32.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "Inflector", "array-bytes 6.2.3", @@ -4411,7 +4407,7 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "rand 0.8.5", + "rand", "rand_pcg", "sc-block-builder", "sc-cli", @@ -4426,25 +4422,25 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-database", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-inherents", "sp-io", "sp-keystore", "sp-runtime", "sp-state-machine", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", - "sp-wasm-interface 14.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "thiserror", "thousands", ] [[package]] name = "frame-election-provider-solution-type" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.66", @@ -4452,8 +4448,8 @@ dependencies = [ [[package]] name = "frame-election-provider-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -4464,14 +4460,15 @@ dependencies = [ "sp-core", "sp-npos-elections", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "frame-executive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ + "aquamarine 0.3.3", "frame-support", "frame-system", "frame-try-runtime", @@ -4481,8 +4478,8 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -4500,7 +4497,7 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "docify", @@ -4514,8 +4511,8 @@ dependencies = [ [[package]] name = "frame-remote-externalities" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "indicatif", @@ -4524,6 +4521,7 @@ dependencies = [ "parity-scale-codec", "serde", "sp-core", + "sp-crypto-hashing", "sp-io", "sp-runtime", "sp-state-machine", @@ -4535,10 +4533,10 @@ dependencies = [ [[package]] name = "frame-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "aquamarine", + "aquamarine 0.5.0", "array-bytes 6.2.3", "bitflags 1.3.2", "docify", @@ -4558,8 +4556,8 @@ dependencies = [ "sp-api", "sp-arithmetic", "sp-core", - "sp-core-hashing-proc-macro", - "sp-debug-derive 8.0.0", + "sp-crypto-hashing-proc-macro", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-genesis-builder", "sp-inherents", "sp-io", @@ -4567,8 +4565,8 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-state-machine", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-weights", "static_assertions", "tt-call", @@ -4576,8 +4574,8 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "Inflector", "cfg-expr", @@ -4589,17 +4587,17 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "sp-core-hashing", + "sp-crypto-hashing", "syn 2.0.66", ] [[package]] name = "frame-support-procedural-tools" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.66", @@ -4607,8 +4605,8 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "proc-macro2", "quote", @@ -4617,8 +4615,8 @@ dependencies = [ [[package]] name = "frame-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cfg-if", "docify", @@ -4630,15 +4628,15 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-version", "sp-weights", ] [[package]] name = "frame-system-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -4647,13 +4645,13 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "frame-system-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "sp-api", @@ -4661,14 +4659,14 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "parity-scale-codec", "sp-api", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -4929,7 +4927,7 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ - "rand 0.8.5", + "rand", "rand_core 0.6.4", ] @@ -4949,11 +4947,21 @@ version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" dependencies = [ - "fallible-iterator", + "fallible-iterator 0.2.0", "indexmap 1.9.3", "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +dependencies = [ + "fallible-iterator 0.3.0", + "stable_deref_trait", +] + [[package]] name = "gimli" version = "0.29.0" @@ -4966,19 +4974,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "globset" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" -dependencies = [ - "aho-corasick", - "bstr 1.9.1", - "log", - "regex-automata 0.4.6", - "regex-syntax 0.8.3", -] - [[package]] name = "gloo-timers" version = "0.2.6" @@ -4991,6 +4986,26 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "dashmap", + "futures 0.3.30", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand", + "smallvec", + "spinning_top", +] + [[package]] name = "group" version = "0.13.0" @@ -5023,9 +5038,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.5.0" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" dependencies = [ "log", "pest", @@ -5134,8 +5149,14 @@ dependencies = [ ] [[package]] -name = "hex-literal" -version = "0.4.1" +name = "hex-conservative" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" + +[[package]] +name = "hex-literal" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" @@ -5158,16 +5179,6 @@ dependencies = [ "digest 0.9.0", ] -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac 0.11.0", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.12.1" @@ -5289,10 +5300,9 @@ dependencies = [ "hyper", "log", "rustls 0.21.12", - "rustls-native-certs", + "rustls-native-certs 0.6.3", "tokio", - "tokio-rustls", - "webpki-roots 0.25.4", + "tokio-rustls 0.24.1", ] [[package]] @@ -5663,9 +5673,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "367a292944c07385839818bb71c8d76611138e2dedb0677d035b8da21d29c78b" +checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" dependencies = [ "jsonrpsee-core", "jsonrpsee-http-client", @@ -5673,105 +5683,106 @@ dependencies = [ "jsonrpsee-server", "jsonrpsee-types", "jsonrpsee-ws-client", + "tokio", "tracing", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8b3815d9f5d5de348e5f162b316dc9cdf4548305ebb15b4eb9328e66cf27d7a" +checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" dependencies = [ "futures-util", "http", "jsonrpsee-core", - "jsonrpsee-types", "pin-project", - "rustls-native-certs", + "rustls-native-certs 0.7.1", + "rustls-pki-types", "soketto", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.25.0", "tokio-util", "tracing", - "webpki-roots 0.25.4", + "url", ] [[package]] name = "jsonrpsee-core" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5dde66c53d6dcdc8caea1874a45632ec0fcf5b437789f1e45766a1512ce803" +checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" dependencies = [ "anyhow", - "arrayvec 0.7.4", - "async-lock 2.8.0", "async-trait", "beef", - "futures-channel", "futures-timer", "futures-util", - "globset", "hyper", "jsonrpsee-types", "parking_lot 0.12.3", - "rand 0.8.5", + "pin-project", + "rand", "rustc-hash", "serde", "serde_json", - "soketto", "thiserror", "tokio", + "tokio-stream", "tracing", ] [[package]] name = "jsonrpsee-http-client" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5f9fabdd5d79344728521bb65e3106b49ec405a78b66fbff073b72b389fa43" +checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5" dependencies = [ "async-trait", "hyper", "hyper-rustls", "jsonrpsee-core", "jsonrpsee-types", - "rustc-hash", "serde", "serde_json", "thiserror", "tokio", + "tower", "tracing", + "url", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44e8ab85614a08792b9bff6c8feee23be78c98d0182d4c622c05256ab553892a" +checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0" dependencies = [ "heck 0.4.1", - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.66", ] [[package]] name = "jsonrpsee-server" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4d945a6008c9b03db3354fb3c83ee02d2faa9f2e755ec1dfb69c3551b8f4ba" +checksum = "12d8b6a9674422a8572e0b0abb12feeb3f2aeda86528c80d0350c2bd0923ab41" dependencies = [ - "futures-channel", "futures-util", "http", "hyper", "jsonrpsee-core", "jsonrpsee-types", + "pin-project", + "route-recognizer", "serde", "serde_json", "soketto", + "thiserror", "tokio", "tokio-stream", "tokio-util", @@ -5781,28 +5792,28 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245ba8e5aa633dd1c1e4fae72bce06e71f42d34c14a2767c6b4d173b57bee5e5" +checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" dependencies = [ "anyhow", "beef", "serde", "serde_json", "thiserror", - "tracing", ] [[package]] name = "jsonrpsee-ws-client" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e1b3975ed5d73f456478681a417128597acd6a2487855fdb7b4a3d4d195bf5e" +checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070" dependencies = [ "http", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", + "url", ] [[package]] @@ -5829,6 +5840,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", + "serdect", "sha2 0.10.8", "signature", ] @@ -6006,7 +6018,7 @@ dependencies = [ "parking_lot 0.12.3", "pin-project", "quick-protobuf", - "rand 0.8.5", + "rand", "rw-stream-sink", "smallvec", "thiserror", @@ -6062,7 +6074,7 @@ dependencies = [ "multiaddr", "multihash 0.17.0", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "thiserror", "zeroize", @@ -6087,7 +6099,7 @@ dependencies = [ "libp2p-swarm", "log", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "smallvec", "thiserror", @@ -6109,7 +6121,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.4.10", "tokio", @@ -6145,7 +6157,7 @@ dependencies = [ "log", "once_cell", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "snow", "static_assertions", @@ -6167,7 +6179,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "void", ] @@ -6187,7 +6199,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "quinn-proto", - "rand 0.8.5", + "rand", "rustls 0.20.9", "thiserror", "tokio", @@ -6205,7 +6217,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand 0.8.5", + "rand", "smallvec", ] @@ -6224,7 +6236,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm-derive", "log", - "rand 0.8.5", + "rand", "smallvec", "tokio", "void", @@ -6306,7 +6318,7 @@ dependencies = [ "rw-stream-sink", "soketto", "url", - "webpki-roots 0.22.6", + "webpki-roots", ] [[package]] @@ -6360,7 +6372,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand 0.8.5", + "rand", "serde", "sha2 0.9.9", "typenum", @@ -6480,6 +6492,7 @@ dependencies = [ "fp-self-contained", "frame-benchmarking", "frame-executive", + "frame-metadata-hash-extension", "frame-support", "frame-system", "frame-system-benchmarking", @@ -6551,7 +6564,7 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-transaction-pool", "sp-version", "substrate-wasm-builder", @@ -6760,6 +6773,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memmap2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.8.0" @@ -6779,15 +6801,17 @@ dependencies = [ ] [[package]] -name = "merlin" -version = "2.0.1" +name = "merkleized-metadata" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" +checksum = "f313fcff1d2a4bcaa2deeaa00bf7530d77d5f7bd0467a117dde2e29a75a7a17a" dependencies = [ - "byteorder", - "keccak", - "rand_core 0.5.1", - "zeroize", + "array-bytes 6.2.3", + "blake3", + "frame-metadata", + "parity-scale-codec", + "scale-decode", + "scale-info", ] [[package]] @@ -6809,7 +6833,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" dependencies = [ "futures 0.3.30", - "rand 0.8.5", + "rand", "thrift", ] @@ -6862,7 +6886,7 @@ dependencies = [ "lioness", "log", "parking_lot 0.12.3", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "rand_distr", "subtle 2.5.0", @@ -6872,8 +6896,8 @@ dependencies = [ [[package]] name = "mmr-gadget" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "log", @@ -6891,10 +6915,9 @@ dependencies = [ [[package]] name = "mmr-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "anyhow", "jsonrpsee", "parity-scale-codec", "serde", @@ -6943,7 +6966,8 @@ dependencies = [ "parity-scale-codec", "serde", "serde_json", - "sp-std 8.0.0", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -6962,7 +6986,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -6972,9 +6996,9 @@ dependencies = [ "ethereum-types", "evm-tracing-events", "parity-scale-codec", - "sp-externalities 0.19.0", - "sp-runtime-interface 17.0.0", - "sp-std 8.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -7065,12 +7089,11 @@ dependencies = [ "hex", "parity-scale-codec", "serde", - "serde_json", "sp-api", "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -7083,7 +7106,7 @@ dependencies = [ "sp-api", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -7099,6 +7122,7 @@ dependencies = [ "fp-rpc", "futures 0.3.30", "jsonrpsee", + "log", "moonbeam-client-evm-tracing", "moonbeam-rpc-core-trace", "moonbeam-rpc-core-types", @@ -7113,8 +7137,9 @@ dependencies = [ "sp-blockchain", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-transaction-pool", + "substrate-prometheus-endpoint", "tokio", "tracing", ] @@ -7138,7 +7163,7 @@ dependencies = [ "sp-blockchain", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -7319,11 +7344,11 @@ dependencies = [ [[package]] name = "names" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d66043b25d4a6cccb23619d10c19c25304b355a7dccd4a8e11423dd2382146" +checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" dependencies = [ - "rand 0.8.5", + "rand", ] [[package]] @@ -7409,6 +7434,23 @@ dependencies = [ "libc", ] +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.5.0", + "cfg-if", + "libc", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + [[package]] name = "no-std-net" version = "0.6.0" @@ -7437,6 +7479,12 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + [[package]] name = "normalize-line-endings" version = "0.3.0" @@ -7613,6 +7661,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + [[package]] name = "object" version = "0.35.0" @@ -7686,25 +7743,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" -[[package]] -name = "oracle-benchmarks" -version = "0.1.0" -dependencies = [ - "astar-primitives", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "orml-oracle", - "orml-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic", - "sp-runtime", - "sp-std 8.0.0", -] - [[package]] name = "orchestra" version = "0.3.6" @@ -7717,7 +7755,7 @@ dependencies = [ "futures-timer", "orchestra-proc-macro", "pin-project", - "prioritized-metered-channel 0.6.1", + "prioritized-metered-channel", "thiserror", "tracing", ] @@ -7749,9 +7787,10 @@ dependencies = [ [[package]] name = "orml-oracle" -version = "0.6.7" -source = "git+https://github.com/AstarNetwork/open-runtime-module-library?branch=polkadot-v1.5.0#d9e933b6a7bf5ddb5b6626f46e5aee0cffc5efc9" +version = "0.9.1" +source = "git+https://github.com/AstarNetwork/open-runtime-module-library?branch=polkadot-v1.9.0#f45d7797a067780e572fd5fe70d6a7fe82b41104" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "orml-traits", @@ -7762,13 +7801,13 @@ dependencies = [ "sp-application-crypto", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "orml-traits" -version = "0.6.7" -source = "git+https://github.com/AstarNetwork/open-runtime-module-library?branch=polkadot-v1.5.0#d9e933b6a7bf5ddb5b6626f46e5aee0cffc5efc9" +version = "0.9.1" +source = "git+https://github.com/AstarNetwork/open-runtime-module-library?branch=polkadot-v1.9.0#f45d7797a067780e572fd5fe70d6a7fe82b41104" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -7781,14 +7820,14 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", ] [[package]] name = "orml-utilities" -version = "0.6.7" -source = "git+https://github.com/AstarNetwork/open-runtime-module-library?branch=polkadot-v1.5.0#d9e933b6a7bf5ddb5b6626f46e5aee0cffc5efc9" +version = "0.9.1" +source = "git+https://github.com/AstarNetwork/open-runtime-module-library?branch=polkadot-v1.9.0#f45d7797a067780e572fd5fe70d6a7fe82b41104" dependencies = [ "frame-support", "parity-scale-codec", @@ -7797,29 +7836,28 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "orml-xcm-support" -version = "0.6.7" -source = "git+https://github.com/AstarNetwork/open-runtime-module-library?branch=polkadot-v1.5.0#d9e933b6a7bf5ddb5b6626f46e5aee0cffc5efc9" +version = "0.9.1" +source = "git+https://github.com/AstarNetwork/open-runtime-module-library?branch=polkadot-v1.9.0#f45d7797a067780e572fd5fe70d6a7fe82b41104" dependencies = [ "frame-support", "orml-traits", "parity-scale-codec", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-executor", ] [[package]] name = "orml-xtokens" -version = "0.6.7" -source = "git+https://github.com/AstarNetwork/open-runtime-module-library?branch=polkadot-v1.5.0#d9e933b6a7bf5ddb5b6626f46e5aee0cffc5efc9" +version = "0.9.1" +source = "git+https://github.com/AstarNetwork/open-runtime-module-library?branch=polkadot-v1.9.0#f45d7797a067780e572fd5fe70d6a7fe82b41104" dependencies = [ - "cumulus-primitives-core", "frame-support", "frame-system", "log", @@ -7831,7 +7869,7 @@ dependencies = [ "serde", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-executor", ] @@ -7842,10 +7880,28 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "pallet-asset-conversion" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + [[package]] name = "pallet-asset-rate" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7854,13 +7910,13 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-asset-tx-payment" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7872,13 +7928,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-assets" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7888,13 +7944,13 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-aura" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-system", @@ -7905,13 +7961,13 @@ dependencies = [ "sp-application-crypto", "sp-consensus-aura", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-system", @@ -7921,13 +7977,13 @@ dependencies = [ "sp-application-crypto", "sp-authority-discovery", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-system", @@ -7935,13 +7991,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-babe" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7959,15 +8015,15 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-bags-list" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "aquamarine", + "aquamarine 0.5.0", "docify", "frame-benchmarking", "frame-election-provider-support", @@ -7980,15 +8036,16 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-balances" -version = "4.0.0-dev" -source = "git+https://github.com/AstarNetwork/polkadot-sdk?branch=release-polkadot-v1.5.0#7773b89aef1f13c87eecec55265efccad0881798" +version = "28.0.0" +source = "git+https://github.com/AstarNetwork/polkadot-sdk?branch=astar-release-polkadot-v1.9.0#d5ae3ce0a9a46f7302a408e323e718532c84e243" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -7996,13 +8053,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-system", @@ -8016,13 +8073,13 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-beefy-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -8041,13 +8098,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-state-machine", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-bounties" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8059,7 +8116,24 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-broker" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" +dependencies = [ + "bitvec", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -8081,7 +8155,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -8100,7 +8174,7 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "unified-accounts-chain-extension-types", ] @@ -8119,14 +8193,14 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "xvm-chain-extension-types", ] [[package]] name = "pallet-child-bounties" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8139,58 +8213,58 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-collator-selection" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "3.3.2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", + "pallet-aura", "pallet-authorship", + "pallet-balances", "pallet-session", + "pallet-timestamp", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", + "serde", + "sp-consensus-aura", + "sp-core", + "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-collator-selection" -version = "3.3.2" +version = "9.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "pallet-aura", "pallet-authorship", - "pallet-balances", "pallet-session", - "pallet-timestamp", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", - "serde", - "sp-consensus-aura", - "sp-core", - "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-collective" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8201,7 +8275,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -8221,13 +8295,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-contracts" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitflags 1.3.2", "environmental", @@ -8240,7 +8314,7 @@ dependencies = [ "pallet-contracts-proc-macro", "pallet-contracts-uapi", "parity-scale-codec", - "rand 0.8.5", + "rand", "rand_pcg", "scale-info", "serde", @@ -8249,17 +8323,17 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-builder", - "wasm-instrument 0.4.0", + "wasm-instrument", "wasmi", ] [[package]] name = "pallet-contracts-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "18.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "proc-macro2", "quote", @@ -8268,19 +8342,20 @@ dependencies = [ [[package]] name = "pallet-contracts-uapi" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "5.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", "paste", + "polkavm-derive 0.5.0", "scale-info", ] [[package]] name = "pallet-conviction-voting" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8291,7 +8366,7 @@ dependencies = [ "serde", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -8311,7 +8386,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -8333,13 +8408,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-democracy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8351,7 +8426,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -8371,13 +8446,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-election-provider-multi-phase" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8386,21 +8461,21 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sp-arithmetic", "sp-core", "sp-io", "sp-npos-elections", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "strum 0.24.1", ] [[package]] name = "pallet-election-provider-support-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8408,13 +8483,13 @@ dependencies = [ "parity-scale-codec", "sp-npos-elections", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-elections-phragmen" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8427,13 +8502,13 @@ dependencies = [ "sp-npos-elections", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-ethereum" version = "4.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "ethereum", "ethereum-types", @@ -8450,7 +8525,7 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -8475,13 +8550,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-evm" version = "6.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "environmental", "evm", @@ -8501,13 +8576,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-evm-chain-id" version = "1.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "frame-support", "frame-system", @@ -8538,13 +8613,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-evm-precompile-blake2" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "fp-evm", ] @@ -8552,7 +8627,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-bn128" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "fp-evm", "sp-core", @@ -8584,13 +8659,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-evm-precompile-dispatch" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "fp-evm", "frame-support", @@ -8622,13 +8697,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-evm-precompile-ed25519" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "ed25519-dalek", "fp-evm", @@ -8637,7 +8712,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-modexp" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "fp-evm", "num", @@ -8646,7 +8721,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-sha3fips" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "fp-evm", "tiny-keccak", @@ -8655,7 +8730,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-simple" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.5.0#ec45acec8d07db19edd3e0a6c55494db5e9f47bb" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v1.9.0#8c94d30f05e2473da2ab2417b615fb9d01d01086" dependencies = [ "fp-evm", "ripemd", @@ -8683,7 +8758,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -8708,7 +8783,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -8737,7 +8812,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -8753,6 +8828,7 @@ dependencies = [ "hex-literal", "log", "num_enum 0.5.11", + "once_cell", "orml-traits", "orml-xcm-support", "orml-xtokens", @@ -8769,7 +8845,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -8798,13 +8874,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-fast-unstake" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "docify", "frame-benchmarking", @@ -8817,13 +8893,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8840,29 +8916,30 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-identity" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "enumflags2", "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-im-online" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8876,13 +8953,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-indices" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8893,7 +8970,7 @@ dependencies = [ "sp-io", "sp-keyring", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -8912,13 +8989,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-insecure-randomness-collective-flip" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-system", @@ -8926,13 +9003,13 @@ dependencies = [ "safe-mix", "scale-info", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-membership" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8943,14 +9020,15 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-message-queue" -version = "7.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "31.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ + "environmental", "frame-benchmarking", "frame-support", "frame-system", @@ -8961,14 +9039,14 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-weights", ] [[package]] name = "pallet-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8980,13 +9058,13 @@ dependencies = [ "sp-io", "sp-mmr-primitives", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-multisig" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8996,13 +9074,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-nis" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9012,13 +9090,13 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-nomination-pools" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "25.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-system", @@ -9030,14 +9108,14 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-nomination-pools-benchmarking" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9049,26 +9127,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-runtime-interface 17.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-nomination-pools-runtime-api" -version = "1.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", "sp-api", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-offences" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-system", @@ -9079,13 +9157,13 @@ dependencies = [ "serde", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-offences-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9103,13 +9181,13 @@ dependencies = [ "scale-info", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-preimage" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9120,7 +9198,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -9142,13 +9220,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-proxy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9157,17 +9235,18 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-ranked-collective" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", @@ -9175,13 +9254,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-recovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9190,13 +9269,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-referenda" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "assert_matches", "frame-benchmarking", @@ -9209,13 +9288,13 @@ dependencies = [ "sp-arithmetic", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-root-testing" -version = "1.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "4.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-system", @@ -9224,13 +9303,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-scheduler" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "docify", "frame-benchmarking", @@ -9241,14 +9320,14 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-weights", ] [[package]] name = "pallet-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-system", @@ -9263,14 +9342,14 @@ dependencies = [ "sp-session", "sp-staking", "sp-state-machine", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", ] [[package]] name = "pallet-session-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9278,16 +9357,16 @@ dependencies = [ "pallet-session", "pallet-staking", "parity-scale-codec", - "rand 0.8.5", + "rand", "sp-runtime", "sp-session", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-society" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9299,13 +9378,13 @@ dependencies = [ "sp-arithmetic", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-staking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9322,15 +9401,15 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-staking-reward-curve" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.66", @@ -9338,8 +9417,8 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "log", "sp-arithmetic", @@ -9347,8 +9426,8 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "sp-api", @@ -9357,8 +9436,8 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9369,7 +9448,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -9389,13 +9468,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-sudo" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "docify", "frame-benchmarking", @@ -9405,13 +9484,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "docify", "frame-benchmarking", @@ -9423,15 +9502,15 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-timestamp", ] [[package]] name = "pallet-tips" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9444,13 +9523,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-transaction-payment" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-system", @@ -9460,13 +9539,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-transaction-payment-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -9481,8 +9560,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -9493,8 +9572,8 @@ dependencies = [ [[package]] name = "pallet-treasury" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "docify", "frame-benchmarking", @@ -9507,7 +9586,7 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -9532,13 +9611,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-utility" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9548,13 +9627,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-vesting" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9563,13 +9642,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "pallet-whitelist" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9578,7 +9657,7 @@ dependencies = [ "scale-info", "sp-api", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -9597,14 +9676,14 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", ] [[package]] name = "pallet-xcm" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -9618,7 +9697,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -9626,8 +9705,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9637,7 +9716,7 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -9667,42 +9746,51 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "parachains-common" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", "frame-support", "frame-system", "log", - "num-traits", "pallet-asset-tx-payment", "pallet-assets", "pallet-authorship", "pallet-balances", - "pallet-collator-selection 3.0.0", + "pallet-collator-selection 9.0.0", "pallet-message-queue", + "pallet-xcm", "parity-scale-codec", - "polkadot-core-primitives", "polkadot-primitives", - "rococo-runtime-constants", "scale-info", - "smallvec", "sp-consensus-aura", "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-parachain-info", "staging-xcm", - "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", - "westend-runtime-constants", +] + +[[package]] +name = "parity-bip39" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" +dependencies = [ + "bitcoin_hashes 0.13.0", + "rand", + "rand_core 0.6.4", + "serde", + "unicode-normalization", ] [[package]] @@ -9718,9 +9806,9 @@ dependencies = [ "libc", "log", "lz4", - "memmap2", + "memmap2 0.5.10", "parking_lot 0.12.3", - "rand 0.8.5", + "rand", "siphasher", "snap", "winapi", @@ -9826,19 +9914,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" [[package]] -name = "paste" -version = "1.0.15" +name = "password-hash" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle 2.5.0", +] [[package]] -name = "pbkdf2" -version = "0.8.0" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" -dependencies = [ - "crypto-mac 0.11.0", -] +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -9857,6 +9947,7 @@ checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", "hmac 0.12.1", + "password-hash", ] [[package]] @@ -10018,8 +10109,8 @@ checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" [[package]] name = "polkadot-approval-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitvec", "futures 0.3.30", @@ -10032,14 +10123,14 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "tracing-gum", ] [[package]] name = "polkadot-availability-bitfield-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "always-assert", "futures 0.3.30", @@ -10048,14 +10139,14 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "tracing-gum", ] [[package]] name = "polkadot-availability-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "derive_more", "fatality", @@ -10067,7 +10158,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "schnellru", "sp-core", "sp-keystore", @@ -10077,8 +10168,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "fatality", @@ -10090,17 +10181,18 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-network", "schnellru", "thiserror", + "tokio", "tracing-gum", ] [[package]] name = "polkadot-cli" -version = "1.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cfg-if", "clap", @@ -10120,6 +10212,7 @@ dependencies = [ "sp-io", "sp-keyring", "sp-maybe-compressed-blob", + "sp-runtime", "substrate-build-script-utils", "thiserror", "try-runtime-cli", @@ -10127,8 +10220,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitvec", "fatality", @@ -10149,26 +10242,26 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "polkadot-dispute-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "derive_more", "fatality", "futures 0.3.30", "futures-timer", - "indexmap 1.9.3", + "indexmap 2.2.6", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -10186,8 +10279,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -10200,8 +10293,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "futures-timer", @@ -10209,20 +10302,21 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "sc-network", "sc-network-common", "sp-application-crypto", "sp-core", + "sp-crypto-hashing", "sp-keystore", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "always-assert", "async-trait", @@ -10244,8 +10338,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "parity-scale-codec", @@ -10262,8 +10356,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitvec", "derive_more", @@ -10271,7 +10365,7 @@ dependencies = [ "futures-timer", "itertools 0.10.5", "kvdb", - "merlin 2.0.1", + "merlin", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -10279,12 +10373,12 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", - "rand_core 0.5.1", + "rand_core 0.6.4", "sc-keystore", "schnellru", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "sp-application-crypto", "sp-consensus", "sp-consensus-slots", @@ -10295,8 +10389,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitvec", "futures 0.3.30", @@ -10317,8 +10411,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitvec", "fatality", @@ -10329,6 +10423,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "polkadot-statement-table", + "schnellru", "sp-keystore", "thiserror", "tracing-gum", @@ -10336,8 +10431,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "polkadot-node-subsystem", @@ -10351,8 +10446,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "futures 0.3.30", @@ -10372,8 +10467,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "polkadot-node-metrics", @@ -10386,8 +10481,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "futures-timer", @@ -10403,8 +10498,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "fatality", "futures 0.3.30", @@ -10422,8 +10517,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "futures 0.3.30", @@ -10439,8 +10534,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "6.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitvec", "fatality", @@ -10456,8 +10551,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitvec", "fatality", @@ -10467,16 +10562,18 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "schnellru", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "always-assert", + "array-bytes 6.2.3", "blake3", "cfg-if", "futures 0.3.30", @@ -10492,11 +10589,11 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-parachain-primitives", "polkadot-primitives", - "rand 0.8.5", + "rand", "slotmap", "sp-core", "sp-maybe-compressed-blob", - "sp-wasm-interface 14.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "tempfile", "thiserror", "tokio", @@ -10505,8 +10602,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "polkadot-node-primitives", @@ -10521,14 +10618,15 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cfg-if", "cpu-time", "futures 0.3.30", "landlock", "libc", + "nix 0.27.1", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", @@ -10537,18 +10635,18 @@ dependencies = [ "sc-executor-wasmtime", "seccompiler", "sp-core", - "sp-externalities 0.19.0", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-io", - "sp-tracing 10.0.0", - "substrate-build-script-utils", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-runtime-api" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "polkadot-node-metrics", @@ -10562,8 +10660,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "lazy_static", "log", @@ -10580,8 +10678,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bs58 0.5.1", "futures 0.3.30", @@ -10589,7 +10687,7 @@ dependencies = [ "log", "parity-scale-codec", "polkadot-primitives", - "prioritized-metered-channel 0.5.1", + "prioritized-metered-channel", "sc-cli", "sc-service", "sc-tracing", @@ -10599,8 +10697,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -10613,7 +10711,7 @@ dependencies = [ "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-authority-discovery", "sc-network", "strum 0.24.1", @@ -10623,8 +10721,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitvec", "bounded-vec", @@ -10632,7 +10730,7 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "serde", "sp-application-crypto", "sp-consensus-babe", @@ -10646,8 +10744,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -10656,8 +10754,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "bitvec", @@ -10684,8 +10782,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "derive_more", @@ -10696,7 +10794,7 @@ dependencies = [ "kvdb", "parity-db", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.3", "pin-project", "polkadot-node-jaeger", "polkadot-node-metrics", @@ -10706,8 +10804,8 @@ dependencies = [ "polkadot-node-subsystem-types", "polkadot-overseer", "polkadot-primitives", - "prioritized-metered-channel 0.5.1", - "rand 0.8.5", + "prioritized-metered-channel", + "rand", "sc-client-api", "schnellru", "sp-application-crypto", @@ -10719,8 +10817,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "futures 0.3.30", @@ -10741,8 +10839,8 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "6.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bounded-collections", "derive_more", @@ -10752,17 +10850,18 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-weights", ] [[package]] name = "polkadot-primitives" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitvec", "hex-literal", + "log", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain-primitives", @@ -10779,13 +10878,13 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "polkadot-rpc" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -10801,6 +10900,7 @@ dependencies = [ "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-rpc", + "sc-rpc-spec-v2", "sc-sync-state-rpc", "sc-transaction-pool-api", "sp-api", @@ -10816,8 +10916,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitvec", "frame-benchmarking", @@ -10831,6 +10931,7 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-broker", "pallet-election-provider-multi-phase", "pallet-fast-unstake", "pallet-identity", @@ -10841,7 +10942,6 @@ dependencies = [ "pallet-transaction-payment", "pallet-treasury", "pallet-vesting", - "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-parachains", @@ -10858,7 +10958,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -10867,21 +10967,21 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bs58 0.5.1", "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "polkadot-runtime-parachains" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -10895,6 +10995,7 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-broker", "pallet-message-queue", "pallet-session", "pallet-staking", @@ -10905,13 +11006,14 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-metrics", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "rustc-hex", "scale-info", "serde", "sp-api", "sp-application-crypto", + "sp-arithmetic", "sp-core", "sp-inherents", "sp-io", @@ -10919,7 +11021,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-executor", "static_assertions", @@ -10927,8 +11029,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "frame-benchmarking", @@ -11031,7 +11133,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-state-machine", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-timestamp", "sp-transaction-pool", "sp-version", @@ -11044,15 +11146,15 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "arrayvec 0.7.4", "bitvec", "fatality", "futures 0.3.30", "futures-timer", - "indexmap 1.9.3", + "indexmap 2.2.6", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -11067,19 +11169,61 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "polkadot-primitives", "sp-core", + "tracing-gum", ] +[[package]] +name = "polkavm" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94" +dependencies = [ + "libc", + "log", + "polkavm-assembler", + "polkavm-common 0.9.0", + "polkavm-linux-raw", +] + +[[package]] +name = "polkavm-assembler" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1" +dependencies = [ + "log", +] + +[[package]] +name = "polkavm-common" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b4e215c80fe876147f3d58158d5dfeae7dabdd6047e175af77095b78d0035c" + [[package]] name = "polkavm-common" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" +dependencies = [ + "log", +] + +[[package]] +name = "polkavm-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6380dbe1fb03ecc74ad55d841cfc75480222d153ba69ddcb00977866cbdabdb8" +dependencies = [ + "polkavm-derive-impl 0.5.0", + "syn 2.0.66", +] [[package]] name = "polkavm-derive" @@ -11090,13 +11234,25 @@ dependencies = [ "polkavm-derive-impl-macro", ] +[[package]] +name = "polkavm-derive-impl" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc8211b3365bbafb2fb32057d68b0e1ca55d079f5cf6f9da9b98079b94b3987d" +dependencies = [ + "polkavm-common 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "polkavm-derive-impl" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" dependencies = [ - "polkavm-common", + "polkavm-common 0.9.0", "proc-macro2", "quote", "syn 2.0.66", @@ -11108,10 +11264,31 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" dependencies = [ - "polkavm-derive-impl", + "polkavm-derive-impl 0.9.0", "syn 2.0.66", ] +[[package]] +name = "polkavm-linker" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c7be503e60cf56c0eb785f90aaba4b583b36bff00e93997d93fef97f9553c39" +dependencies = [ + "gimli 0.28.1", + "hashbrown 0.14.5", + "log", + "object 0.32.2", + "polkavm-common 0.9.0", + "regalloc2 0.9.3", + "rustc-demangle", +] + +[[package]] +name = "polkavm-linux-raw" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120" + [[package]] name = "polling" version = "2.8.0" @@ -11208,7 +11385,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", ] @@ -11225,7 +11402,7 @@ dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "syn 1.0.109", "trybuild", ] @@ -11304,22 +11481,6 @@ dependencies = [ "uint", ] -[[package]] -name = "prioritized-metered-channel" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e99f0c89bd88f393aab44a4ab949351f7bc7e7e1179d11ecbfe50cbe4c47e342" -dependencies = [ - "coarsetime", - "crossbeam-queue", - "derive_more", - "futures 0.3.30", - "futures-timer", - "nanorand", - "thiserror", - "tracing", -] - [[package]] name = "prioritized-metered-channel" version = "0.6.1" @@ -11346,15 +11507,6 @@ dependencies = [ "toml_edit 0.19.15", ] -[[package]] -name = "proc-macro-crate" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" -dependencies = [ - "toml_edit 0.20.7", -] - [[package]] name = "proc-macro-crate" version = "3.1.0" @@ -11454,7 +11606,7 @@ dependencies = [ "bitflags 2.5.0", "lazy_static", "num-traits", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "rand_xorshift", "regex-syntax 0.8.3", @@ -11468,7 +11620,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", ] [[package]] @@ -11485,7 +11647,7 @@ dependencies = [ "multimap", "petgraph", "prettyplease 0.1.11", - "prost", + "prost 0.11.9", "prost-types", "regex", "syn 1.0.109", @@ -11506,13 +11668,26 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "prost-types" version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "prost", + "prost 0.11.9", ] [[package]] @@ -11524,6 +11699,21 @@ dependencies = [ "cc", ] +[[package]] +name = "quanta" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -11570,7 +11760,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" dependencies = [ "bytes", - "rand 0.8.5", + "rand", "ring 0.16.20", "rustc-hash", "rustls 0.20.9", @@ -11596,19 +11786,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -11665,16 +11842,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", + "rand", ] [[package]] @@ -11695,6 +11863,15 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "raw-cpuid" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd" +dependencies = [ + "bitflags 2.5.0", +] + [[package]] name = "rawpointer" version = "0.2.1" @@ -11773,13 +11950,12 @@ dependencies = [ [[package]] name = "reed-solomon-novelpoly" -version = "1.0.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58130877ca403ab42c864fbac74bb319a0746c07a634a92a5cfc7f54af272582" +checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" dependencies = [ "derive_more", "fs-err", - "itertools 0.11.0", "static_init", "thiserror", ] @@ -11816,6 +11992,19 @@ dependencies = [ "smallvec", ] +[[package]] +name = "regalloc2" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +dependencies = [ + "hashbrown 0.13.2", + "log", + "rustc-hash", + "slice-group-by", + "smallvec", +] + [[package]] name = "regex" version = "1.10.4" @@ -11929,7 +12118,7 @@ dependencies = [ "blake2 0.10.6", "common", "fflonk", - "merlin 3.0.0", + "merlin", ] [[package]] @@ -12005,8 +12194,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -12089,8 +12278,8 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-transaction-pool", "sp-version", "staging-xcm", @@ -12102,8 +12291,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "polkadot-primitives", @@ -12113,8 +12302,15 @@ dependencies = [ "sp-runtime", "sp-weights", "staging-xcm", + "staging-xcm-builder", ] +[[package]] +name = "route-recognizer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" + [[package]] name = "rpassword" version = "7.3.1" @@ -12136,7 +12332,7 @@ dependencies = [ "log", "netlink-packet-route", "netlink-proto", - "nix", + "nix 0.24.3", "thiserror", "tokio", ] @@ -12257,10 +12453,24 @@ checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", "ring 0.17.8", - "rustls-webpki", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki 0.102.5", + "subtle 2.5.0", + "zeroize", +] + [[package]] name = "rustls-native-certs" version = "0.6.3" @@ -12268,7 +12478,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a88d6d420651b496bdd98684116959239430022a115c1240e6c3993be0b15fba" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.1.2", + "rustls-pki-types", "schannel", "security-framework", ] @@ -12282,6 +12505,22 @@ dependencies = [ "base64 0.21.7", ] +[[package]] +name = "rustls-pemfile" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -12292,6 +12531,17 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "rustls-webpki" +version = "0.102.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a6fccd794a42c2c105b513a2f62bc3fd8f3ba57a4593677ceb0bd035164d78" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + [[package]] name = "rustversion" version = "1.0.17" @@ -12364,19 +12614,19 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "log", "sp-core", - "sp-wasm-interface 14.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "thiserror", ] [[package]] name = "sc-authority-discovery" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "futures 0.3.30", @@ -12387,9 +12637,9 @@ dependencies = [ "multihash 0.18.1", "multihash-codetable", "parity-scale-codec", - "prost", + "prost 0.12.6", "prost-build", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network", "sp-api", @@ -12404,8 +12654,8 @@ dependencies = [ [[package]] name = "sc-basic-authorship" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "futures-timer", @@ -12426,8 +12676,8 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "sp-api", @@ -12441,13 +12691,13 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "docify", "log", - "memmap2", + "memmap2 0.9.4", "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", @@ -12458,6 +12708,7 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", + "sp-crypto-hashing", "sp-genesis-builder", "sp-io", "sp-runtime", @@ -12466,10 +12717,10 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.66", @@ -12477,11 +12728,10 @@ dependencies = [ [[package]] name = "sc-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.36.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", - "bip39", "chrono", "clap", "fdlimit", @@ -12490,8 +12740,9 @@ dependencies = [ "libp2p-identity", "log", "names", + "parity-bip39", "parity-scale-codec", - "rand 0.8.5", + "rand", "regex", "rpassword", "sc-client-api", @@ -12518,8 +12769,8 @@ dependencies = [ [[package]] name = "sc-client-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "fnv", "futures 0.3.30", @@ -12534,19 +12785,19 @@ dependencies = [ "sp-consensus", "sp-core", "sp-database", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-runtime", "sp-state-machine", "sp-statement-store", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "hash-db", "kvdb", @@ -12571,8 +12822,8 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "futures 0.3.30", @@ -12596,8 +12847,8 @@ dependencies = [ [[package]] name = "sc-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "futures 0.3.30", @@ -12625,8 +12876,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "fork-tree", @@ -12651,6 +12902,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-core", + "sp-crypto-hashing", "sp-inherents", "sp-keystore", "sp-runtime", @@ -12660,8 +12912,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "jsonrpsee", @@ -12682,8 +12934,8 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -12706,18 +12958,20 @@ dependencies = [ "sp-consensus", "sp-consensus-beefy", "sp-core", + "sp-crypto-hashing", "sp-keystore", "sp-mmr-primitives", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "tokio", "wasm-timer", ] [[package]] name = "sc-consensus-beefy-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "jsonrpsee", @@ -12735,8 +12989,8 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "fork-tree", "parity-scale-codec", @@ -12748,8 +13002,8 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.19.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "ahash 0.8.11", "array-bytes 6.2.3", @@ -12762,7 +13016,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand 0.8.5", + "rand", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -12782,6 +13036,7 @@ dependencies = [ "sp-consensus", "sp-consensus-grandpa", "sp-core", + "sp-crypto-hashing", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -12790,8 +13045,8 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.19.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "finality-grandpa", "futures 0.3.30", @@ -12810,8 +13065,8 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "assert_matches", "async-trait", @@ -12845,8 +13100,8 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "futures 0.3.30", @@ -12868,42 +13123,55 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "sc-executor-common", + "sc-executor-polkavm", "sc-executor-wasmtime", "schnellru", "sp-api", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-io", "sp-panic-handler", - "sp-runtime-interface 17.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", "sp-version", - "sp-wasm-interface 14.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "tracing", ] [[package]] name = "sc-executor-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ + "polkavm", "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface 14.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "thiserror", - "wasm-instrument 0.3.0", + "wasm-instrument", +] + +[[package]] +name = "sc-executor-polkavm" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" +dependencies = [ + "log", + "polkavm", + "sc-executor-common", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sc-executor-wasmtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "anyhow", "cfg-if", @@ -12913,15 +13181,15 @@ dependencies = [ "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 17.0.0", - "sp-wasm-interface 14.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "wasmtime", ] [[package]] name = "sc-informant" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "ansi_term", "futures 0.3.30", @@ -12937,8 +13205,8 @@ dependencies = [ [[package]] name = "sc-keystore" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "25.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "parking_lot 0.12.3", @@ -12951,8 +13219,8 @@ dependencies = [ [[package]] name = "sc-mixnet" -version = "0.1.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 4.2.0", "arrayvec 0.7.4", @@ -12980,8 +13248,8 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -13001,7 +13269,7 @@ dependencies = [ "parking_lot 0.12.3", "partial_sort", "pin-project", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network-common", "sc-utils", @@ -13023,15 +13291,15 @@ dependencies = [ [[package]] name = "sc-network-bitswap" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-channel 1.9.0", "cid", "futures 0.3.30", "libp2p-identity", "log", - "prost", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-network", @@ -13043,8 +13311,8 @@ dependencies = [ [[package]] name = "sc-network-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -13060,8 +13328,8 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "ahash 0.8.11", "futures 0.3.30", @@ -13079,8 +13347,8 @@ dependencies = [ [[package]] name = "sc-network-light" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -13088,7 +13356,7 @@ dependencies = [ "libp2p-identity", "log", "parity-scale-codec", - "prost", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-network", @@ -13100,8 +13368,8 @@ dependencies = [ [[package]] name = "sc-network-sync" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -13113,7 +13381,7 @@ dependencies = [ "log", "mockall", "parity-scale-codec", - "prost", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-consensus", @@ -13136,8 +13404,8 @@ dependencies = [ [[package]] name = "sc-network-transactions" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "futures 0.3.30", @@ -13155,8 +13423,8 @@ dependencies = [ [[package]] name = "sc-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "bytes", @@ -13171,7 +13439,7 @@ dependencies = [ "once_cell", "parity-scale-codec", "parking_lot 0.12.3", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network", "sc-network-common", @@ -13179,7 +13447,7 @@ dependencies = [ "sc-utils", "sp-api", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-keystore", "sp-offchain", "sp-runtime", @@ -13189,8 +13457,8 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -13198,8 +13466,8 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "jsonrpsee", @@ -13230,8 +13498,8 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -13250,10 +13518,13 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ + "futures 0.3.30", + "governor", "http", + "hyper", "jsonrpsee", "log", "serde_json", @@ -13265,8 +13536,8 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "futures 0.3.30", @@ -13276,8 +13547,10 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", + "rand", "sc-chain-spec", "sc-client-api", + "sc-rpc", "sc-transaction-pool-api", "sc-utils", "serde", @@ -13294,8 +13567,8 @@ dependencies = [ [[package]] name = "sc-service" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "directories", @@ -13307,7 +13580,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand", "sc-chain-spec", "sc-client-api", "sc-client-db", @@ -13330,18 +13603,19 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", + "schnellru", "serde", "serde_json", "sp-api", "sp-blockchain", "sp-consensus", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-keystore", "sp-runtime", "sp-session", "sp-state-machine", - "sp-storage 13.0.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", @@ -13357,8 +13631,8 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.30.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "log", "parity-scale-codec", @@ -13368,13 +13642,12 @@ dependencies = [ [[package]] name = "sc-storage-monitor" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.16.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "clap", "fs4", "log", - "sc-client-db", "sp-core", "thiserror", "tokio", @@ -13382,8 +13655,8 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -13401,28 +13674,29 @@ dependencies = [ [[package]] name = "sc-sysinfo" -version = "6.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "derive_more", "futures 0.3.30", "libc", "log", - "rand 0.8.5", + "rand", "rand_pcg", "regex", "sc-telemetry", "serde", "serde_json", "sp-core", + "sp-crypto-hashing", "sp-io", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sc-telemetry" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "chrono", "futures 0.3.30", @@ -13430,7 +13704,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand", "sc-utils", "serde", "serde_json", @@ -13440,12 +13714,12 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "ansi_term", - "atty", "chrono", + "is-terminal", "lazy_static", "libc", "log", @@ -13461,7 +13735,7 @@ dependencies = [ "sp-core", "sp-rpc", "sp-runtime", - "sp-tracing 10.0.0", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "thiserror", "tracing", "tracing-log 0.1.4", @@ -13470,10 +13744,10 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.66", @@ -13481,8 +13755,8 @@ dependencies = [ [[package]] name = "sc-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "futures 0.3.30", @@ -13498,8 +13772,9 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", + "sp-crypto-hashing", "sp-runtime", - "sp-tracing 10.0.0", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -13507,8 +13782,8 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "futures 0.3.30", @@ -13523,8 +13798,8 @@ dependencies = [ [[package]] name = "sc-utils" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-channel 1.9.0", "futures 0.3.30", @@ -13536,6 +13811,29 @@ dependencies = [ "sp-arithmetic", ] +[[package]] +name = "scale-bits" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54" +dependencies = [ + "parity-scale-codec", + "scale-type-resolver", +] + +[[package]] +name = "scale-decode" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" +dependencies = [ + "derive_more", + "parity-scale-codec", + "scale-bits", + "scale-type-resolver", + "smallvec", +] + [[package]] name = "scale-info" version = "2.11.3" @@ -13562,6 +13860,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "scale-type-resolver" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" + [[package]] name = "schannel" version = "0.1.23" @@ -13582,24 +13886,6 @@ dependencies = [ "hashbrown 0.13.2", ] -[[package]] -name = "schnorrkel" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "curve25519-dalek 2.1.3", - "getrandom 0.1.16", - "merlin 2.0.1", - "rand 0.7.3", - "rand_core 0.5.1", - "sha2 0.8.2", - "subtle 2.5.0", - "zeroize", -] - [[package]] name = "schnorrkel" version = "0.10.2" @@ -13609,7 +13895,7 @@ dependencies = [ "arrayref", "arrayvec 0.7.4", "curve25519-dalek-ng", - "merlin 3.0.0", + "merlin", "rand_core 0.6.4", "sha2 0.9.9", "subtle-ng", @@ -13622,12 +13908,14 @@ version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ + "aead", "arrayref", "arrayvec 0.7.4", "curve25519-dalek 4.1.2", "getrandom_or_panic", - "merlin 3.0.0", + "merlin", "rand_core 0.6.4", + "serde_bytes", "sha2 0.10.8", "subtle 2.5.0", "zeroize", @@ -13677,6 +13965,7 @@ dependencies = [ "der", "generic-array 0.14.7", "pkcs8", + "serdect", "subtle 2.5.0", "zeroize", ] @@ -13794,6 +14083,15 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde_bytes" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" version = "1.0.203" @@ -13837,6 +14135,16 @@ dependencies = [ "serde", ] +[[package]] +name = "serdect" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" +dependencies = [ + "base16ct", + "serde", +] + [[package]] name = "sha-1" version = "0.9.8" @@ -13861,18 +14169,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha2" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - [[package]] name = "sha2" version = "0.9.9" @@ -13936,6 +14232,7 @@ dependencies = [ "fp-self-contained", "frame-benchmarking", "frame-executive", + "frame-metadata-hash-extension", "frame-support", "frame-system", "frame-system-benchmarking", @@ -13947,7 +14244,6 @@ dependencies = [ "moonbeam-rpc-primitives-debug", "moonbeam-rpc-primitives-txpool", "num_enum 0.5.11", - "oracle-benchmarks", "orml-oracle", "orml-xcm-support", "orml-xtokens", @@ -14025,9 +14321,9 @@ dependencies = [ "sp-io", "sp-offchain", "sp-runtime", - "sp-runtime-interface 17.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-session", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -14057,6 +14353,7 @@ dependencies = [ "fp-self-contained", "frame-benchmarking", "frame-executive", + "frame-metadata-hash-extension", "frame-support", "frame-system", "frame-system-benchmarking", @@ -14068,7 +14365,6 @@ dependencies = [ "moonbeam-rpc-primitives-debug", "moonbeam-rpc-primitives-txpool", "num_enum 0.5.11", - "oracle-benchmarks", "orml-oracle", "orml-xcm-support", "orml-xtokens", @@ -14133,9 +14429,9 @@ dependencies = [ "sp-io", "sp-offchain", "sp-runtime", - "sp-runtime-interface 17.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-session", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -14189,7 +14485,7 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" dependencies = [ - "bstr 0.2.17", + "bstr", "unicode-segmentation", ] @@ -14205,8 +14501,9 @@ dependencies = [ [[package]] name = "simple-mermaid" -version = "0.1.0" -source = "git+https://github.com/kianenigma/simple-mermaid.git?branch=main#e48b187bcfd5cc75111acd9d241f1bd36604344b" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" [[package]] name = "simple_asn1" @@ -14255,14 +14552,14 @@ dependencies = [ [[package]] name = "slot-range-helper" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "enumn", "parity-scale-codec", "paste", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -14324,7 +14621,7 @@ dependencies = [ "hmac 0.12.1", "itertools 0.11.0", "libsecp256k1", - "merlin 3.0.0", + "merlin", "no-std-net", "nom", "num-bigint", @@ -14333,7 +14630,7 @@ dependencies = [ "pbkdf2 0.12.2", "pin-project", "poly1305", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "ruzstd", "schnorrkel 0.10.2", @@ -14376,7 +14673,7 @@ dependencies = [ "no-std-net", "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "serde", "serde_json", @@ -14443,14 +14740,14 @@ dependencies = [ "http", "httparse", "log", - "rand 0.8.5", + "rand", "sha-1", ] [[package]] name = "sp-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "hash-db", "log", @@ -14458,11 +14755,12 @@ dependencies = [ "scale-info", "sp-api-proc-macro", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-metadata-ir", "sp-runtime", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-state-machine", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", "sp-version", "thiserror", @@ -14470,13 +14768,13 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "Inflector", "blake2 0.10.6", "expander 2.1.0", - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.66", @@ -14484,28 +14782,28 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-io", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sp-arithmetic" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "static_assertions", ] @@ -14529,32 +14827,32 @@ dependencies = [ [[package]] name = "sp-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sp-block-builder" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "sp-api", "sp-inherents", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sp-blockchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "futures 0.3.30", "log", @@ -14571,8 +14869,8 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "futures 0.3.30", @@ -14586,8 +14884,8 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "parity-scale-codec", @@ -14597,14 +14895,14 @@ dependencies = [ "sp-consensus-slots", "sp-inherents", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "parity-scale-codec", @@ -14616,14 +14914,14 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-timestamp", ] [[package]] name = "sp-consensus-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "lazy_static", "parity-scale-codec", @@ -14632,17 +14930,19 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", + "sp-crypto-hashing", "sp-io", + "sp-keystore", "sp-mmr-primitives", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "strum 0.24.1", ] [[package]] name = "sp-consensus-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "finality-grandpa", "log", @@ -14654,29 +14954,28 @@ dependencies = [ "sp-core", "sp-keystore", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sp-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-timestamp", ] [[package]] name = "sp-core" -version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "array-bytes 6.2.3", "bandersnatch_vrfs", - "bip39", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", @@ -14688,25 +14987,27 @@ dependencies = [ "hash256-std-hasher", "impl-serde", "itertools 0.10.5", + "k256", "libsecp256k1", "log", - "merlin 2.0.1", + "merlin", + "parity-bip39", "parity-scale-codec", "parking_lot 0.12.3", "paste", "primitive-types", - "rand 0.8.5", + "rand", "scale-info", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "secp256k1", "secrecy", "serde", - "sp-core-hashing", - "sp-debug-derive 8.0.0", - "sp-externalities 0.19.0", - "sp-runtime-interface 17.0.0", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-crypto-hashing", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "ss58-registry", "substrate-bip39", "thiserror", @@ -14717,25 +15018,10 @@ dependencies = [ [[package]] name = "sp-core-hashing" -version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" -dependencies = [ - "blake2b_simd", - "byteorder", - "digest 0.10.7", - "sha2 0.10.8", - "sha3", - "twox-hash", -] - -[[package]] -name = "sp-core-hashing-proc-macro" -version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "quote", - "sp-core-hashing", - "syn 2.0.66", + "sp-crypto-hashing", ] [[package]] @@ -14754,14 +15040,37 @@ dependencies = [ "ark-ed-on-bls12-377-ext", "ark-ed-on-bls12-381-bandersnatch", "ark-ed-on-bls12-381-bandersnatch-ext", - "ark-scale 0.0.12", - "sp-runtime-interface 24.0.0", + "ark-scale", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk)", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.8", + "sha3", + "twox-hash", +] + +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" +dependencies = [ + "quote", + "sp-crypto-hashing", + "syn 2.0.66", ] [[package]] name = "sp-database" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -14769,8 +15078,8 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "proc-macro2", "quote", @@ -14789,13 +15098,13 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.25.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -14805,53 +15114,55 @@ source = "git+https://github.com/paritytech/polkadot-sdk#5fb4c40a3ea24ae3ab2bdfe dependencies = [ "environmental", "parity-scale-codec", - "sp-storage 19.0.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] [[package]] name = "sp-genesis-builder" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "serde_json", "sp-api", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sp-inherents" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "thiserror", ] [[package]] name = "sp-io" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bytes", "ed25519-dalek", "libsecp256k1", "log", "parity-scale-codec", + "polkavm-derive 0.9.1", "rustversion", "secp256k1", "sp-core", - "sp-externalities 0.19.0", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-keystore", - "sp-runtime-interface 17.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-state-machine", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", "tracing", "tracing-core", @@ -14859,10 +15170,9 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "31.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "lazy_static", "sp-core", "sp-runtime", "strum 0.24.1", @@ -14870,20 +15180,19 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.27.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "sp-core", - "sp-externalities 0.19.0", - "thiserror", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sp-maybe-compressed-blob" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "thiserror", "zstd 0.12.4", @@ -14891,31 +15200,31 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-metadata", "parity-scale-codec", "scale-info", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sp-mixnet" -version = "0.1.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sp-mmr-primitives" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -14924,16 +15233,16 @@ dependencies = [ "serde", "sp-api", "sp-core", - "sp-debug-derive 8.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "thiserror", ] [[package]] name = "sp-npos-elections" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "scale-info", @@ -14941,13 +15250,13 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sp-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "sp-api", "sp-core", @@ -14956,8 +15265,8 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "backtrace", "lazy_static", @@ -14966,8 +15275,8 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "rustc-hash", "serde", @@ -14976,8 +15285,8 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "31.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "docify", "either", @@ -14986,7 +15295,7 @@ dependencies = [ "log", "parity-scale-codec", "paste", - "rand 0.8.5", + "rand", "scale-info", "serde", "simple-mermaid", @@ -14994,25 +15303,26 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-io", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-weights", ] [[package]] name = "sp-runtime-interface" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", + "polkavm-derive 0.9.1", "primitive-types", - "sp-externalities 0.19.0", - "sp-runtime-interface-proc-macro 11.0.0", - "sp-std 8.0.0", - "sp-storage 13.0.0", - "sp-tracing 10.0.0", - "sp-wasm-interface 14.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "static_assertions", ] @@ -15024,25 +15334,25 @@ dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "polkavm-derive", + "polkavm-derive 0.9.1", "primitive-types", - "sp-externalities 0.25.0", - "sp-runtime-interface-proc-macro 17.0.0", - "sp-std 14.0.0", - "sp-storage 19.0.0", - "sp-tracing 16.0.0", - "sp-wasm-interface 20.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk)", "static_assertions", ] [[package]] name = "sp-runtime-interface-proc-macro" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "Inflector", "expander 2.1.0", - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.66", @@ -15063,8 +15373,8 @@ dependencies = [ [[package]] name = "sp-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "scale-info", @@ -15073,13 +15383,13 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sp-staking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -15087,24 +15397,24 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "sp-state-machine" -version = "0.28.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "hash-db", "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand 0.8.5", + "rand", "smallvec", "sp-core", - "sp-externalities 0.19.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-panic-handler", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", "thiserror", "tracing", @@ -15113,32 +15423,33 @@ dependencies = [ [[package]] name = "sp-statement-store" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "aes-gcm", "curve25519-dalek 4.1.2", "ed25519-dalek", "hkdf", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sha2 0.10.8", "sp-api", "sp-application-crypto", "sp-core", - "sp-externalities 0.19.0", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-runtime", - "sp-runtime-interface 17.0.0", - "sp-std 8.0.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "thiserror", "x25519-dalek 2.0.1", ] [[package]] name = "sp-std" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" [[package]] name = "sp-std" @@ -15147,15 +15458,15 @@ source = "git+https://github.com/paritytech/polkadot-sdk#5fb4c40a3ea24ae3ab2bdfe [[package]] name = "sp-storage" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 8.0.0", - "sp-std 8.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -15167,29 +15478,29 @@ dependencies = [ "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 14.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] [[package]] name = "sp-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "thiserror", ] [[package]] name = "sp-tracing" -version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "tracing", "tracing-core", "tracing-subscriber 0.2.25", @@ -15208,8 +15519,8 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "sp-api", "sp-runtime", @@ -15217,8 +15528,8 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "parity-scale-codec", @@ -15226,29 +15537,28 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-trie", ] [[package]] name = "sp-trie" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "ahash 0.8.11", "hash-db", - "hashbrown 0.13.2", "lazy_static", "memory-db", "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.3", - "rand 0.8.5", + "rand", "scale-info", "schnellru", "sp-core", - "sp-externalities 0.19.0", - "sp-std 8.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "thiserror", "tracing", "trie-db", @@ -15257,25 +15567,25 @@ dependencies = [ [[package]] name = "sp-version" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-core-hashing-proc-macro", + "sp-crypto-hashing-proc-macro", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-version-proc-macro", "thiserror", ] [[package]] name = "sp-version-proc-macro" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -15285,14 +15595,14 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "20.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "wasmtime", ] @@ -15308,8 +15618,8 @@ dependencies = [ [[package]] name = "sp-weights" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -15317,8 +15627,8 @@ dependencies = [ "serde", "smallvec", "sp-arithmetic", - "sp-debug-derive 8.0.0", - "sp-std 8.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -15344,6 +15654,15 @@ dependencies = [ "strum 0.24.1", ] +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + [[package]] name = "spki" version = "0.7.3" @@ -15377,8 +15696,8 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -15386,14 +15705,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] name = "staging-xcm" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ + "array-bytes 6.2.3", "bounded-collections", "derivative", "environmental", @@ -15408,8 +15728,8 @@ dependencies = [ [[package]] name = "staging-xcm-builder" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "frame-system", @@ -15422,7 +15742,7 @@ dependencies = [ "sp-arithmetic", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-weights", "staging-xcm", "staging-xcm-executor", @@ -15430,8 +15750,8 @@ dependencies = [ [[package]] name = "staging-xcm-executor" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "environmental", "frame-benchmarking", @@ -15444,7 +15764,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-weights", "staging-xcm", ] @@ -15548,14 +15868,13 @@ dependencies = [ [[package]] name = "substrate-bip39" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a7590dc041b9bc2825e52ce5af8416c73dbe9d0654402bfd4b4941938b94d8f" +version = "0.4.7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "hmac 0.11.0", - "pbkdf2 0.8.0", + "hmac 0.12.1", + "pbkdf2 0.12.2", "schnorrkel 0.11.4", - "sha2 0.9.9", + "sha2 0.10.8", "zeroize", ] @@ -15568,19 +15887,19 @@ dependencies = [ "byteorder", "crunchy", "lazy_static", - "rand 0.8.5", + "rand", "rustc-hex", ] [[package]] name = "substrate-build-script-utils" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" [[package]] name = "substrate-frame-rpc-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.30", @@ -15598,8 +15917,8 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "hyper", "log", @@ -15610,8 +15929,8 @@ dependencies = [ [[package]] name = "substrate-rpc-client" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "jsonrpsee", @@ -15623,8 +15942,8 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -15640,18 +15959,28 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ - "ansi_term", + "array-bytes 6.2.3", "build-helper", "cargo_metadata 0.15.4", + "console", "filetime", + "frame-metadata", + "merkleized-metadata", + "parity-scale-codec", "parity-wasm", + "polkavm-linker", + "sc-executor", + "sp-core", + "sp-io", "sp-maybe-compressed-blob", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-version", "strum 0.24.1", "tempfile", - "toml 0.7.8", + "toml 0.8.14", "walkdir", "wasm-opt", ] @@ -15975,7 +16304,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" dependencies = [ "pin-project", - "rand 0.8.5", + "rand", "tokio", ] @@ -15989,6 +16318,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.15" @@ -16024,18 +16364,6 @@ dependencies = [ "serde", ] -[[package]] -name = "toml" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.19.15", -] - [[package]] name = "toml" version = "0.8.14" @@ -16062,19 +16390,6 @@ name = "toml_edit" version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.2.6", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.20.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ "indexmap 2.2.6", "toml_datetime", @@ -16111,6 +16426,10 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite 0.2.14", "tower-layer", "tower-service", "tracing", @@ -16191,8 +16510,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "coarsetime", "polkadot-primitives", @@ -16202,11 +16521,11 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "5.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "expander 2.1.0", - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 2.0.66", @@ -16323,7 +16642,7 @@ dependencies = [ "idna 0.2.3", "ipnet", "lazy_static", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.4.10", "thiserror", @@ -16361,8 +16680,8 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "try-runtime-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "0.38.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "async-trait", "clap", @@ -16379,8 +16698,8 @@ dependencies = [ "sp-consensus-aura", "sp-consensus-babe", "sp-core", - "sp-debug-derive 8.0.0", - "sp-externalities 0.19.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-inherents", "sp-io", "sp-keystore", @@ -16423,7 +16742,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.8.5", + "rand", "static_assertions", ] @@ -16607,7 +16926,7 @@ dependencies = [ "arrayref", "constcat", "digest 0.10.7", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "rand_core 0.6.4", "sha2 0.10.8", @@ -16728,15 +17047,6 @@ version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" -[[package]] -name = "wasm-instrument" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa1dafb3e60065305741e83db35c6c2584bb3725b692b5b66148a38d72ace6cd" -dependencies = [ - "parity-wasm", -] - [[package]] name = "wasm-instrument" version = "0.4.0" @@ -17026,7 +17336,7 @@ dependencies = [ "memfd", "memoffset", "paste", - "rand 0.8.5", + "rand", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -17075,16 +17385,10 @@ dependencies = [ "webpki", ] -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "westend-runtime" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "binary-merkle-tree", "bitvec", @@ -17177,8 +17481,8 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0", - "sp-storage 13.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "sp-transaction-pool", "sp-version", "staging-xcm", @@ -17190,8 +17494,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "polkadot-primitives", @@ -17201,6 +17505,7 @@ dependencies = [ "sp-runtime", "sp-weights", "staging-xcm", + "staging-xcm-builder", ] [[package]] @@ -17594,8 +17899,8 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "Inflector", "proc-macro2", @@ -17605,8 +17910,8 @@ dependencies = [ [[package]] name = "xcm-simulator" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.5.0#a56caf11845f2118a34d9464b8e929315c12c8e3" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#feeec7b9030027847ff21da18bf0bb9df6b15dd9" dependencies = [ "frame-support", "parity-scale-codec", @@ -17615,7 +17920,7 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-runtime-parachains", "sp-io", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -17656,8 +17961,8 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0", - "sp-tracing 10.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -17690,7 +17995,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", ] [[package]] @@ -17703,7 +18008,7 @@ dependencies = [ "log", "nohash-hasher", "parking_lot 0.12.3", - "rand 0.8.5", + "rand", "static_assertions", ] diff --git a/Cargo.toml b/Cargo.toml index 8cad15a386..b2c464e763 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,17 +9,13 @@ members = [ "tests/xcm-simulator", "tests/integration", "tests/utils", - "pallets/*", "precompiles/*", - "primitives", - "chain-extensions/pallet-assets", "chain-extensions/xvm", "chain-extensions/unified-accounts", "chain-extensions/types/*", - "vendor/evm-tracing", "vendor/primitives/debug", "vendor/primitives/evm-tracing-events", @@ -51,7 +47,7 @@ repository = "https://github.com/AstarNetwork/Astar" [patch."https://github.com/paritytech/polkadot-sdk"] # Remove this after uplifting to polkadot-sdk version `v1.12.0` or higher. -pallet-balances = { git = "https://github.com/AstarNetwork/polkadot-sdk", branch = "release-polkadot-v1.5.0" } +pallet-balances = { git = "https://github.com/AstarNetwork/polkadot-sdk", branch = "astar-release-polkadot-v1.9.0" } [workspace.dependencies] # General deps @@ -67,6 +63,7 @@ rand = { version = "0.8.5", default-features = false } bounded-collections = { version = "0.1.5", default-features = false } hex = { version = "0.4.3", default-features = false } paste = "1.0.6" +once_cell = { version = "1.19.0", default-features = false } # (native) array-bytes = "6.0.0" @@ -79,7 +76,7 @@ serde = { version = "1.0.151", default-features = false, features = ["derive", " serde_json = "1.0.92" tokio = { version = "1.24.2", features = ["macros", "sync"] } url = "2.2.2" -jsonrpsee = { version = "0.16.2", features = ["server"] } +jsonrpsee = { version = "0.22.5", features = ["server"] } hex-literal = "0.4.1" rlp = "0.5" tracing = "0.1.34" @@ -96,94 +93,95 @@ ethers = { version = "2.0.9", default_features = false } # Substrate # (wasm) -sp-core = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-core-hashing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-session = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-version = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-staking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-externalities = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-core-hashing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-staking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-externalities = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } # (native) -sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sp-trie = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -try-runtime-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sp-trie = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +try-runtime-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } # Substrate pallets # (wasm) -pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-proxy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-contracts = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-contracts-uapi = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-identity = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-multisig = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-session = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false, features = ["historical"] } -pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-vesting = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-preimage = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-scheduler = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-membership = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-collective = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-democracy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-treasury = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-proxy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-metadata-hash-extension = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-contracts = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-contracts-uapi = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-identity = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-multisig = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-session = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false, features = ["historical"] } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-vesting = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-preimage = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-scheduler = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-membership = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-collective = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-democracy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-treasury = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } # EVM & Ethereum # (wasm) @@ -196,89 +194,89 @@ ethereum = { version = "0.15.0", default-features = false } # Frontier # (wasm) -fp-rpc = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } -fp-self-contained = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false, features = ["serde"] } -pallet-ethereum = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false, features = ["forbid-evm-reentrancy"] } -pallet-evm = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false, features = ["forbid-evm-reentrancy"] } -pallet-evm-precompile-blake2 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } -pallet-evm-precompile-bn128 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } -pallet-evm-precompile-dispatch = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } -pallet-evm-precompile-ed25519 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } -pallet-evm-precompile-modexp = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } -pallet-evm-precompile-sha3fips = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } -pallet-evm-precompile-simple = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } -pallet-base-fee = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } -pallet-evm-chain-id = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } -fp-evm = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } -fp-ethereum = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", default-features = false } +fp-rpc = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } +fp-self-contained = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false, features = ["serde"] } +pallet-ethereum = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false, features = ["forbid-evm-reentrancy"] } +pallet-evm = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false, features = ["forbid-evm-reentrancy"] } +pallet-evm-precompile-blake2 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } +pallet-evm-precompile-bn128 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } +pallet-evm-precompile-dispatch = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } +pallet-evm-precompile-ed25519 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } +pallet-evm-precompile-modexp = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } +pallet-evm-precompile-sha3fips = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } +pallet-evm-precompile-simple = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } +pallet-base-fee = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } +pallet-evm-chain-id = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } +fp-evm = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } +fp-ethereum = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", default-features = false } # (native) -fc-consensus = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0" } -fc-db = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0" } -fc-api = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0" } -fc-mapping-sync = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0" } -fc-rpc = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0", features = ["rpc-binary-search-estimate", "txpool"] } -fc-rpc-core = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0" } -fp-consensus = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0" } -fp-storage = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0" } -fc-storage = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.5.0" } +fc-consensus = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0" } +fc-db = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0" } +fc-api = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0" } +fc-mapping-sync = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0" } +fc-rpc = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0", features = ["rpc-binary-search-estimate", "txpool"] } +fc-rpc-core = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0" } +fp-consensus = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0" } +fp-storage = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0" } +fc-storage = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v1.9.0" } # Cumulus # (wasm) -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -parachains-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +parachains-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } # (native) -cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-client-consensus-relay-chain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-client-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -cumulus-test-relay-sproof-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } +cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-client-consensus-relay-chain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-client-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +cumulus-test-relay-sproof-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } # Polkadot # (wasm) -polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -polkadot-parachain = { package = "polkadot-parachain-primitives", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +polkadot-parachain = { package = "polkadot-parachain-primitives", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } # XCM # (wasm) -cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } -xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } # (native) -polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -polkadot-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +polkadot-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } # ORML # (wasm) -orml-xtokens = { git = "https://github.com/AstarNetwork/open-runtime-module-library", branch = "polkadot-v1.5.0", default-features = false } -orml-traits = { git = "https://github.com/AstarNetwork/open-runtime-module-library", branch = "polkadot-v1.5.0", default-features = false } -orml-xcm-support = { git = "https://github.com/AstarNetwork/open-runtime-module-library", branch = "polkadot-v1.5.0", default-features = false } -orml-oracle = { git = "https://github.com/AstarNetwork/open-runtime-module-library", branch = "polkadot-v1.5.0", default-features = false } +orml-xtokens = { git = "https://github.com/AstarNetwork/open-runtime-module-library", branch = "polkadot-v1.9.0", default-features = false } +orml-traits = { git = "https://github.com/AstarNetwork/open-runtime-module-library", branch = "polkadot-v1.9.0", default-features = false } +orml-xcm-support = { git = "https://github.com/AstarNetwork/open-runtime-module-library", branch = "polkadot-v1.9.0", default-features = false } +orml-oracle = { git = "https://github.com/AstarNetwork/open-runtime-module-library", branch = "polkadot-v1.9.0", default-features = false } # Astar pallets & modules # (wasm) @@ -296,9 +294,6 @@ pallet-static-price-provider = { path = "./pallets/static-price-provider", defau pallet-price-aggregator = { path = "./pallets/price-aggregator", default-features = false } pallet-collective-proxy = { path = "./pallets/collective-proxy", default-features = false } -# Get rid of this once orml-oracle has been updated with benchmarks -oracle-benchmarks = { path = "./pallets/oracle-benchmarks", default-features = false } - dapp-staking-v3-runtime-api = { path = "./pallets/dapp-staking-v3/rpc/runtime-api", default-features = false } astar-primitives = { path = "./primitives", default-features = false } @@ -347,5 +342,5 @@ moonbeam-rpc-core-trace = { path = "./vendor/rpc-core/trace" } moonbeam-rpc-core-debug = { path = "./vendor/rpc-core/debug" } # Build deps -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } -substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.5.0" } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } diff --git a/bin/collator/Cargo.toml b/bin/collator/Cargo.toml index a785a1f059..c11f9c4bb1 100644 --- a/bin/collator/Cargo.toml +++ b/bin/collator/Cargo.toml @@ -98,6 +98,7 @@ shiden-runtime = { workspace = true, features = ["std"] } astar-primitives = { workspace = true } # frame dependencies +frame-metadata-hash-extension = { workspace = true } frame-system = { workspace = true, features = ["std"] } pallet-transaction-payment = { workspace = true, features = ["std"] } pallet-transaction-payment-rpc = { workspace = true } diff --git a/bin/collator/src/benchmarking.rs b/bin/collator/src/benchmarking.rs index 89f6e7269c..f818040c04 100644 --- a/bin/collator/src/benchmarking.rs +++ b/bin/collator/src/benchmarking.rs @@ -222,6 +222,7 @@ where frame_system::CheckNonce::::from(nonce), frame_system::CheckWeight::::new(), pallet_transaction_payment::ChargeTransactionPayment::::from(0), + frame_metadata_hash_extension::CheckMetadataHash::::new(false), ); let payload = runtime::SignedPayload::from_raw( @@ -235,6 +236,7 @@ where (), (), (), + None, ), ); @@ -279,6 +281,7 @@ where frame_system::CheckNonce::::from(nonce), frame_system::CheckWeight::::new(), pallet_transaction_payment::ChargeTransactionPayment::::from(0), + frame_metadata_hash_extension::CheckMetadataHash::::new(false), ); let payload = runtime::SignedPayload::from_raw( @@ -292,6 +295,7 @@ where (), (), (), + None, ), ); @@ -336,6 +340,7 @@ where frame_system::CheckNonce::::from(nonce), frame_system::CheckWeight::::new(), pallet_transaction_payment::ChargeTransactionPayment::::from(0), + frame_metadata_hash_extension::CheckMetadataHash::::new(false), ); let payload = runtime::SignedPayload::from_raw( @@ -349,6 +354,7 @@ where (), (), (), + None, ), ); @@ -393,6 +399,7 @@ where frame_system::CheckNonce::::from(nonce), frame_system::CheckWeight::::new(), pallet_transaction_payment::ChargeTransactionPayment::::from(0), + frame_metadata_hash_extension::CheckMetadataHash::::new(false), ); let payload = runtime::SignedPayload::from_raw( @@ -406,6 +413,7 @@ where (), (), (), + None, ), ); diff --git a/bin/collator/src/cli.rs b/bin/collator/src/cli.rs index eacd546646..aa2dd9a29a 100644 --- a/bin/collator/src/cli.rs +++ b/bin/collator/src/cli.rs @@ -93,7 +93,7 @@ pub enum Subcommand { Revert(sc_cli::RevertCmd), /// Export the genesis state of the parachain. - ExportGenesisState(cumulus_client_cli::ExportGenesisStateCommand), + ExportGenesisState(cumulus_client_cli::ExportGenesisHeadCommand), /// Export the genesis wasm of the parachain. ExportGenesisWasm(cumulus_client_cli::ExportGenesisWasmCommand), diff --git a/bin/collator/src/command.rs b/bin/collator/src/command.rs index 88ee884483..6aefb516f8 100644 --- a/bin/collator/src/command.rs +++ b/bin/collator/src/command.rs @@ -445,7 +445,7 @@ pub fn run() -> Result<()> { &config, parachain::build_import_queue, )?; - cmd.run(config.chain_spec.as_ref(), client.as_ref()) + cmd.run(client) }) } else if runner.config().chain_spec.is_shiden() { runner.sync_run(|config| { @@ -454,7 +454,7 @@ pub fn run() -> Result<()> { &config, parachain::build_import_queue_fallback, )?; - cmd.run(config.chain_spec.as_ref(), client.as_ref()) + cmd.run(client) }) } else { runner.sync_run(|config| { @@ -463,7 +463,7 @@ pub fn run() -> Result<()> { &config, parachain::build_import_queue, )?; - cmd.run(config.chain_spec.as_ref(), client.as_ref()) + cmd.run(client) }) } } @@ -483,6 +483,7 @@ pub fn run() -> Result<()> { Some(Subcommand::Benchmark(cmd)) => { use crate::benchmarking::*; use sp_keyring::Sr25519Keyring; + use sp_runtime::traits::HashingFor; let runner = cli.create_runner(cmd)?; let chain_spec = &runner.config().chain_spec; @@ -491,19 +492,27 @@ pub fn run() -> Result<()> { BenchmarkCmd::Pallet(cmd) => { if chain_spec.is_astar() { runner.sync_run(|config| { - cmd.run::(config) + cmd.run::, parachain::HostFunctions>( + config, + ) }) } else if chain_spec.is_shiden() { runner.sync_run(|config| { - cmd.run::(config) + cmd.run::, parachain::HostFunctions>( + config, + ) }) } else if chain_spec.is_shibuya() { runner.sync_run(|config| { - cmd.run::(config) + cmd.run::, parachain::HostFunctions>( + config, + ) }) } else { runner.sync_run(|config| { - cmd.run::(config) + cmd.run::, local::HostFunctions>( + config, + ) }) } } diff --git a/bin/collator/src/local/service.rs b/bin/collator/src/local/service.rs index 711a099d25..3ab546eb73 100644 --- a/bin/collator/src/local/service.rs +++ b/bin/collator/src/local/service.rs @@ -44,11 +44,21 @@ use astar_primitives::*; const GRANDPA_JUSTIFICATION_PERIOD: u32 = 512; /// Extra host functions +#[cfg(feature = "runtime-benchmarks")] pub type HostFunctions = ( // benchmarking host functions frame_benchmarking::benchmarking::HostFunctions, // evm tracing host functions moonbeam_primitives_ext::moonbeam_ext::HostFunctions, + cumulus_client_service::storage_proof_size::HostFunctions, +); + +/// Extra host functions +#[cfg(not(feature = "runtime-benchmarks"))] +pub type HostFunctions = ( + // evm tracing host functions + moonbeam_primitives_ext::moonbeam_ext::HostFunctions, + cumulus_client_service::storage_proof_size::HostFunctions, ); /// Local runtime native executor. @@ -112,10 +122,11 @@ pub fn new_partial( let executor = sc_service::new_native_or_wasm_executor(&config); let (client, backend, keystore_container, task_manager) = - sc_service::new_full_parts::( + sc_service::new_full_parts_record_import::( config, telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), executor, + true, )?; let client = Arc::new(client); let telemetry = telemetry.map(|(worker, telemetry)| { @@ -278,6 +289,7 @@ pub fn start_node( if ethapi_cmd.contains(&EthApiCmd::Debug) || ethapi_cmd.contains(&EthApiCmd::Trace) { tracing::spawn_tracing_tasks( &evm_tracing_config, + config.prometheus_registry().cloned(), tracing::SpawnTasksParams { task_manager: &task_manager, client: client.clone(), diff --git a/bin/collator/src/parachain/service.rs b/bin/collator/src/parachain/service.rs index 67eaec0bcc..fecd80e122 100644 --- a/bin/collator/src/parachain/service.rs +++ b/bin/collator/src/parachain/service.rs @@ -61,9 +61,18 @@ use crate::{ }; /// Extra host functions +#[cfg(feature = "runtime-benchmarks")] pub type HostFunctions = ( frame_benchmarking::benchmarking::HostFunctions, moonbeam_primitives_ext::moonbeam_ext::HostFunctions, + cumulus_client_service::storage_proof_size::HostFunctions, +); + +/// Extra host functions +#[cfg(not(feature = "runtime-benchmarks"))] +pub type HostFunctions = ( + moonbeam_primitives_ext::moonbeam_ext::HostFunctions, + cumulus_client_service::storage_proof_size::HostFunctions, ); /// Astar network runtime executor. @@ -205,10 +214,11 @@ where let executor = sc_service::new_native_or_wasm_executor(&config); let (client, backend, keystore_container, task_manager) = - sc_service::new_full_parts::( + sc_service::new_full_parts_record_import::( config, telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), executor, + true, )?; let client = Arc::new(client); @@ -727,6 +737,7 @@ where if ethapi_cmd.contains(&EthApiCmd::Debug) || ethapi_cmd.contains(&EthApiCmd::Trace) { tracing::spawn_tracing_tasks( &additional_config.evm_tracing_config, + prometheus_registry.clone(), tracing::SpawnTasksParams { task_manager: &task_manager, client: client.clone(), @@ -936,7 +947,7 @@ where + fp_rpc::EthereumRuntimeRPCApi + AuraApi, sc_client_api::StateBackendFor, Block>: - sc_client_api::backend::StateBackend, + sc_client_api::StateBackend, Executor: sc_executor::NativeExecutionDispatch + 'static, { let client2 = client.clone(); diff --git a/bin/collator/src/rpc/tracing.rs b/bin/collator/src/rpc/tracing.rs index 249656cfb6..9abe124cd5 100644 --- a/bin/collator/src/rpc/tracing.rs +++ b/bin/collator/src/rpc/tracing.rs @@ -34,6 +34,7 @@ use sp_blockchain::{Error as BlockChainError, HeaderMetadata}; use sp_core::H256; use sp_runtime::traits::{BlakeTwo256, Block as BlockT, Header as HeaderT}; use std::sync::Arc; +use substrate_prometheus_endpoint::Registry as PrometheusRegistry; use tokio::sync::Semaphore; #[derive(Clone)] @@ -46,7 +47,7 @@ pub struct SpawnTasksParams<'a, B: BlockT, C, BE> { pub task_manager: &'a TaskManager, pub client: Arc, pub substrate_backend: Arc, - pub frontier_backend: Arc>, + pub frontier_backend: Arc + Send + Sync>, pub filter_pool: Option, pub overrides: Arc>, } @@ -54,6 +55,7 @@ pub struct SpawnTasksParams<'a, B: BlockT, C, BE> { /// Spawn the tasks that are required to run a EVM tracing. pub fn spawn_tracing_tasks( rpc_config: &EvmTracingConfig, + prometheus: Option, params: SpawnTasksParams, ) -> RpcRequesters where @@ -79,6 +81,7 @@ where core::time::Duration::from_secs(rpc_config.ethapi_trace_cache_duration), Arc::clone(&permit_pool), Arc::clone(¶ms.overrides), + prometheus, ); (Some(trace_filter_task), Some(trace_filter_requester)) } else { diff --git a/bin/xcm-tools/src/command.rs b/bin/xcm-tools/src/command.rs index c18805db8b..4014a6718f 100644 --- a/bin/xcm-tools/src/command.rs +++ b/bin/xcm-tools/src/command.rs @@ -43,14 +43,14 @@ pub fn run() -> Result<(), Error> { match &cli.subcommand { Some(Subcommand::RelayChainAccount) => { let relay_account = - ParentIsPreset::::convert_location(&MultiLocation::parent()).unwrap(); + ParentIsPreset::::convert_location(&Location::parent()).unwrap(); println!("{}", relay_account); } Some(Subcommand::SovereignAccount(cmd)) => { let parachain_account = if cmd.sibling { - let location = MultiLocation { + let location = Location { parents: 1, - interior: X1(Parachain(cmd.parachain_id)), + interior: Parachain(cmd.parachain_id).into(), }; SiblingParachainConvertsVia::::convert_location(&location) .unwrap() @@ -69,31 +69,31 @@ pub fn run() -> Result<(), Error> { println!("EVM XC20: 0x{}", HexDisplay::from(&data)); } Some(Subcommand::RemoteAccount(cmd)) => { - let mut sender_multilocation = MultiLocation::parent(); + let mut sender_multilocation = Location::parent(); if let Some(parachain_id) = cmd.parachain_id { sender_multilocation - .append_with(X1(Parachain(parachain_id))) + .append_with(Parachain(parachain_id)) .expect("infallible, short sequence"); } match cmd.account_key { AccountWrapper::SS58(id) => { sender_multilocation - .append_with(X1(AccountId32 { + .append_with(AccountId32 { id, // network is not relevant for account derivation network: None, - })) + }) .expect("infallible, short sequence"); } AccountWrapper::H160(key) => { sender_multilocation - .append_with(X1(AccountKey20 { + .append_with(AccountKey20 { key, // network is not relevant for account derivation network: None, - })) + }) .expect("infallible, short sequence"); } } diff --git a/chain-extensions/pallet-assets/src/mock.rs b/chain-extensions/pallet-assets/src/mock.rs index b2e204b506..ab514822e8 100644 --- a/chain-extensions/pallet-assets/src/mock.rs +++ b/chain-extensions/pallet-assets/src/mock.rs @@ -23,6 +23,7 @@ use frame_support::{ traits::{ConstU32, ConstU64, Nothing}, weights::Weight, }; +use frame_system::EnsureSigned; use pallet_contracts::chain_extension::RegisteredChainExtension; use pallet_contracts::{Config, DefaultAddressGenerator, Frame}; use sp_core::crypto::AccountId32; @@ -70,6 +71,12 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -116,6 +123,9 @@ impl pallet_contracts::Config for Test { type Migrations = (); type RuntimeHoldReason = RuntimeHoldReason; type Xcm = (); + type UploadOrigin = EnsureSigned; + type InstantiateOrigin = EnsureSigned; + type ApiVersion = (); } impl RegisteredChainExtension for AssetsExtension { @@ -139,7 +149,6 @@ impl pallet_balances::Config for Test { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<1>; type MaxFreezes = ConstU32<0>; } diff --git a/pallets/astar-xcm-benchmarks/src/fungible/benchmarking.rs b/pallets/astar-xcm-benchmarks/src/fungible/benchmarking.rs index 432383357c..f23bf4528d 100644 --- a/pallets/astar-xcm-benchmarks/src/fungible/benchmarking.rs +++ b/pallets/astar-xcm-benchmarks/src/fungible/benchmarking.rs @@ -48,11 +48,11 @@ mod benchmarks { #[benchmark] fn transfer_asset() -> Result<(), BenchmarkError> { let (sender_account, sender_location) = account_and_location::(1); - let asset_to_deposit = T::get_multi_asset(); + let asset_to_deposit = T::get_asset(); // take out ED from given asset let (asset_to_send, min_balance) = take_minimum_balance::(asset_to_deposit.clone()).unwrap(); - let assets: MultiAssets = vec![asset_to_send.clone()].into(); + let assets: Assets = vec![asset_to_send.clone()].into(); // this xcm doesn't use holding let dest_location = T::valid_destination()?; @@ -94,11 +94,11 @@ mod benchmarks { let dest_location = T::valid_destination()?; let dest_account = T::AccountIdConverter::convert_location(&dest_location).unwrap(); - let asset_to_deposit = T::get_multi_asset(); + let asset_to_deposit = T::get_asset(); // take out ED from given asset let (asset_to_send, min_balance) = take_minimum_balance::(asset_to_deposit.clone()).unwrap(); - let assets: MultiAssets = vec![asset_to_send].into(); + let assets: Assets = vec![asset_to_send].into(); >::deposit_asset( &asset_to_deposit, @@ -154,16 +154,10 @@ mod benchmarks { // wrapper benchmarks pub type XcmFungibleBenchmarks = WrappedBenchmark, PalletXcmBenchmarks>; -/// Take out the ED from given MultiAsset (if fungible) +/// Take out the ED from given Asset (if fungible) fn take_minimum_balance( - mut asset: MultiAsset, -) -> Result< - ( - MultiAsset, - >::Balance, - ), - (), -> + mut asset: Asset, +) -> Result<(Asset, >::Balance), ()> where <>::Balance as TryInto>::Error: sp_std::fmt::Debug, diff --git a/pallets/astar-xcm-benchmarks/src/generic/benchmarking.rs b/pallets/astar-xcm-benchmarks/src/generic/benchmarking.rs index 04f11c947b..c9bc83e9ff 100644 --- a/pallets/astar-xcm-benchmarks/src/generic/benchmarking.rs +++ b/pallets/astar-xcm-benchmarks/src/generic/benchmarking.rs @@ -40,7 +40,7 @@ mod benchmarks { executor.set_holding(holding); // A fungible asset - let fee_asset = Concrete(MultiLocation::parent()); + let fee_asset = Location::parent(); let instruction = Instruction::>::BuyExecution { fees: (fee_asset, u128::MAX).into(), // should be something inside of holding @@ -59,29 +59,6 @@ mod benchmarks { Ok(()) } - /// Re-write as upstream one has hardcoded system pallet index as 1 whereas our runtimes - /// uses index 10. - #[benchmark] - fn expect_pallet() -> Result<(), BenchmarkError> { - let mut executor = new_executor::(Default::default()); - - let instruction = Instruction::ExpectPallet { - // used index 10 for our runtimes - index: 10, - name: b"System".to_vec(), - module_name: b"frame_system".to_vec(), - crate_major: 4, - min_crate_minor: 0, - }; - let xcm = Xcm(vec![instruction]); - - #[block] - { - executor.bench_process(xcm)?; - } - Ok(()) - } - #[benchmark] fn exchange_asset() -> Result<(), BenchmarkError> { #[block] diff --git a/pallets/astar-xcm-benchmarks/src/mock.rs b/pallets/astar-xcm-benchmarks/src/mock.rs index 989605a18f..edac5db0e8 100644 --- a/pallets/astar-xcm-benchmarks/src/mock.rs +++ b/pallets/astar-xcm-benchmarks/src/mock.rs @@ -45,7 +45,7 @@ frame_support::construct_runtime!( { System: frame_system = 10, Balances: pallet_balances, - Assets: pallet_assets, + PalletAssets: pallet_assets, PolkadotXcmGenericBenchmarks: pallet_xcm_benchmarks::generic, PolkadotXcmFungibleBenchmarks: pallet_xcm_benchmarks::fungible, XcmAssetsBenchmark: fungible, @@ -55,12 +55,11 @@ frame_support::construct_runtime!( pub struct AccountIdConverter; impl xcm_executor::traits::ConvertLocation for AccountIdConverter { - fn convert_location(ml: &MultiLocation) -> Option { - match ml { - MultiLocation { - parents: 0, - interior: X1(Junction::AccountId32 { id, .. }), - } => ::decode(&mut &*id.to_vec()).ok(), + fn convert_location(ml: &Location) -> Option { + match ml.unpack() { + (0, [AccountId32 { id, .. }]) => { + ::decode(&mut &*id.to_vec()).ok() + } _ => None, } } @@ -72,10 +71,10 @@ impl SendXcm for DevNull { type Ticket = (); fn validate( - _destination: &mut Option, + _destination: &mut Option, _message: &mut Option, ) -> SendResult { - Ok(((), MultiAssets::new())) + Ok(((), Assets::new())) } fn deliver(_: Self::Ticket) -> Result { @@ -84,13 +83,13 @@ impl SendXcm for DevNull { } impl xcm_executor::traits::OnResponse for DevNull { - fn expecting_response(_: &MultiLocation, _: u64, _: Option<&MultiLocation>) -> bool { + fn expecting_response(_: &Location, _: u64, _: Option<&Location>) -> bool { false } fn on_response( - _: &MultiLocation, + _: &Location, _: u64, - _: Option<&MultiLocation>, + _: Option<&Location>, _: Response, _: Weight, _: &XcmContext, @@ -103,7 +102,7 @@ parameter_types! { pub const BlockHashCount: u64 = 250; pub BlockWeights: frame_system::limits::BlockWeights = frame_system::limits::BlockWeights::simple_max(Weight::from_parts(1024, u64::MAX)); - pub UniversalLocation: InteriorMultiLocation = Here; + pub UniversalLocation: InteriorLocation = Here; } impl frame_system::Config for Test { type BaseCallFilter = Everything; @@ -129,6 +128,12 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -148,7 +153,6 @@ impl pallet_balances::Config for Test { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } @@ -175,19 +179,19 @@ impl pallet_assets::Config for Test { type BenchmarkHelper = (); } -pub struct MatchOnlyAsset(PhantomData); -impl> xcm_executor::traits::MatchesFungibles - for MatchOnlyAsset +pub struct MatchOnlyAsset(PhantomData); +impl> xcm_executor::traits::MatchesFungibles + for MatchOnlyAsset { fn matches_fungibles( - a: &MultiAsset, + a: &Asset, ) -> core::result::Result<(AssetId, Balance), xcm_executor::traits::prelude::Error> { use sp_runtime::traits::SaturatedConversion; match a { - MultiAsset { + Asset { fun: Fungible(amount), .. - } => Ok((Asset::get(), (*amount).saturated_into::())), + } => Ok((MatchAsset::get(), (*amount).saturated_into::())), _ => Err(xcm_executor::traits::prelude::Error::AssetNotHandled), } } @@ -198,12 +202,11 @@ parameter_types! { // AssetId used as a fungible for benchmarks pub const TransactAssetId: u128 = 1; - pub const TransactAssetLocation: MultiLocation = MultiLocation { parents: 0, interior: X1(GeneralIndex(TransactAssetId::get())) }; } // Use ONLY assets as the asset transactor. pub type AssetTransactor = FungiblesAdapter< - Assets, + PalletAssets, MatchOnlyAsset, AccountIdConverter, AccountId, @@ -217,7 +220,7 @@ parameter_types! { pub const MaxInstructions: u32 = 100; pub const MaxAssetsIntoHolding: u32 = 64; - pub WeightPrice: (xcm::latest::AssetId, u128, u128) = (Concrete(Parent.into()), 1_000_000, 1024); + pub WeightPrice: (xcm::latest::AssetId, u128, u128) = (Parent.into(), 1_000_000, 1024); pub const UnitWeightCost: u64 = 10; } @@ -247,6 +250,7 @@ impl xcm_executor::Config for XcmConfig { type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; type Aliasers = Nothing; + type TransactionalProcessor = (); } impl pallet_xcm_benchmarks::Config for Test { @@ -254,18 +258,18 @@ impl pallet_xcm_benchmarks::Config for Test { type AccountIdConverter = AccountIdConverter; type DeliveryHelper = (); - fn valid_destination() -> Result { - let valid_destination: MultiLocation = X1(AccountId32 { + fn valid_destination() -> Result { + let valid_destination: Location = AccountId32 { network: None, id: [0u8; 32], - }) + } .into(); Ok(valid_destination) } - fn worst_case_holding(_depositable_count: u32) -> MultiAssets { - let assets: Vec = vec![MultiAsset { - id: Concrete(MultiLocation::parent()), + fn worst_case_holding(_depositable_count: u32) -> Assets { + let assets: Vec = vec![Asset { + id: AssetId(Location::parent()), fun: Fungible(u128::MAX), }]; assets.into() @@ -277,68 +281,72 @@ impl pallet_xcm_benchmarks::generic::Config for Test { type TransactAsset = Balances; fn worst_case_response() -> (u64, Response) { - let assets: MultiAssets = (Concrete(Here.into()), 100).into(); + let assets: Assets = (AssetId(Here.into()), 100).into(); (0, Response::Assets(assets)) } - fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + fn worst_case_asset_exchange() -> Result<(Assets, Assets), BenchmarkError> { Err(BenchmarkError::Skip) } - fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { + fn universal_alias() -> Result<(Location, Junction), BenchmarkError> { Err(BenchmarkError::Skip) } fn export_message_origin_and_destination( - ) -> Result<(MultiLocation, NetworkId, Junctions), BenchmarkError> { + ) -> Result<(Location, NetworkId, Junctions), BenchmarkError> { Err(BenchmarkError::Skip) } - fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + fn transact_origin_and_runtime_call() -> Result<(Location, RuntimeCall), BenchmarkError> { Ok(( Default::default(), frame_system::Call::remark_with_event { remark: vec![] }.into(), )) } - fn subscribe_origin() -> Result { + fn subscribe_origin() -> Result { Ok(Default::default()) } - fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { - let assets: MultiAssets = (Concrete(Here.into()), 100).into(); - let ticket = MultiLocation { + fn claimable_asset() -> Result<(Location, Location, Assets), BenchmarkError> { + let assets: Assets = (AssetId(Here.into()), 100).into(); + let ticket = Location { parents: 0, - interior: X1(GeneralIndex(0)), + interior: [GeneralIndex(0)].into(), }; Ok((Default::default(), ticket, assets)) } - fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + fn unlockable_asset() -> Result<(Location, Location, Asset), BenchmarkError> { Err(BenchmarkError::Skip) } - fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + fn alias_origin() -> Result<(Location, Location), BenchmarkError> { Err(BenchmarkError::Skip) } + + fn fee_asset() -> Result { + Ok((AssetId(Here.into()), 100).into()) + } } parameter_types! { pub const CheckingAccount: Option<(u64, MintLocation)> = None; - pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = None; + pub const TrustedTeleporter: Option<(Location, Asset)> = None; } impl pallet_xcm_benchmarks::fungible::Config for Test { - type TransactAsset = ItemOf; + type TransactAsset = ItemOf; type CheckedAccount = CheckingAccount; type TrustedTeleporter = TrustedTeleporter; type TrustedReserve = TrustedReserve; - fn get_multi_asset() -> MultiAsset { + fn get_asset() -> Asset { let min_balance = 100u64; - let asset_location: MultiLocation = GeneralIndex(TransactAssetId::get()).into(); + let asset_location: Location = GeneralIndex(TransactAssetId::get()).into(); - assert_ok!(Assets::force_create( + assert_ok!(PalletAssets::force_create( RuntimeOrigin::root(), TransactAssetId::get(), 0u64, @@ -346,17 +354,17 @@ impl pallet_xcm_benchmarks::fungible::Config for Test { min_balance, )); - MultiAsset { - id: Concrete(asset_location), + Asset { + id: AssetId(asset_location), fun: Fungible((min_balance * 100).into()), } } } parameter_types! { - pub TrustedReserveLocation: MultiLocation = Parent.into(); - pub TrustedReserveAsset: MultiAsset = MultiAsset { id: Concrete(TrustedReserveLocation::get()), fun: Fungible(1_000_000) }; - pub TrustedReserve: Option<(MultiLocation, MultiAsset)> = Some((TrustedReserveLocation::get(), TrustedReserveAsset::get())); + pub TrustedReserveLocation: Location = Parent.into(); + pub TrustedReserveAsset: Asset = Asset { id: AssetId(TrustedReserveLocation::get()), fun: Fungible(1_000_000) }; + pub TrustedReserve: Option<(Location, Asset)> = Some((TrustedReserveLocation::get(), TrustedReserveAsset::get())); } impl fungible::Config for Test {} diff --git a/pallets/collator-selection/src/mock.rs b/pallets/collator-selection/src/mock.rs index e2810c9bd2..2ae4fe9093 100644 --- a/pallets/collator-selection/src/mock.rs +++ b/pallets/collator-selection/src/mock.rs @@ -75,6 +75,12 @@ impl system::Config for Test { type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -95,7 +101,6 @@ impl pallet_balances::Config for Test { type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); type FreezeIdentifier = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/pallets/collective-proxy/src/mock.rs b/pallets/collective-proxy/src/mock.rs index 1e1c0dce1d..794e3677c1 100644 --- a/pallets/collective-proxy/src/mock.rs +++ b/pallets/collective-proxy/src/mock.rs @@ -77,6 +77,12 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } impl pallet_balances::Config for Test { @@ -91,7 +97,6 @@ impl pallet_balances::Config for Test { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = RuntimeFreezeReason; type RuntimeFreezeReason = RuntimeFreezeReason; - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<1>; type WeightInfo = (); } diff --git a/pallets/dapp-staking-v3/src/lib.rs b/pallets/dapp-staking-v3/src/lib.rs index 5fa8ce5d39..324cba6b0e 100644 --- a/pallets/dapp-staking-v3/src/lib.rs +++ b/pallets/dapp-staking-v3/src/lib.rs @@ -503,7 +503,6 @@ pub mod pallet { pub type Safeguard = StorageValue<_, bool, ValueQuery, DefaultSafeguard>; #[pallet::genesis_config] - #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { pub reward_portion: Vec, pub slot_distribution: Vec, @@ -513,6 +512,25 @@ pub mod pallet { pub _config: PhantomData, } + impl Default for GenesisConfig { + fn default() -> Self { + use sp_std::vec; + let num_tiers = T::NumberOfTiers::get(); + Self { + reward_portion: vec![Permill::from_percent(100 / num_tiers); num_tiers as usize], + slot_distribution: vec![Permill::from_percent(100 / num_tiers); num_tiers as usize], + tier_thresholds: (0..num_tiers) + .map(|i| TierThreshold::FixedTvlAmount { + amount: (10 * i).into(), + }) + .collect(), + slots_per_tier: vec![100; num_tiers as usize], + safeguard: None, + _config: Default::default(), + } + } + } + #[pallet::genesis_build] impl BuildGenesisConfig for GenesisConfig { fn build(&self) { diff --git a/pallets/dapp-staking-v3/src/migration.rs b/pallets/dapp-staking-v3/src/migration.rs index 51e198e1cb..287cd9b782 100644 --- a/pallets/dapp-staking-v3/src/migration.rs +++ b/pallets/dapp-staking-v3/src/migration.rs @@ -49,7 +49,7 @@ mod v7 { impl OnRuntimeUpgrade for VersionMigrateV6ToV7 { fn on_runtime_upgrade() -> Weight { - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); let mut translated = 0usize; DAppTiers::::translate::< diff --git a/pallets/dapp-staking-v3/src/test/mock.rs b/pallets/dapp-staking-v3/src/test/mock.rs index 09c6de2864..2c4c502c62 100644 --- a/pallets/dapp-staking-v3/src/test/mock.rs +++ b/pallets/dapp-staking-v3/src/test/mock.rs @@ -87,6 +87,12 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } impl pallet_balances::Config for Test { @@ -101,7 +107,6 @@ impl pallet_balances::Config for Test { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = RuntimeFreezeReason; type RuntimeFreezeReason = RuntimeFreezeReason; - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<1>; type WeightInfo = (); } diff --git a/pallets/dynamic-evm-base-fee/src/mock.rs b/pallets/dynamic-evm-base-fee/src/mock.rs index 2478fca29c..64c79d4e2c 100644 --- a/pallets/dynamic-evm-base-fee/src/mock.rs +++ b/pallets/dynamic-evm-base-fee/src/mock.rs @@ -66,6 +66,12 @@ impl frame_system::Config for TestRuntime { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } impl pallet_balances::Config for TestRuntime { @@ -81,7 +87,6 @@ impl pallet_balances::Config for TestRuntime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/pallets/ethereum-checked/src/mock.rs b/pallets/ethereum-checked/src/mock.rs index a7cdf66c34..23464c97c1 100644 --- a/pallets/ethereum-checked/src/mock.rs +++ b/pallets/ethereum-checked/src/mock.rs @@ -65,6 +65,12 @@ impl frame_system::Config for TestRuntime { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } impl pallet_balances::Config for TestRuntime { @@ -80,7 +86,6 @@ impl pallet_balances::Config for TestRuntime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/pallets/inflation/src/lib.rs b/pallets/inflation/src/lib.rs index f63d92b617..edadca142a 100644 --- a/pallets/inflation/src/lib.rs +++ b/pallets/inflation/src/lib.rs @@ -457,7 +457,7 @@ pub mod pallet { // or if the account has no provider references. // In both cases, the reward is lost but this can be ignored since it's extremely unlikely // to appear and doesn't bring any real harm. - T::Currency::deposit_creating(account, reward); + let _ = T::Currency::deposit_creating(account, reward); Ok(()) } } diff --git a/pallets/inflation/src/mock.rs b/pallets/inflation/src/mock.rs index 0e644499a1..b686d80837 100644 --- a/pallets/inflation/src/mock.rs +++ b/pallets/inflation/src/mock.rs @@ -82,6 +82,12 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } impl pallet_balances::Config for Test { @@ -97,7 +103,6 @@ impl pallet_balances::Config for Test { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } // Dummy accounts used to simulate reward beneficiaries balances diff --git a/pallets/oracle-benchmarks/Cargo.toml b/pallets/oracle-benchmarks/Cargo.toml deleted file mode 100644 index 504955ce96..0000000000 --- a/pallets/oracle-benchmarks/Cargo.toml +++ /dev/null @@ -1,61 +0,0 @@ -[package] -name = "oracle-benchmarks" -version = "0.1.0" -license = "GPL-3.0-or-later" -description = "Temporary pallet to benchmark orml-oracle. Should be handled by orml-oracle itself in the future." -authors.workspace = true -edition.workspace = true -homepage.workspace = true -repository.workspace = true - -[dependencies] -log = { workspace = true } -parity-scale-codec = { workspace = true } -serde = { workspace = true } - -frame-support = { workspace = true } -frame-system = { workspace = true } -scale-info = { workspace = true } -sp-arithmetic = { workspace = true } -sp-runtime = { workspace = true } -sp-std = { workspace = true } - -orml-oracle = { workspace = true } -orml-traits = { workspace = true } - -astar-primitives = { workspace = true } - -frame-benchmarking = { workspace = true, optional = true } - -[features] -default = ["std"] -std = [ - "parity-scale-codec/std", - "log/std", - "scale-info/std", - "serde/std", - "sp-std/std", - "frame-support/std", - "frame-system/std", - "astar-primitives/std", - "sp-arithmetic/std", - "orml-traits/std", - "orml-oracle/std", - "frame-benchmarking?/std", - "sp-runtime/std", -] -runtime-benchmarks = [ - "frame-benchmarking", - "frame-support/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", - "astar-primitives/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", -] -try-runtime = [ - "frame-support/try-runtime", - "astar-primitives/try-runtime", - "frame-system/try-runtime", - "orml-oracle/try-runtime", - "sp-runtime/try-runtime", -] diff --git a/pallets/oracle-benchmarks/src/benchmarking.rs b/pallets/oracle-benchmarks/src/benchmarking.rs deleted file mode 100644 index 2d0da39c7c..0000000000 --- a/pallets/oracle-benchmarks/src/benchmarking.rs +++ /dev/null @@ -1,68 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -#![cfg(feature = "runtime-benchmarks")] - -use super::*; -use frame_benchmarking::v2::*; -use frame_support::{ - assert_ok, - traits::{Get, OnFinalize}, - BoundedVec, -}; -use frame_system::RawOrigin; - -#[benchmarks] -mod benchmarks { - use super::*; - - #[benchmark] - fn feed_values(x: Linear<1, { ::MaxFeedValues::get() }>) { - // Prepare account and add it as member - let account: T::AccountId = whitelisted_caller(); - T::AddMember::add_member(account.clone()); - - // Get base feed value - let currency_id_price_pair = T::BenchmarkCurrencyIdValuePair::get(); - - // Prepare feed values vector - let mut key_value_pairs = - BoundedVec::<_, ::MaxFeedValues>::default(); - for _ in 0..x { - key_value_pairs - .try_push(currency_id_price_pair.clone()) - .unwrap(); - } - - #[block] - { - assert_ok!(orml_oracle::Pallet::::feed_values( - RawOrigin::Signed(account.clone()).into(), - key_value_pairs - )); - } - } - - #[benchmark] - fn on_finalize() { - #[block] - { - orml_oracle::Pallet::::on_finalize(1_u32.into()); - } - } -} diff --git a/pallets/oracle-benchmarks/src/lib.rs b/pallets/oracle-benchmarks/src/lib.rs deleted file mode 100644 index a6ddf95655..0000000000 --- a/pallets/oracle-benchmarks/src/lib.rs +++ /dev/null @@ -1,54 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -//! A temporary solution to benchmark the `orml-oracle` pallet. -//! Should be removed once `orml-oracle` pallet has its own benchmarking. - -#![cfg_attr(not(feature = "std"), no_std)] - -use frame_support::traits::Get; -pub use pallet::*; -use sp_std::marker::PhantomData; - -pub mod weights; - -#[cfg(feature = "runtime-benchmarks")] -mod benchmarking; - -pub trait AddMember { - fn add_member(account: AccountId); -} - -#[frame_support::pallet] -pub mod pallet { - use super::*; - - #[pallet::pallet] - pub struct Pallet(PhantomData); - - #[pallet::config] - pub trait Config: frame_system::Config + orml_oracle::Config { - #[pallet::constant] - type BenchmarkCurrencyIdValuePair: Get<( - ::OracleKey, - ::OracleValue, - )>; - - type AddMember: AddMember; - } -} diff --git a/pallets/price-aggregator/src/mock.rs b/pallets/price-aggregator/src/mock.rs index 9acd871627..4524d0e5c3 100644 --- a/pallets/price-aggregator/src/mock.rs +++ b/pallets/price-aggregator/src/mock.rs @@ -67,6 +67,12 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } impl pallet_balances::Config for Test { @@ -82,7 +88,6 @@ impl pallet_balances::Config for Test { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = RuntimeFreezeReason; - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/pallets/static-price-provider/src/mock.rs b/pallets/static-price-provider/src/mock.rs index 9c0f1db979..a8cb26ef2f 100644 --- a/pallets/static-price-provider/src/mock.rs +++ b/pallets/static-price-provider/src/mock.rs @@ -65,6 +65,12 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } impl pallet_balances::Config for Test { @@ -80,7 +86,6 @@ impl pallet_balances::Config for Test { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/pallets/unified-accounts/src/lib.rs b/pallets/unified-accounts/src/lib.rs index 455025c152..4b72946055 100644 --- a/pallets/unified-accounts/src/lib.rs +++ b/pallets/unified-accounts/src/lib.rs @@ -88,6 +88,7 @@ use sp_std::marker::PhantomData; pub use pallet::*; +pub mod migration; pub mod weights; pub use weights::WeightInfo; diff --git a/pallets/unified-accounts/src/migration.rs b/pallets/unified-accounts/src/migration.rs new file mode 100644 index 0000000000..7fd0eba190 --- /dev/null +++ b/pallets/unified-accounts/src/migration.rs @@ -0,0 +1,69 @@ +// This file is part of Astar. + +// Copyright (C) Stake Technologies Pte.Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later + +// Astar is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Astar is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Astar. If not, see . + +use super::{Config, Pallet, Weight}; +use astar_primitives::evm::EvmAddress; +use frame_support::{ + pallet_prelude::OptionQuery, + storage_alias, + traits::{Get, OnRuntimeUpgrade}, + Blake2_128Concat, +}; + +#[storage_alias] +type EvmToNative = StorageMap< + Pallet, + Blake2_128Concat, + ::AccountId, + EvmAddress, + OptionQuery, +>; + +#[storage_alias] +type NativeToEvm = StorageMap< + Pallet, + Blake2_128Concat, + EvmAddress, + ::AccountId, + OptionQuery, +>; + +/// Remove all corrupted mappings. +pub struct ClearCorruptedUnifiedMappings(core::marker::PhantomData); +impl OnRuntimeUpgrade for ClearCorruptedUnifiedMappings { + fn on_runtime_upgrade() -> Weight { + let healthy_count = crate::EvmToNative::::iter().count() as u64 * 2; + log::info!("Total healthy entries: {healthy_count}"); + + let mut count = 0; + // translate will fail to decode valid entries and therefore will skip it, + // so this will remove only corrupt entries + EvmToNative::::translate(|key, value: EvmAddress| { + log::debug!("Remove corrupt key: {key:?} with value: {value:?}"); + count += 1; + None + }); + NativeToEvm::::translate(|key, value: T::AccountId| { + log::debug!("Remove corrupt key: {key:?} with value: {value:?}"); + count += 1; + None + }); + log::info!("Removed {count} corrupt entries"); + T::DbWeight::get().reads_writes(healthy_count + count, count) + } +} diff --git a/pallets/unified-accounts/src/mock.rs b/pallets/unified-accounts/src/mock.rs index 971ef88e92..33d55e4827 100644 --- a/pallets/unified-accounts/src/mock.rs +++ b/pallets/unified-accounts/src/mock.rs @@ -65,6 +65,12 @@ impl frame_system::Config for TestRuntime { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } impl pallet_balances::Config for TestRuntime { @@ -80,7 +86,6 @@ impl pallet_balances::Config for TestRuntime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/pallets/xc-asset-config/src/benchmarking.rs b/pallets/xc-asset-config/src/benchmarking.rs index 5a723f43f3..79a970f86f 100644 --- a/pallets/xc-asset-config/src/benchmarking.rs +++ b/pallets/xc-asset-config/src/benchmarking.rs @@ -24,12 +24,12 @@ use crate::Pallet as XcAssetConfig; use frame_benchmarking::{benchmarks, impl_benchmark_test_suite}; use frame_system::RawOrigin; use sp_std::boxed::Box; -use xcm::v3::MultiLocation; +use xcm::v4::Location; benchmarks! { register_asset_location { - let asset_location = MultiLocation::parent(); + let asset_location = Location::parent(); let asset_id = T::AssetId::default(); }: _(RawOrigin::Root, Box::new(asset_location.clone().into_versioned()), asset_id) @@ -38,7 +38,7 @@ benchmarks! { } set_asset_units_per_second { - let asset_location = MultiLocation::parent(); + let asset_location = Location::parent(); let asset_id = T::AssetId::default(); let units = 123; @@ -50,14 +50,14 @@ benchmarks! { } change_existing_asset_location { - let asset_location = MultiLocation::parent(); + let asset_location = Location::parent(); let asset_id = T::AssetId::default(); let units = 123; XcAssetConfig::::register_asset_location(RawOrigin::Root.into(), Box::new(asset_location.clone().into_versioned()), asset_id)?; XcAssetConfig::::set_asset_units_per_second(RawOrigin::Root.into(), Box::new(asset_location.clone().into_versioned()), units)?; - let new_asset_location = MultiLocation::here(); + let new_asset_location = Location::here(); }: _(RawOrigin::Root, Box::new(new_asset_location.clone().into_versioned()), asset_id) verify { @@ -67,7 +67,7 @@ benchmarks! { } remove_payment_asset { - let asset_location = MultiLocation::parent(); + let asset_location = Location::parent(); let asset_id = T::AssetId::default(); let units = 123; @@ -80,7 +80,7 @@ benchmarks! { } remove_asset { - let asset_location = MultiLocation::parent(); + let asset_location = Location::parent(); let asset_id = T::AssetId::default(); let units = 123; diff --git a/pallets/xc-asset-config/src/lib.rs b/pallets/xc-asset-config/src/lib.rs index 550790c58d..96dcd04ef4 100644 --- a/pallets/xc-asset-config/src/lib.rs +++ b/pallets/xc-asset-config/src/lib.rs @@ -23,7 +23,7 @@ //! This pallet provides mappings between local asset Id and remove asset location. //! E.g. a multilocation like `{parents: 0, interior: X1::(Junction::Parachain(1000))}` could ba mapped to local asset Id `789`. //! -//! The pallet ensures that the latest MultiLocation version is always used. Developers must ensure to properly migrate legacy versions +//! The pallet ensures that the latest Location version is always used. Developers must ensure to properly migrate legacy versions //! to newest when they become available. //! //! Additionally, it stores information whether a foreign asset is supported as a payment currency for execution on local network. @@ -76,9 +76,9 @@ pub mod pallet { use frame_system::pallet_prelude::*; use parity_scale_codec::HasCompact; use sp_std::boxed::Box; - use xcm::{v3::MultiLocation, VersionedMultiLocation}; + use xcm::{v4::Location, VersionedLocation}; - const STORAGE_VERSION: StorageVersion = StorageVersion::new(2); + const STORAGE_VERSION: StorageVersion = StorageVersion::new(3); #[pallet::pallet] #[pallet::storage_version(STORAGE_VERSION)] @@ -88,30 +88,30 @@ pub mod pallet { /// Defines conversion between asset Id and cross-chain asset location pub trait XcAssetLocation { /// Get asset type from assetId - fn get_xc_asset_location(asset_id: AssetId) -> Option; + fn get_xc_asset_location(asset_id: AssetId) -> Option; /// Get local asset Id from asset location - fn get_asset_id(xc_asset_location: MultiLocation) -> Option; + fn get_asset_id(xc_asset_location: Location) -> Option; } /// Used to fetch `units per second` if cross-chain asset is applicable for local execution payment. pub trait ExecutionPaymentRate { /// returns units per second from asset type or `None` if asset type isn't a supported payment asset. - fn get_units_per_second(asset_location: MultiLocation) -> Option; + fn get_units_per_second(asset_location: Location) -> Option; } impl XcAssetLocation for Pallet { - fn get_xc_asset_location(asset_id: T::AssetId) -> Option { + fn get_xc_asset_location(asset_id: T::AssetId) -> Option { AssetIdToLocation::::get(asset_id).and_then(|x| x.try_into().ok()) } - fn get_asset_id(asset_location: MultiLocation) -> Option { + fn get_asset_id(asset_location: Location) -> Option { AssetLocationToId::::get(asset_location.into_versioned()) } } impl ExecutionPaymentRate for Pallet { - fn get_units_per_second(asset_location: MultiLocation) -> Option { + fn get_units_per_second(asset_location: Location) -> Option { AssetLocationUnitsPerSecond::::get(asset_location.into_versioned()) } } @@ -138,7 +138,7 @@ pub mod pallet { AssetAlreadyRegistered, /// Asset does not exist (hasn't been registered). AssetDoesNotExist, - /// Failed to convert to latest versioned MultiLocation + /// Failed to convert to latest versioned Location MultiLocationNotSupported, } @@ -147,27 +147,25 @@ pub mod pallet { pub enum Event { /// Registed mapping between asset type and asset Id. AssetRegistered { - asset_location: VersionedMultiLocation, + asset_location: VersionedLocation, asset_id: T::AssetId, }, /// Changed the amount of units we are charging per execution second for an asset UnitsPerSecondChanged { - asset_location: VersionedMultiLocation, + asset_location: VersionedLocation, units_per_second: u128, }, /// Changed the asset type mapping for a given asset id AssetLocationChanged { - previous_asset_location: VersionedMultiLocation, + previous_asset_location: VersionedLocation, asset_id: T::AssetId, - new_asset_location: VersionedMultiLocation, + new_asset_location: VersionedLocation, }, /// Supported asset type for fee payment removed. - SupportedAssetRemoved { - asset_location: VersionedMultiLocation, - }, + SupportedAssetRemoved { asset_location: VersionedLocation }, /// Removed all information related to an asset Id AssetRemoved { - asset_location: VersionedMultiLocation, + asset_location: VersionedLocation, asset_id: T::AssetId, }, } @@ -178,7 +176,7 @@ pub mod pallet { #[pallet::storage] #[pallet::getter(fn asset_id_to_location)] pub type AssetIdToLocation = - StorageMap<_, Twox64Concat, T::AssetId, VersionedMultiLocation>; + StorageMap<_, Twox64Concat, T::AssetId, VersionedLocation>; /// Mapping from an asset type to an asset id. /// Can be used when receiving a multilocation XCM message to retrieve @@ -186,7 +184,7 @@ pub mod pallet { #[pallet::storage] #[pallet::getter(fn asset_location_to_id)] pub type AssetLocationToId = - StorageMap<_, Twox64Concat, VersionedMultiLocation, T::AssetId>; + StorageMap<_, Twox64Concat, VersionedLocation, T::AssetId>; /// Stores the units per second for local execution for a AssetLocation. /// This is used to know how to charge for XCM execution in a particular asset. @@ -195,7 +193,7 @@ pub mod pallet { #[pallet::storage] #[pallet::getter(fn asset_location_units_per_second)] pub type AssetLocationUnitsPerSecond = - StorageMap<_, Twox64Concat, VersionedMultiLocation, u128>; + StorageMap<_, Twox64Concat, VersionedLocation, u128>; #[pallet::call] impl Pallet { @@ -206,7 +204,7 @@ pub mod pallet { #[pallet::weight(T::WeightInfo::register_asset_location())] pub fn register_asset_location( origin: OriginFor, - asset_location: Box, + asset_location: Box, #[pallet::compact] asset_id: T::AssetId, ) -> DispatchResult { T::ManagerOrigin::ensure_origin(origin)?; @@ -217,9 +215,9 @@ pub mod pallet { Error::::AssetAlreadyRegistered ); - let v3_asset_loc = MultiLocation::try_from(*asset_location) + let v4_asset_loc = Location::try_from(*asset_location) .map_err(|_| Error::::MultiLocationNotSupported)?; - let asset_location = VersionedMultiLocation::V3(v3_asset_loc); + let asset_location = VersionedLocation::V4(v4_asset_loc); AssetIdToLocation::::insert(&asset_id, asset_location.clone()); AssetLocationToId::::insert(&asset_location, asset_id); @@ -237,14 +235,14 @@ pub mod pallet { #[pallet::weight(T::WeightInfo::set_asset_units_per_second())] pub fn set_asset_units_per_second( origin: OriginFor, - asset_location: Box, + asset_location: Box, #[pallet::compact] units_per_second: u128, ) -> DispatchResult { T::ManagerOrigin::ensure_origin(origin)?; - let v3_asset_loc = MultiLocation::try_from(*asset_location) + let v4_asset_loc = Location::try_from(*asset_location) .map_err(|_| Error::::MultiLocationNotSupported)?; - let asset_location = VersionedMultiLocation::V3(v3_asset_loc); + let asset_location = VersionedLocation::V4(v4_asset_loc); ensure!( AssetLocationToId::::contains_key(&asset_location), @@ -266,14 +264,14 @@ pub mod pallet { #[pallet::weight(T::WeightInfo::change_existing_asset_location())] pub fn change_existing_asset_location( origin: OriginFor, - new_asset_location: Box, + new_asset_location: Box, #[pallet::compact] asset_id: T::AssetId, ) -> DispatchResult { T::ManagerOrigin::ensure_origin(origin)?; - let v3_asset_loc = MultiLocation::try_from(*new_asset_location) + let v4_asset_loc = Location::try_from(*new_asset_location) .map_err(|_| Error::::MultiLocationNotSupported)?; - let new_asset_location = VersionedMultiLocation::V3(v3_asset_loc); + let new_asset_location = VersionedLocation::V4(v4_asset_loc); let previous_asset_location = AssetIdToLocation::::get(&asset_id).ok_or(Error::::AssetDoesNotExist)?; @@ -305,13 +303,13 @@ pub mod pallet { #[pallet::weight(T::WeightInfo::remove_payment_asset())] pub fn remove_payment_asset( origin: OriginFor, - asset_location: Box, + asset_location: Box, ) -> DispatchResult { T::ManagerOrigin::ensure_origin(origin)?; - let v3_asset_loc = MultiLocation::try_from(*asset_location) + let v4_asset_loc = Location::try_from(*asset_location) .map_err(|_| Error::::MultiLocationNotSupported)?; - let asset_location = VersionedMultiLocation::V3(v3_asset_loc); + let asset_location = VersionedLocation::V4(v4_asset_loc); AssetLocationUnitsPerSecond::::remove(&asset_location); diff --git a/pallets/xc-asset-config/src/migrations.rs b/pallets/xc-asset-config/src/migrations.rs index 72cbda7e7e..b2e18ef4dc 100644 --- a/pallets/xc-asset-config/src/migrations.rs +++ b/pallets/xc-asset-config/src/migrations.rs @@ -22,7 +22,22 @@ use frame_support::{ traits::{Get, OnRuntimeUpgrade}, }; use sp_std::{marker::PhantomData, vec::Vec}; -use xcm::IntoVersion; +use xcm::{IntoVersion, VersionedLocation}; + +/// Exports for versioned migration `type`s for this pallet. +pub mod versioned { + use super::*; + + /// Migration storage V2 to V3 wrapped in a [`frame_support::migrations::VersionedMigration`], ensuring + /// the migration is only performed when on-chain version is 2. + pub type V2ToV3 = frame_support::migrations::VersionedMigration< + 2, + 3, + MigrationXcmV4, + Pallet, + ::DbWeight, + >; +} pub struct MigrationXcmV3(PhantomData); impl OnRuntimeUpgrade for MigrationXcmV3 { @@ -99,8 +114,7 @@ impl OnRuntimeUpgrade for MigrationXcmV3 { fn post_upgrade(state: Vec) -> Result<(), sp_runtime::TryRuntimeError> { assert_eq!(Pallet::::on_chain_storage_version(), 2); - use xcm::VersionedMultiLocation; - let legacy_id_to_location_entries: Vec<(T::AssetId, VersionedMultiLocation)> = + let legacy_id_to_location_entries: Vec<(T::AssetId, VersionedLocation)> = Decode::decode(&mut state.as_ref()) .map_err(|_| "Cannot decode data from pre_upgrade")?; @@ -124,3 +138,83 @@ impl OnRuntimeUpgrade for MigrationXcmV3 { Ok(()) } } + +pub struct MigrationXcmV4(PhantomData); +impl OnRuntimeUpgrade for MigrationXcmV4 { + #[allow(deprecated)] + fn on_runtime_upgrade() -> Weight { + let mut consumed_weight = Weight::zero(); + + // 1st map + AssetIdToLocation::::translate::( + |asset_id, multi_location| { + consumed_weight.saturating_accrue(T::DbWeight::get().reads_writes(1, 1)); + VersionedLocation::try_from(multi_location) + .map_err(|_| { + log::error!( + "Failed to convert AssetIdToLocation value for asset Id: {asset_id:?}", + ); + }) + .ok() + }, + ); + + // 2rd map + let location_to_id_entries: Vec<_> = AssetLocationToId::::drain().collect(); + for (multi_location, asset_id) in location_to_id_entries { + consumed_weight.saturating_accrue(T::DbWeight::get().reads_writes(1, 1)); + + if let Ok(new_location) = multi_location.into_version(4) { + AssetLocationToId::::insert(new_location, asset_id); + } else { + log::error!("Failed to convert AssetLocationToId value for asset Id: {asset_id:?}",); + } + } + + // 3rd map + let location_to_price_entries: Vec<_> = AssetLocationUnitsPerSecond::::drain().collect(); + for (multi_location, price) in location_to_price_entries { + consumed_weight.saturating_accrue(T::DbWeight::get().reads_writes(1, 1)); + + if let Ok(new_location) = multi_location.into_version(4) { + AssetLocationUnitsPerSecond::::insert(new_location, price); + } else { + log::error!("Failed to convert AssetLocationUnitsPerSecond value failed!"); + } + } + + StorageVersion::new(3).put::>(); + consumed_weight.saturating_accrue(T::DbWeight::get().writes(1)); + + consumed_weight + } + + #[cfg(feature = "try-runtime")] + fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { + assert!(Pallet::::on_chain_storage_version() < 3); + let mut count = AssetIdToLocation::::iter().collect::>().len(); + count += AssetLocationToId::::iter().collect::>().len(); + count += AssetLocationUnitsPerSecond::::iter() + .collect::>() + .len(); + + Ok((count as u32).encode()) + } + + #[cfg(feature = "try-runtime")] + fn post_upgrade(state: Vec) -> Result<(), sp_runtime::TryRuntimeError> { + assert_eq!(Pallet::::on_chain_storage_version(), 3); + + let old_count: u32 = Decode::decode(&mut state.as_ref()) + .map_err(|_| "Cannot decode data from pre_upgrade")?; + + let mut count = AssetIdToLocation::::iter().collect::>().len(); + count += AssetLocationToId::::iter().collect::>().len(); + count += AssetLocationUnitsPerSecond::::iter() + .collect::>() + .len(); + + assert_eq!(old_count, count as u32); + Ok(()) + } +} diff --git a/pallets/xc-asset-config/src/mock.rs b/pallets/xc-asset-config/src/mock.rs index 8505bc1fb2..fe03fd9ae8 100644 --- a/pallets/xc-asset-config/src/mock.rs +++ b/pallets/xc-asset-config/src/mock.rs @@ -72,6 +72,12 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -92,7 +98,6 @@ impl pallet_balances::Config for Test { type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); type FreezeIdentifier = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/pallets/xc-asset-config/src/tests.rs b/pallets/xc-asset-config/src/tests.rs index 75ef0b6502..420c792cbd 100644 --- a/pallets/xc-asset-config/src/tests.rs +++ b/pallets/xc-asset-config/src/tests.rs @@ -22,12 +22,12 @@ use mock::*; use sp_runtime::traits::BadOrigin; use xcm::latest::prelude::*; -use xcm::{v3::MultiLocation, VersionedMultiLocation}; +use xcm::{v4::Location, VersionedLocation}; #[test] fn only_root_as_origin() { ExternalityBuilder::build().execute_with(|| { - let asset_location = MultiLocation::here().into_versioned(); + let asset_location = Location::here().into_versioned(); let asset_id = 7; assert_noop!( @@ -76,10 +76,7 @@ fn only_root_as_origin() { fn register_asset_location_and_units_per_sec_is_ok() { ExternalityBuilder::build().execute_with(|| { // Prepare location and Id - let asset_location = MultiLocation::new( - 1, - Junctions::X2(Junction::PalletInstance(17), GeneralIndex(7)), - ); + let asset_location = Location::new(1, [PalletInstance(17), GeneralIndex(7)]); let asset_id = 13; // Register asset and ensure it's ok @@ -131,10 +128,7 @@ fn register_asset_location_and_units_per_sec_is_ok() { fn asset_is_already_registered() { ExternalityBuilder::build().execute_with(|| { // Prepare location and Id - let asset_location = MultiLocation::new( - 1, - Junctions::X2(Junction::PalletInstance(17), GeneralIndex(7)), - ); + let asset_location = Location::new(1, [PalletInstance(17), GeneralIndex(7)]); let asset_id = 13; // Register asset and ensure it's ok @@ -160,7 +154,7 @@ fn asset_is_already_registered() { fn change_asset_location_is_ok() { ExternalityBuilder::build().execute_with(|| { // Prepare location, Id and units - let asset_location = MultiLocation::new(1, Junctions::X1(Junction::Parachain(2007))); + let asset_location = Location::new(1, [Parachain(2007)]); let asset_id = 17; let units: u128 = 3 * 11 * 13 * 17; @@ -177,7 +171,7 @@ fn change_asset_location_is_ok() { )); // Change the asset location and assert change was successful - let new_asset_location = MultiLocation::new(2, Junctions::X1(Junction::PalletInstance(3))); + let new_asset_location = Location::new(2, [PalletInstance(3)]); assert_ne!(new_asset_location, asset_location); // sanity check assert_ok!(XcAssetConfig::change_existing_asset_location( @@ -219,7 +213,7 @@ fn change_asset_location_is_ok() { fn remove_payment_asset_is_ok() { ExternalityBuilder::build().execute_with(|| { // Prepare location, Id and units - let asset_location = MultiLocation::new(1, Junctions::X1(Junction::Parachain(2007))); + let asset_location = Location::new(1, [Parachain(2007)]); let asset_id = 17; let units: u128 = 3 * 11 * 13 * 17; @@ -261,7 +255,7 @@ fn remove_payment_asset_is_ok() { fn remove_asset_is_ok() { ExternalityBuilder::build().execute_with(|| { // Prepare location, Id and units - let asset_location = MultiLocation::new(1, Junctions::X1(Junction::Parachain(2007))); + let asset_location = Location::new(1, [Parachain(2007)]); let asset_id = 17; let units: u128 = 3 * 11 * 13 * 17; @@ -299,7 +293,7 @@ fn remove_asset_is_ok() { fn not_registered_asset_is_not_ok() { ExternalityBuilder::build().execute_with(|| { // Prepare location, Id and units - let asset_location = MultiLocation::parent(); + let asset_location = Location::parent(); let asset_id = 17; let units: u128 = 3 * 11 * 13 * 17; @@ -332,7 +326,7 @@ fn not_registered_asset_is_not_ok() { fn public_interfaces_are_ok() { ExternalityBuilder::build().execute_with(|| { // Prepare location, Id and units - let asset_location = MultiLocation::parent(); + let asset_location = Location::parent(); let asset_id = 17; let units: u128 = 3 * 11 * 13 * 17; @@ -374,14 +368,14 @@ fn public_interfaces_are_ok() { fn different_xcm_versions_are_ok() { ExternalityBuilder::build().execute_with(|| { // Prepare location and Id - let legacy_asset_location = xcm::v2::MultiLocation::parent(); - let new_asset_location = xcm::v3::MultiLocation::parent(); + let legacy_asset_location = xcm::v3::MultiLocation::parent(); + let new_asset_location = xcm::v4::Location::parent(); let asset_id = 17; // Register asset using legacy multilocation assert_ok!(XcAssetConfig::register_asset_location( RuntimeOrigin::root(), - Box::new(VersionedMultiLocation::V2(legacy_asset_location.clone())), + Box::new(VersionedLocation::V3(legacy_asset_location.clone())), asset_id )); @@ -396,7 +390,8 @@ fn different_xcm_versions_are_ok() { #[test] fn incompatible_versioned_multilocations_are_not_ok() { ExternalityBuilder::build().execute_with(|| { - // MultiLocation that cannot be converted from v2 to v3 + // Location that cannot be converted from v2 to v4 + // all v3 are compatible with v4 let incompatible_asset_location = xcm::v2::MultiLocation { parents: 1, interior: xcm::v2::Junctions::X1(xcm::v2::Junction::GeneralKey( @@ -408,9 +403,7 @@ fn incompatible_versioned_multilocations_are_not_ok() { assert_noop!( XcAssetConfig::register_asset_location( RuntimeOrigin::root(), - Box::new(VersionedMultiLocation::V2( - incompatible_asset_location.clone() - )), + Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), asset_id ), Error::::MultiLocationNotSupported @@ -419,9 +412,7 @@ fn incompatible_versioned_multilocations_are_not_ok() { assert_noop!( XcAssetConfig::set_asset_units_per_second( RuntimeOrigin::root(), - Box::new(VersionedMultiLocation::V2( - incompatible_asset_location.clone() - )), + Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), 12345, ), Error::::MultiLocationNotSupported @@ -430,9 +421,7 @@ fn incompatible_versioned_multilocations_are_not_ok() { assert_noop!( XcAssetConfig::change_existing_asset_location( RuntimeOrigin::root(), - Box::new(VersionedMultiLocation::V2( - incompatible_asset_location.clone() - )), + Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), 12345, ), Error::::MultiLocationNotSupported @@ -441,9 +430,7 @@ fn incompatible_versioned_multilocations_are_not_ok() { assert_noop!( XcAssetConfig::remove_payment_asset( RuntimeOrigin::root(), - Box::new(VersionedMultiLocation::V2( - incompatible_asset_location.clone() - )), + Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), ), Error::::MultiLocationNotSupported ); diff --git a/pallets/xvm/src/mock.rs b/pallets/xvm/src/mock.rs index be2a751e07..e35927a86e 100644 --- a/pallets/xvm/src/mock.rs +++ b/pallets/xvm/src/mock.rs @@ -30,6 +30,7 @@ use frame_support::{ parameter_types, traits::{ConstBool, ConstU128, ConstU64, Nothing}, }; +use frame_system::EnsureSigned; use sp_core::{H160, H256}; use sp_io::TestExternalities; use sp_runtime::{ @@ -67,6 +68,12 @@ impl frame_system::Config for TestRuntime { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } impl pallet_balances::Config for TestRuntime { @@ -82,7 +89,6 @@ impl pallet_balances::Config for TestRuntime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<1>; type MaxFreezes = ConstU32<0>; } @@ -131,6 +137,9 @@ impl pallet_contracts::Config for TestRuntime { type Debug = (); type Environment = (); type Xcm = (); + type UploadOrigin = EnsureSigned; + type InstantiateOrigin = EnsureSigned; + type ApiVersion = (); } thread_local! { diff --git a/precompiles/assets-erc20/src/mock.rs b/precompiles/assets-erc20/src/mock.rs index 523a673c38..cbc54f1292 100644 --- a/precompiles/assets-erc20/src/mock.rs +++ b/precompiles/assets-erc20/src/mock.rs @@ -116,6 +116,12 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -146,7 +152,6 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = (); type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/precompiles/dapp-staking-v3/src/test/mock.rs b/precompiles/dapp-staking-v3/src/test/mock.rs index f4e777f7aa..7266a69d38 100644 --- a/precompiles/dapp-staking-v3/src/test/mock.rs +++ b/precompiles/dapp-staking-v3/src/test/mock.rs @@ -101,6 +101,12 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } impl pallet_balances::Config for Test { @@ -115,7 +121,6 @@ impl pallet_balances::Config for Test { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = RuntimeFreezeReason; type RuntimeFreezeReason = RuntimeFreezeReason; - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<1>; type WeightInfo = (); } diff --git a/precompiles/dispatch-lockdrop/src/mock.rs b/precompiles/dispatch-lockdrop/src/mock.rs index 84433f8f25..bb7be97ecd 100644 --- a/precompiles/dispatch-lockdrop/src/mock.rs +++ b/precompiles/dispatch-lockdrop/src/mock.rs @@ -76,6 +76,12 @@ impl frame_system::Config for TestRuntime { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } pub struct WhitelistedCalls; @@ -134,7 +140,6 @@ impl pallet_balances::Config for TestRuntime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/precompiles/sr25519/src/mock.rs b/precompiles/sr25519/src/mock.rs index 1a0a034817..b6144ec350 100644 --- a/precompiles/sr25519/src/mock.rs +++ b/precompiles/sr25519/src/mock.rs @@ -133,6 +133,12 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } #[derive(Debug, Clone, Copy)] @@ -186,7 +192,6 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/precompiles/substrate-ecdsa/src/mock.rs b/precompiles/substrate-ecdsa/src/mock.rs index 901dac3042..362095bb58 100644 --- a/precompiles/substrate-ecdsa/src/mock.rs +++ b/precompiles/substrate-ecdsa/src/mock.rs @@ -133,6 +133,12 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } #[derive(Debug, Clone, Copy)] @@ -186,7 +192,6 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/precompiles/unified-accounts/src/mock.rs b/precompiles/unified-accounts/src/mock.rs index bb40580c1f..f3be514038 100644 --- a/precompiles/unified-accounts/src/mock.rs +++ b/precompiles/unified-accounts/src/mock.rs @@ -138,6 +138,12 @@ impl frame_system::Config for TestRuntime { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } #[derive(Debug, Clone, Copy)] pub struct TestPrecompileSet(PhantomData); @@ -182,7 +188,6 @@ impl pallet_balances::Config for TestRuntime { type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); type FreezeIdentifier = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/precompiles/utils/src/solidity/codec/xcm.rs b/precompiles/utils/src/solidity/codec/xcm.rs index 8675bbfbed..fdefed4dc2 100644 --- a/precompiles/utils/src/solidity/codec/xcm.rs +++ b/precompiles/utils/src/solidity/codec/xcm.rs @@ -25,7 +25,7 @@ use { frame_support::{ensure, traits::ConstU32}, sp_core::H256, sp_std::vec::Vec, - xcm::latest::{Junction, Junctions, MultiLocation, NetworkId}, + xcm::latest::{Junction, Junctions, Location, NetworkId}, }; pub const JUNCTION_SIZE_LIMIT: u32 = 2u32.pow(16); @@ -353,12 +353,12 @@ impl Codec for Junctions { } // Cannot used derive macro since it is a foreign struct. -impl Codec for MultiLocation { +impl Codec for Location { fn read(reader: &mut Reader) -> MayRevert { let (parents, interior) = reader .read() .map_in_tuple_to_field(&["parents", "interior"])?; - Ok(MultiLocation { parents, interior }) + Ok(Location { parents, interior }) } fn write(writer: &mut Writer, value: Self) { diff --git a/precompiles/utils/tests-external/lib.rs b/precompiles/utils/tests-external/lib.rs index e030c7a630..43f2c3fec7 100644 --- a/precompiles/utils/tests-external/lib.rs +++ b/precompiles/utils/tests-external/lib.rs @@ -82,6 +82,12 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -100,7 +106,6 @@ impl pallet_balances::Config for Runtime { type RuntimeFreezeReason = (); type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/precompiles/xcm/Cargo.toml b/precompiles/xcm/Cargo.toml index dd869a06d2..aafb457a4b 100644 --- a/precompiles/xcm/Cargo.toml +++ b/precompiles/xcm/Cargo.toml @@ -40,6 +40,7 @@ xcm-executor = { workspace = true } assert_matches = { workspace = true } derive_more = { workspace = true } hex-literal = { workspace = true } +once_cell = { workspace = true } scale-info = { workspace = true } serde = { workspace = true } diff --git a/precompiles/xcm/XCM_v2.sol b/precompiles/xcm/XCM_v2.sol index fa035ef2d1..751f309480 100644 --- a/precompiles/xcm/XCM_v2.sol +++ b/precompiles/xcm/XCM_v2.sol @@ -35,7 +35,7 @@ interface XCM { /// @param currencyAddress The ERC20 address of the currency we want to transfer /// @param amount The amount of tokens we want to transfer /// @param destination The Multilocation to which we want to send the tokens - /// @param weight The weight we want to buy in the destination chain, to set the + /// @param weight The weight we want to buy in the destination chain, to set the /// weightlimit to Unlimited, you should use the value 0 for ref_time function transfer( address currencyAddress, @@ -51,7 +51,7 @@ interface XCM { /// @param amount The amount of tokens we want to transfer /// @param fee The amount to be spent to pay for execution in destination chain /// @param destination The Multilocation to which we want to send the tokens - /// @param weight The weight we want to buy in the destination chain, to set the + /// @param weight The weight we want to buy in the destination chain, to set the /// weightlimit to Unlimited, you should use the value 0 for ref_time function transfer_with_fee( address currencyAddress, @@ -61,14 +61,14 @@ interface XCM { WeightV2 memory weight ) external returns (bool); - /// Transfer a token through XCM based on its MultiLocation + /// Transfer a token through XCM based on its Location /// /// @dev The token transfer burns/transfers the corresponding amount before sending /// @param asset The asset we want to transfer, defined by its multilocation. /// Currently only Concrete Fungible assets /// @param amount The amount of tokens we want to transfer /// @param destination The Multilocation to which we want to send the tokens - /// @param weight The weight we want to buy in the destination chain, to set the + /// @param weight The weight we want to buy in the destination chain, to set the /// weightlimit to Unlimited, you should use the value 0 for ref_time function transfer_multiasset( Multilocation memory asset, @@ -77,7 +77,7 @@ interface XCM { WeightV2 memory weight ) external returns (bool); - /// Transfer a token through XCM based on its MultiLocation specifying fee + /// Transfer a token through XCM based on its Location specifying fee /// /// @dev The token transfer burns/transfers the corresponding amount before sending /// @param asset The asset we want to transfer, defined by its multilocation. @@ -85,7 +85,7 @@ interface XCM { /// @param amount The amount of tokens we want to transfer /// @param fee The amount to be spent to pay for execution in destination chain /// @param destination The Multilocation to which we want to send the tokens - /// @param weight The weight we want to buy in the destination chain, to set the + /// @param weight The weight we want to buy in the destination chain, to set the /// weightlimit to Unlimited, you should use the value 0 for ref_time function transfer_multiasset_with_fee( Multilocation memory asset, @@ -101,7 +101,7 @@ interface XCM { /// @param currencies The currencies we want to transfer, defined by their address and amount. /// @param feeItem Which of the currencies to be used as fee /// @param destination The Multilocation to which we want to send the tokens - /// @param weight The weight we want to buy in the destination chain, to set the + /// @param weight The weight we want to buy in the destination chain, to set the /// weightlimit to Unlimited, you should use the value 0 for ref_time function transfer_multi_currencies( Currency[] memory currencies, @@ -116,7 +116,7 @@ interface XCM { /// @param assets The assets we want to transfer, defined by their location and amount. /// @param feeItem Which of the currencies to be used as fee /// @param destination The Multilocation to which we want to send the tokens - /// @param weight The weight we want to buy in the destination chain, to set the + /// @param weight The weight we want to buy in the destination chain, to set the /// weightlimit to Unlimited, you should use the value 0 for ref_time function transfer_multi_assets( MultiAsset[] memory assets, diff --git a/precompiles/xcm/src/lib.rs b/precompiles/xcm/src/lib.rs index a6179faaf3..0588a7e9a2 100644 --- a/precompiles/xcm/src/lib.rs +++ b/precompiles/xcm/src/lib.rs @@ -35,7 +35,7 @@ use sp_core::{H160, H256, U256}; use sp_std::marker::PhantomData; use sp_std::prelude::*; -use xcm::{latest::prelude::*, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation}; +use xcm::{latest::prelude::*, VersionedAsset, VersionedAssets, VersionedLocation}; use pallet_evm_precompile_assets_erc20::AddressToAssetId; use precompile_utils::prelude::*; @@ -85,7 +85,7 @@ where XBalanceOf: TryFrom + Into + From, ::CurrencyId: From<::AssetId>, - C: MaybeEquivalence::AssetId>, + C: MaybeEquivalence::AssetId>, { #[precompile::public("assets_withdraw(address[],uint256[],bytes32,bool,uint256,uint256)")] fn assets_withdraw_native_v1( @@ -155,7 +155,7 @@ where .filter_map(|address| { Runtime::address_to_asset_id(address.into()).and_then(|x| C::convert_back(&x)) }) - .collect::>(); + .collect::>(); let amounts = amounts .into_iter() @@ -179,9 +179,9 @@ where .map_err(|_| revert("error converting fee_index, maybe value too large"))?; let mut destination = if is_relay { - MultiLocation::parent() + Location::parent() } else { - X1(Junction::Parachain(parachain_id)).into_exterior(1) + Junctions::from(Junction::Parachain(parachain_id)).into_exterior(1) }; destination @@ -193,7 +193,7 @@ where .cloned() .zip(amounts.iter().cloned()) .map(Into::into) - .collect::>(); + .collect::>(); log::trace!(target: "xcm-precompile:assets_withdraw", "Processed arguments: assets {:?}, destination: {:?}", assets, destination); @@ -204,9 +204,9 @@ where .into(); let call = orml_xtokens::Call::::transfer_multiassets { - assets: Box::new(VersionedMultiAssets::V3(assets.into())), + assets: Box::new(VersionedAssets::V4(assets.into())), fee_item, - dest: Box::new(VersionedMultiLocation::V3(destination)), + dest: Box::new(VersionedLocation::V4(destination)), dest_weight_limit: WeightLimit::Unlimited, }; @@ -242,9 +242,9 @@ where // Process arguments let dest = if is_relay { - MultiLocation::parent() + Location::parent() } else { - X1(Junction::Parachain(para_id)).into_exterior(1) + Junctions::from(Junction::Parachain(para_id)).into_exterior(1) }; let fee_asset = { @@ -263,9 +263,9 @@ where }; let context = ::UniversalLocation::get(); - let fee_multilocation: MultiAsset = (fee_asset, fee_amount).into(); + let fee_multilocation: Asset = (fee_asset, fee_amount).into(); let fee_multilocation = fee_multilocation - .reanchored(&dest, context) + .reanchored(&dest, &context) .map_err(|_| revert("Failed to reanchor fee asset"))?; // Prepare XCM @@ -291,7 +291,7 @@ where .into(); let call = pallet_xcm::Call::::send { dest: Box::new(dest.into()), - message: Box::new(xcm::VersionedXcm::V3(xcm)), + message: Box::new(xcm::VersionedXcm::V4(xcm)), }; // Dispatch a call. @@ -309,7 +309,7 @@ where parachain_id: U256, fee_item: U256, ) -> EvmResult { - let assets: Vec = assets + let assets: Vec = assets .iter() .cloned() .filter_map(|address| { @@ -346,9 +346,9 @@ where // Prepare pallet-xcm call arguments let mut destination = if is_relay { - MultiLocation::parent() + Location::parent() } else { - X1(Junction::Parachain(parachain_id)).into_exterior(1) + Junctions::from(Junction::Parachain(parachain_id)).into_exterior(1) }; destination @@ -360,7 +360,7 @@ where .cloned() .zip(amounts.iter().cloned()) .map(Into::into) - .collect::>(); + .collect::>(); log::trace!(target: "xcm-precompile:assets_reserve_transfer", "Processed arguments: assets {:?}, destination: {:?}", assets, destination); @@ -371,9 +371,9 @@ where .into(); let call = orml_xtokens::Call::::transfer_multiassets { - assets: Box::new(VersionedMultiAssets::V3(assets.into())), + assets: Box::new(VersionedAssets::V4(assets.into())), fee_item, - dest: Box::new(VersionedMultiLocation::V3(destination)), + dest: Box::new(VersionedLocation::V4(destination)), dest_weight_limit: WeightLimit::Unlimited, }; @@ -442,11 +442,11 @@ where #[precompile::public("send_xcm((uint8,bytes[]),bytes)")] fn send_xcm( handle: &mut impl PrecompileHandle, - dest: MultiLocation, + dest: Location, xcm_call: BoundedBytes, ) -> EvmResult { // Raw call arguments - let dest: MultiLocation = dest.into(); + let dest: Location = dest.into(); let xcm_call: Vec = xcm_call.into(); log::trace!(target:"xcm-precompile::send_xcm", "Raw arguments: dest: {:?}, xcm_call: {:?}", dest, xcm_call); @@ -478,7 +478,7 @@ where handle: &mut impl PrecompileHandle, currency_address: Address, amount_of_tokens: U256, - destination: MultiLocation, + destination: Location, weight: WeightV2, ) -> EvmResult { // Read call arguments @@ -499,10 +499,10 @@ where currency_address, amount_of_tokens, destination, weight ); orml_xtokens::Call::::transfer_multiasset { - asset: Box::new(VersionedMultiAsset::V3( - (MultiLocation::here(), amount_of_tokens).into(), + asset: Box::new(VersionedAsset::V4( + (Location::here(), amount_of_tokens).into(), )), - dest: Box::new(VersionedMultiLocation::V3(destination)), + dest: Box::new(VersionedLocation::V4(destination)), dest_weight_limit, } } else { @@ -516,7 +516,7 @@ where orml_xtokens::Call::::transfer { currency_id: asset_id.into(), amount: amount_of_tokens.into(), - dest: Box::new(VersionedMultiLocation::V3(destination)), + dest: Box::new(VersionedLocation::V4(destination)), dest_weight_limit, } } @@ -541,7 +541,7 @@ where currency_address: Address, amount_of_tokens: U256, fee: U256, - destination: MultiLocation, + destination: Location, weight: WeightV2, ) -> EvmResult { // Read call arguments @@ -563,11 +563,11 @@ where currency_address, amount_of_tokens, destination, weight, fee ); orml_xtokens::Call::::transfer_multiasset_with_fee { - asset: Box::new(VersionedMultiAsset::V3( - (MultiLocation::here(), amount_of_tokens).into(), + asset: Box::new(VersionedAsset::V4( + (Location::here(), amount_of_tokens).into(), )), - fee: Box::new(VersionedMultiAsset::V3((MultiLocation::here(), fee).into())), - dest: Box::new(VersionedMultiLocation::V3(destination)), + fee: Box::new(VersionedAsset::V4((Location::here(), fee).into())), + dest: Box::new(VersionedLocation::V4(destination)), dest_weight_limit, } } else { @@ -582,7 +582,7 @@ where currency_id: asset_id.into(), amount: amount_of_tokens.into(), fee: fee.into(), - dest: Box::new(VersionedMultiLocation::V3(destination)), + dest: Box::new(VersionedLocation::V4(destination)), dest_weight_limit, } } @@ -604,9 +604,9 @@ where )] fn transfer_multiasset( handle: &mut impl PrecompileHandle, - asset_location: MultiLocation, + asset_location: Location, amount_of_tokens: U256, - destination: MultiLocation, + destination: Location, weight: WeightV2, ) -> EvmResult { // Read call arguments @@ -625,10 +625,10 @@ where asset_location, amount_of_tokens, destination, weight); let call = orml_xtokens::Call::::transfer_multiasset { - asset: Box::new(VersionedMultiAsset::V3( + asset: Box::new(VersionedAsset::V4( (asset_location, amount_of_tokens).into(), )), - dest: Box::new(VersionedMultiLocation::V3(destination)), + dest: Box::new(VersionedLocation::V4(destination)), dest_weight_limit, }; @@ -648,10 +648,10 @@ where )] fn transfer_multiasset_with_fee( handle: &mut impl PrecompileHandle, - asset_location: MultiLocation, + asset_location: Location, amount_of_tokens: U256, fee: U256, - destination: MultiLocation, + destination: Location, weight: WeightV2, ) -> EvmResult { // Read call arguments @@ -671,11 +671,11 @@ where asset_location, amount_of_tokens, fee, destination, weight); let call = orml_xtokens::Call::::transfer_multiasset_with_fee { - asset: Box::new(VersionedMultiAsset::V3( - (asset_location, amount_of_tokens).into(), + asset: Box::new(VersionedAsset::V4( + (asset_location.clone(), amount_of_tokens).into(), )), - fee: Box::new(VersionedMultiAsset::V3((asset_location, fee).into())), - dest: Box::new(VersionedMultiLocation::V3(destination)), + fee: Box::new(VersionedAsset::V4((asset_location, fee).into())), + dest: Box::new(VersionedLocation::V4(destination)), dest_weight_limit, }; @@ -697,7 +697,7 @@ where handle: &mut impl PrecompileHandle, currencies: BoundedVec>, fee_item: u32, - destination: MultiLocation, + destination: Location, weight: WeightV2, ) -> EvmResult { let currencies: Vec<_> = currencies.into(); @@ -731,7 +731,7 @@ where let call = orml_xtokens::Call::::transfer_multicurrencies { currencies, fee_item, - dest: Box::new(VersionedMultiLocation::V3(destination)), + dest: Box::new(VersionedLocation::V4(destination)), dest_weight_limit, }; @@ -753,7 +753,7 @@ where handle: &mut impl PrecompileHandle, assets: BoundedVec>, fee_item: u32, - destination: MultiLocation, + destination: Location, weight: WeightV2, ) -> EvmResult { let assets: Vec<_> = assets.into(); @@ -768,7 +768,7 @@ where weight: {:?}", assets, fee_item, destination, weight); - let multiasset_vec: EvmResult> = assets + let multiasset_vec: EvmResult> = assets .into_iter() .map(|evm_multiasset| { let to_balance: u128 = evm_multiasset @@ -781,15 +781,14 @@ where // Since multiassets sorts them, we need to check whether the index is still correct, // and error otherwise as there is not much we can do other than that - let multiassets = - MultiAssets::from_sorted_and_deduplicated(multiasset_vec?).map_err(|_| { - revert("In field Assets, Provided assets either not sorted nor deduplicated") - })?; + let multiassets = Assets::from_sorted_and_deduplicated(multiasset_vec?).map_err(|_| { + revert("In field Assets, Provided assets either not sorted nor deduplicated") + })?; let call = orml_xtokens::Call::::transfer_multiassets { - assets: Box::new(VersionedMultiAssets::V3(multiassets)), + assets: Box::new(VersionedAssets::V4(multiassets)), fee_item, - dest: Box::new(VersionedMultiLocation::V3(destination)), + dest: Box::new(VersionedLocation::V4(destination)), dest_weight_limit, }; @@ -855,12 +854,12 @@ impl From<(Address, U256)> for Currency { #[derive(Debug, Clone, solidity::Codec)] pub struct EvmMultiAsset { - location: MultiLocation, + location: Location, amount: U256, } -impl From<(MultiLocation, U256)> for EvmMultiAsset { - fn from(tuple: (MultiLocation, U256)) -> Self { +impl From<(Location, U256)> for EvmMultiAsset { + fn from(tuple: (Location, U256)) -> Self { EvmMultiAsset { location: tuple.0, amount: tuple.1, @@ -869,8 +868,8 @@ impl From<(MultiLocation, U256)> for EvmMultiAsset { } impl EvmMultiAsset { - pub fn get_location(&self) -> MultiLocation { - self.location + pub fn get_location(&self) -> Location { + self.location.clone() } pub fn get_amount(&self) -> U256 { diff --git a/precompiles/xcm/src/mock.rs b/precompiles/xcm/src/mock.rs index 3fc92e0c80..f73630d5f4 100644 --- a/precompiles/xcm/src/mock.rs +++ b/precompiles/xcm/src/mock.rs @@ -26,6 +26,7 @@ use frame_support::{ traits::{AsEnsureOriginWithArg, ConstU64, Everything, Nothing}, weights::Weight, }; +use once_cell::unsync::Lazy; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; @@ -59,19 +60,19 @@ pub type Block = frame_system::mocking::MockBlock; pub type CurrencyId = u128; /// Multilocations for assetId -const PARENT: MultiLocation = MultiLocation::parent(); -const PARACHAIN: MultiLocation = MultiLocation { +const PARENT: Location = Location::parent(); +const PARACHAIN: Lazy = Lazy::new(|| Location { parents: 1, - interior: Junctions::X1(Parachain(10)), -}; -const GENERAL_INDEX: MultiLocation = MultiLocation { + interior: [Parachain(10)].into(), +}); +const GENERAL_INDEX: Lazy = Lazy::new(|| Location { parents: 1, - interior: Junctions::X2(Parachain(10), GeneralIndex(20)), -}; -const LOCAL_ASSET: MultiLocation = MultiLocation { + interior: [Parachain(10), GeneralIndex(20)].into(), +}); +const LOCAL_ASSET: Lazy = Lazy::new(|| Location { parents: 0, - interior: Junctions::X1(GeneralIndex(20)), -}; + interior: [GeneralIndex(20)].into(), +}); pub const PRECOMPILE_ADDRESS: H160 = H160::repeat_byte(0x7B); pub const ASSET_PRECOMPILE_ADDRESS_PREFIX: &[u8] = &[255u8; 4]; @@ -168,40 +169,40 @@ impl AddressToAssetId for Runtime { pub struct CurrencyIdToMultiLocation; -impl sp_runtime::traits::Convert> for CurrencyIdToMultiLocation { - fn convert(currency: CurrencyId) -> Option { +impl sp_runtime::traits::Convert> for CurrencyIdToMultiLocation { + fn convert(currency: CurrencyId) -> Option { match currency { 1u128 => Some(PARENT), - 2u128 => Some(PARACHAIN), - 3u128 => Some(GENERAL_INDEX), - 4u128 => Some(LOCAL_ASSET), + 2u128 => Some((*PARACHAIN).clone()), + 3u128 => Some((*GENERAL_INDEX).clone()), + 4u128 => Some((*LOCAL_ASSET).clone()), _ => None, } } } -/// Convert `AccountId` to `MultiLocation`. -pub struct AccountIdToMultiLocation; -impl sp_runtime::traits::Convert for AccountIdToMultiLocation { - fn convert(account: AccountId) -> MultiLocation { - X1(AccountId32 { +/// Convert `AccountId` to `Location`. +pub struct AccountIdToLocation; +impl sp_runtime::traits::Convert for AccountIdToLocation { + fn convert(account: AccountId) -> Location { + AccountId32 { network: None, id: account.into(), - }) + } .into() } } -/// `MultiAsset` reserve location provider. It's based on `RelativeReserveProvider` and in +/// `Asset` reserve location provider. It's based on `RelativeReserveProvider` and in /// addition will convert self absolute location to relative location. pub struct AbsoluteAndRelativeReserveProvider(PhantomData); -impl> Reserve +impl> Reserve for AbsoluteAndRelativeReserveProvider { - fn reserve(asset: &MultiAsset) -> Option { + fn reserve(asset: &Asset) -> Option { RelativeReserveProvider::reserve(asset).map(|reserve_location| { if reserve_location == AbsoluteLocation::get() { - MultiLocation::here() + Location::here() } else { reserve_location } @@ -238,6 +239,12 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } #[derive(Debug, Clone, Copy)] @@ -296,7 +303,6 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = (); type MaxFreezes = (); } @@ -335,22 +341,21 @@ impl pallet_assets::Config for Runtime { } pub struct AssetIdConverter(PhantomData); -impl sp_runtime::traits::MaybeEquivalence - for AssetIdConverter +impl sp_runtime::traits::MaybeEquivalence for AssetIdConverter where AssetId: Clone + Eq + From, { - fn convert(a: &MultiLocation) -> Option { - if a.eq(&MultiLocation::parent()) { + fn convert(a: &Location) -> Option { + if a.eq(&Location::parent()) { Some(AssetId::from(1u8)) } else { None } } - fn convert_back(b: &AssetId) -> Option { + fn convert_back(b: &AssetId) -> Option { if b.eq(&AssetId::from(1u8)) { - Some(MultiLocation::parent()) + Some(Location::parent()) } else { None } @@ -392,8 +397,8 @@ impl pallet_evm::Config for Runtime { parameter_types! { pub RelayNetwork: Option = Some(NetworkId::Polkadot); pub const AnyNetwork: Option = None; - pub UniversalLocation: InteriorMultiLocation = X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(123)); - pub Ancestry: MultiLocation = Here.into(); + pub UniversalLocation: InteriorLocation = [GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(123)].into(); + pub Ancestry: Location = Here.into(); pub UnitWeightCost: u64 = 1_000; pub const MaxAssetsIntoHolding: u32 = 64; } @@ -412,20 +417,16 @@ pub type Barrier = ( pub struct LocalAssetTransactor; impl TransactAsset for LocalAssetTransactor { - fn deposit_asset( - _what: &MultiAsset, - _who: &MultiLocation, - _context: Option<&XcmContext>, - ) -> XcmResult { + fn deposit_asset(_what: &Asset, _who: &Location, _context: Option<&XcmContext>) -> XcmResult { Ok(()) } fn withdraw_asset( - _what: &MultiAsset, - _who: &MultiLocation, + _what: &Asset, + _who: &Location, _maybe_context: Option<&XcmContext>, - ) -> Result { - Ok(MultiAssets::new().into()) + ) -> Result { + Ok(Assets::new().into()) } } @@ -455,31 +456,30 @@ impl xcm_executor::Config for XcmConfig { type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; type Aliasers = Nothing; + type TransactionalProcessor = (); } parameter_types! { pub static AdvertisedXcmVersion: XcmVersion = 3; pub const MaxAssetsForTransfer: usize = 2; - pub const SelfLocation: MultiLocation = Here.into_location(); - pub SelfLocationAbsolute: MultiLocation = MultiLocation { + pub const SelfLocation: Location = Here.into_location(); + pub SelfLocationAbsolute: Location = Location { parents: 1, - interior: X1( - Parachain(123) - ) + interior: Parachain(123).into() }; } pub type LocalOriginToLocation = SignedToAccountId32; thread_local! { - pub static SENT_XCM: RefCell)>> = RefCell::new(Vec::new()); + pub static SENT_XCM: RefCell)>> = RefCell::new(Vec::new()); } -pub(crate) fn _sent_xcm() -> Vec<(MultiLocation, Xcm<()>)> { +pub(crate) fn _sent_xcm() -> Vec<(Location, Xcm<()>)> { SENT_XCM.with(|q| (*q.borrow()).clone()) } -pub(crate) fn take_sent_xcm() -> Vec<(MultiLocation, Xcm<()>)> { +pub(crate) fn take_sent_xcm() -> Vec<(Location, Xcm<()>)> { SENT_XCM.with(|q| { let mut r = Vec::new(); std::mem::swap(&mut r, &mut *q.borrow_mut()); @@ -489,15 +489,15 @@ pub(crate) fn take_sent_xcm() -> Vec<(MultiLocation, Xcm<()>)> { pub struct StoringRouter; impl SendXcm for StoringRouter { - type Ticket = (MultiLocation, Xcm<()>); + type Ticket = (Location, Xcm<()>); fn validate( - destination: &mut Option, + destination: &mut Option, message: &mut Option>, - ) -> SendResult<(MultiLocation, Xcm<()>)> { + ) -> SendResult<(Location, Xcm<()>)> { Ok(( (destination.take().unwrap(), message.take().unwrap()), - MultiAssets::new().into(), + Assets::new().into(), )) } @@ -540,7 +540,7 @@ impl orml_xtokens::Config for Runtime { type Balance = Balance; type CurrencyId = AssetId; type CurrencyIdConvert = CurrencyIdToMultiLocation; - type AccountIdToMultiLocation = AccountIdToMultiLocation; + type AccountIdToLocation = AccountIdToLocation; type SelfLocation = SelfLocation; type XcmExecutor = XcmExecutor; type Weigher = FixedWeightBounds; @@ -549,8 +549,10 @@ impl orml_xtokens::Config for Runtime { type MaxAssetsForTransfer = MaxAssetsForTransfer; // Default impl. Refer to `orml-xtokens` docs for more details. type MinXcmFee = DisabledParachainFee; - type MultiLocationsFilter = Everything; + type LocationsFilter = Everything; type ReserveProvider = AbsoluteAndRelativeReserveProvider; + type RateLimiter = (); + type RateLimiterId = (); } // Configure a mock runtime to test the pallet. @@ -559,7 +561,7 @@ construct_runtime!( { System: frame_system, Balances: pallet_balances, - Assets: pallet_assets, + PalletAssets: pallet_assets, Evm: pallet_evm, Timestamp: pallet_timestamp, XcmPallet: pallet_xcm, diff --git a/precompiles/xcm/src/tests.rs b/precompiles/xcm/src/tests.rs index 04af6b0efd..ab842c3ace 100644 --- a/precompiles/xcm/src/tests.rs +++ b/precompiles/xcm/src/tests.rs @@ -18,9 +18,6 @@ use crate::mock::*; use crate::*; -use xcm::latest::{ - AssetId, Fungibility, Junction, Junctions, MultiAsset, MultiAssets, MultiLocation, -}; use orml_xtokens::Event as XtokensEvent; use parity_scale_codec::Encode; @@ -247,15 +244,15 @@ mod xcm_old_interface_test { for (location, Xcm(instructions)) in take_sent_xcm() { assert_eq!( location, - MultiLocation { + Location { parents: 1, interior: Here } ); - let non_native_asset = MultiAsset { + let non_native_asset = Asset { fun: Fungible(42000), - id: xcm::v3::AssetId::from(MultiLocation { + id: xcm::v4::AssetId::from(Location { parents: 0, interior: Here, }), @@ -270,9 +267,9 @@ mod xcm_old_interface_test { .. }, DepositAsset { - beneficiary: MultiLocation { + beneficiary: Location { parents: 0, - interior: X1(_), + interior: Junctions::X1(_), }, .. } @@ -322,17 +319,17 @@ mod xcm_old_interface_test { for (location, Xcm(instructions)) in take_sent_xcm() { assert_eq!( location, - MultiLocation { + Location { parents: 1, interior: Here } ); - let native_asset = MultiAsset { + let native_asset = Asset { fun: Fungible(42000), - id: xcm::v3::AssetId::from(MultiLocation { + id: xcm::v4::AssetId::from(Location { parents: 0, - interior: X1(Parachain(123)), + interior: Parachain(123).into(), }), }; @@ -346,9 +343,9 @@ mod xcm_old_interface_test { .. }, DepositAsset { - beneficiary: MultiLocation { + beneficiary: Location { parents: 0, - interior: X1(_), + interior: Junctions::X1(_), }, .. } @@ -362,14 +359,15 @@ mod xcm_old_interface_test { #[test] fn test_send_clear_origin() { ExtBuilder::default().build().execute_with(|| { - let dest: MultiLocation = MultiLocation { + let dest: Location = Location { parents: 1, - interior: Junctions::X1(Junction::AccountId32 { + interior: AccountId32 { network: None, id: H256::repeat_byte(0xF1).into(), - }), + } + .into(), }; - let xcm_to_send = VersionedXcm::<()>::V3(Xcm(vec![ClearOrigin])).encode(); + let xcm_to_send = VersionedXcm::<()>::V4(Xcm(vec![ClearOrigin])).encode(); precompiles() .prepare_test( TestAccount::Alice, @@ -399,23 +397,23 @@ mod xcm_new_interface_test { let weight = WeightV2::from(3_000_000_000u64, 1024); ExtBuilder::default().build().execute_with(|| { - let parent_destination = MultiLocation { + let parent_destination = Location { parents: 1, - interior: Junctions::X1(Junction::AccountId32 { + interior: Junctions::from(Junction::AccountId32 { network: None, id: [1u8; 32], }), }; - let sibling_parachain_location = MultiLocation { + let sibling_parachain_location = Location { parents: 1, - interior: Junctions::X2( + interior: Junctions::from([ Junction::Parachain(10), Junction::AccountId32 { network: None, id: [1u8; 32], }, - ), + ]), }; // sending relay token back to relay chain @@ -426,20 +424,20 @@ mod xcm_new_interface_test { PrecompileCall::transfer { currency_address: Address::from(Runtime::asset_id_to_address(1u128)), amount_of_tokens: 42000u64.into(), - destination: parent_destination, + destination: parent_destination.clone(), weight: weight.clone(), }, ) .expect_no_logs() .execute_returns(true); - let expected_asset: MultiAsset = MultiAsset { - id: AssetId::Concrete(CurrencyIdToMultiLocation::convert(1).unwrap()), + let expected_asset: Asset = Asset { + id: AssetId(CurrencyIdToMultiLocation::convert(1).unwrap()), fun: Fungibility::Fungible(42000), }; let expected: crate::mock::RuntimeEvent = - mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredMultiAssets { + mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredAssets { sender: TestAccount::Alice.into(), assets: vec![expected_asset.clone()].into(), fee: expected_asset, @@ -456,20 +454,20 @@ mod xcm_new_interface_test { PrecompileCall::transfer { currency_address: Address::from(Runtime::asset_id_to_address(2u128)), amount_of_tokens: 42000u64.into(), - destination: sibling_parachain_location, + destination: sibling_parachain_location.clone(), weight, }, ) .expect_no_logs() .execute_returns(true); - let expected_asset: MultiAsset = MultiAsset { - id: AssetId::Concrete(CurrencyIdToMultiLocation::convert(2).unwrap()), + let expected_asset: Asset = Asset { + id: AssetId(CurrencyIdToMultiLocation::convert(2).unwrap()), fun: Fungibility::Fungible(42000), }; let expected: crate::mock::RuntimeEvent = - mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredMultiAssets { + mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredAssets { sender: TestAccount::Alice.into(), assets: vec![expected_asset.clone()].into(), fee: expected_asset, @@ -483,9 +481,9 @@ mod xcm_new_interface_test { #[test] fn xtokens_transfer_works_for_native_asset() { let weight = WeightV2::from(3_000_000_000u64, 1024); - let parent_destination = MultiLocation { + let parent_destination = Location { parents: 1, - interior: Junctions::X1(Junction::AccountId32 { + interior: Junctions::from(Junction::AccountId32 { network: None, id: [1u8; 32], }), @@ -500,20 +498,20 @@ mod xcm_new_interface_test { PrecompileCall::transfer { currency_address: Address::from(NATIVE_ADDRESS), amount_of_tokens: 42000u64.into(), - destination: parent_destination, + destination: parent_destination.clone(), weight: weight.clone(), }, ) .expect_no_logs() .execute_returns(true); - let expected_asset: MultiAsset = MultiAsset { - id: AssetId::Concrete(Here.into()), + let expected_asset: Asset = Asset { + id: AssetId(Here.into()), fun: Fungibility::Fungible(42000), }; let expected: crate::mock::RuntimeEvent = - mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredMultiAssets { + mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredAssets { sender: TestAccount::Alice.into(), assets: vec![expected_asset.clone()].into(), fee: expected_asset, @@ -528,9 +526,9 @@ mod xcm_new_interface_test { fn xtokens_transfer_with_fee_works() { let weight = WeightV2::from(3_000_000_000u64, 1024); ExtBuilder::default().build().execute_with(|| { - let parent_destination = MultiLocation { + let parent_destination = Location { parents: 1, - interior: Junctions::X1(Junction::AccountId32 { + interior: Junctions::from(Junction::AccountId32 { network: None, id: [1u8; 32], }), @@ -545,24 +543,24 @@ mod xcm_new_interface_test { currency_address: Address::from(Runtime::asset_id_to_address(1u128)), amount_of_tokens: 42000u64.into(), fee: 50.into(), - destination: parent_destination, + destination: parent_destination.clone(), weight, }, ) .expect_no_logs() .execute_returns(true); - let expected_asset: MultiAsset = MultiAsset { - id: AssetId::Concrete(CurrencyIdToMultiLocation::convert(1).unwrap()), + let expected_asset: Asset = Asset { + id: AssetId(CurrencyIdToMultiLocation::convert(1).unwrap()), fun: Fungibility::Fungible(42000), }; - let expected_fee: MultiAsset = MultiAsset { - id: AssetId::Concrete(CurrencyIdToMultiLocation::convert(1).unwrap()), + let expected_fee: Asset = Asset { + id: AssetId(CurrencyIdToMultiLocation::convert(1).unwrap()), fun: Fungibility::Fungible(50), }; let expected: crate::mock::RuntimeEvent = - mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredMultiAssets { + mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredAssets { sender: TestAccount::Alice.into(), assets: vec![expected_asset.clone(), expected_fee.clone()].into(), fee: expected_fee, @@ -576,9 +574,9 @@ mod xcm_new_interface_test { #[test] fn xtokens_transfer_with_fee_works_for_native_asset() { let weight = WeightV2::from(3_000_000_000u64, 1024); - let parent_destination = MultiLocation { + let parent_destination = Location { parents: 1, - interior: Junctions::X1(Junction::AccountId32 { + interior: Junctions::from(Junction::AccountId32 { network: None, id: [1u8; 32], }), @@ -594,23 +592,23 @@ mod xcm_new_interface_test { currency_address: Address::from(NATIVE_ADDRESS), amount_of_tokens: 42000u64.into(), fee: 50.into(), - destination: parent_destination, + destination: parent_destination.clone(), weight, }, ) .expect_no_logs() .execute_returns(true); - let expected_asset: MultiAsset = MultiAsset { - id: AssetId::Concrete(Here.into()), + let expected_asset: Asset = Asset { + id: AssetId(Here.into()), fun: Fungibility::Fungible(42000), }; - let expected_fee: MultiAsset = MultiAsset { - id: AssetId::Concrete(Here.into()), + let expected_fee: Asset = Asset { + id: AssetId(Here.into()), fun: Fungibility::Fungible(50), }; let expected: crate::mock::RuntimeEvent = - mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredMultiAssets { + mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredAssets { sender: TestAccount::Alice.into(), assets: vec![expected_asset.clone(), expected_fee.clone()].into(), fee: expected_fee, @@ -625,28 +623,28 @@ mod xcm_new_interface_test { fn transfer_multiasset_works() { let weight = WeightV2::from(3_000_000_000u64, 1024); ExtBuilder::default().build().execute_with(|| { - let relay_token_location = MultiLocation { + let relay_token_location = Location { parents: 1, interior: Junctions::Here, }; - let relay_destination = MultiLocation { + let relay_destination = Location { parents: 1, - interior: Junctions::X1(Junction::AccountId32 { + interior: Junctions::from(Junction::AccountId32 { network: None, id: [1u8; 32], }), }; - let para_destination = MultiLocation { + let para_destination = Location { parents: 1, - interior: Junctions::X2( + interior: Junctions::from([ Junction::Parachain(10), Junction::AccountId32 { network: None, id: [1u8; 32], }, - ), + ]), }; - let native_token_location: MultiLocation = (Here).into(); + let native_token_location: Location = (Here).into(); let amount = 4200u64; // relay token to relay @@ -655,21 +653,21 @@ mod xcm_new_interface_test { TestAccount::Alice, PRECOMPILE_ADDRESS, PrecompileCall::transfer_multiasset { - asset_location: relay_token_location, + asset_location: relay_token_location.clone(), amount_of_tokens: amount.into(), - destination: relay_destination, + destination: relay_destination.clone(), weight: weight.clone(), }, ) .expect_no_logs() .execute_returns(true); - let expected_asset: MultiAsset = MultiAsset { - id: AssetId::Concrete(relay_token_location), + let expected_asset: Asset = Asset { + id: AssetId(relay_token_location.clone()), fun: Fungibility::Fungible(amount.into()), }; let expected: crate::mock::RuntimeEvent = - mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredMultiAssets { + mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredAssets { sender: TestAccount::Alice.into(), assets: vec![expected_asset.clone()].into(), fee: expected_asset, @@ -686,25 +684,25 @@ mod xcm_new_interface_test { TestAccount::Alice, PRECOMPILE_ADDRESS, PrecompileCall::transfer_multiasset { - asset_location: relay_token_location, + asset_location: relay_token_location.clone(), amount_of_tokens: amount.into(), - destination: para_destination, + destination: para_destination.clone(), weight: weight.clone(), }, ) .expect_no_logs() .execute_returns(true); - let expected_asset: MultiAsset = MultiAsset { - id: AssetId::Concrete(relay_token_location), + let expected_asset: Asset = Asset { + id: AssetId(relay_token_location), fun: Fungibility::Fungible(amount.into()), }; let expected: crate::mock::RuntimeEvent = - mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredMultiAssets { + mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredAssets { sender: TestAccount::Alice.into(), assets: vec![expected_asset.clone()].into(), fee: expected_asset, - dest: para_destination, + dest: para_destination.clone(), }) .into(); @@ -718,21 +716,21 @@ mod xcm_new_interface_test { TestAccount::Alice, PRECOMPILE_ADDRESS, PrecompileCall::transfer_multiasset { - asset_location: native_token_location, // zero address by convention + asset_location: native_token_location.clone(), // zero address by convention amount_of_tokens: amount.into(), - destination: para_destination, + destination: para_destination.clone(), weight: weight.clone(), }, ) .expect_no_logs() .execute_returns(true); - let expected_asset: MultiAsset = MultiAsset { - id: AssetId::Concrete(native_token_location), + let expected_asset: Asset = Asset { + id: AssetId(native_token_location), fun: Fungibility::Fungible(amount.into()), }; let expected: crate::mock::RuntimeEvent = - mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredMultiAssets { + mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredAssets { sender: TestAccount::Alice.into(), assets: vec![expected_asset.clone()].into(), fee: expected_asset, @@ -747,12 +745,12 @@ mod xcm_new_interface_test { #[test] fn transfer_multi_currencies_works() { - let destination = MultiLocation::new( + let destination = Location::new( 1, - Junctions::X1(Junction::AccountId32 { + Junctions::from([Junction::AccountId32 { network: None, id: [1u8; 32], - }), + }]), ); let weight = WeightV2::from(3_000_000_000u64, 1024); @@ -781,24 +779,24 @@ mod xcm_new_interface_test { PrecompileCall::transfer_multi_currencies { currencies, fee_item: 0u32, - destination, + destination: destination.clone(), weight, }, ) .expect_no_logs() .execute_returns(true); - let expected_asset_1: MultiAsset = MultiAsset { - id: AssetId::Concrete(CurrencyIdToMultiLocation::convert(2u128).unwrap()), + let expected_asset_1: Asset = Asset { + id: AssetId(CurrencyIdToMultiLocation::convert(2u128).unwrap()), fun: Fungibility::Fungible(500), }; - let expected_asset_2: MultiAsset = MultiAsset { - id: AssetId::Concrete(CurrencyIdToMultiLocation::convert(3u128).unwrap()), + let expected_asset_2: Asset = Asset { + id: AssetId(CurrencyIdToMultiLocation::convert(3u128).unwrap()), fun: Fungibility::Fungible(500), }; let expected: crate::mock::RuntimeEvent = - mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredMultiAssets { + mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredAssets { sender: TestAccount::Alice.into(), assets: vec![expected_asset_1.clone(), expected_asset_2].into(), fee: expected_asset_1, @@ -811,12 +809,12 @@ mod xcm_new_interface_test { #[test] fn transfer_multi_currencies_cannot_insert_more_than_max() { - let destination = MultiLocation::new( + let destination = Location::new( 1, - Junctions::X1(Junction::AccountId32 { + Junctions::from([Junction::AccountId32 { network: None, id: [1u8; 32], - }), + }]), ); let weight = WeightV2::from(3_000_000_000u64, 1024); // we only allow upto 2 currencies to be transfered @@ -858,26 +856,24 @@ mod xcm_new_interface_test { #[test] fn transfer_multiassets_works() { - let destination = MultiLocation::new( + let destination = Location::new( 1, - Junctions::X2( + Junctions::from([ Junction::Parachain(2), Junction::AccountId32 { network: None, id: [1u8; 32], }, - ), + ]), ); let weight = WeightV2::from(3_000_000_000u64, 1024); - let asset_1_location = MultiLocation::new( - 1, - Junctions::X2(Junction::Parachain(2), Junction::GeneralIndex(0u128)), - ); - let asset_2_location = MultiLocation::new( + let asset_1_location = Location::new( 1, - Junctions::X2(Junction::Parachain(2), Junction::GeneralIndex(1u128)), + Junctions::from([Junction::Parachain(2), Junction::GeneralIndex(0u128)]), ); + let asset_2_location = + Location::new(1, Junctions::from([Parachain(2), GeneralIndex(1u128)])); let assets = vec![ (asset_1_location.clone(), U256::from(500)).into(), @@ -885,7 +881,7 @@ mod xcm_new_interface_test { ] .into(); - let multiassets = MultiAssets::from_sorted_and_deduplicated(vec![ + let multiassets = Assets::from_sorted_and_deduplicated(vec![ (asset_1_location.clone(), 500).into(), (asset_2_location, 500).into(), ]) @@ -899,7 +895,7 @@ mod xcm_new_interface_test { PrecompileCall::transfer_multi_assets { assets, fee_item: 0u32, - destination, + destination: destination.clone(), weight, }, ) @@ -907,7 +903,7 @@ mod xcm_new_interface_test { .execute_returns(true); let expected: crate::mock::RuntimeEvent = - mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredMultiAssets { + mock::RuntimeEvent::Xtokens(XtokensEvent::TransferredAssets { sender: TestAccount::Alice.into(), assets: multiassets, fee: (asset_1_location, 500).into(), @@ -922,30 +918,24 @@ mod xcm_new_interface_test { fn transfer_multiassets_cannot_insert_more_than_max() { // We have definaed MaxAssetsForTransfer = 2, // so any number greater than MaxAssetsForTransfer will result in error - let destination = MultiLocation::new( + let destination = Location::new( 1, - Junctions::X2( - Junction::Parachain(2), - Junction::AccountId32 { + Junctions::from([ + Parachain(2), + AccountId32 { network: None, id: [1u8; 32], }, - ), + ]), ); let weight = WeightV2::from(3_000_000_000u64, 1024); - let asset_1_location = MultiLocation::new( - 1, - Junctions::X2(Junction::Parachain(2), Junction::GeneralIndex(0u128)), - ); - let asset_2_location = MultiLocation::new( - 1, - Junctions::X2(Junction::Parachain(2), Junction::GeneralIndex(1u128)), - ); - let asset_3_location = MultiLocation::new( - 1, - Junctions::X2(Junction::Parachain(2), Junction::GeneralIndex(3u128)), - ); + let asset_1_location = + Location::new(1, Junctions::from([Parachain(2), GeneralIndex(0u128)])); + let asset_2_location = + Location::new(1, Junctions::from([Parachain(2), GeneralIndex(1u128)])); + let asset_3_location = + Location::new(1, Junctions::from([Parachain(2), GeneralIndex(3u128)])); let assets = vec![ (asset_1_location.clone(), U256::from(500)).into(), diff --git a/precompiles/xvm/src/mock.rs b/precompiles/xvm/src/mock.rs index 4bd4dc7241..a9228843f8 100644 --- a/precompiles/xvm/src/mock.rs +++ b/precompiles/xvm/src/mock.rs @@ -149,6 +149,12 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } #[derive(Debug, Clone, Copy)] @@ -204,7 +210,6 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml index 4eff028d0e..39ad45237f 100644 --- a/primitives/Cargo.toml +++ b/primitives/Cargo.toml @@ -50,6 +50,9 @@ pallet-evm-precompile-assets-erc20 = { workspace = true } pallet-evm-precompile-dispatch = { workspace = true } pallet-xc-asset-config = { workspace = true } +[dev-dependencies] +once_cell = { workspace = true } + [features] default = ["std"] std = [ @@ -96,6 +99,7 @@ runtime-benchmarks = [ "pallet-collective/runtime-benchmarks", "pallet-membership/runtime-benchmarks", "pallet-treasury/runtime-benchmarks", + "orml-oracle/runtime-benchmarks", ] try-runtime = [ "pallet-contracts/try-runtime", diff --git a/primitives/src/benchmarks.rs b/primitives/src/benchmarks.rs index 0272689029..c144d8a8c7 100644 --- a/primitives/src/benchmarks.rs +++ b/primitives/src/benchmarks.rs @@ -45,25 +45,25 @@ where { /// Get the worst case holding for xcm benchmarks /// Scenario: Max allowed fungible assets (pallet_assets) - pub fn worst_case_holding() -> MultiAssets { + pub fn worst_case_holding() -> Assets { let fungibles = MAX_ASSETS - 1; let fungibles_amount: u128 = 100_000; let assets = (0..fungibles) - .map(|i| MultiAsset { - id: Concrete(GeneralIndex(i as u128).into()), + .map(|i| Asset { + id: AssetId(GeneralIndex(i as u128).into()), fun: Fungible(fungibles_amount * i as u128), }) // adding relay asset as it is used in buy execution benchmarks - .chain(core::iter::once(MultiAsset { - id: Concrete(MultiLocation::parent()), + .chain(core::iter::once(Asset { + id: AssetId(Location::parent()), fun: Fungible(u128::MAX), })) .collect::>(); // register the assets for (i, asset) in assets.iter().enumerate() { - if let MultiAsset { - id: Concrete(location), + if let Asset { + id: AssetId(location), fun: Fungible(_), } = asset { diff --git a/primitives/src/oracle.rs b/primitives/src/oracle.rs index 48a1289120..643075cb09 100644 --- a/primitives/src/oracle.rs +++ b/primitives/src/oracle.rs @@ -23,9 +23,10 @@ use sp_std::vec::Vec; /// Interface for fetching price of the native token. pub trait PriceProvider { /// Get the price of the native token. - fn average_price() -> CurrencyAmount; + fn average_price() -> Price; } +pub type Price = FixedU128; pub type CurrencyAmount = FixedU128; #[derive(Encode, Decode, MaxEncodedLen, Clone, Copy, Debug, PartialEq, Eq, TypeInfo)] @@ -34,10 +35,8 @@ pub enum CurrencyId { SDN, } -type TimestampedValue = orml_oracle::TimestampedValue< - CurrencyAmount, - <>::Time as Time>::Moment, ->; +type TimestampedValue = + orml_oracle::TimestampedValue>::Time as Time>::Moment>; /// A dummy implementation of `CombineData` trait that does nothing. pub struct DummyCombineData(PhantomData<(T, I)>); diff --git a/primitives/src/xcm/mod.rs b/primitives/src/xcm/mod.rs index 36350bd62c..65db50e0ec 100644 --- a/primitives/src/xcm/mod.rs +++ b/primitives/src/xcm/mod.rs @@ -61,17 +61,17 @@ pub const MAX_ASSETS: u32 = 64; /// This implementation relies on `XcAssetConfig` pallet to handle mapping. /// In case asset location hasn't been mapped, it means the asset isn't supported (yet). pub struct AssetLocationIdConverter(PhantomData<(AssetId, AssetMapper)>); -impl MaybeEquivalence +impl MaybeEquivalence for AssetLocationIdConverter where AssetId: Clone + Eq + Bounded, AssetMapper: XcAssetLocation, { - fn convert(location: &MultiLocation) -> Option { + fn convert(location: &Location) -> Option { AssetMapper::get_asset_id(location.clone()) } - fn convert_back(id: &AssetId) -> Option { + fn convert_back(id: &AssetId) -> Option { AssetMapper::get_xc_asset_location(id.clone()) } } @@ -85,8 +85,8 @@ pub struct FixedRateOfForeignAsset { weight: Weight, /// Total consumed assets consumed: u128, - /// Asset Id (as MultiLocation) and units per second for payment - asset_location_and_units_per_second: Option<(MultiLocation, u128)>, + /// Asset Id (as Location) and units per second for payment + asset_location_and_units_per_second: Option<(Location, u128)>, _pd: PhantomData<(T, R)>, } @@ -103,9 +103,9 @@ impl WeightTrader for FixedRateOfForeig fn buy_weight( &mut self, weight: Weight, - payment: xcm_executor::Assets, + payment: xcm_executor::AssetsInHolding, _: &XcmContext, - ) -> Result { + ) -> Result { log::trace!( target: "xcm::weight", "FixedRateOfForeignAsset::buy_weight weight: {:?}, payment: {:?}", @@ -119,8 +119,8 @@ impl WeightTrader for FixedRateOfForeig .ok_or(XcmError::TooExpensive)?; match payment_asset { - MultiAsset { - id: xcm::latest::AssetId::Concrete(asset_location), + Asset { + id: AssetId(asset_location), fun: Fungibility::Fungible(_), } => { if let Some(units_per_second) = T::get_units_per_second(asset_location.clone()) { @@ -160,7 +160,7 @@ impl WeightTrader for FixedRateOfForeig } } - fn refund_weight(&mut self, weight: Weight, _: &XcmContext) -> Option { + fn refund_weight(&mut self, weight: Weight, _: &XcmContext) -> Option { log::trace!(target: "xcm::weight", "FixedRateOfForeignAsset::refund_weight weight: {:?}", weight); if let Some((asset_location, units_per_second)) = @@ -200,19 +200,16 @@ impl Drop for FixedRateOfForeignAsset for ReserveAssetFilter { - fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool { +impl ContainsPair for ReserveAssetFilter { + fn contains(asset: &Asset, origin: &Location) -> bool { // We assume that relay chain and sibling parachain assets are trusted reserves for their assets - let reserve_location = if let Concrete(location) = &asset.id { - match (location.parents, location.first_interior()) { - // sibling parachain - (1, Some(Parachain(id))) => Some(MultiLocation::new(1, X1(Parachain(*id)))), - // relay chain - (1, _) => Some(MultiLocation::parent()), - _ => None, - } - } else { - None + let AssetId(location) = &asset.id; + let reserve_location = match (location.parents, location.first_interior()) { + // sibling parachain + (1, Some(Parachain(id))) => Some(Location::new(1, [Parachain(*id)])), + // relay chain + (1, _) => Some(Location::parent()), + _ => None, }; if let Some(ref reserve) = reserve_location { @@ -238,7 +235,7 @@ impl< FeeDestination: Get, > TakeRevenue for XcmFungibleFeeHandler { - fn take_revenue(revenue: MultiAsset) { + fn take_revenue(revenue: Asset) { match Matcher::matches_fungibles(&revenue) { Ok((asset_id, amount)) => { if amount > Zero::zero() { @@ -268,28 +265,28 @@ impl< } } -/// Convert `AccountId` to `MultiLocation`. +/// Convert `AccountId` to `Location`. pub struct AccountIdToMultiLocation; -impl Convert for AccountIdToMultiLocation { - fn convert(account: AccountId) -> MultiLocation { - X1(AccountId32 { +impl Convert for AccountIdToMultiLocation { + fn convert(account: AccountId) -> Location { + AccountId32 { network: None, id: account.into(), - }) + } .into() } } -/// `MultiAsset` reserve location provider. It's based on `RelativeReserveProvider` and in +/// `Asset` reserve location provider. It's based on `RelativeReserveProvider` and in /// addition will convert self absolute location to relative location. pub struct AbsoluteAndRelativeReserveProvider(PhantomData); -impl> Reserve +impl> Reserve for AbsoluteAndRelativeReserveProvider { - fn reserve(asset: &MultiAsset) -> Option { + fn reserve(asset: &Asset) -> Option { RelativeReserveProvider::reserve(asset).map(|reserve_location| { if reserve_location == AbsoluteLocation::get() { - MultiLocation::here() + Location::here() } else { reserve_location } @@ -309,9 +306,9 @@ const MAX_ASSETS_FOR_BUY_EXECUTION: usize = 2; /// Only allows for `TeleportAsset`, `WithdrawAsset`, `ClaimAsset` and `ReserveAssetDeposit` XCMs /// because they are the only ones that place assets in the Holding Register to pay for execution. pub struct AllowTopLevelPaidExecutionFrom(PhantomData); -impl> ShouldExecute for AllowTopLevelPaidExecutionFrom { +impl> ShouldExecute for AllowTopLevelPaidExecutionFrom { fn should_execute( - origin: &MultiLocation, + origin: &Location, instructions: &mut [Instruction], max_weight: Weight, _properties: &mut Properties, diff --git a/primitives/src/xcm/tests.rs b/primitives/src/xcm/tests.rs index 79b75b91f7..480c98f8dd 100644 --- a/primitives/src/xcm/tests.rs +++ b/primitives/src/xcm/tests.rs @@ -18,39 +18,40 @@ use super::*; use frame_support::assert_ok; +use once_cell::unsync::Lazy; use sp_runtime::traits::{MaybeEquivalence, Zero}; type AssetId = u128; // Primitive, perhaps I improve it later -const PARENT: MultiLocation = MultiLocation::parent(); -const PARACHAIN: MultiLocation = MultiLocation { +const PARENT: Location = Location::parent(); +const PARACHAIN: Lazy = Lazy::new(|| Location { parents: 1, - interior: Junctions::X1(Parachain(10)), -}; -const GENERAL_INDEX: MultiLocation = MultiLocation { + interior: [Parachain(10)].into(), +}); +const GENERAL_INDEX: Lazy = Lazy::new(|| Location { parents: 2, - interior: Junctions::X1(GeneralIndex(20)), -}; + interior: [GeneralIndex(20)].into(), +}); const RELAY_ASSET: AssetId = AssetId::MAX; /// Helper struct used for testing `AssetLocationIdConverter` struct AssetLocationMapper; impl XcAssetLocation for AssetLocationMapper { - fn get_xc_asset_location(asset_id: AssetId) -> Option { + fn get_xc_asset_location(asset_id: AssetId) -> Option { match asset_id { RELAY_ASSET => Some(PARENT), - 20 => Some(PARACHAIN), - 30 => Some(GENERAL_INDEX), + 20 => Some((*PARACHAIN).clone()), + 30 => Some((*GENERAL_INDEX).clone()), _ => None, } } - fn get_asset_id(asset_location: MultiLocation) -> Option { + fn get_asset_id(asset_location: Location) -> Option { match asset_location { a if a == PARENT => Some(RELAY_ASSET), - a if a == PARACHAIN => Some(20), - a if a == GENERAL_INDEX => Some(30), + a if a == (*PARACHAIN).clone() => Some(20), + a if a == (*GENERAL_INDEX).clone() => Some(30), _ => None, } } @@ -59,11 +60,11 @@ impl XcAssetLocation for AssetLocationMapper { /// Helper struct used for testing `FixedRateOfForeignAsset` struct ExecutionPayment; impl ExecutionPaymentRate for ExecutionPayment { - fn get_units_per_second(asset_location: MultiLocation) -> Option { + fn get_units_per_second(asset_location: Location) -> Option { match asset_location { a if a == PARENT => Some(1_000_000), - a if a == PARACHAIN => Some(2_000_000), - a if a == GENERAL_INDEX => Some(3_000_000), + a if a == *PARACHAIN => Some(2_000_000), + a if a == *GENERAL_INDEX => Some(3_000_000), _ => None, } } @@ -76,23 +77,23 @@ fn execution_fee(weight: Weight, units_per_second: u128) -> u128 { #[test] fn asset_location_to_id() { - // Test cases where the MultiLocation is valid + // Test cases where the Location is valid assert_eq!( AssetLocationIdConverter::::convert(&PARENT), Some(u128::MAX) ); assert_eq!( - AssetLocationIdConverter::::convert(&PARACHAIN), + AssetLocationIdConverter::::convert(&*PARACHAIN), Some(20) ); assert_eq!( - AssetLocationIdConverter::::convert(&GENERAL_INDEX), + AssetLocationIdConverter::::convert(&*GENERAL_INDEX), Some(30) ); - // Test case where MultiLocation isn't supported + // Test case where Location isn't supported assert_eq!( - AssetLocationIdConverter::::convert(&MultiLocation::here()), + AssetLocationIdConverter::::convert(&Location::here()), None ); } @@ -106,11 +107,11 @@ fn asset_id_to_location() { ); assert_eq!( AssetLocationIdConverter::::convert_back(&20), - Some(PARACHAIN) + Some((*PARACHAIN).clone()) ); assert_eq!( AssetLocationIdConverter::::convert_back(&30), - Some(GENERAL_INDEX) + Some((*GENERAL_INDEX).clone()) ); // Test case where the AssetId isn't supported @@ -126,14 +127,14 @@ fn fixed_rate_of_foreign_asset_buy_is_ok() { // The amount we have designated for payment (doesn't mean it will be used though) let total_payment = 10_000; - let payment_multi_asset = MultiAsset { - id: xcm::latest::AssetId::Concrete(PARENT), + let payment_multi_asset = Asset { + id: xcm::latest::AssetId(PARENT), fun: Fungibility::Fungible(total_payment), }; let weight: Weight = Weight::from_parts(1_000_000_000, 0); let ctx = XcmContext { // arbitary ML - origin: Some(MultiLocation::here()), + origin: Some(Location::here()), message_id: XcmHash::default(), topic: None, }; @@ -151,7 +152,7 @@ fn fixed_rate_of_foreign_asset_buy_is_ok() { // We expect only one unused payment asset and specific amount assert_eq!(assets.len(), 1); assert_ok!(assets.ensure_contains( - &MultiAsset::from((PARENT, total_payment - expected_execution_fee)).into() + &Asset::from((PARENT, total_payment - expected_execution_fee)).into() )); assert_eq!(fixed_rate_trader.consumed, expected_execution_fee); @@ -182,7 +183,7 @@ fn fixed_rate_of_foreign_asset_buy_is_ok() { // We expect only one unused payment asset and specific amount assert_eq!(assets.len(), 1); assert_ok!(assets.ensure_contains( - &MultiAsset::from((PARENT, total_payment - expected_execution_fee)).into() + &Asset::from((PARENT, total_payment - expected_execution_fee)).into() )); assert_eq!( @@ -206,15 +207,15 @@ fn fixed_rate_of_foreign_asset_buy_is_ok() { // Note that the concrete asset type differs now from previous buys let total_payment = 20_000; - let payment_multi_asset = MultiAsset { - id: xcm::latest::AssetId::Concrete(PARACHAIN), + let payment_multi_asset = Asset { + id: xcm::latest::AssetId((*PARACHAIN).clone()), fun: Fungibility::Fungible(total_payment), }; let weight: Weight = Weight::from_parts(1_750_000_000, 0); let expected_execution_fee = execution_fee( weight, - ExecutionPayment::get_units_per_second(PARACHAIN).unwrap(), + ExecutionPayment::get_units_per_second((*PARACHAIN).clone()).unwrap(), ); assert!(expected_execution_fee > 0); // sanity check @@ -223,7 +224,7 @@ fn fixed_rate_of_foreign_asset_buy_is_ok() { // We expect only one unused payment asset and specific amount assert_eq!(assets.len(), 1); assert_ok!(assets.ensure_contains( - &MultiAsset::from((PARACHAIN, total_payment - expected_execution_fee)).into() + &Asset::from(((*PARACHAIN).clone(), total_payment - expected_execution_fee)).into() )); assert_eq!(fixed_rate_trader.weight, weight + old_weight); @@ -248,14 +249,14 @@ fn fixed_rate_of_foreign_asset_buy_execution_fails() { // The amount we have designated for payment (doesn't mean it will be used though) let total_payment = 1000; - let payment_multi_asset = MultiAsset { - id: xcm::latest::AssetId::Concrete(PARENT), + let payment_multi_asset = Asset { + id: xcm::latest::AssetId(PARENT), fun: Fungibility::Fungible(total_payment), }; let weight: Weight = Weight::from_parts(3_000_000_000, 0); let ctx = XcmContext { // arbitary ML - origin: Some(MultiLocation::here()), + origin: Some(Location::here()), message_id: XcmHash::default(), topic: None, }; @@ -275,8 +276,8 @@ fn fixed_rate_of_foreign_asset_buy_execution_fails() { ); // Try to pay with unsupported funds, expect failure - let payment_multi_asset = MultiAsset { - id: xcm::latest::AssetId::Concrete(MultiLocation::here()), + let payment_multi_asset = Asset { + id: xcm::latest::AssetId(Location::here()), fun: Fungibility::Fungible(total_payment), }; assert_eq!( @@ -291,14 +292,14 @@ fn fixed_rate_of_foreign_asset_refund_is_ok() { // The amount we have designated for payment (doesn't mean it will be used though) let total_payment = 10_000; - let payment_multi_asset = MultiAsset { - id: xcm::latest::AssetId::Concrete(PARENT), + let payment_multi_asset = Asset { + id: xcm::latest::AssetId(PARENT), fun: Fungibility::Fungible(total_payment), }; let weight: Weight = Weight::from_parts(1_000_000_000, 0); let ctx = XcmContext { // arbitary ML - origin: Some(MultiLocation::here()), + origin: Some(Location::here()), message_id: XcmHash::default(), topic: None, }; @@ -338,17 +339,17 @@ fn fixed_rate_of_foreign_asset_refund_is_ok() { #[test] fn reserve_asset_filter_for_sibling_parachain_is_ok() { - let asset_xc_location = MultiLocation { + let asset_xc_location = Location { parents: 1, - interior: X2(Parachain(20), GeneralIndex(30)), + interior: [Parachain(20), GeneralIndex(30)].into(), }; - let multi_asset = MultiAsset { - id: xcm::latest::AssetId::Concrete(asset_xc_location), + let multi_asset = Asset { + id: xcm::latest::AssetId(asset_xc_location), fun: Fungibility::Fungible(123456), }; - let origin = MultiLocation { + let origin = Location { parents: 1, - interior: X1(Parachain(20)), + interior: [Parachain(20)].into(), }; assert!(ReserveAssetFilter::contains(&multi_asset, &origin)); @@ -356,15 +357,15 @@ fn reserve_asset_filter_for_sibling_parachain_is_ok() { #[test] fn reserve_asset_filter_for_relay_chain_is_ok() { - let asset_xc_location = MultiLocation { + let asset_xc_location = Location { parents: 1, interior: Here, }; - let multi_asset = MultiAsset { - id: xcm::latest::AssetId::Concrete(asset_xc_location), + let multi_asset = Asset { + id: xcm::latest::AssetId(asset_xc_location), fun: Fungibility::Fungible(123456), }; - let origin = MultiLocation { + let origin = Location { parents: 1, interior: Here, }; @@ -374,15 +375,15 @@ fn reserve_asset_filter_for_relay_chain_is_ok() { #[test] fn reserve_asset_filter_with_origin_mismatch() { - let asset_xc_location = MultiLocation { + let asset_xc_location = Location { parents: 1, - interior: X2(Parachain(20), GeneralIndex(30)), + interior: [Parachain(20), GeneralIndex(30)].into(), }; - let multi_asset = MultiAsset { - id: xcm::latest::AssetId::Concrete(asset_xc_location), + let multi_asset = Asset { + id: xcm::latest::AssetId(asset_xc_location), fun: Fungibility::Fungible(123456), }; - let origin = MultiLocation { + let origin = Location { parents: 1, interior: Here, }; @@ -393,15 +394,15 @@ fn reserve_asset_filter_with_origin_mismatch() { #[test] fn reserve_asset_filter_for_unsupported_asset_multi_location() { // 1st case - let asset_xc_location = MultiLocation { + let asset_xc_location = Location { parents: 0, - interior: X2(Parachain(20), GeneralIndex(30)), + interior: [Parachain(20), GeneralIndex(30)].into(), }; - let multi_asset = MultiAsset { - id: xcm::latest::AssetId::Concrete(asset_xc_location), + let multi_asset = Asset { + id: xcm::latest::AssetId(asset_xc_location), fun: Fungibility::Fungible(123456), }; - let origin = MultiLocation { + let origin = Location { parents: 0, interior: Here, }; @@ -409,17 +410,17 @@ fn reserve_asset_filter_for_unsupported_asset_multi_location() { assert!(!ReserveAssetFilter::contains(&multi_asset, &origin)); // 2nd case - let asset_xc_location = MultiLocation { + let asset_xc_location = Location { parents: 1, - interior: X2(GeneralIndex(50), GeneralIndex(30)), + interior: [GeneralIndex(50), GeneralIndex(30)].into(), }; - let multi_asset = MultiAsset { - id: xcm::latest::AssetId::Concrete(asset_xc_location), + let multi_asset = Asset { + id: xcm::latest::AssetId(asset_xc_location), fun: Fungibility::Fungible(123456), }; - let origin = MultiLocation { + let origin = Location { parents: 1, - interior: X1(GeneralIndex(50)), + interior: [GeneralIndex(50)].into(), }; assert!(!ReserveAssetFilter::contains(&multi_asset, &origin)); diff --git a/runtime/astar/Cargo.toml b/runtime/astar/Cargo.toml index 7d28a17a2d..6a02f81c47 100644 --- a/runtime/astar/Cargo.toml +++ b/runtime/astar/Cargo.toml @@ -37,6 +37,7 @@ sp-version = { workspace = true } # frame dependencies frame-executive = { workspace = true } +frame-metadata-hash-extension = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } frame-system-rpc-runtime-api = { workspace = true } @@ -119,9 +120,6 @@ pallet-price-aggregator = { workspace = true } pallet-xc-asset-config = { workspace = true } pallet-xcm = { workspace = true } -# Get rid of this after uplifting to high enough version of ORML so we get access to benchmark support for the pallet -oracle-benchmarks = { workspace = true } - dapp-staking-v3-runtime-api = { workspace = true } # Moonbeam tracing @@ -146,7 +144,6 @@ std = [ "sp-std/std", "sp-api/std", "sp-core/std", - "oracle-benchmarks/std", "pallet-membership/std", "pallet-price-aggregator/std", "orml-oracle/std", @@ -164,6 +161,7 @@ std = [ "frame-system/std", "frame-system-rpc-runtime-api/std", "frame-try-runtime/std", + "frame-metadata-hash-extension/std", "pallet-assets/std", "pallet-authorship/std", "pallet-aura/std", @@ -268,7 +266,6 @@ runtime-benchmarks = [ "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", - "oracle-benchmarks/runtime-benchmarks", "pallet-chain-extension-assets/runtime-benchmarks", "pallet-contracts/runtime-benchmarks", "pallet-evm/runtime-benchmarks", @@ -287,6 +284,7 @@ runtime-benchmarks = [ "cumulus-pallet-dmp-queue/runtime-benchmarks", "cumulus-primitives-core/runtime-benchmarks", "parachains-common/runtime-benchmarks", + "orml-oracle/runtime-benchmarks", ] try-runtime = [ "fp-self-contained/try-runtime", @@ -311,7 +309,6 @@ try-runtime = [ "orml-oracle/try-runtime", "pallet-price-aggregator/try-runtime", "pallet-membership/try-runtime", - "oracle-benchmarks/try-runtime", "pallet-assets/try-runtime", "pallet-authorship/try-runtime", "pallet-collator-selection/try-runtime", @@ -341,3 +338,10 @@ evm-tracing = [ "moonbeam-rpc-primitives-debug", "moonbeam-rpc-primitives-txpool", ] + +# Enable metadata hash generation at compile time for the `CheckMetadataHash` extension. +metadata-hash = ["substrate-wasm-builder?/metadata-hash"] + +# A feature that should be enabled when the runtime should be built for on-chain +# deployment. This will disable stuff that shouldn't be part of the on-chain wasm +on-chain-release-build = ["metadata-hash"] diff --git a/runtime/astar/build.rs b/runtime/astar/build.rs index c0316ca18a..a639562954 100644 --- a/runtime/astar/build.rs +++ b/runtime/astar/build.rs @@ -16,13 +16,24 @@ // You should have received a copy of the GNU General Public License // along with Astar. If not, see . +#[cfg(all(feature = "std", not(feature = "metadata-hash")))] fn main() { - #[cfg(feature = "std")] - { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build(); - } + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build(); } + +#[cfg(all(feature = "std", feature = "metadata-hash"))] +fn main() { + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .enable_metadata_hash("ASTR", 18) + .build(); +} + +#[cfg(not(feature = "std"))] +fn main() {} diff --git a/runtime/astar/src/lib.rs b/runtime/astar/src/lib.rs index ddf6fe8bbb..caf133125e 100644 --- a/runtime/astar/src/lib.rs +++ b/runtime/astar/src/lib.rs @@ -75,7 +75,7 @@ use astar_primitives::{ PeriodNumber, RankedTier, SmartContract, StandardTierSlots, }, evm::EvmRevertCodeHandler, - oracle::{CurrencyAmount, CurrencyId, DummyCombineData}, + oracle::{CurrencyId, DummyCombineData, Price}, xcm::AssetLocationIdConverter, Address, AssetId, BlockNumber, Hash, Header, Nonce, }; @@ -253,6 +253,8 @@ impl frame_system::Config for Runtime { type RuntimeEvent = RuntimeEvent; /// The ubiquitous origin type. type RuntimeOrigin = RuntimeOrigin; + /// The aggregated RuntimeTask type. + type RuntimeTask = RuntimeTask; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; /// Runtime version. @@ -270,6 +272,11 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type MaxConsumers = frame_support::traits::ConstU32<16>; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -305,6 +312,12 @@ impl pallet_identity::Config for Runtime { type Slashed = (); type ForceOrigin = EnsureRoot<::AccountId>; type RegistrarOrigin = EnsureRoot<::AccountId>; + type OffchainSignature = Signature; + type SigningPublicKey = ::Signer; + type UsernameAuthorityOrigin = EnsureRoot<::AccountId>; + type PendingUsernameExpiration = ConstU32<{ 7 * DAYS }>; + type MaxSuffixLength = ConstU32<7>; + type MaxUsernameLength = ConstU32<32>; type WeightInfo = pallet_identity::weights::SubstrateWeight; } @@ -331,10 +344,10 @@ parameter_types! { } #[cfg(feature = "runtime-benchmarks")] -pub struct BenchmarkHelper(sp_std::marker::PhantomData<(SC, ACC)>); +pub struct DAppStakingBenchmarkHelper(sp_std::marker::PhantomData<(SC, ACC)>); #[cfg(feature = "runtime-benchmarks")] impl pallet_dapp_staking_v3::BenchmarkHelper, AccountId> - for BenchmarkHelper, AccountId> + for DAppStakingBenchmarkHelper, AccountId> { fn get_smart_contract(id: u32) -> SmartContract { let id_bytes = id.to_le_bytes(); @@ -385,7 +398,7 @@ impl pallet_dapp_staking_v3::Config for Runtime { type RankingEnabled = ConstBool; type WeightInfo = weights::pallet_dapp_staking_v3::SubstrateWeight; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = BenchmarkHelper, AccountId>; + type BenchmarkHelper = DAppStakingBenchmarkHelper, AccountId>; } pub struct InflationPayoutPerBlock; @@ -561,7 +574,6 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = RuntimeFreezeReason; - type MaxHolds = ConstU32<1>; type MaxFreezes = ConstU32<1>; } @@ -631,6 +643,7 @@ impl pallet_vesting::Config for Runtime { type MinVestedTransfer = MinVestedTransfer; type WeightInfo = pallet_vesting::weights::SubstrateWeight; type UnvestedFundsAllowedWithdrawReasons = UnvestedFundsAllowedWithdrawReasons; + type BlockNumberProvider = System; // `VestingInfo` encode length is 36bytes. 28 schedules gets encoded as 1009 bytes, which is the // highest number of schedules that encodes less than 2^10. const MAX_VESTING_SCHEDULES: u32 = 28; @@ -690,6 +703,9 @@ impl pallet_contracts::Config for Runtime { type Environment = (); type Migrations = (); type Xcm = (); + type UploadOrigin = EnsureSigned<::AccountId>; + type InstantiateOrigin = EnsureSigned<::AccountId>; + type ApiVersion = (); } // These values are based on the Astar 2.0 Tokenomics Modeling report. @@ -1083,6 +1099,19 @@ impl pallet_price_aggregator::Config for Runtime { type WeightInfo = pallet_price_aggregator::weights::SubstrateWeight; } +#[cfg(feature = "runtime-benchmarks")] +pub struct OracleBenchmarkHelper; +#[cfg(feature = "runtime-benchmarks")] +impl orml_oracle::BenchmarkHelper> for OracleBenchmarkHelper { + fn get_currency_id_value_pairs() -> sp_runtime::BoundedVec<(CurrencyId, Price), ConstU32<2>> { + sp_runtime::BoundedVec::try_from(vec![ + (CurrencyId::ASTR, Price::from_rational(15, 100)), + (CurrencyId::ASTR, Price::from_rational(15, 100)), + ]) + .expect("out of bounds") + } +} + parameter_types! { // Cannot specify `Root` so need to do it like this, unfortunately. pub RootOperatorAccountId: AccountId = AccountId::from([0xffu8; 32]); @@ -1094,15 +1123,20 @@ impl orml_oracle::Config for Runtime { type CombineData = DummyCombineData; type Time = Timestamp; type OracleKey = CurrencyId; - type OracleValue = CurrencyAmount; + type OracleValue = Price; type RootOperatorAccountId = RootOperatorAccountId; + #[cfg(feature = "runtime-benchmarks")] + type Members = OracleMembershipWrapper; + #[cfg(not(feature = "runtime-benchmarks"))] type Members = OracleMembership; type MaxHasDispatchedSize = ConstU32<8>; - type WeightInfo = oracle_benchmarks::weights::SubstrateWeight; + type WeightInfo = weights::orml_oracle::SubstrateWeight; #[cfg(feature = "runtime-benchmarks")] type MaxFeedValues = ConstU32<2>; #[cfg(not(feature = "runtime-benchmarks"))] type MaxFeedValues = ConstU32<1>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = OracleBenchmarkHelper; } impl pallet_membership::Config for Runtime { @@ -1119,6 +1153,24 @@ impl pallet_membership::Config for Runtime { type WeightInfo = pallet_membership::weights::SubstrateWeight; } +/// OracleMembership wrapper used by benchmarks +#[cfg(feature = "runtime-benchmarks")] +pub struct OracleMembershipWrapper; + +#[cfg(feature = "runtime-benchmarks")] +impl frame_support::traits::SortedMembers for OracleMembershipWrapper { + fn sorted_members() -> Vec { + OracleMembership::sorted_members() + } + + fn add(account: &AccountId) { + frame_support::assert_ok!(OracleMembership::add_member( + frame_system::RawOrigin::Root.into(), + account.to_owned().into() + )); + } +} + construct_runtime!( pub struct Runtime { @@ -1185,6 +1237,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, + frame_metadata_hash_extension::CheckMetadataHash, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = @@ -1207,7 +1260,14 @@ pub type Executive = frame_executive::Executive< /// All migrations that will run on the next runtime upgrade. /// /// Once done, migrations should be removed from the tuple. -pub type Migrations = (cumulus_pallet_xcmp_queue::migration::v4::MigrationToV4,); +pub type Migrations = ( + cumulus_pallet_xcmp_queue::migration::v4::MigrationToV4, + // permanent migration, do not remove + pallet_xcm::migration::MigrateToLatestXcmVersion, + // XCM V3 -> V4 + pallet_xc_asset_config::migrations::versioned::V2ToV3, + pallet_identity::migration::versioned::V0ToV1, +); type EventRecord = frame_system::EventRecord< ::RuntimeEvent, @@ -1281,7 +1341,7 @@ mod benches { define_benchmarks!( [frame_benchmarking, BaselineBench::] [frame_system, SystemBench::] - [pallet_assets, Assets] + [pallet_assets, pallet_assets::Pallet::] [pallet_balances, Balances] [pallet_timestamp, Timestamp] [pallet_dapp_staking_v3, DappStaking] @@ -1292,6 +1352,7 @@ mod benches { [pallet_dynamic_evm_base_fee, DynamicEvmBaseFee] [xcm_benchmarks_generic, XcmGeneric] [xcm_benchmarks_fungible, XcmFungible] + [orml_oracle, Oracle] ); } @@ -1305,7 +1366,7 @@ impl_runtime_apis! { Executive::execute_block(block) } - fn initialize_block(header: &::Header) { + fn initialize_block(header: &::Header) -> sp_runtime::ExtrinsicInclusionMode { Executive::initialize_block(header) } } @@ -1819,28 +1880,57 @@ impl_runtime_apis! { use xcm_builder::MintLocation; use astar_primitives::benchmarks::XcmBenchmarkHelper; use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; + + pub struct TestDeliveryHelper; + impl xcm_builder::EnsureDelivery for TestDeliveryHelper { + fn ensure_successful_delivery( + origin_ref: &Location, + _dest: &Location, + _fee_reason: xcm_executor::traits::FeeReason, + ) -> (Option, Option) { + use xcm_executor::traits::ConvertLocation; + let account = xcm_config::LocationToAccountId::convert_location(origin_ref) + .expect("Invalid location"); + // Give the existential deposit at least + let balance = ExistentialDeposit::get(); + let _ = >:: + make_free_balance_be(&account.into(), balance); + + (None, None) + } + } + impl pallet_xcm::benchmarking::Config for Runtime { - fn reachable_dest() -> Option { + type DeliveryHelper = TestDeliveryHelper; + + fn reachable_dest() -> Option { Some(Parent.into()) } - fn teleportable_asset_and_dest() -> Option<(MultiAsset, MultiLocation)> { + fn teleportable_asset_and_dest() -> Option<(Asset, Location)> { None } - fn reserve_transferable_asset_and_dest() -> Option<(MultiAsset, MultiLocation)> { + fn reserve_transferable_asset_and_dest() -> Option<(Asset, Location)> { let random_para_id = 43211234; ParachainSystem::open_outbound_hrmp_channel_for_benchmarks_or_tests( random_para_id.into() ); Some(( - MultiAsset { + Asset { fun: Fungible(ExistentialDeposit::get()), - id: Concrete(Here.into()) + id: Here.into() }, ParentThen(Parachain(random_para_id).into()).into(), )) } + + fn get_asset() -> Asset { + Asset { + id: AssetId(Here.into()), + fun: Fungible(ExistentialDeposit::get()), + } + } } impl frame_system_benchmarking::Config for Runtime {} @@ -1857,10 +1947,10 @@ impl_runtime_apis! { type DeliveryHelper = (); // destination location to be used in benchmarks - fn valid_destination() -> Result { - Ok(MultiLocation::parent()) + fn valid_destination() -> Result { + Ok(Location::parent()) } - fn worst_case_holding(_depositable_count: u32) -> MultiAssets { + fn worst_case_holding(_depositable_count: u32) -> Assets { XcmBenchmarkHelper::::worst_case_holding() } } @@ -1873,64 +1963,67 @@ impl_runtime_apis! { (0u64, Response::Version(Default::default())) } fn worst_case_asset_exchange() - -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + -> Result<(Assets, Assets), BenchmarkError> { Err(BenchmarkError::Skip) } - fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { + fn universal_alias() -> Result<(Location, Junction), BenchmarkError> { Err(BenchmarkError::Skip) } fn transact_origin_and_runtime_call() - -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { - Ok((MultiLocation::parent(), frame_system::Call::remark_with_event { + -> Result<(Location, RuntimeCall), BenchmarkError> { + Ok((Location::parent(), frame_system::Call::remark_with_event { remark: vec![] }.into())) } - fn subscribe_origin() -> Result { - Ok(MultiLocation::parent()) + fn subscribe_origin() -> Result { + Ok(Location::parent()) } fn claimable_asset() - -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { - let origin = MultiLocation::parent(); - let assets: MultiAssets = (Concrete(MultiLocation::parent()), 1_000u128) + -> Result<(Location, Location, Assets), BenchmarkError> { + let origin = Location::parent(); + let assets: Assets = (AssetId(Location::parent()), 1_000u128) .into(); - let ticket = MultiLocation { parents: 0, interior: Here }; + let ticket = Location { parents: 0, interior: Here }; Ok((origin, ticket, assets)) } fn unlockable_asset() - -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + -> Result<(Location, Location, Asset), BenchmarkError> { Err(BenchmarkError::Skip) } fn export_message_origin_and_destination( - ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { + ) -> Result<(Location, NetworkId, InteriorLocation), BenchmarkError> { Err(BenchmarkError::Skip) } - fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + fn alias_origin() -> Result<(Location, Location), BenchmarkError> { Err(BenchmarkError::Skip) } + fn fee_asset() -> Result { + Ok((AssetId(Here.into()), 100).into()) + } } parameter_types! { pub const NoCheckingAccount: Option<(AccountId, MintLocation)> = None; - pub const NoTeleporter: Option<(MultiLocation, MultiAsset)> = None; + pub const NoTeleporter: Option<(Location, Asset)> = None; pub const TransactAssetId: u128 = 1001; - pub const TransactAssetLocation: MultiLocation = MultiLocation { parents: 0, interior: X1(GeneralIndex(TransactAssetId::get())) }; + pub TransactAssetLocation: Location = Location { parents: 0, interior: [GeneralIndex(TransactAssetId::get())].into() }; - pub TrustedReserveLocation: MultiLocation = Parent.into(); - pub TrustedReserveAsset: MultiAsset = MultiAsset { id: Concrete(TrustedReserveLocation::get()), fun: Fungible(1_000_000) }; - pub TrustedReserve: Option<(MultiLocation, MultiAsset)> = Some((TrustedReserveLocation::get(), TrustedReserveAsset::get())); + pub TrustedReserveLocation: Location = Parent.into(); + pub TrustedReserveAsset: Asset = Asset { id: AssetId(TrustedReserveLocation::get()), fun: Fungible(1_000_000) }; + pub TrustedReserve: Option<(Location, Asset)> = Some((TrustedReserveLocation::get(), TrustedReserveAsset::get())); } impl pallet_xcm_benchmarks::fungible::Config for Runtime { - type TransactAsset = ItemOf; + type TransactAsset = ItemOf, TransactAssetId, AccountId>; type CheckedAccount = NoCheckingAccount; type TrustedTeleporter = NoTeleporter; type TrustedReserve = TrustedReserve; - fn get_multi_asset() -> MultiAsset { + fn get_asset() -> Asset { let min_balance = 100u128; // create the transact asset and make it sufficient - assert_ok!(Assets::force_create( + assert_ok!(pallet_assets::Pallet::::force_create( RuntimeOrigin::root(), TransactAssetId::get().into(), Address::Id([0u8; 32].into()), @@ -1948,8 +2041,8 @@ impl_runtime_apis! { ) ); - MultiAsset { - id: Concrete(TransactAssetLocation::get()), + Asset { + id: AssetId(TransactAssetLocation::get()), fun: Fungible(min_balance * 100), } } @@ -1974,12 +2067,17 @@ impl_runtime_apis! { fn trace_transaction( extrinsics: Vec<::Extrinsic>, traced_transaction: &pallet_ethereum::Transaction, + header: &::Header, ) -> Result< (), sp_runtime::DispatchError, > { use moonbeam_evm_tracer::tracer::EvmTracer; + // We need to follow the order when replaying the transactions. + // Block initialize happens first then apply_extrinsic. + Executive::initialize_block(header); + // Apply the a subset of extrinsics: all the substrate-specific or ethereum // transactions that preceded the requested transaction. for ext in extrinsics.into_iter() { @@ -2003,14 +2101,16 @@ impl_runtime_apis! { fn trace_block( extrinsics: Vec<::Extrinsic>, known_transactions: Vec, + header: &::Header, ) -> Result< (), sp_runtime::DispatchError, > { use moonbeam_evm_tracer::tracer::EvmTracer; - let mut config = ::config().clone(); - config.estimate = true; + // We need to follow the order when replaying the transactions. + // Block initialize happens first then apply_extrinsic. + Executive::initialize_block(header); // Apply all extrinsics. Ethereum extrinsics are traced. for ext in extrinsics.into_iter() { diff --git a/runtime/astar/src/weights/mod.rs b/runtime/astar/src/weights/mod.rs index ca0a3880e5..0b665ae16e 100644 --- a/runtime/astar/src/weights/mod.rs +++ b/runtime/astar/src/weights/mod.rs @@ -16,6 +16,7 @@ // You should have received a copy of the GNU General Public License // along with Astar. If not, see . +pub mod orml_oracle; pub mod pallet_assets; pub mod pallet_dapp_staking_v3; pub mod pallet_inflation; diff --git a/runtime/astar/src/weights/orml_oracle.rs b/runtime/astar/src/weights/orml_oracle.rs new file mode 100644 index 0000000000..4e77452bc1 --- /dev/null +++ b/runtime/astar/src/weights/orml_oracle.rs @@ -0,0 +1,84 @@ +// This file is part of Astar. + +// Copyright (C) Stake Technologies Pte.Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later + +// Astar is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Astar is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Astar. If not, see . + +//! Autogenerated weights for orml_oracle +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gh-runner-01-ovh`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("astar-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/release/astar-collator +// benchmark +// pallet +// --chain=astar-dev +// --steps=50 +// --repeat=20 +// --pallet=orml_oracle +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --heap-pages=4096 +// --output=./benchmark-results/astar-dev/oracle_weights.rs +// --template=./scripts/templates/weight-template.hbs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use core::marker::PhantomData; + +/// Weights for orml_oracle using the Substrate node and recommended hardware. +pub struct SubstrateWeight(PhantomData); +impl orml_oracle::WeightInfo for SubstrateWeight { + /// Storage: `OracleMembership::Members` (r:1 w:0) + /// Proof: `OracleMembership::Members` (`max_values`: Some(1), `max_size`: Some(513), added: 1008, mode: `MaxEncodedLen`) + /// Storage: `Oracle::HasDispatched` (r:1 w:1) + /// Proof: `Oracle::HasDispatched` (`max_values`: Some(1), `max_size`: Some(257), added: 752, mode: `MaxEncodedLen`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Oracle::RawValues` (r:3 w:1) + /// Proof: `Oracle::RawValues` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Oracle::Values` (r:1 w:0) + /// Proof: `Oracle::Values` (`max_values`: None, `max_size`: Some(33), added: 2508, mode: `MaxEncodedLen`) + /// The range of component `x` is `[1, 2]`. + fn feed_values(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `8634` + // Minimum execution time: 24_261_000 picoseconds. + Weight::from_parts(16_983_859, 8634) + // Standard Error: 56_112 + .saturating_add(Weight::from_parts(8_197_820, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Oracle::HasDispatched` (r:0 w:1) + /// Proof: `Oracle::HasDispatched` (`max_values`: Some(1), `max_size`: Some(257), added: 752, mode: `MaxEncodedLen`) + fn on_finalize() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 981_000 picoseconds. + Weight::from_parts(1_018_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/runtime/astar/src/weights/pallet_assets.rs b/runtime/astar/src/weights/pallet_assets.rs index 8104351d9e..903a7405d4 100644 --- a/runtime/astar/src/weights/pallet_assets.rs +++ b/runtime/astar/src/weights/pallet_assets.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_assets //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `devserver-01`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("astar-dev"), DB CACHE: 1024 +//! HOSTNAME: `gh-runner-01-ovh`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("astar-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/astar-collator @@ -36,7 +36,7 @@ // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./benchmark-results/assets_weights.rs +// --output=./benchmark-results/astar-dev/assets_weights.rs // --template=./scripts/templates/weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -49,447 +49,451 @@ use core::marker::PhantomData; /// Weights for pallet_assets using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl pallet_assets::WeightInfo for SubstrateWeight { - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: EVM AccountCodes (r:1 w:1) - /// Proof Skipped: EVM AccountCodes (max_values: None, max_size: None, mode: Measured) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `EVM::AccountCodes` (r:1 w:1) + /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn create() -> Weight { // Proof Size summary in bytes: - // Measured: `659` - // Estimated: `4124` - // Minimum execution time: 35_155_000 picoseconds. - Weight::from_parts(35_760_000, 4124) + // Measured: `729` + // Estimated: `4194` + // Minimum execution time: 30_820_000 picoseconds. + Weight::from_parts(31_266_000, 4194) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: EVM AccountCodes (r:1 w:1) - /// Proof Skipped: EVM AccountCodes (max_values: None, max_size: None, mode: Measured) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `EVM::AccountCodes` (r:1 w:1) + /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_create() -> Weight { // Proof Size summary in bytes: - // Measured: `519` - // Estimated: `3984` - // Minimum execution time: 20_004_000 picoseconds. - Weight::from_parts(20_348_000, 3984) + // Measured: `589` + // Estimated: `4054` + // Minimum execution time: 18_408_000 picoseconds. + Weight::from_parts(18_936_000, 4054) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn start_destroy() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `360` // Estimated: `3687` - // Minimum execution time: 13_682_000 picoseconds. - Weight::from_parts(14_059_000, 3687) + // Minimum execution time: 13_139_000 picoseconds. + Weight::from_parts(13_583_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1001 w:1000) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1000 w:1000) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1001 w:1000) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1000 w:1000) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `c` is `[0, 1000]`. fn destroy_accounts(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `255 + c * (208 ±0)` + // Measured: `360 + c * (208 ±0)` // Estimated: `3687 + c * (2621 ±0)` - // Minimum execution time: 17_910_000 picoseconds. - Weight::from_parts(18_110_000, 3687) - // Standard Error: 6_525 - .saturating_add(Weight::from_parts(11_623_553, 0).saturating_mul(c.into())) + // Minimum execution time: 14_156_000 picoseconds. + Weight::from_parts(14_265_000, 3687) + // Standard Error: 5_925 + .saturating_add(Weight::from_parts(10_519_274, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) .saturating_add(Weight::from_parts(0, 2621).saturating_mul(c.into())) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1001 w:1000) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1001 w:1000) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 1000]`. fn destroy_approvals(a: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `438 + a * (86 ±0)` + // Measured: `509 + a * (86 ±0)` // Estimated: `3687 + a * (2635 ±0)` - // Minimum execution time: 18_065_000 picoseconds. - Weight::from_parts(18_372_000, 3687) - // Standard Error: 4_985 - .saturating_add(Weight::from_parts(13_662_720, 0).saturating_mul(a.into())) + // Minimum execution time: 17_702_000 picoseconds. + Weight::from_parts(17_928_000, 3687) + // Standard Error: 5_166 + .saturating_add(Weight::from_parts(11_136_424, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(Weight::from_parts(0, 2635).saturating_mul(a.into())) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:0) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) - /// Storage: EVM AccountCodes (r:0 w:1) - /// Proof Skipped: EVM AccountCodes (max_values: None, max_size: None, mode: Measured) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) + /// Storage: `EVM::AccountCodes` (r:0 w:1) + /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn finish_destroy() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 16_700_000 picoseconds. - Weight::from_parts(17_418_000, 3687) + // Minimum execution time: 13_067_000 picoseconds. + Weight::from_parts(13_283_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn mint() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 26_305_000 picoseconds. - Weight::from_parts(27_014_000, 3687) + // Minimum execution time: 19_438_000 picoseconds. + Weight::from_parts(19_946_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn burn() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `446` // Estimated: `3687` - // Minimum execution time: 30_525_000 picoseconds. - Weight::from_parts(31_113_000, 3687) + // Minimum execution time: 27_127_000 picoseconds. + Weight::from_parts(27_594_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer() -> Weight { // Proof Size summary in bytes: - // Measured: `447` + // Measured: `518` // Estimated: `6232` - // Minimum execution time: 42_955_000 picoseconds. - Weight::from_parts(43_309_000, 6232) + // Minimum execution time: 36_614_000 picoseconds. + Weight::from_parts(37_265_000, 6232) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_keep_alive() -> Weight { // Proof Size summary in bytes: - // Measured: `447` + // Measured: `518` // Estimated: `6232` - // Minimum execution time: 37_951_000 picoseconds. - Weight::from_parts(38_330_000, 6232) + // Minimum execution time: 33_003_000 picoseconds. + Weight::from_parts(33_656_000, 6232) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { // Proof Size summary in bytes: - // Measured: `447` + // Measured: `518` // Estimated: `6232` - // Minimum execution time: 43_061_000 picoseconds. - Weight::from_parts(43_561_000, 6232) + // Minimum execution time: 36_882_000 picoseconds. + Weight::from_parts(37_310_000, 6232) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn freeze() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `446` // Estimated: `3687` - // Minimum execution time: 17_259_000 picoseconds. - Weight::from_parts(17_516_000, 3687) + // Minimum execution time: 16_186_000 picoseconds. + Weight::from_parts(16_530_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn thaw() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `446` // Estimated: `3687` - // Minimum execution time: 17_165_000 picoseconds. - Weight::from_parts(17_547_000, 3687) + // Minimum execution time: 15_778_000 picoseconds. + Weight::from_parts(16_166_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn freeze_asset() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `360` // Estimated: `3687` - // Minimum execution time: 13_634_000 picoseconds. - Weight::from_parts(14_069_000, 3687) + // Minimum execution time: 12_299_000 picoseconds. + Weight::from_parts(12_676_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn thaw_asset() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `360` // Estimated: `3687` - // Minimum execution time: 13_456_000 picoseconds. - Weight::from_parts(13_770_000, 3687) + // Minimum execution time: 12_458_000 picoseconds. + Weight::from_parts(12_750_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:0) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) fn transfer_ownership() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 16_083_000 picoseconds. - Weight::from_parts(16_343_000, 3687) + // Minimum execution time: 11_755_000 picoseconds. + Weight::from_parts(11_974_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn set_team() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 14_443_000 picoseconds. - Weight::from_parts(14_818_000, 3687) + // Minimum execution time: 10_615_000 picoseconds. + Weight::from_parts(10_896_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. - fn set_metadata(_n: u32, _s: u32, ) -> Weight { + fn set_metadata(n: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 28_260_000 picoseconds. - Weight::from_parts(29_181_263, 3687) + // Minimum execution time: 24_208_000 picoseconds. + Weight::from_parts(25_055_139, 3687) + // Standard Error: 587 + .saturating_add(Weight::from_parts(1_853, 0).saturating_mul(n.into())) + // Standard Error: 587 + .saturating_add(Weight::from_parts(1_126, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) fn clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `431` + // Measured: `502` // Estimated: `3687` - // Minimum execution time: 28_580_000 picoseconds. - Weight::from_parts(28_826_000, 3687) + // Minimum execution time: 24_941_000 picoseconds. + Weight::from_parts(25_526_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. fn force_set_metadata(n: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `94` + // Measured: `165` // Estimated: `3687` - // Minimum execution time: 14_605_000 picoseconds. - Weight::from_parts(15_107_642, 3687) - // Standard Error: 450 - .saturating_add(Weight::from_parts(6_608, 0).saturating_mul(n.into())) - // Standard Error: 450 - .saturating_add(Weight::from_parts(2_783, 0).saturating_mul(s.into())) + // Minimum execution time: 10_839_000 picoseconds. + Weight::from_parts(11_355_717, 3687) + // Standard Error: 324 + .saturating_add(Weight::from_parts(1_760, 0).saturating_mul(n.into())) + // Standard Error: 324 + .saturating_add(Weight::from_parts(1_475, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) fn force_clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `431` + // Measured: `502` // Estimated: `3687` - // Minimum execution time: 27_925_000 picoseconds. - Weight::from_parts(28_323_000, 3687) + // Minimum execution time: 24_852_000 picoseconds. + Weight::from_parts(25_223_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn force_asset_status() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 13_904_000 picoseconds. - Weight::from_parts(14_431_000, 3687) + // Minimum execution time: 9_959_000 picoseconds. + Weight::from_parts(10_217_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) fn approve_transfer() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `360` // Estimated: `3687` - // Minimum execution time: 31_152_000 picoseconds. - Weight::from_parts(31_715_000, 3687) + // Minimum execution time: 27_092_000 picoseconds. + Weight::from_parts(27_567_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_approved() -> Weight { // Proof Size summary in bytes: - // Measured: `680` + // Measured: `751` // Estimated: `6232` - // Minimum execution time: 63_252_000 picoseconds. - Weight::from_parts(63_718_000, 6232) + // Minimum execution time: 53_099_000 picoseconds. + Weight::from_parts(53_854_000, 6232) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) fn cancel_approval() -> Weight { // Proof Size summary in bytes: - // Measured: `471` + // Measured: `542` // Estimated: `3687` - // Minimum execution time: 34_375_000 picoseconds. - Weight::from_parts(34_640_000, 3687) + // Minimum execution time: 29_908_000 picoseconds. + Weight::from_parts(30_459_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) fn force_cancel_approval() -> Weight { // Proof Size summary in bytes: - // Measured: `471` + // Measured: `542` // Estimated: `3687` - // Minimum execution time: 34_159_000 picoseconds. - Weight::from_parts(34_693_000, 3687) + // Minimum execution time: 30_029_000 picoseconds. + Weight::from_parts(30_591_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn set_min_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 15_114_000 picoseconds. - Weight::from_parts(15_271_000, 3687) + // Minimum execution time: 11_029_000 picoseconds. + Weight::from_parts(11_391_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn touch() -> Weight { // Proof Size summary in bytes: - // Measured: `429` + // Measured: `500` // Estimated: `3687` - // Minimum execution time: 34_356_000 picoseconds. - Weight::from_parts(34_856_000, 3687) + // Minimum execution time: 29_158_000 picoseconds. + Weight::from_parts(29_535_000, 3687) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn touch_other() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 31_063_000 picoseconds. - Weight::from_parts(31_331_000, 3687) + // Minimum execution time: 26_748_000 picoseconds. + Weight::from_parts(27_261_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn refund() -> Weight { // Proof Size summary in bytes: - // Measured: `567` + // Measured: `638` // Estimated: `3687` - // Minimum execution time: 31_678_000 picoseconds. - Weight::from_parts(31_941_000, 3687) + // Minimum execution time: 28_074_000 picoseconds. + Weight::from_parts(28_547_000, 3687) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn refund_other() -> Weight { // Proof Size summary in bytes: - // Measured: `426` + // Measured: `497` // Estimated: `3687` - // Minimum execution time: 28_601_000 picoseconds. - Weight::from_parts(28_966_000, 3687) + // Minimum execution time: 26_127_000 picoseconds. + Weight::from_parts(26_675_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn block() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `446` // Estimated: `3687` - // Minimum execution time: 17_545_000 picoseconds. - Weight::from_parts(17_959_000, 3687) + // Minimum execution time: 16_270_000 picoseconds. + Weight::from_parts(16_634_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/astar/src/weights/pallet_xcm.rs b/runtime/astar/src/weights/pallet_xcm.rs index 0acc758fab..d1ad721b4f 100644 --- a/runtime/astar/src/weights/pallet_xcm.rs +++ b/runtime/astar/src/weights/pallet_xcm.rs @@ -19,11 +19,11 @@ //! Autogenerated weights for pallet_xcm //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `devserver-01`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("astar-dev"), DB CACHE: 1024 +//! HOSTNAME: `gh-runner-01-ovh`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("astar-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/astar-collator @@ -37,7 +37,7 @@ // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./benchmark-results/xcm_weights.rs +// --output=./benchmark-results/astar-dev/xcm_weights.rs // --template=./scripts/templates/weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -50,27 +50,23 @@ use core::marker::PhantomData; /// Weights for pallet_xcm using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl pallet_xcm::WeightInfo for SubstrateWeight { - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `74` - // Estimated: `3539` - // Minimum execution time: 28_095_000 picoseconds. - Weight::from_parts(28_511_000, 3539) - .saturating_add(T::DbWeight::get().reads(5_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + // Measured: `76` + // Estimated: `3541` + // Minimum execution time: 16_397_000 picoseconds. + Weight::from_parts(16_802_000, 3541) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn teleport_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` @@ -78,25 +74,38 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. Weight::from_parts(18_446_744_073_709_551_000, 0) } - /// Storage: ParachainInfo ParachainId (r:1 w:0) - /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `71` - // Estimated: `3593` - // Minimum execution time: 30_849_000 picoseconds. - Weight::from_parts(31_324_000, 3593) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Measured: `278` + // Estimated: `3743` + // Minimum execution time: 73_426_000 picoseconds. + Weight::from_parts(74_419_000, 3743) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn transfer_assets() -> Weight { - todo!() + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) } - - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn execute() -> Weight { // Proof Size summary in bytes: // Measured: `0` @@ -104,185 +113,193 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. Weight::from_parts(18_446_744_073_709_551_000, 0) } - /// Storage: PolkadotXcm SupportedVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_619_000 picoseconds. - Weight::from_parts(9_881_000, 0) + // Minimum execution time: 7_335_000 picoseconds. + Weight::from_parts(7_569_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) fn force_default_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_109_000 picoseconds. - Weight::from_parts(3_261_000, 0) - .saturating_add(T::DbWeight::get().writes(1_u64)) + // Minimum execution time: 2_376_000 picoseconds. + Weight::from_parts(2_553_000, 0) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm QueryCounter (r:1 w:1) - /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `74` - // Estimated: `3539` - // Minimum execution time: 31_620_000 picoseconds. - Weight::from_parts(32_143_000, 3539) - .saturating_add(T::DbWeight::get().reads(7_u64)) - .saturating_add(T::DbWeight::get().writes(5_u64)) + // Measured: `76` + // Estimated: `3541` + // Minimum execution time: 20_539_000 picoseconds. + Weight::from_parts(20_738_000, 3541) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`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`) + /// 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`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `257` - // Estimated: `3722` - // Minimum execution time: 32_263_000 picoseconds. - Weight::from_parts(32_775_000, 3722) - .saturating_add(T::DbWeight::get().reads(6_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Measured: `135` + // Estimated: `3600` + // Minimum execution time: 20_638_000 picoseconds. + Weight::from_parts(21_124_000, 3600) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: PolkadotXcm XcmExecutionSuspended (r:0 w:1) - /// Proof Skipped: PolkadotXcm XcmExecutionSuspended (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn force_suspension() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_067_000 picoseconds. - Weight::from_parts(3_211_000, 0) + // Minimum execution time: 2_256_000 picoseconds. + Weight::from_parts(2_471_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `132` - // Estimated: `11022` - // Minimum execution time: 15_935_000 picoseconds. - Weight::from_parts(16_441_000, 11022) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `23` + // Estimated: `13388` + // Minimum execution time: 13_329_000 picoseconds. + Weight::from_parts(13_915_000, 13388) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `136` - // Estimated: `11026` - // Minimum execution time: 16_005_000 picoseconds. - Weight::from_parts(16_385_000, 11026) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `27` + // Estimated: `13392` + // Minimum execution time: 13_722_000 picoseconds. + Weight::from_parts(13_981_000, 13392) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: - // Measured: `143` - // Estimated: `13508` - // Minimum execution time: 16_238_000 picoseconds. - Weight::from_parts(16_875_000, 13508) - .saturating_add(T::DbWeight::get().reads(5_u64)) + // Measured: `38` + // Estimated: `15878` + // Minimum execution time: 15_546_000 picoseconds. + Weight::from_parts(15_958_000, 15878) + .saturating_add(T::DbWeight::get().reads(6_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 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`) + /// 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: `142` - // Estimated: `6082` - // Minimum execution time: 28_995_000 picoseconds. - Weight::from_parts(29_401_000, 6082) - .saturating_add(T::DbWeight::get().reads(7_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + // Measured: `110` + // Estimated: `6050` + // Minimum execution time: 19_427_000 picoseconds. + Weight::from_parts(19_904_000, 6050) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `136` - // Estimated: `8551` - // Minimum execution time: 7_907_000 picoseconds. - Weight::from_parts(8_304_000, 8551) - .saturating_add(T::DbWeight::get().reads(3_u64)) + // Measured: `70` + // Estimated: `10960` + // Minimum execution time: 9_811_000 picoseconds. + Weight::from_parts(10_120_000, 10960) + .saturating_add(T::DbWeight::get().reads(4_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `143` - // Estimated: `11033` - // Minimum execution time: 16_487_000 picoseconds. - Weight::from_parts(16_957_000, 11033) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `34` + // Estimated: `13399` + // Minimum execution time: 14_151_000 picoseconds. + Weight::from_parts(14_597_000, 13399) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) + /// 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`) + /// 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: `185` - // Estimated: `11075` - // Minimum execution time: 34_975_000 picoseconds. - Weight::from_parts(35_686_000, 11075) - .saturating_add(T::DbWeight::get().reads(9_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Measured: `110` + // Estimated: `13475` + // Minimum execution time: 26_263_000 picoseconds. + Weight::from_parts(26_963_000, 13475) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn new_query() -> Weight { - Weight::MAX + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 2_160_000 picoseconds. + Weight::from_parts(2_313_000, 1485) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - + /// Storage: `PolkadotXcm::Queries` (r:1 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn take_response() -> Weight { - Weight::MAX + // Proof Size summary in bytes: + // Measured: `7576` + // Estimated: `11041` + // Minimum execution time: 21_847_000 picoseconds. + Weight::from_parts(22_199_000, 11041) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + /// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn claim_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `3489` + // Minimum execution time: 30_973_000 picoseconds. + Weight::from_parts(31_665_000, 3489) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/astar/src/weights/xcm/mod.rs b/runtime/astar/src/weights/xcm/mod.rs index a166e69172..78c90936c7 100644 --- a/runtime/astar/src/weights/xcm/mod.rs +++ b/runtime/astar/src/weights/xcm/mod.rs @@ -38,7 +38,7 @@ trait WeighMultiAssetsFilter { fn weigh_multi_assets_filter(&self, weight: Weight) -> XCMWeight; } -impl WeighMultiAssetsFilter for MultiAssetFilter { +impl WeighMultiAssetsFilter for AssetFilter { fn weigh_multi_assets_filter(&self, weight: Weight) -> XCMWeight { match self { Self::Definite(assets) => { @@ -52,7 +52,7 @@ impl WeighMultiAssetsFilter for MultiAssetFilter { } } -impl WeighMultiAssets for MultiAssets { +impl WeighMultiAssets for Assets { fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { weight.saturating_mul(self.inner().into_iter().count() as u64) } @@ -63,34 +63,30 @@ impl XcmWeightInfo for XcmWeight where Runtime: frame_system::Config, { - fn withdraw_asset(assets: &MultiAssets) -> XCMWeight { + fn withdraw_asset(assets: &Assets) -> XCMWeight { XcmFungibleWeight::::withdraw_asset() .saturating_mul(assets.inner().into_iter().count() as u64) } - fn reserve_asset_deposited(_assets: &MultiAssets) -> XCMWeight { + fn reserve_asset_deposited(_assets: &Assets) -> XCMWeight { XcmFungibleWeight::::reserve_asset_deposited() } - fn receive_teleported_asset(assets: &MultiAssets) -> XCMWeight { + fn receive_teleported_asset(assets: &Assets) -> XCMWeight { assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) } fn query_response( _query_id: &u64, _response: &Response, _max_weight: &Weight, - _querier: &Option, + _querier: &Option, ) -> XCMWeight { XcmGeneric::::query_response() } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> XCMWeight { + fn transfer_asset(assets: &Assets, _dest: &Location) -> XCMWeight { XcmFungibleWeight::::transfer_asset() .saturating_mul(assets.inner().into_iter().count() as u64) } - fn transfer_reserve_asset( - assets: &MultiAssets, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> XCMWeight { + fn transfer_reserve_asset(assets: &Assets, _dest: &Location, _xcm: &Xcm<()>) -> XCMWeight { XcmFungibleWeight::::transfer_reserve_asset() .saturating_mul(assets.inner().into_iter().count() as u64) } @@ -120,32 +116,24 @@ where fn clear_origin() -> XCMWeight { XcmGeneric::::clear_origin() } - fn descend_origin(_who: &InteriorMultiLocation) -> XCMWeight { + fn descend_origin(_who: &InteriorLocation) -> XCMWeight { XcmGeneric::::descend_origin() } fn report_error(_query_response_info: &QueryResponseInfo) -> XCMWeight { XcmGeneric::::report_error() } - fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> XCMWeight { + fn deposit_asset(assets: &AssetFilter, _dest: &Location) -> XCMWeight { assets.weigh_multi_assets_filter(XcmFungibleWeight::::deposit_asset()) } - fn deposit_reserve_asset( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> XCMWeight { + fn deposit_reserve_asset(assets: &AssetFilter, _dest: &Location, _xcm: &Xcm<()>) -> XCMWeight { assets.weigh_multi_assets_filter(XcmFungibleWeight::::deposit_reserve_asset()) } - fn exchange_asset( - _give: &MultiAssetFilter, - _receive: &MultiAssets, - _maximal: &bool, - ) -> XCMWeight { + fn exchange_asset(_give: &AssetFilter, _receive: &Assets, _maximal: &bool) -> XCMWeight { Weight::MAX } fn initiate_reserve_withdraw( - _assets: &MultiAssetFilter, - _reserve: &MultiLocation, + _assets: &AssetFilter, + _reserve: &Location, _xcm: &Xcm<()>, ) -> XCMWeight { // This is not correct. initiate reserve withdraw does not to that many db reads @@ -153,17 +141,13 @@ where //assets.weigh_multi_assets(XcmGeneric::::initiate_reserve_withdraw()) XcmFungibleWeight::::initiate_reserve_withdraw() } - fn initiate_teleport( - _assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> XCMWeight { + fn initiate_teleport(_assets: &AssetFilter, _dest: &Location, _xcm: &Xcm<()>) -> XCMWeight { XcmFungibleWeight::::initiate_teleport() } - fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + fn report_holding(_response_info: &QueryResponseInfo, _assets: &AssetFilter) -> Weight { XcmGeneric::::report_holding() } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> XCMWeight { + fn buy_execution(_fees: &Asset, _weight_limit: &WeightLimit) -> XCMWeight { XcmGeneric::::buy_execution() } fn refund_surplus() -> XCMWeight { @@ -178,7 +162,7 @@ where fn clear_error() -> XCMWeight { XcmGeneric::::clear_error() } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> XCMWeight { + fn claim_asset(_assets: &Assets, _ticket: &Location) -> XCMWeight { XcmGeneric::::claim_asset() } fn trap(_code: &u64) -> XCMWeight { @@ -190,13 +174,13 @@ where fn unsubscribe_version() -> XCMWeight { XcmGeneric::::unsubscribe_version() } - fn burn_asset(assets: &MultiAssets) -> Weight { + fn burn_asset(assets: &Assets) -> Weight { assets.weigh_multi_assets(XcmGeneric::::burn_asset()) } - fn expect_asset(assets: &MultiAssets) -> Weight { + fn expect_asset(assets: &Assets) -> Weight { assets.weigh_multi_assets(XcmGeneric::::expect_asset()) } - fn expect_origin(_origin: &Option) -> Weight { + fn expect_origin(_origin: &Option) -> Weight { XcmGeneric::::expect_origin() } fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { @@ -229,16 +213,16 @@ where fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { Weight::MAX } - fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn lock_asset(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn unlock_asset(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn note_unlockable(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn request_unlock(_: &Asset, _: &Location) -> Weight { Weight::MAX } fn set_fees_mode(_: &bool) -> Weight { @@ -250,11 +234,11 @@ where fn clear_topic() -> Weight { XcmGeneric::::clear_topic() } - fn alias_origin(_: &MultiLocation) -> Weight { + fn alias_origin(_: &Location) -> Weight { // XCM Executor does not currently support alias origin operations Weight::MAX } - fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } } diff --git a/runtime/astar/src/xcm_config.rs b/runtime/astar/src/xcm_config.rs index 8be5b59f63..a3a3065923 100644 --- a/runtime/astar/src/xcm_config.rs +++ b/runtime/astar/src/xcm_config.rs @@ -24,7 +24,7 @@ use super::{ }; use crate::weights; use frame_support::{ - match_types, parameter_types, + parameter_types, traits::{ConstU32, Contains, Everything, Nothing}, weights::Weight, }; @@ -39,8 +39,8 @@ use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; use xcm::latest::prelude::*; use xcm_builder::{ Account32Hash, AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowUnpaidExecutionFrom, ConvertedConcreteId, CurrencyAdapter, EnsureXcmOrigin, - FungiblesAdapter, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, + AllowUnpaidExecutionFrom, ConvertedConcreteId, EnsureXcmOrigin, FrameTransactionalProcessor, + FungibleAdapter, FungiblesAdapter, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds, @@ -62,13 +62,13 @@ use astar_primitives::xcm::{ parameter_types! { pub RelayNetwork: Option = Some(NetworkId::Polkadot); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub UniversalLocation: InteriorMultiLocation = - X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); - pub AstarLocation: MultiLocation = Here.into_location(); + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())].into(); + pub AstarLocation: Location = Here.into_location(); pub DummyCheckingAccount: AccountId = PolkadotXcm::check_account(); } -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// Type for specifying how a `Location` can be converted into an `AccountId`. This is used /// when determining ownership of accounts for asset transacting and when attempting to use XCM /// `Transact` in order to determine the dispatch Origin. pub type LocationToAccountId = ( @@ -83,12 +83,12 @@ pub type LocationToAccountId = ( ); /// Means for transacting the native currency on this chain. -pub type CurrencyTransactor = CurrencyAdapter< +pub type CurrencyTransactor = FungibleAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: IsConcrete, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -102,7 +102,7 @@ pub type FungiblesTransactor = FungiblesAdapter< Assets, // Use this currency when it is a fungible asset matching the given location or name: ConvertedConcreteId, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -146,11 +146,11 @@ parameter_types! { pub const MaxInstructions: u32 = 100; } -match_types! { - pub type ParentOrParentsPlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { .. }) } - }; +pub struct ParentOrParentsPlurality; +impl Contains for ParentOrParentsPlurality { + fn contains(location: &Location) -> bool { + matches!(location.unpack(), (1, []) | (1, [Plurality { .. }])) + } } /// A call filter for the XCM Transact instruction. This is a temporary measure until we properly @@ -274,6 +274,7 @@ impl xcm_executor::Config for XcmConfig { type CallDispatcher = WithOriginFilter; type SafeCallFilter = SafeCallFilter; type Aliasers = Nothing; + type TransactionalProcessor = FrameTransactionalProcessor; } /// Local origins on this chain are allowed to dispatch XCM sends/executions. @@ -351,22 +352,21 @@ impl cumulus_pallet_dmp_queue::Config for Runtime { parameter_types! { /// The absolute location in perspective of the whole network. - pub AstarLocationAbsolute: MultiLocation = MultiLocation { + pub AstarLocationAbsolute: Location = Location { parents: 1, - interior: X1( - Parachain(ParachainInfo::parachain_id().into()) - ) + interior: Parachain(ParachainInfo::parachain_id().into()).into() + }; /// Max asset types for one cross-chain transfer. `2` covers all current use cases. /// Can be updated with extra test cases in the future if needed. pub const MaxAssetsForTransfer: usize = 2; } -/// Convert `AssetId` to optional `MultiLocation`. The impl is a wrapper +/// Convert `AssetId` to optional `Location`. The impl is a wrapper /// on `ShidenAssetLocationIdConverter`. pub struct AssetIdConvert; -impl Convert> for AssetIdConvert { - fn convert(asset_id: AssetId) -> Option { +impl Convert> for AssetIdConvert { + fn convert(asset_id: AssetId) -> Option { AstarAssetLocationIdConverter::convert_back(&asset_id) } } @@ -376,7 +376,7 @@ impl orml_xtokens::Config for Runtime { type Balance = Balance; type CurrencyId = AssetId; type CurrencyIdConvert = AssetIdConvert; - type AccountIdToMultiLocation = AccountIdToMultiLocation; + type AccountIdToLocation = AccountIdToMultiLocation; type SelfLocation = AstarLocation; type XcmExecutor = XcmExecutor; type Weigher = Weigher; @@ -385,6 +385,8 @@ impl orml_xtokens::Config for Runtime { type MaxAssetsForTransfer = MaxAssetsForTransfer; // Default impl. Refer to `orml-xtokens` docs for more details. type MinXcmFee = DisabledParachainFee; - type MultiLocationsFilter = Everything; + type LocationsFilter = Everything; type ReserveProvider = AbsoluteAndRelativeReserveProvider; + type RateLimiter = (); + type RateLimiterId = (); } diff --git a/runtime/local/Cargo.toml b/runtime/local/Cargo.toml index d853691347..a520a5b329 100644 --- a/runtime/local/Cargo.toml +++ b/runtime/local/Cargo.toml @@ -17,6 +17,7 @@ smallvec = { workspace = true } fp-rpc = { workspace = true } fp-self-contained = { workspace = true } frame-executive = { workspace = true } +frame-metadata-hash-extension = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } pallet-assets = { workspace = true } @@ -175,6 +176,7 @@ std = [ "sp-io/std", "frame-benchmarking/std", "frame-try-runtime/std", + "frame-metadata-hash-extension/std", "pallet-scheduler/std", "pallet-xvm/std", "pallet-unified-accounts/std", @@ -273,3 +275,10 @@ evm-tracing = [ "moonbeam-rpc-primitives-debug", "moonbeam-rpc-primitives-txpool", ] + +# Enable metadata hash generation at compile time for the `CheckMetadataHash` extension. +metadata-hash = ["substrate-wasm-builder?/metadata-hash"] + +# A feature that should be enabled when the runtime should be built for on-chain +# deployment. This will disable stuff that shouldn't be part of the on-chain wasm +on-chain-release-build = ["metadata-hash"] diff --git a/runtime/local/build.rs b/runtime/local/build.rs index c0316ca18a..acb0392d54 100644 --- a/runtime/local/build.rs +++ b/runtime/local/build.rs @@ -16,13 +16,24 @@ // You should have received a copy of the GNU General Public License // along with Astar. If not, see . +#[cfg(all(feature = "std", not(feature = "metadata-hash")))] fn main() { - #[cfg(feature = "std")] - { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build(); - } + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build(); } + +#[cfg(all(feature = "std", feature = "metadata-hash"))] +fn main() { + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .enable_metadata_hash("LOC", 18) + .build(); +} + +#[cfg(not(feature = "std"))] +fn main() {} diff --git a/runtime/local/src/lib.rs b/runtime/local/src/lib.rs index 01995b9501..9e4d4a520b 100644 --- a/runtime/local/src/lib.rs +++ b/runtime/local/src/lib.rs @@ -233,6 +233,8 @@ impl frame_system::Config for Runtime { type RuntimeEvent = RuntimeEvent; /// The ubiquitous origin type. type RuntimeOrigin = RuntimeOrigin; + /// The aggregated RuntimeTask type. + type RuntimeTask = RuntimeTask; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; /// The weight of database operations that the runtime can invoke. @@ -256,6 +258,11 @@ impl frame_system::Config for Runtime { /// The set code logic, just the default since we're not a parachain. type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -316,7 +323,6 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = RuntimeFreezeReason; - type MaxHolds = ConstU32<2>; type MaxFreezes = ConstU32<1>; } @@ -706,6 +712,7 @@ impl pallet_vesting::Config for Runtime { type MinVestedTransfer = MinVestedTransfer; type WeightInfo = pallet_vesting::weights::SubstrateWeight; type UnvestedFundsAllowedWithdrawReasons = UnvestedFundsAllowedWithdrawReasons; + type BlockNumberProvider = System; // `VestingInfo` encode length is 36bytes. 28 schedules gets encoded as 1009 bytes, which is the // highest number of schedules that encodes less than 2^10. const MAX_VESTING_SCHEDULES: u32 = 28; @@ -754,6 +761,9 @@ impl pallet_contracts::Config for Runtime { type Environment = (); type Migrations = (); type Xcm = (); + type UploadOrigin = EnsureSigned<::AccountId>; + type InstantiateOrigin = EnsureSigned<::AccountId>; + type ApiVersion = (); } impl pallet_sudo::Config for Runtime { @@ -1189,6 +1199,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, + frame_metadata_hash_extension::CheckMetadataHash, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = @@ -1281,7 +1292,7 @@ extern crate frame_benchmarking; mod benches { define_benchmarks!( [frame_benchmarking, BaselineBench::] - [pallet_assets, Assets] + [pallet_assets, pallet_assets::Pallet::] [frame_system, SystemBench::] [pallet_balances, Balances] [pallet_timestamp, Timestamp] @@ -1302,7 +1313,7 @@ impl_runtime_apis! { Executive::execute_block(block); } - fn initialize_block(header: &::Header) { + fn initialize_block(header: &::Header) -> sp_runtime::ExtrinsicInclusionMode { Executive::initialize_block(header) } } @@ -1855,12 +1866,17 @@ impl_runtime_apis! { fn trace_transaction( extrinsics: Vec<::Extrinsic>, traced_transaction: &pallet_ethereum::Transaction, + header: &::Header, ) -> Result< (), sp_runtime::DispatchError, > { use moonbeam_evm_tracer::tracer::EvmTracer; + // We need to follow the order when replaying the transactions. + // Block initialize happens first then apply_extrinsic. + Executive::initialize_block(header); + // Apply the a subset of extrinsics: all the substrate-specific or ethereum // transactions that preceded the requested transaction. for ext in extrinsics.into_iter() { @@ -1884,6 +1900,7 @@ impl_runtime_apis! { fn trace_block( extrinsics: Vec<::Extrinsic>, known_transactions: Vec, + header: &::Header, ) -> Result< (), sp_runtime::DispatchError, @@ -1893,6 +1910,10 @@ impl_runtime_apis! { let mut config = ::config().clone(); config.estimate = true; + // We need to follow the order when replaying the transactions. + // Block initialize happens first then apply_extrinsic. + Executive::initialize_block(header); + // Apply all extrinsics. Ethereum extrinsics are traced. for ext in extrinsics.into_iter() { match &ext.0.function { diff --git a/runtime/local/src/weights/pallet_balances.rs b/runtime/local/src/weights/pallet_balances.rs index 6758d5b3ab..da5dbbea88 100644 --- a/runtime/local/src/weights/pallet_balances.rs +++ b/runtime/local/src/weights/pallet_balances.rs @@ -1,4 +1,3 @@ - // This file is part of Astar. // Copyright (C) Stake Technologies Pte.Ltd. @@ -19,11 +18,11 @@ //! Autogenerated weights for pallet_balances //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-09-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `devserver-01`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("shibuya-dev"), DB CACHE: 1024 +//! HOSTNAME: `gh-runner-01-ovh`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("shibuya-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/astar-collator @@ -37,7 +36,7 @@ // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./benchmark-results/balances_weights.rs +// --output=./benchmark-results/shibuya-dev/balances_weights.rs // --template=./scripts/templates/weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -50,106 +49,114 @@ use core::marker::PhantomData; /// Weights for pallet_balances using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl pallet_balances::WeightInfo for SubstrateWeight { - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: UnifiedAccounts EvmToNative (r:1 w:0) - /// Proof: UnifiedAccounts EvmToNative (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn transfer_allow_death() -> Weight { // Proof Size summary in bytes: // Measured: `94` // Estimated: `3593` - // Minimum execution time: 54_598_000 picoseconds. - Weight::from_parts(55_039_000, 3593) + // Minimum execution time: 45_586_000 picoseconds. + Weight::from_parts(46_228_000, 3593) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_keep_alive() -> Weight { // Proof Size summary in bytes: // Measured: `52` // Estimated: `3593` - // Minimum execution time: 39_626_000 picoseconds. - Weight::from_parts(40_238_000, 3593) + // Minimum execution time: 31_484_000 picoseconds. + Weight::from_parts(32_124_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_set_balance_creating() -> Weight { // Proof Size summary in bytes: // Measured: `140` // Estimated: `3593` - // Minimum execution time: 16_675_000 picoseconds. - Weight::from_parts(16_939_000, 3593) + // Minimum execution time: 12_933_000 picoseconds. + Weight::from_parts(13_286_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: UnifiedAccounts EvmToNative (r:1 w:0) - /// Proof: UnifiedAccounts EvmToNative (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn force_set_balance_killing() -> Weight { // Proof Size summary in bytes: // Measured: `182` // Estimated: `3593` - // Minimum execution time: 26_023_000 picoseconds. - Weight::from_parts(26_587_000, 3593) + // Minimum execution time: 22_605_000 picoseconds. + Weight::from_parts(23_442_000, 3593) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: UnifiedAccounts EvmToNative (r:1 w:0) - /// Proof: UnifiedAccounts EvmToNative (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `197` // Estimated: `6196` - // Minimum execution time: 57_231_000 picoseconds. - Weight::from_parts(58_030_000, 6196) + // Minimum execution time: 47_087_000 picoseconds. + Weight::from_parts(47_709_000, 6196) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: UnifiedAccounts EvmToNative (r:1 w:0) - /// Proof: UnifiedAccounts EvmToNative (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn transfer_all() -> Weight { // Proof Size summary in bytes: // Measured: `94` // Estimated: `3593` - // Minimum execution time: 51_686_000 picoseconds. - Weight::from_parts(52_193_000, 3593) + // Minimum execution time: 44_690_000 picoseconds. + Weight::from_parts(45_117_000, 3593) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_unreserve() -> Weight { // Proof Size summary in bytes: // Measured: `140` // Estimated: `3593` - // Minimum execution time: 19_416_000 picoseconds. - Weight::from_parts(19_850_000, 3593) + // Minimum execution time: 14_694_000 picoseconds. + Weight::from_parts(15_038_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:999 w:999) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:999 w:999) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `u` is `[1, 1000]`. fn upgrade_accounts(u: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + u * (136 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 19_161_000 picoseconds. - Weight::from_parts(19_253_000, 990) - // Standard Error: 8_562 - .saturating_add(Weight::from_parts(13_649_240, 0).saturating_mul(u.into())) + // Minimum execution time: 14_456_000 picoseconds. + Weight::from_parts(14_807_000, 990) + // Standard Error: 8_717 + .saturating_add(Weight::from_parts(10_808_686, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) } + fn force_adjust_total_issuance() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_975_000 picoseconds. + Weight::from_parts(6_179_000, 0) + } + fn burn() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/runtime/shibuya/Cargo.toml b/runtime/shibuya/Cargo.toml index ad723d9c6d..6242fabda9 100644 --- a/runtime/shibuya/Cargo.toml +++ b/runtime/shibuya/Cargo.toml @@ -37,6 +37,7 @@ sp-version = { workspace = true } # frame dependencies frame-executive = { workspace = true } +frame-metadata-hash-extension = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } frame-system-rpc-runtime-api = { workspace = true } @@ -125,9 +126,6 @@ pallet-xcm = { workspace = true } pallet-xcm-benchmarks = { workspace = true, optional = true } pallet-xvm = { workspace = true } -# Get rid of this after uplifting to high enough version of ORML so we get access to benchmark support for the pallet -oracle-benchmarks = { workspace = true } - dapp-staking-v3-runtime-api = { workspace = true } precompile-utils = { workspace = true } @@ -169,7 +167,6 @@ std = [ "sp-io/std", "sp-runtime/std", "sp-runtime-interface/std", - "oracle-benchmarks/std", "pallet-membership/std", "sp-version/std", "sp-block-builder/std", @@ -180,6 +177,7 @@ std = [ "frame-executive/std", "frame-system/std", "frame-system-rpc-runtime-api/std", + "frame-metadata-hash-extension/std", "pallet-authorship/std", "pallet-aura/std", "pallet-assets/std", @@ -269,7 +267,6 @@ std = [ ] runtime-benchmarks = [ "astar-xcm-benchmarks/runtime-benchmarks", - "oracle-benchmarks/runtime-benchmarks", "pallet-xcm-benchmarks/runtime-benchmarks", "pallet-collective-proxy/runtime-benchmarks", "pallet-treasury/runtime-benchmarks", @@ -324,6 +321,7 @@ runtime-benchmarks = [ "cumulus-pallet-dmp-queue/runtime-benchmarks", "cumulus-primitives-core/runtime-benchmarks", "parachains-common/runtime-benchmarks", + "orml-oracle/runtime-benchmarks", ] try-runtime = [ "fp-self-contained/try-runtime", @@ -361,7 +359,6 @@ try-runtime = [ "pallet-scheduler/try-runtime", "pallet-proxy/try-runtime", "pallet-contracts/try-runtime", - "oracle-benchmarks/try-runtime", "pallet-evm-chain-id/try-runtime", "cumulus-pallet-aura-ext/try-runtime", "cumulus-pallet-dmp-queue/try-runtime", @@ -388,3 +385,10 @@ evm-tracing = [ "moonbeam-rpc-primitives-debug", "moonbeam-rpc-primitives-txpool", ] + +# Enable metadata hash generation at compile time for the `CheckMetadataHash` extension. +metadata-hash = ["substrate-wasm-builder?/metadata-hash"] + +# A feature that should be enabled when the runtime should be built for on-chain +# deployment. This will disable stuff that shouldn't be part of the on-chain wasm +on-chain-release-build = ["metadata-hash"] diff --git a/runtime/shibuya/build.rs b/runtime/shibuya/build.rs index c0316ca18a..64ac25a660 100644 --- a/runtime/shibuya/build.rs +++ b/runtime/shibuya/build.rs @@ -16,13 +16,24 @@ // You should have received a copy of the GNU General Public License // along with Astar. If not, see . +#[cfg(all(feature = "std", not(feature = "metadata-hash")))] fn main() { - #[cfg(feature = "std")] - { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build(); - } + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build(); } + +#[cfg(all(feature = "std", feature = "metadata-hash"))] +fn main() { + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .enable_metadata_hash("SBY", 18) + .build(); +} + +#[cfg(not(feature = "std"))] +fn main() {} diff --git a/runtime/shibuya/src/lib.rs b/runtime/shibuya/src/lib.rs index d845fed340..508529379d 100644 --- a/runtime/shibuya/src/lib.rs +++ b/runtime/shibuya/src/lib.rs @@ -86,7 +86,7 @@ use astar_primitives::{ MainCouncilMembershipInst, MainTreasuryInst, OracleMembershipInst, TechnicalCommitteeCollectiveInst, TechnicalCommitteeMembershipInst, }, - oracle::{CurrencyAmount, CurrencyId, DummyCombineData}, + oracle::{CurrencyId, DummyCombineData, Price}, xcm::AssetLocationIdConverter, Address, AssetId, BlockNumber, Hash, Header, Nonce, }; @@ -291,6 +291,8 @@ impl frame_system::Config for Runtime { type RuntimeEvent = RuntimeEvent; /// The ubiquitous origin type. type RuntimeOrigin = RuntimeOrigin; + /// The aggregated RuntimeTask type. + type RuntimeTask = RuntimeTask; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; /// Runtime version. @@ -308,6 +310,11 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type MaxConsumers = frame_support::traits::ConstU32<16>; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -345,6 +352,12 @@ impl pallet_identity::Config for Runtime { type Slashed = (); type ForceOrigin = EnsureRoot; type RegistrarOrigin = EnsureRoot; + type OffchainSignature = Signature; + type SigningPublicKey = ::Signer; + type UsernameAuthorityOrigin = EnsureRoot<::AccountId>; + type PendingUsernameExpiration = ConstU32<{ 7 * DAYS }>; + type MaxSuffixLength = ConstU32<7>; + type MaxUsernameLength = ConstU32<32>; type WeightInfo = pallet_identity::weights::SubstrateWeight; } @@ -402,10 +415,10 @@ impl pallet_preimage::Config for Runtime { } #[cfg(feature = "runtime-benchmarks")] -pub struct BenchmarkHelper(sp_std::marker::PhantomData<(SC, ACC)>); +pub struct DAppStakingBenchmarkHelper(sp_std::marker::PhantomData<(SC, ACC)>); #[cfg(feature = "runtime-benchmarks")] impl pallet_dapp_staking_v3::BenchmarkHelper, AccountId> - for BenchmarkHelper, AccountId> + for DAppStakingBenchmarkHelper, AccountId> { fn get_smart_contract(id: u32) -> SmartContract { let id_bytes = id.to_le_bytes(); @@ -461,7 +474,7 @@ impl pallet_dapp_staking_v3::Config for Runtime { type RankingEnabled = ConstBool; type WeightInfo = weights::pallet_dapp_staking_v3::SubstrateWeight; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = BenchmarkHelper, AccountId>; + type BenchmarkHelper = DAppStakingBenchmarkHelper, AccountId>; } pub struct InflationPayoutPerBlock; @@ -639,7 +652,6 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = RuntimeFreezeReason; - type MaxHolds = ConstU32<2>; type MaxFreezes = ConstU32<1>; } @@ -689,6 +701,7 @@ impl pallet_vesting::Config for Runtime { type MinVestedTransfer = MinVestedTransfer; type WeightInfo = pallet_vesting::weights::SubstrateWeight; type UnvestedFundsAllowedWithdrawReasons = UnvestedFundsAllowedWithdrawReasons; + type BlockNumberProvider = System; // `VestingInfo` encode length is 36bytes. 28 schedules gets encoded as 1009 bytes, which is the // highest number of schedules that encodes less than 2^10. const MAX_VESTING_SCHEDULES: u32 = 28; @@ -737,6 +750,9 @@ impl pallet_contracts::Config for Runtime { type Environment = (); type Migrations = (); type Xcm = (); + type UploadOrigin = EnsureSigned<::AccountId>; + type InstantiateOrigin = EnsureSigned<::AccountId>; + type ApiVersion = (); } // These values are based on the Astar 2.0 Tokenomics Modeling report. @@ -1181,6 +1197,19 @@ impl pallet_price_aggregator::Config for Runtime { type WeightInfo = pallet_price_aggregator::weights::SubstrateWeight; } +#[cfg(feature = "runtime-benchmarks")] +pub struct OracleBenchmarkHelper; +#[cfg(feature = "runtime-benchmarks")] +impl orml_oracle::BenchmarkHelper> for OracleBenchmarkHelper { + fn get_currency_id_value_pairs() -> sp_runtime::BoundedVec<(CurrencyId, Price), ConstU32<2>> { + sp_runtime::BoundedVec::try_from(vec![ + (CurrencyId::ASTR, Price::from_rational(15, 100)), + (CurrencyId::ASTR, Price::from_rational(15, 100)), + ]) + .expect("out of bounds") + } +} + parameter_types! { // Cannot specify `Root` so need to do it like this, unfortunately. pub RootOperatorAccountId: AccountId = AccountId::from([0xffu8; 32]); @@ -1192,15 +1221,20 @@ impl orml_oracle::Config for Runtime { type CombineData = DummyCombineData; type Time = Timestamp; type OracleKey = CurrencyId; - type OracleValue = CurrencyAmount; + type OracleValue = Price; type RootOperatorAccountId = RootOperatorAccountId; + #[cfg(feature = "runtime-benchmarks")] + type Members = OracleMembershipWrapper; + #[cfg(not(feature = "runtime-benchmarks"))] type Members = OracleMembership; type MaxHasDispatchedSize = ConstU32<8>; - type WeightInfo = oracle_benchmarks::weights::SubstrateWeight; + type WeightInfo = weights::orml_oracle::SubstrateWeight; #[cfg(feature = "runtime-benchmarks")] type MaxFeedValues = ConstU32<2>; #[cfg(not(feature = "runtime-benchmarks"))] type MaxFeedValues = ConstU32<1>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = OracleBenchmarkHelper; } impl pallet_membership::Config for Runtime { @@ -1217,33 +1251,22 @@ impl pallet_membership::Config for Runtime { type WeightInfo = pallet_membership::weights::SubstrateWeight; } -// The oracle-benchmarks pallet should be removed once we uplift to high enough version -// (assumption is `polkadot-v1.10.0`) to have access to normal oracle pallet benchmarks). -// -// The pallet is stateless so in order to remove it, only code needs to be cleaned up. -pub struct DummyKeyPairValue; -impl Get<(CurrencyId, CurrencyAmount)> for DummyKeyPairValue { - fn get() -> (CurrencyId, CurrencyAmount) { - (CurrencyId::ASTR, CurrencyAmount::from_rational(15, 100)) - } -} -pub struct AddMemberBenchmark; -impl oracle_benchmarks::AddMember for AddMemberBenchmark { - fn add_member(account: AccountId) { - use frame_support::assert_ok; - use frame_system::RawOrigin; - assert_ok!( - pallet_membership::Pallet::::add_member( - RawOrigin::Root.into(), - account.into() - ) - ); +/// OracleMembership wrapper used by benchmarks +#[cfg(feature = "runtime-benchmarks")] +pub struct OracleMembershipWrapper; + +#[cfg(feature = "runtime-benchmarks")] +impl frame_support::traits::SortedMembers for OracleMembershipWrapper { + fn sorted_members() -> Vec { + OracleMembership::sorted_members() } -} -impl oracle_benchmarks::Config for Runtime { - type BenchmarkCurrencyIdValuePair = DummyKeyPairValue; - type AddMember = AddMemberBenchmark; + fn add(account: &AccountId) { + frame_support::assert_ok!(OracleMembership::add_member( + frame_system::RawOrigin::Root.into(), + account.to_owned().into() + )); + } } parameter_types! { @@ -1552,9 +1575,6 @@ construct_runtime!( Treasury: pallet_treasury:: = 107, CommunityTreasury: pallet_treasury:: = 108, CollectiveProxy: pallet_collective_proxy = 109, - - // Remove after benchmarks are available in orml_oracle - OracleBenchmarks: oracle_benchmarks = 251, } ); @@ -1573,6 +1593,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, + frame_metadata_hash_extension::CheckMetadataHash, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = @@ -1596,49 +1617,15 @@ pub type Executive = frame_executive::Executive< /// /// Once done, migrations should be removed from the tuple. pub type Migrations = ( - GovernancePalletsVersionSetting, cumulus_pallet_xcmp_queue::migration::v4::MigrationToV4, + // permanent migration, do not remove + pallet_xcm::migration::MigrateToLatestXcmVersion, + // XCM V3 -> V4 + pallet_xc_asset_config::migrations::versioned::V2ToV3, + pallet_identity::migration::versioned::V0ToV1, + pallet_unified_accounts::migration::ClearCorruptedUnifiedMappings, ); -use frame_support::traits::{GetStorageVersion, OnRuntimeUpgrade}; -pub struct GovernancePalletsVersionSetting; -impl OnRuntimeUpgrade for GovernancePalletsVersionSetting { - fn on_runtime_upgrade() -> Weight { - // 1. Membership pallet instances - let membership_storage_version = pallet_membership::Pallet::< - Runtime, - MainCouncilMembershipInst, - >::current_storage_version(); - - membership_storage_version - .put::>(); - membership_storage_version - .put::>(); - membership_storage_version - .put::>(); - - // 2. Collective pallet instances - let collective_storage_version = pallet_collective::Pallet::< - Runtime, - MainCouncilCollectiveInst, - >::current_storage_version(); - - collective_storage_version - .put::>(); - collective_storage_version - .put::>(); - collective_storage_version - .put::>(); - - // 3. Democracy pallet - let democracy_storage_version = - pallet_democracy::Pallet::::current_storage_version(); - democracy_storage_version.put::>(); - - ::DbWeight::get().writes(7) - } -} - type EventRecord = frame_system::EventRecord< ::RuntimeEvent, ::Hash, @@ -1711,7 +1698,7 @@ mod benches { define_benchmarks!( [frame_benchmarking, BaselineBench::] [frame_system, SystemBench::] - [pallet_assets, Assets] + [pallet_assets, pallet_assets::Pallet::] [pallet_balances, Balances] [pallet_timestamp, Timestamp] [pallet_dapp_staking_v3, DappStaking] @@ -1727,8 +1714,8 @@ mod benches { [xcm_benchmarks_fungible, XcmFungible] [pallet_price_aggregator, PriceAggregator] [pallet_membership, OracleMembership] - [oracle_benchmarks, OracleBenchmarks] [pallet_collective_proxy, CollectiveProxy] + [orml_oracle, Oracle] ); } @@ -1742,7 +1729,7 @@ impl_runtime_apis! { Executive::execute_block(block) } - fn initialize_block(header: &::Header) { + fn initialize_block(header: &::Header) -> sp_runtime::ExtrinsicInclusionMode { Executive::initialize_block(header) } } @@ -2258,28 +2245,57 @@ impl_runtime_apis! { impl frame_system_benchmarking::Config for Runtime {} impl baseline::Config for Runtime {} use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; + + pub struct TestDeliveryHelper; + impl xcm_builder::EnsureDelivery for TestDeliveryHelper { + fn ensure_successful_delivery( + origin_ref: &Location, + _dest: &Location, + _fee_reason: xcm_executor::traits::FeeReason, + ) -> (Option, Option) { + use xcm_executor::traits::ConvertLocation; + let account = xcm_config::LocationToAccountId::convert_location(origin_ref) + .expect("Invalid location"); + // Give the existential deposit at least + let balance = ExistentialDeposit::get(); + let _ = >:: + make_free_balance_be(&account.into(), balance); + + (None, None) + } + } + impl pallet_xcm::benchmarking::Config for Runtime { - fn reachable_dest() -> Option { + type DeliveryHelper = TestDeliveryHelper; + + fn reachable_dest() -> Option { Some(Parent.into()) } - fn teleportable_asset_and_dest() -> Option<(MultiAsset, MultiLocation)> { + fn teleportable_asset_and_dest() -> Option<(Asset, Location)> { None } - fn reserve_transferable_asset_and_dest() -> Option<(MultiAsset, MultiLocation)> { + fn reserve_transferable_asset_and_dest() -> Option<(Asset, Location)> { let random_para_id = 43211234; ParachainSystem::open_outbound_hrmp_channel_for_benchmarks_or_tests( random_para_id.into() ); Some(( - MultiAsset { + Asset { fun: Fungible(ExistentialDeposit::get()), - id: Concrete(Here.into()) + id: AssetId(Here.into()) }, ParentThen(Parachain(random_para_id).into()).into(), )) } + + fn get_asset() -> Asset { + Asset { + id: AssetId(Here.into()), + fun: Fungible(ExistentialDeposit::get()), + } + } } // XCM Benchmarks @@ -2292,10 +2308,10 @@ impl_runtime_apis! { type AccountIdConverter = xcm_config::LocationToAccountId; type DeliveryHelper = (); // destination location to be used in benchmarks - fn valid_destination() -> Result { - Ok(MultiLocation::parent()) + fn valid_destination() -> Result { + Ok(Location::parent()) } - fn worst_case_holding(_depositable_count: u32) -> MultiAssets { + fn worst_case_holding(_depositable_count: u32) -> Assets { XcmBenchmarkHelper::::worst_case_holding() } } @@ -2307,64 +2323,67 @@ impl_runtime_apis! { (0u64, Response::Version(Default::default())) } fn worst_case_asset_exchange() - -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + -> Result<(Assets, Assets), BenchmarkError> { Err(BenchmarkError::Skip) } - fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { + fn universal_alias() -> Result<(Location, Junction), BenchmarkError> { Err(BenchmarkError::Skip) } fn transact_origin_and_runtime_call() - -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { - Ok((MultiLocation::parent(), frame_system::Call::remark_with_event { + -> Result<(Location, RuntimeCall), BenchmarkError> { + Ok((Location::parent(), frame_system::Call::remark_with_event { remark: vec![] }.into())) } - fn subscribe_origin() -> Result { - Ok(MultiLocation::parent()) + fn subscribe_origin() -> Result { + Ok(Location::parent()) } fn claimable_asset() - -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { - let origin = MultiLocation::parent(); - let assets: MultiAssets = (Concrete(MultiLocation::parent()), 1_000u128) + -> Result<(Location, Location, Assets), BenchmarkError> { + let origin = Location::parent(); + let assets: Assets = (AssetId(Location::parent()), 1_000u128) .into(); - let ticket = MultiLocation { parents: 0, interior: Here }; + let ticket = Location { parents: 0, interior: Here }; Ok((origin, ticket, assets)) } fn unlockable_asset() - -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + -> Result<(Location, Location, Asset), BenchmarkError> { Err(BenchmarkError::Skip) } fn export_message_origin_and_destination( - ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { + ) -> Result<(Location, NetworkId, InteriorLocation), BenchmarkError> { Err(BenchmarkError::Skip) } - fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + fn alias_origin() -> Result<(Location, Location), BenchmarkError> { Err(BenchmarkError::Skip) } + fn fee_asset() -> Result { + Ok((AssetId(Here.into()), 100).into()) + } } parameter_types! { pub const NoCheckingAccount: Option<(AccountId, MintLocation)> = None; - pub const NoTeleporter: Option<(MultiLocation, MultiAsset)> = None; + pub const NoTeleporter: Option<(Location, Asset)> = None; pub const TransactAssetId: u128 = 1001; - pub const TransactAssetLocation: MultiLocation = MultiLocation { parents: 0, interior: X1(GeneralIndex(TransactAssetId::get())) }; + pub TransactAssetLocation: Location = Location { parents: 0, interior: [GeneralIndex(TransactAssetId::get())].into() }; - pub TrustedReserveLocation: MultiLocation = Parent.into(); - pub TrustedReserveAsset: MultiAsset = MultiAsset { id: Concrete(TrustedReserveLocation::get()), fun: Fungible(1_000_000) }; - pub TrustedReserve: Option<(MultiLocation, MultiAsset)> = Some((TrustedReserveLocation::get(), TrustedReserveAsset::get())); + pub TrustedReserveLocation: Location = Parent.into(); + pub TrustedReserveAsset: Asset = Asset { id: AssetId(TrustedReserveLocation::get()), fun: Fungible(1_000_000) }; + pub TrustedReserve: Option<(Location, Asset)> = Some((TrustedReserveLocation::get(), TrustedReserveAsset::get())); } impl pallet_xcm_benchmarks::fungible::Config for Runtime { - type TransactAsset = ItemOf; + type TransactAsset = ItemOf, TransactAssetId, AccountId>; type CheckedAccount = NoCheckingAccount; type TrustedTeleporter = NoTeleporter; type TrustedReserve = TrustedReserve; - fn get_multi_asset() -> MultiAsset { + fn get_asset() -> Asset { let min_balance = 100u128; // create the transact asset and make it sufficient - assert_ok!(Assets::force_create( + assert_ok!(pallet_assets::Pallet::::force_create( RuntimeOrigin::root(), TransactAssetId::get().into(), Address::Id([0u8; 32].into()), @@ -2382,8 +2401,8 @@ impl_runtime_apis! { ) ); - MultiAsset { - id: Concrete(TransactAssetLocation::get()), + Asset { + id: AssetId(TransactAssetLocation::get()), fun: Fungible(min_balance * 100), } } @@ -2408,12 +2427,17 @@ impl_runtime_apis! { fn trace_transaction( extrinsics: Vec<::Extrinsic>, traced_transaction: &pallet_ethereum::Transaction, + header: &::Header, ) -> Result< (), sp_runtime::DispatchError, > { use moonbeam_evm_tracer::tracer::EvmTracer; + // We need to follow the order when replaying the transactions. + // Block initialize happens first then apply_extrinsic. + Executive::initialize_block(header); + // Apply the a subset of extrinsics: all the substrate-specific or ethereum // transactions that preceded the requested transaction. for ext in extrinsics.into_iter() { @@ -2437,6 +2461,7 @@ impl_runtime_apis! { fn trace_block( extrinsics: Vec<::Extrinsic>, known_transactions: Vec, + header: &::Header, ) -> Result< (), sp_runtime::DispatchError, @@ -2446,6 +2471,10 @@ impl_runtime_apis! { let mut config = ::config().clone(); config.estimate = true; + // We need to follow the order when replaying the transactions. + // Block initialize happens first then apply_extrinsic. + Executive::initialize_block(header); + // Apply all extrinsics. Ethereum extrinsics are traced. for ext in extrinsics.into_iter() { match &ext.0.function { diff --git a/runtime/shibuya/src/weights/mod.rs b/runtime/shibuya/src/weights/mod.rs index ef39d64ac1..91d43f0856 100644 --- a/runtime/shibuya/src/weights/mod.rs +++ b/runtime/shibuya/src/weights/mod.rs @@ -16,6 +16,7 @@ // You should have received a copy of the GNU General Public License // along with Astar. If not, see . +pub mod orml_oracle; pub mod pallet_assets; pub mod pallet_balances; pub mod pallet_dapp_staking_v3; diff --git a/pallets/oracle-benchmarks/src/weights.rs b/runtime/shibuya/src/weights/orml_oracle.rs similarity index 80% rename from pallets/oracle-benchmarks/src/weights.rs rename to runtime/shibuya/src/weights/orml_oracle.rs index 6516c620a0..6e96b836cb 100644 --- a/pallets/oracle-benchmarks/src/weights.rs +++ b/runtime/shibuya/src/weights/orml_oracle.rs @@ -1,4 +1,3 @@ - // This file is part of Astar. // Copyright (C) Stake Technologies Pte.Ltd. @@ -17,10 +16,10 @@ // You should have received a copy of the GNU General Public License // along with Astar. If not, see . -//! Autogenerated weights for oracle_benchmarks +//! Autogenerated weights for orml_oracle //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2024-03-18, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `gh-runner-01-ovh`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("shibuya-dev"), DB CACHE: 1024 @@ -32,12 +31,12 @@ // --chain=shibuya-dev // --steps=50 // --repeat=20 -// --pallet=oracle_benchmarks +// --pallet=orml_oracle // --extrinsic=* // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./benchmark-results/shibuya-dev/benchmarks_weights.rs +// --output=./benchmark-results/shibuya-dev/oracle_weights.rs // --template=./scripts/templates/weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -46,11 +45,10 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; -use orml_oracle::WeightInfo; -/// Weights for oracle_benchmarks using the Substrate node and recommended hardware. +/// Weights for orml_oracle using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); -impl WeightInfo for SubstrateWeight { +impl orml_oracle::WeightInfo for SubstrateWeight { /// Storage: `OracleMembership::Members` (r:1 w:0) /// Proof: `OracleMembership::Members` (`max_values`: Some(1), `max_size`: Some(513), added: 1008, mode: `MaxEncodedLen`) /// Storage: `Oracle::HasDispatched` (r:1 w:1) @@ -64,12 +62,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `x` is `[1, 2]`. fn feed_values(x: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `279` + // Measured: `345` // Estimated: `8634` - // Minimum execution time: 28_512_000 picoseconds. - Weight::from_parts(20_589_375, 8634) - // Standard Error: 94_515 - .saturating_add(Weight::from_parts(8_962_312, 0).saturating_mul(x.into())) + // Minimum execution time: 25_321_000 picoseconds. + Weight::from_parts(18_159_773, 8634) + // Standard Error: 58_695 + .saturating_add(Weight::from_parts(7_973_363, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -79,8 +77,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 812_000 picoseconds. - Weight::from_parts(885_000, 0) + // Minimum execution time: 1_170_000 picoseconds. + Weight::from_parts(1_248_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/shibuya/src/weights/pallet_assets.rs b/runtime/shibuya/src/weights/pallet_assets.rs index 8104351d9e..e9a12a1d7d 100644 --- a/runtime/shibuya/src/weights/pallet_assets.rs +++ b/runtime/shibuya/src/weights/pallet_assets.rs @@ -18,17 +18,17 @@ //! Autogenerated weights for pallet_assets //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `devserver-01`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("astar-dev"), DB CACHE: 1024 +//! HOSTNAME: `gh-runner-01-ovh`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("shibuya-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/astar-collator // benchmark // pallet -// --chain=astar-dev +// --chain=shibuya-dev // --steps=50 // --repeat=20 // --pallet=pallet_assets @@ -36,7 +36,7 @@ // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./benchmark-results/assets_weights.rs +// --output=./benchmark-results/shibuya-dev/assets_weights.rs // --template=./scripts/templates/weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -49,447 +49,459 @@ use core::marker::PhantomData; /// Weights for pallet_assets using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl pallet_assets::WeightInfo for SubstrateWeight { - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: EVM AccountCodes (r:1 w:1) - /// Proof Skipped: EVM AccountCodes (max_values: None, max_size: None, mode: Measured) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `EVM::AccountCodes` (r:1 w:1) + /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn create() -> Weight { // Proof Size summary in bytes: - // Measured: `659` - // Estimated: `4124` - // Minimum execution time: 35_155_000 picoseconds. - Weight::from_parts(35_760_000, 4124) + // Measured: `795` + // Estimated: `4260` + // Minimum execution time: 30_773_000 picoseconds. + Weight::from_parts(31_337_000, 4260) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: EVM AccountCodes (r:1 w:1) - /// Proof Skipped: EVM AccountCodes (max_values: None, max_size: None, mode: Measured) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `EVM::AccountCodes` (r:1 w:1) + /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_create() -> Weight { // Proof Size summary in bytes: - // Measured: `519` - // Estimated: `3984` - // Minimum execution time: 20_004_000 picoseconds. - Weight::from_parts(20_348_000, 3984) + // Measured: `655` + // Estimated: `4120` + // Minimum execution time: 18_585_000 picoseconds. + Weight::from_parts(19_019_000, 4120) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn start_destroy() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `393` // Estimated: `3687` - // Minimum execution time: 13_682_000 picoseconds. - Weight::from_parts(14_059_000, 3687) + // Minimum execution time: 13_288_000 picoseconds. + Weight::from_parts(13_440_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1001 w:1000) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1000 w:1000) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1001 w:1000) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1000 w:1000) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1000 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) /// The range of component `c` is `[0, 1000]`. fn destroy_accounts(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `255 + c * (208 ±0)` + // Measured: `535 + c * (208 ±0)` // Estimated: `3687 + c * (2621 ±0)` - // Minimum execution time: 17_910_000 picoseconds. - Weight::from_parts(18_110_000, 3687) - // Standard Error: 6_525 - .saturating_add(Weight::from_parts(11_623_553, 0).saturating_mul(c.into())) + // Minimum execution time: 14_171_000 picoseconds. + Weight::from_parts(14_445_000, 3687) + // Standard Error: 6_240 + .saturating_add(Weight::from_parts(11_963_193, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) .saturating_add(Weight::from_parts(0, 2621).saturating_mul(c.into())) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1001 w:1000) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1001 w:1000) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 1000]`. fn destroy_approvals(a: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `438 + a * (86 ±0)` + // Measured: `542 + a * (86 ±0)` // Estimated: `3687 + a * (2635 ±0)` - // Minimum execution time: 18_065_000 picoseconds. - Weight::from_parts(18_372_000, 3687) - // Standard Error: 4_985 - .saturating_add(Weight::from_parts(13_662_720, 0).saturating_mul(a.into())) + // Minimum execution time: 17_694_000 picoseconds. + Weight::from_parts(17_830_000, 3687) + // Standard Error: 4_136 + .saturating_add(Weight::from_parts(11_329_548, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(Weight::from_parts(0, 2635).saturating_mul(a.into())) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:0) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) - /// Storage: EVM AccountCodes (r:0 w:1) - /// Proof Skipped: EVM AccountCodes (max_values: None, max_size: None, mode: Measured) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) + /// Storage: `EVM::AccountCodes` (r:0 w:1) + /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn finish_destroy() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `359` // Estimated: `3687` - // Minimum execution time: 16_700_000 picoseconds. - Weight::from_parts(17_418_000, 3687) + // Minimum execution time: 12_920_000 picoseconds. + Weight::from_parts(13_225_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn mint() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `359` // Estimated: `3687` - // Minimum execution time: 26_305_000 picoseconds. - Weight::from_parts(27_014_000, 3687) + // Minimum execution time: 19_404_000 picoseconds. + Weight::from_parts(19_898_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn burn() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `521` // Estimated: `3687` - // Minimum execution time: 30_525_000 picoseconds. - Weight::from_parts(31_113_000, 3687) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Minimum execution time: 30_518_000 picoseconds. + Weight::from_parts(31_071_000, 3687) + .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn transfer() -> Weight { // Proof Size summary in bytes: - // Measured: `447` + // Measured: `626` // Estimated: `6232` - // Minimum execution time: 42_955_000 picoseconds. - Weight::from_parts(43_309_000, 6232) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Minimum execution time: 41_063_000 picoseconds. + Weight::from_parts(41_857_000, 6232) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_keep_alive() -> Weight { // Proof Size summary in bytes: - // Measured: `447` + // Measured: `584` // Estimated: `6232` - // Minimum execution time: 37_951_000 picoseconds. - Weight::from_parts(38_330_000, 6232) + // Minimum execution time: 34_010_000 picoseconds. + Weight::from_parts(34_608_000, 6232) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { // Proof Size summary in bytes: - // Measured: `447` + // Measured: `626` // Estimated: `6232` - // Minimum execution time: 43_061_000 picoseconds. - Weight::from_parts(43_561_000, 6232) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Minimum execution time: 41_199_000 picoseconds. + Weight::from_parts(41_786_000, 6232) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn freeze() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `479` // Estimated: `3687` - // Minimum execution time: 17_259_000 picoseconds. - Weight::from_parts(17_516_000, 3687) + // Minimum execution time: 16_289_000 picoseconds. + Weight::from_parts(16_606_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn thaw() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `479` // Estimated: `3687` - // Minimum execution time: 17_165_000 picoseconds. - Weight::from_parts(17_547_000, 3687) + // Minimum execution time: 16_470_000 picoseconds. + Weight::from_parts(16_797_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn freeze_asset() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `393` // Estimated: `3687` - // Minimum execution time: 13_634_000 picoseconds. - Weight::from_parts(14_069_000, 3687) + // Minimum execution time: 12_886_000 picoseconds. + Weight::from_parts(13_226_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn thaw_asset() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `393` // Estimated: `3687` - // Minimum execution time: 13_456_000 picoseconds. - Weight::from_parts(13_770_000, 3687) + // Minimum execution time: 12_916_000 picoseconds. + Weight::from_parts(13_191_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:0) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) fn transfer_ownership() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `359` // Estimated: `3687` - // Minimum execution time: 16_083_000 picoseconds. - Weight::from_parts(16_343_000, 3687) + // Minimum execution time: 12_070_000 picoseconds. + Weight::from_parts(12_339_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn set_team() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `359` // Estimated: `3687` - // Minimum execution time: 14_443_000 picoseconds. - Weight::from_parts(14_818_000, 3687) + // Minimum execution time: 10_701_000 picoseconds. + Weight::from_parts(10_959_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. - fn set_metadata(_n: u32, _s: u32, ) -> Weight { + fn set_metadata(n: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `359` // Estimated: `3687` - // Minimum execution time: 28_260_000 picoseconds. - Weight::from_parts(29_181_263, 3687) + // Minimum execution time: 25_234_000 picoseconds. + Weight::from_parts(25_597_463, 3687) + // Standard Error: 660 + .saturating_add(Weight::from_parts(9_991, 0).saturating_mul(n.into())) + // Standard Error: 660 + .saturating_add(Weight::from_parts(4_898, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) fn clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `431` + // Measured: `535` // Estimated: `3687` - // Minimum execution time: 28_580_000 picoseconds. - Weight::from_parts(28_826_000, 3687) + // Minimum execution time: 25_954_000 picoseconds. + Weight::from_parts(26_679_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. fn force_set_metadata(n: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `94` + // Measured: `198` // Estimated: `3687` - // Minimum execution time: 14_605_000 picoseconds. - Weight::from_parts(15_107_642, 3687) - // Standard Error: 450 - .saturating_add(Weight::from_parts(6_608, 0).saturating_mul(n.into())) - // Standard Error: 450 - .saturating_add(Weight::from_parts(2_783, 0).saturating_mul(s.into())) + // Minimum execution time: 10_999_000 picoseconds. + Weight::from_parts(11_508_016, 3687) + // Standard Error: 306 + .saturating_add(Weight::from_parts(1_216, 0).saturating_mul(n.into())) + // Standard Error: 306 + .saturating_add(Weight::from_parts(1_235, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) fn force_clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `431` + // Measured: `535` // Estimated: `3687` - // Minimum execution time: 27_925_000 picoseconds. - Weight::from_parts(28_323_000, 3687) + // Minimum execution time: 25_379_000 picoseconds. + Weight::from_parts(26_041_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn force_asset_status() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `359` // Estimated: `3687` - // Minimum execution time: 13_904_000 picoseconds. - Weight::from_parts(14_431_000, 3687) + // Minimum execution time: 10_204_000 picoseconds. + Weight::from_parts(10_649_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) fn approve_transfer() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `393` // Estimated: `3687` - // Minimum execution time: 31_152_000 picoseconds. - Weight::from_parts(31_715_000, 3687) + // Minimum execution time: 27_578_000 picoseconds. + Weight::from_parts(28_160_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_approved() -> Weight { // Proof Size summary in bytes: - // Measured: `680` + // Measured: `817` // Estimated: `6232` - // Minimum execution time: 63_252_000 picoseconds. - Weight::from_parts(63_718_000, 6232) + // Minimum execution time: 54_322_000 picoseconds. + Weight::from_parts(54_857_000, 6232) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) fn cancel_approval() -> Weight { // Proof Size summary in bytes: - // Measured: `471` + // Measured: `575` // Estimated: `3687` - // Minimum execution time: 34_375_000 picoseconds. - Weight::from_parts(34_640_000, 3687) + // Minimum execution time: 29_697_000 picoseconds. + Weight::from_parts(30_355_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) fn force_cancel_approval() -> Weight { // Proof Size summary in bytes: - // Measured: `471` + // Measured: `575` // Estimated: `3687` - // Minimum execution time: 34_159_000 picoseconds. - Weight::from_parts(34_693_000, 3687) + // Minimum execution time: 30_198_000 picoseconds. + Weight::from_parts(30_810_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn set_min_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `359` // Estimated: `3687` - // Minimum execution time: 15_114_000 picoseconds. - Weight::from_parts(15_271_000, 3687) + // Minimum execution time: 11_137_000 picoseconds. + Weight::from_parts(11_346_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn touch() -> Weight { // Proof Size summary in bytes: - // Measured: `429` + // Measured: `566` // Estimated: `3687` - // Minimum execution time: 34_356_000 picoseconds. - Weight::from_parts(34_856_000, 3687) + // Minimum execution time: 29_448_000 picoseconds. + Weight::from_parts(29_777_000, 3687) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn touch_other() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `359` // Estimated: `3687` - // Minimum execution time: 31_063_000 picoseconds. - Weight::from_parts(31_331_000, 3687) + // Minimum execution time: 27_369_000 picoseconds. + Weight::from_parts(27_968_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn refund() -> Weight { // Proof Size summary in bytes: - // Measured: `567` + // Measured: `704` // Estimated: `3687` - // Minimum execution time: 31_678_000 picoseconds. - Weight::from_parts(31_941_000, 3687) + // Minimum execution time: 28_639_000 picoseconds. + Weight::from_parts(28_992_000, 3687) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn refund_other() -> Weight { // Proof Size summary in bytes: - // Measured: `426` + // Measured: `530` // Estimated: `3687` - // Minimum execution time: 28_601_000 picoseconds. - Weight::from_parts(28_966_000, 3687) + // Minimum execution time: 26_478_000 picoseconds. + Weight::from_parts(26_848_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn block() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `479` // Estimated: `3687` - // Minimum execution time: 17_545_000 picoseconds. - Weight::from_parts(17_959_000, 3687) + // Minimum execution time: 16_211_000 picoseconds. + Weight::from_parts(16_729_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/shibuya/src/weights/pallet_balances.rs b/runtime/shibuya/src/weights/pallet_balances.rs index 6758d5b3ab..da5dbbea88 100644 --- a/runtime/shibuya/src/weights/pallet_balances.rs +++ b/runtime/shibuya/src/weights/pallet_balances.rs @@ -1,4 +1,3 @@ - // This file is part of Astar. // Copyright (C) Stake Technologies Pte.Ltd. @@ -19,11 +18,11 @@ //! Autogenerated weights for pallet_balances //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-09-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `devserver-01`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("shibuya-dev"), DB CACHE: 1024 +//! HOSTNAME: `gh-runner-01-ovh`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("shibuya-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/astar-collator @@ -37,7 +36,7 @@ // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./benchmark-results/balances_weights.rs +// --output=./benchmark-results/shibuya-dev/balances_weights.rs // --template=./scripts/templates/weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -50,106 +49,114 @@ use core::marker::PhantomData; /// Weights for pallet_balances using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl pallet_balances::WeightInfo for SubstrateWeight { - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: UnifiedAccounts EvmToNative (r:1 w:0) - /// Proof: UnifiedAccounts EvmToNative (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn transfer_allow_death() -> Weight { // Proof Size summary in bytes: // Measured: `94` // Estimated: `3593` - // Minimum execution time: 54_598_000 picoseconds. - Weight::from_parts(55_039_000, 3593) + // Minimum execution time: 45_586_000 picoseconds. + Weight::from_parts(46_228_000, 3593) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_keep_alive() -> Weight { // Proof Size summary in bytes: // Measured: `52` // Estimated: `3593` - // Minimum execution time: 39_626_000 picoseconds. - Weight::from_parts(40_238_000, 3593) + // Minimum execution time: 31_484_000 picoseconds. + Weight::from_parts(32_124_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_set_balance_creating() -> Weight { // Proof Size summary in bytes: // Measured: `140` // Estimated: `3593` - // Minimum execution time: 16_675_000 picoseconds. - Weight::from_parts(16_939_000, 3593) + // Minimum execution time: 12_933_000 picoseconds. + Weight::from_parts(13_286_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: UnifiedAccounts EvmToNative (r:1 w:0) - /// Proof: UnifiedAccounts EvmToNative (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn force_set_balance_killing() -> Weight { // Proof Size summary in bytes: // Measured: `182` // Estimated: `3593` - // Minimum execution time: 26_023_000 picoseconds. - Weight::from_parts(26_587_000, 3593) + // Minimum execution time: 22_605_000 picoseconds. + Weight::from_parts(23_442_000, 3593) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:2 w:2) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: UnifiedAccounts EvmToNative (r:1 w:0) - /// Proof: UnifiedAccounts EvmToNative (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `197` // Estimated: `6196` - // Minimum execution time: 57_231_000 picoseconds. - Weight::from_parts(58_030_000, 6196) + // Minimum execution time: 47_087_000 picoseconds. + Weight::from_parts(47_709_000, 6196) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: UnifiedAccounts EvmToNative (r:1 w:0) - /// Proof: UnifiedAccounts EvmToNative (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) + /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) fn transfer_all() -> Weight { // Proof Size summary in bytes: // Measured: `94` // Estimated: `3593` - // Minimum execution time: 51_686_000 picoseconds. - Weight::from_parts(52_193_000, 3593) + // Minimum execution time: 44_690_000 picoseconds. + Weight::from_parts(45_117_000, 3593) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_unreserve() -> Weight { // Proof Size summary in bytes: // Measured: `140` // Estimated: `3593` - // Minimum execution time: 19_416_000 picoseconds. - Weight::from_parts(19_850_000, 3593) + // Minimum execution time: 14_694_000 picoseconds. + Weight::from_parts(15_038_000, 3593) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: System Account (r:999 w:999) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:999 w:999) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `u` is `[1, 1000]`. fn upgrade_accounts(u: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + u * (136 ±0)` // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 19_161_000 picoseconds. - Weight::from_parts(19_253_000, 990) - // Standard Error: 8_562 - .saturating_add(Weight::from_parts(13_649_240, 0).saturating_mul(u.into())) + // Minimum execution time: 14_456_000 picoseconds. + Weight::from_parts(14_807_000, 990) + // Standard Error: 8_717 + .saturating_add(Weight::from_parts(10_808_686, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) } + fn force_adjust_total_issuance() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_975_000 picoseconds. + Weight::from_parts(6_179_000, 0) + } + fn burn() -> Weight { // Proof Size summary in bytes: // Measured: `0` diff --git a/runtime/shibuya/src/weights/pallet_xcm.rs b/runtime/shibuya/src/weights/pallet_xcm.rs index 0acc758fab..e9700b0c01 100644 --- a/runtime/shibuya/src/weights/pallet_xcm.rs +++ b/runtime/shibuya/src/weights/pallet_xcm.rs @@ -19,17 +19,17 @@ //! Autogenerated weights for pallet_xcm //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `devserver-01`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("astar-dev"), DB CACHE: 1024 +//! HOSTNAME: `gh-runner-01-ovh`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("shibuya-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/astar-collator // benchmark // pallet -// --chain=astar-dev +// --chain=shibuya-dev // --steps=50 // --repeat=20 // --pallet=pallet_xcm @@ -37,7 +37,7 @@ // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./benchmark-results/xcm_weights.rs +// --output=./benchmark-results/shibuya-dev/xcm_weights.rs // --template=./scripts/templates/weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -50,27 +50,23 @@ use core::marker::PhantomData; /// Weights for pallet_xcm using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl pallet_xcm::WeightInfo for SubstrateWeight { - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `74` - // Estimated: `3539` - // Minimum execution time: 28_095_000 picoseconds. - Weight::from_parts(28_511_000, 3539) - .saturating_add(T::DbWeight::get().reads(5_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + // Measured: `109` + // Estimated: `3574` + // Minimum execution time: 16_607_000 picoseconds. + Weight::from_parts(17_088_000, 3574) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn teleport_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` @@ -78,25 +74,38 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. Weight::from_parts(18_446_744_073_709_551_000, 0) } - /// Storage: ParachainInfo ParachainId (r:1 w:0) - /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `71` - // Estimated: `3593` - // Minimum execution time: 30_849_000 picoseconds. - Weight::from_parts(31_324_000, 3593) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Measured: `382` + // Estimated: `3847` + // Minimum execution time: 76_020_000 picoseconds. + Weight::from_parts(77_852_000, 3847) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn transfer_assets() -> Weight { - todo!() + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) } - - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn execute() -> Weight { // Proof Size summary in bytes: // Measured: `0` @@ -104,185 +113,193 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. Weight::from_parts(18_446_744_073_709_551_000, 0) } - /// Storage: PolkadotXcm SupportedVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_619_000 picoseconds. - Weight::from_parts(9_881_000, 0) + // Minimum execution time: 7_506_000 picoseconds. + Weight::from_parts(7_791_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) fn force_default_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_109_000 picoseconds. - Weight::from_parts(3_261_000, 0) - .saturating_add(T::DbWeight::get().writes(1_u64)) + // Minimum execution time: 2_287_000 picoseconds. + Weight::from_parts(2_423_000, 0) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm QueryCounter (r:1 w:1) - /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `74` - // Estimated: `3539` - // Minimum execution time: 31_620_000 picoseconds. - Weight::from_parts(32_143_000, 3539) - .saturating_add(T::DbWeight::get().reads(7_u64)) - .saturating_add(T::DbWeight::get().writes(5_u64)) + // Measured: `109` + // Estimated: `3574` + // Minimum execution time: 20_432_000 picoseconds. + Weight::from_parts(21_217_000, 3574) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`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`) + /// 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`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `257` - // Estimated: `3722` - // Minimum execution time: 32_263_000 picoseconds. - Weight::from_parts(32_775_000, 3722) - .saturating_add(T::DbWeight::get().reads(6_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Measured: `168` + // Estimated: `3633` + // Minimum execution time: 21_477_000 picoseconds. + Weight::from_parts(21_811_000, 3633) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: PolkadotXcm XcmExecutionSuspended (r:0 w:1) - /// Proof Skipped: PolkadotXcm XcmExecutionSuspended (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn force_suspension() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_067_000 picoseconds. - Weight::from_parts(3_211_000, 0) + // Minimum execution time: 2_284_000 picoseconds. + Weight::from_parts(2_499_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `132` - // Estimated: `11022` - // Minimum execution time: 15_935_000 picoseconds. - Weight::from_parts(16_441_000, 11022) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `22` + // Estimated: `13387` + // Minimum execution time: 14_915_000 picoseconds. + Weight::from_parts(15_133_000, 13387) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `136` - // Estimated: `11026` - // Minimum execution time: 16_005_000 picoseconds. - Weight::from_parts(16_385_000, 11026) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `26` + // Estimated: `13391` + // Minimum execution time: 14_764_000 picoseconds. + Weight::from_parts(14_997_000, 13391) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: - // Measured: `143` - // Estimated: `13508` - // Minimum execution time: 16_238_000 picoseconds. - Weight::from_parts(16_875_000, 13508) - .saturating_add(T::DbWeight::get().reads(5_u64)) + // Measured: `75` + // Estimated: `15915` + // Minimum execution time: 16_328_000 picoseconds. + Weight::from_parts(16_751_000, 15915) + .saturating_add(T::DbWeight::get().reads(6_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 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`) + /// 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: `142` // Estimated: `6082` - // Minimum execution time: 28_995_000 picoseconds. - Weight::from_parts(29_401_000, 6082) - .saturating_add(T::DbWeight::get().reads(7_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + // Minimum execution time: 20_408_000 picoseconds. + Weight::from_parts(21_085_000, 6082) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `136` - // Estimated: `8551` - // Minimum execution time: 7_907_000 picoseconds. - Weight::from_parts(8_304_000, 8551) - .saturating_add(T::DbWeight::get().reads(3_u64)) + // Measured: `69` + // Estimated: `10959` + // Minimum execution time: 11_110_000 picoseconds. + Weight::from_parts(11_401_000, 10959) + .saturating_add(T::DbWeight::get().reads(4_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `143` - // Estimated: `11033` - // Minimum execution time: 16_487_000 picoseconds. - Weight::from_parts(16_957_000, 11033) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `33` + // Estimated: `13398` + // Minimum execution time: 15_421_000 picoseconds. + Weight::from_parts(15_759_000, 13398) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) + /// 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`) + /// 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: `185` - // Estimated: `11075` - // Minimum execution time: 34_975_000 picoseconds. - Weight::from_parts(35_686_000, 11075) - .saturating_add(T::DbWeight::get().reads(9_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Measured: `142` + // Estimated: `13507` + // Minimum execution time: 28_581_000 picoseconds. + Weight::from_parts(29_076_000, 13507) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn new_query() -> Weight { - Weight::MAX + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 2_278_000 picoseconds. + Weight::from_parts(2_325_000, 1485) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - + /// Storage: `PolkadotXcm::Queries` (r:1 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn take_response() -> Weight { - Weight::MAX + // Proof Size summary in bytes: + // Measured: `7576` + // Estimated: `11041` + // Minimum execution time: 22_435_000 picoseconds. + Weight::from_parts(22_641_000, 11041) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + /// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn claim_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `23` + // Estimated: `3488` + // Minimum execution time: 31_984_000 picoseconds. + Weight::from_parts(32_565_000, 3488) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/shibuya/src/weights/xcm/mod.rs b/runtime/shibuya/src/weights/xcm/mod.rs index a166e69172..78c90936c7 100644 --- a/runtime/shibuya/src/weights/xcm/mod.rs +++ b/runtime/shibuya/src/weights/xcm/mod.rs @@ -38,7 +38,7 @@ trait WeighMultiAssetsFilter { fn weigh_multi_assets_filter(&self, weight: Weight) -> XCMWeight; } -impl WeighMultiAssetsFilter for MultiAssetFilter { +impl WeighMultiAssetsFilter for AssetFilter { fn weigh_multi_assets_filter(&self, weight: Weight) -> XCMWeight { match self { Self::Definite(assets) => { @@ -52,7 +52,7 @@ impl WeighMultiAssetsFilter for MultiAssetFilter { } } -impl WeighMultiAssets for MultiAssets { +impl WeighMultiAssets for Assets { fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { weight.saturating_mul(self.inner().into_iter().count() as u64) } @@ -63,34 +63,30 @@ impl XcmWeightInfo for XcmWeight where Runtime: frame_system::Config, { - fn withdraw_asset(assets: &MultiAssets) -> XCMWeight { + fn withdraw_asset(assets: &Assets) -> XCMWeight { XcmFungibleWeight::::withdraw_asset() .saturating_mul(assets.inner().into_iter().count() as u64) } - fn reserve_asset_deposited(_assets: &MultiAssets) -> XCMWeight { + fn reserve_asset_deposited(_assets: &Assets) -> XCMWeight { XcmFungibleWeight::::reserve_asset_deposited() } - fn receive_teleported_asset(assets: &MultiAssets) -> XCMWeight { + fn receive_teleported_asset(assets: &Assets) -> XCMWeight { assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) } fn query_response( _query_id: &u64, _response: &Response, _max_weight: &Weight, - _querier: &Option, + _querier: &Option, ) -> XCMWeight { XcmGeneric::::query_response() } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> XCMWeight { + fn transfer_asset(assets: &Assets, _dest: &Location) -> XCMWeight { XcmFungibleWeight::::transfer_asset() .saturating_mul(assets.inner().into_iter().count() as u64) } - fn transfer_reserve_asset( - assets: &MultiAssets, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> XCMWeight { + fn transfer_reserve_asset(assets: &Assets, _dest: &Location, _xcm: &Xcm<()>) -> XCMWeight { XcmFungibleWeight::::transfer_reserve_asset() .saturating_mul(assets.inner().into_iter().count() as u64) } @@ -120,32 +116,24 @@ where fn clear_origin() -> XCMWeight { XcmGeneric::::clear_origin() } - fn descend_origin(_who: &InteriorMultiLocation) -> XCMWeight { + fn descend_origin(_who: &InteriorLocation) -> XCMWeight { XcmGeneric::::descend_origin() } fn report_error(_query_response_info: &QueryResponseInfo) -> XCMWeight { XcmGeneric::::report_error() } - fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> XCMWeight { + fn deposit_asset(assets: &AssetFilter, _dest: &Location) -> XCMWeight { assets.weigh_multi_assets_filter(XcmFungibleWeight::::deposit_asset()) } - fn deposit_reserve_asset( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> XCMWeight { + fn deposit_reserve_asset(assets: &AssetFilter, _dest: &Location, _xcm: &Xcm<()>) -> XCMWeight { assets.weigh_multi_assets_filter(XcmFungibleWeight::::deposit_reserve_asset()) } - fn exchange_asset( - _give: &MultiAssetFilter, - _receive: &MultiAssets, - _maximal: &bool, - ) -> XCMWeight { + fn exchange_asset(_give: &AssetFilter, _receive: &Assets, _maximal: &bool) -> XCMWeight { Weight::MAX } fn initiate_reserve_withdraw( - _assets: &MultiAssetFilter, - _reserve: &MultiLocation, + _assets: &AssetFilter, + _reserve: &Location, _xcm: &Xcm<()>, ) -> XCMWeight { // This is not correct. initiate reserve withdraw does not to that many db reads @@ -153,17 +141,13 @@ where //assets.weigh_multi_assets(XcmGeneric::::initiate_reserve_withdraw()) XcmFungibleWeight::::initiate_reserve_withdraw() } - fn initiate_teleport( - _assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> XCMWeight { + fn initiate_teleport(_assets: &AssetFilter, _dest: &Location, _xcm: &Xcm<()>) -> XCMWeight { XcmFungibleWeight::::initiate_teleport() } - fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + fn report_holding(_response_info: &QueryResponseInfo, _assets: &AssetFilter) -> Weight { XcmGeneric::::report_holding() } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> XCMWeight { + fn buy_execution(_fees: &Asset, _weight_limit: &WeightLimit) -> XCMWeight { XcmGeneric::::buy_execution() } fn refund_surplus() -> XCMWeight { @@ -178,7 +162,7 @@ where fn clear_error() -> XCMWeight { XcmGeneric::::clear_error() } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> XCMWeight { + fn claim_asset(_assets: &Assets, _ticket: &Location) -> XCMWeight { XcmGeneric::::claim_asset() } fn trap(_code: &u64) -> XCMWeight { @@ -190,13 +174,13 @@ where fn unsubscribe_version() -> XCMWeight { XcmGeneric::::unsubscribe_version() } - fn burn_asset(assets: &MultiAssets) -> Weight { + fn burn_asset(assets: &Assets) -> Weight { assets.weigh_multi_assets(XcmGeneric::::burn_asset()) } - fn expect_asset(assets: &MultiAssets) -> Weight { + fn expect_asset(assets: &Assets) -> Weight { assets.weigh_multi_assets(XcmGeneric::::expect_asset()) } - fn expect_origin(_origin: &Option) -> Weight { + fn expect_origin(_origin: &Option) -> Weight { XcmGeneric::::expect_origin() } fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { @@ -229,16 +213,16 @@ where fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { Weight::MAX } - fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn lock_asset(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn unlock_asset(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn note_unlockable(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn request_unlock(_: &Asset, _: &Location) -> Weight { Weight::MAX } fn set_fees_mode(_: &bool) -> Weight { @@ -250,11 +234,11 @@ where fn clear_topic() -> Weight { XcmGeneric::::clear_topic() } - fn alias_origin(_: &MultiLocation) -> Weight { + fn alias_origin(_: &Location) -> Weight { // XCM Executor does not currently support alias origin operations Weight::MAX } - fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } } diff --git a/runtime/shibuya/src/xcm_config.rs b/runtime/shibuya/src/xcm_config.rs index 20bb751394..9bd00a698f 100644 --- a/runtime/shibuya/src/xcm_config.rs +++ b/runtime/shibuya/src/xcm_config.rs @@ -24,8 +24,8 @@ use super::{ }; use crate::weights; use frame_support::{ - match_types, parameter_types, - traits::{ConstU32, Everything, Nothing}, + parameter_types, + traits::{ConstU32, Contains, Everything, Nothing}, weights::Weight, }; use frame_system::EnsureRoot; @@ -39,11 +39,12 @@ use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowUnpaidExecutionFrom, - ConvertedConcreteId, CurrencyAdapter, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, - FungiblesAdapter, HashedDescription, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - UsingComponents, WeightInfoBounds, WithComputedOrigin, + ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, + FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, HashedDescription, IsConcrete, + NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds, + WithComputedOrigin, }; use xcm_executor::{traits::JustTry, XcmExecutor}; @@ -59,13 +60,13 @@ use astar_primitives::xcm::{ parameter_types! { pub RelayNetwork: Option = Some(NetworkId::Rococo); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub UniversalLocation: InteriorMultiLocation = - X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); - pub const ShibuyaLocation: MultiLocation = Here.into_location(); + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())].into(); + pub const ShibuyaLocation: Location = Here.into_location(); pub DummyCheckingAccount: AccountId = PolkadotXcm::check_account(); } -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// Type for specifying how a `Location` can be converted into an `AccountId`. This is used /// when determining ownership of accounts for asset transacting and when attempting to use XCM /// `Transact` in order to determine the dispatch Origin. pub type LocationToAccountId = ( @@ -75,18 +76,18 @@ pub type LocationToAccountId = ( SiblingParachainConvertsVia, // Straight up local `AccountId32` origins just alias directly to `AccountId`. AccountId32Aliases, - // Generates private `AccountId`s from `MultiLocation`s, in a stable & safe way. + // Generates private `AccountId`s from `Location`s, in a stable & safe way. // Replaces the old `Account32Hash` approach. HashedDescription>, ); /// Means for transacting the native currency on this chain. -pub type CurrencyTransactor = CurrencyAdapter< +pub type CurrencyTransactor = FungibleAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: IsConcrete, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -100,7 +101,7 @@ pub type FungiblesTransactor = FungiblesAdapter< Assets, // Use this currency when it is a fungible asset matching the given location or name: ConvertedConcreteId, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -145,11 +146,11 @@ parameter_types! { pub const MaxAssetsIntoHolding: u32 = MAX_ASSETS; } -match_types! { - pub type ParentOrParentsPlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { .. }) } - }; +pub struct ParentOrParentsPlurality; +impl Contains for ParentOrParentsPlurality { + fn contains(location: &Location) -> bool { + matches!(location.unpack(), (1, []) | (1, [Plurality { .. }])) + } } pub type XcmBarrier = ( @@ -206,6 +207,7 @@ impl xcm_executor::Config for XcmConfig { type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; type Aliasers = Nothing; + type TransactionalProcessor = FrameTransactionalProcessor; } /// Local origins on this chain are allowed to dispatch XCM sends/executions. @@ -276,22 +278,21 @@ impl cumulus_pallet_dmp_queue::Config for Runtime { parameter_types! { /// The absolute location in perspective of the whole network. - pub ShibuyaLocationAbsolute: MultiLocation = MultiLocation { + pub ShibuyaLocationAbsolute: Location = Location { parents: 1, - interior: X1( - Parachain(ParachainInfo::parachain_id().into()) - ) + interior: Parachain(ParachainInfo::parachain_id().into()).into() + }; /// Max asset types for one cross-chain transfer. `2` covers all current use cases. /// Can be updated with extra test cases in the future if needed. pub const MaxAssetsForTransfer: usize = 2; } -/// Convert `AssetId` to optional `MultiLocation`. The impl is a wrapper +/// Convert `AssetId` to optional `Location`. The impl is a wrapper /// on `ShibuyaAssetLocationIdConverter`. pub struct AssetIdConvert; -impl Convert> for AssetIdConvert { - fn convert(asset_id: AssetId) -> Option { +impl Convert> for AssetIdConvert { + fn convert(asset_id: AssetId) -> Option { ShibuyaAssetLocationIdConverter::convert_back(&asset_id) } } @@ -301,7 +302,7 @@ impl orml_xtokens::Config for Runtime { type Balance = Balance; type CurrencyId = AssetId; type CurrencyIdConvert = AssetIdConvert; - type AccountIdToMultiLocation = AccountIdToMultiLocation; + type AccountIdToLocation = AccountIdToMultiLocation; type SelfLocation = ShibuyaLocation; type XcmExecutor = XcmExecutor; type Weigher = Weigher; @@ -310,6 +311,8 @@ impl orml_xtokens::Config for Runtime { type MaxAssetsForTransfer = MaxAssetsForTransfer; // Default impl. Refer to `orml-xtokens` docs for more details. type MinXcmFee = DisabledParachainFee; - type MultiLocationsFilter = Everything; + type LocationsFilter = Everything; type ReserveProvider = AbsoluteAndRelativeReserveProvider; + type RateLimiter = (); + type RateLimiterId = (); } diff --git a/runtime/shiden/Cargo.toml b/runtime/shiden/Cargo.toml index e0cfb87d69..e56101f9ce 100644 --- a/runtime/shiden/Cargo.toml +++ b/runtime/shiden/Cargo.toml @@ -38,6 +38,7 @@ sp-version = { workspace = true } # frame dependencies frame-executive = { workspace = true } +frame-metadata-hash-extension = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } frame-system-rpc-runtime-api = { workspace = true } @@ -121,9 +122,6 @@ pallet-price-aggregator = { workspace = true } pallet-xc-asset-config = { workspace = true } pallet-xcm = { workspace = true } -# Get rid of this after uplifting to high enough version of ORML so we get access to benchmark support for the pallet -oracle-benchmarks = { workspace = true } - dapp-staking-v3-runtime-api = { workspace = true } precompile-utils = { workspace = true } @@ -161,12 +159,12 @@ std = [ "frame-executive/std", "frame-system/std", "frame-system-rpc-runtime-api/std", + "frame-metadata-hash-extension/std", "pallet-authorship/std", "pallet-aura/std", "pallet-assets/std", "pallet-balances/std", "pallet-contracts/std", - "oracle-benchmarks/std", "pallet-dynamic-evm-base-fee/std", "pallet-ethereum/std", "pallet-evm/std", @@ -269,7 +267,6 @@ runtime-benchmarks = [ "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", - "oracle-benchmarks/runtime-benchmarks", "orml-xtokens/runtime-benchmarks", "pallet-chain-extension-assets/runtime-benchmarks", "pallet-contracts/runtime-benchmarks", @@ -291,6 +288,7 @@ runtime-benchmarks = [ "cumulus-primitives-core/runtime-benchmarks", "pallet-message-queue/runtime-benchmarks", "parachains-common/runtime-benchmarks", + "orml-oracle/runtime-benchmarks", ] try-runtime = [ "astar-primitives/try-runtime", @@ -334,7 +332,6 @@ try-runtime = [ "pallet-dynamic-evm-base-fee/try-runtime", "pallet-evm/try-runtime", "orml-xtokens/try-runtime", - "oracle-benchmarks/try-runtime", "pallet-message-queue/try-runtime", "astar-xcm-benchmarks?/try-runtime", "pallet-chain-extension-assets/try-runtime", @@ -346,3 +343,10 @@ evm-tracing = [ "moonbeam-rpc-primitives-debug", "moonbeam-rpc-primitives-txpool", ] + +# Enable metadata hash generation at compile time for the `CheckMetadataHash` extension. +metadata-hash = ["substrate-wasm-builder?/metadata-hash"] + +# A feature that should be enabled when the runtime should be built for on-chain +# deployment. This will disable stuff that shouldn't be part of the on-chain wasm +on-chain-release-build = ["metadata-hash"] diff --git a/runtime/shiden/build.rs b/runtime/shiden/build.rs index c0316ca18a..5d42afc2bf 100644 --- a/runtime/shiden/build.rs +++ b/runtime/shiden/build.rs @@ -16,13 +16,24 @@ // You should have received a copy of the GNU General Public License // along with Astar. If not, see . +#[cfg(all(feature = "std", not(feature = "metadata-hash")))] fn main() { - #[cfg(feature = "std")] - { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build(); - } + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build(); } + +#[cfg(all(feature = "std", feature = "metadata-hash"))] +fn main() { + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .enable_metadata_hash("SDN", 18) + .build(); +} + +#[cfg(not(feature = "std"))] +fn main() {} diff --git a/runtime/shiden/src/lib.rs b/runtime/shiden/src/lib.rs index 12679aaf6b..3bfef20a3a 100644 --- a/runtime/shiden/src/lib.rs +++ b/runtime/shiden/src/lib.rs @@ -75,7 +75,7 @@ use astar_primitives::{ }, evm::EvmRevertCodeHandler, governance::OracleMembershipInst, - oracle::{CurrencyAmount, CurrencyId, DummyCombineData}, + oracle::{CurrencyId, DummyCombineData, Price}, xcm::AssetLocationIdConverter, Address, AssetId, BlockNumber, Hash, Header, Nonce, }; @@ -255,6 +255,8 @@ impl frame_system::Config for Runtime { type RuntimeEvent = RuntimeEvent; /// The ubiquitous origin type. type RuntimeOrigin = RuntimeOrigin; + /// The aggregated RuntimeTask type. + type RuntimeTask = RuntimeTask; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; /// Runtime version. @@ -272,6 +274,11 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type MaxConsumers = frame_support::traits::ConstU32<16>; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -335,6 +342,12 @@ impl pallet_identity::Config for Runtime { type Slashed = (); type ForceOrigin = EnsureRoot<::AccountId>; type RegistrarOrigin = EnsureRoot<::AccountId>; + type OffchainSignature = Signature; + type SigningPublicKey = ::Signer; + type UsernameAuthorityOrigin = EnsureRoot<::AccountId>; + type PendingUsernameExpiration = ConstU32<{ 7 * DAYS }>; + type MaxSuffixLength = ConstU32<7>; + type MaxUsernameLength = ConstU32<32>; type WeightInfo = pallet_identity::weights::SubstrateWeight; } @@ -356,10 +369,10 @@ impl pallet_multisig::Config for Runtime { } #[cfg(feature = "runtime-benchmarks")] -pub struct BenchmarkHelper(sp_std::marker::PhantomData<(SC, ACC)>); +pub struct DAppStakingBenchmarkHelper(sp_std::marker::PhantomData<(SC, ACC)>); #[cfg(feature = "runtime-benchmarks")] impl pallet_dapp_staking_v3::BenchmarkHelper, AccountId> - for BenchmarkHelper, AccountId> + for DAppStakingBenchmarkHelper, AccountId> { fn get_smart_contract(id: u32) -> SmartContract { let id_bytes = id.to_le_bytes(); @@ -385,7 +398,7 @@ impl DappStakingAccountCheck for AccountCheck { pub struct ShidenTierSlots; impl TierSlotsFunc for ShidenTierSlots { - fn number_of_slots(price: CurrencyAmount) -> u16 { + fn number_of_slots(price: Price) -> u16 { // According to the forum proposal, the original formula's factor is reduced from 1000x to 100x. let result: u64 = price.saturating_mul_int(100_u64).saturating_add(50); result.unique_saturated_into() @@ -424,7 +437,7 @@ impl pallet_dapp_staking_v3::Config for Runtime { type RankingEnabled = ConstBool; type WeightInfo = weights::pallet_dapp_staking_v3::SubstrateWeight; #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = BenchmarkHelper, AccountId>; + type BenchmarkHelper = DAppStakingBenchmarkHelper, AccountId>; } pub struct InflationPayoutPerBlock; @@ -600,7 +613,6 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = RuntimeFreezeReason; - type MaxHolds = ConstU32<1>; type MaxFreezes = ConstU32<1>; } @@ -670,6 +682,7 @@ impl pallet_vesting::Config for Runtime { type MinVestedTransfer = MinVestedTransfer; type WeightInfo = pallet_vesting::weights::SubstrateWeight; type UnvestedFundsAllowedWithdrawReasons = UnvestedFundsAllowedWithdrawReasons; + type BlockNumberProvider = System; // `VestingInfo` encode length is 36bytes. 28 schedules gets encoded as 1009 bytes, which is the // highest number of schedules that encodes less than 2^10. const MAX_VESTING_SCHEDULES: u32 = 28; @@ -718,6 +731,9 @@ impl pallet_contracts::Config for Runtime { type Environment = (); type Migrations = (); type Xcm = (); + type UploadOrigin = EnsureSigned<::AccountId>; + type InstantiateOrigin = EnsureSigned<::AccountId>; + type ApiVersion = (); } parameter_types! { @@ -1084,6 +1100,19 @@ impl pallet_price_aggregator::Config for Runtime { type WeightInfo = pallet_price_aggregator::weights::SubstrateWeight; } +#[cfg(feature = "runtime-benchmarks")] +pub struct OracleBenchmarkHelper; +#[cfg(feature = "runtime-benchmarks")] +impl orml_oracle::BenchmarkHelper> for OracleBenchmarkHelper { + fn get_currency_id_value_pairs() -> sp_runtime::BoundedVec<(CurrencyId, Price), ConstU32<2>> { + sp_runtime::BoundedVec::try_from(vec![ + (CurrencyId::ASTR, Price::from_rational(15, 100)), + (CurrencyId::ASTR, Price::from_rational(15, 100)), + ]) + .expect("out of bounds") + } +} + parameter_types! { // Cannot specify `Root` so need to do it like this, unfortunately. pub RootOperatorAccountId: AccountId = AccountId::from([0xffu8; 32]); @@ -1095,15 +1124,20 @@ impl orml_oracle::Config for Runtime { type CombineData = DummyCombineData; type Time = Timestamp; type OracleKey = CurrencyId; - type OracleValue = CurrencyAmount; + type OracleValue = Price; type RootOperatorAccountId = RootOperatorAccountId; + #[cfg(feature = "runtime-benchmarks")] + type Members = OracleMembershipWrapper; + #[cfg(not(feature = "runtime-benchmarks"))] type Members = OracleMembership; type MaxHasDispatchedSize = ConstU32<8>; - type WeightInfo = oracle_benchmarks::weights::SubstrateWeight; + type WeightInfo = weights::orml_oracle::SubstrateWeight; #[cfg(feature = "runtime-benchmarks")] type MaxFeedValues = ConstU32<2>; #[cfg(not(feature = "runtime-benchmarks"))] type MaxFeedValues = ConstU32<1>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = OracleBenchmarkHelper; } impl pallet_membership::Config for Runtime { @@ -1120,6 +1154,24 @@ impl pallet_membership::Config for Runtime { type WeightInfo = pallet_membership::weights::SubstrateWeight; } +/// OracleMembership wrapper used by benchmarks +#[cfg(feature = "runtime-benchmarks")] +pub struct OracleMembershipWrapper; + +#[cfg(feature = "runtime-benchmarks")] +impl frame_support::traits::SortedMembers for OracleMembershipWrapper { + fn sorted_members() -> Vec { + OracleMembership::sorted_members() + } + + fn add(account: &AccountId) { + frame_support::assert_ok!(OracleMembership::add_member( + frame_system::RawOrigin::Root.into(), + account.to_owned().into() + )); + } +} + construct_runtime!( pub struct Runtime { @@ -1187,6 +1239,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, + frame_metadata_hash_extension::CheckMetadataHash, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = @@ -1209,7 +1262,14 @@ pub type Executive = frame_executive::Executive< /// All migrations that will run on the next runtime upgrade. /// /// Once done, migrations should be removed from the tuple. -pub type Migrations = (cumulus_pallet_xcmp_queue::migration::v4::MigrationToV4,); +pub type Migrations = ( + cumulus_pallet_xcmp_queue::migration::v4::MigrationToV4, + // permanent migration, do not remove + pallet_xcm::migration::MigrateToLatestXcmVersion, + // XCM V3 -> V4 + pallet_xc_asset_config::migrations::versioned::V2ToV3, + pallet_identity::migration::versioned::V0ToV1, +); type EventRecord = frame_system::EventRecord< ::RuntimeEvent, @@ -1283,7 +1343,7 @@ mod benches { define_benchmarks!( [frame_benchmarking, BaselineBench::] [frame_system, SystemBench::] - [pallet_assets, Assets] + [pallet_assets, pallet_assets::Pallet::] [pallet_balances, Balances] [pallet_timestamp, Timestamp] [pallet_dapp_staking_v3, DappStaking] @@ -1296,6 +1356,7 @@ mod benches { [xcm_benchmarks_fungible, XcmFungible] [pallet_price_aggregator, PriceAggregator] [pallet_membership, OracleMembership] + [orml_oracle, Oracle] ); } @@ -1309,7 +1370,7 @@ impl_runtime_apis! { Executive::execute_block(block) } - fn initialize_block(header: &::Header) { + fn initialize_block(header: &::Header) -> sp_runtime::ExtrinsicInclusionMode { Executive::initialize_block(header) } } @@ -1822,28 +1883,57 @@ impl_runtime_apis! { use xcm_builder::MintLocation; use astar_primitives::benchmarks::XcmBenchmarkHelper; use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; - impl pallet_xcm::benchmarking::Config for Runtime { - fn reachable_dest() -> Option { + + pub struct TestDeliveryHelper; + impl xcm_builder::EnsureDelivery for TestDeliveryHelper { + fn ensure_successful_delivery( + origin_ref: &Location, + _dest: &Location, + _fee_reason: xcm_executor::traits::FeeReason, + ) -> (Option, Option) { + use xcm_executor::traits::ConvertLocation; + let account = xcm_config::LocationToAccountId::convert_location(origin_ref) + .expect("Invalid location"); + // Give the existential deposit at least + let balance = ExistentialDeposit::get(); + let _ = >:: + make_free_balance_be(&account.into(), balance); + + (None, None) + } + } + + impl pallet_xcm::benchmarking::Config for Runtime { + type DeliveryHelper = TestDeliveryHelper; + + fn reachable_dest() -> Option { Some(Parent.into()) } - fn teleportable_asset_and_dest() -> Option<(MultiAsset, MultiLocation)> { + fn teleportable_asset_and_dest() -> Option<(Asset, Location)> { None } - fn reserve_transferable_asset_and_dest() -> Option<(MultiAsset, MultiLocation)> { + fn reserve_transferable_asset_and_dest() -> Option<(Asset, Location)> { let random_para_id = 43211234; ParachainSystem::open_outbound_hrmp_channel_for_benchmarks_or_tests( random_para_id.into() ); Some(( - MultiAsset { + Asset { fun: Fungible(ExistentialDeposit::get()), - id: Concrete(Here.into()) + id: AssetId(Here.into()) }, ParentThen(Parachain(random_para_id).into()).into(), )) } + + fn get_asset() -> Asset { + Asset { + id: AssetId(Here.into()), + fun: Fungible(ExistentialDeposit::get()), + } + } } impl frame_system_benchmarking::Config for Runtime {} @@ -1860,10 +1950,10 @@ impl_runtime_apis! { type DeliveryHelper = (); // destination location to be used in benchmarks - fn valid_destination() -> Result { - Ok(MultiLocation::parent()) + fn valid_destination() -> Result { + Ok(Location::parent()) } - fn worst_case_holding(_depositable_count: u32) -> MultiAssets { + fn worst_case_holding(_depositable_count: u32) -> Assets { XcmBenchmarkHelper::::worst_case_holding() } } @@ -1876,63 +1966,66 @@ impl_runtime_apis! { (0u64, Response::Version(Default::default())) } fn worst_case_asset_exchange() - -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + -> Result<(Assets, Assets), BenchmarkError> { Err(BenchmarkError::Skip) } - fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> { + fn universal_alias() -> Result<(Location, Junction), BenchmarkError> { Err(BenchmarkError::Skip) } fn transact_origin_and_runtime_call() - -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { - Ok((MultiLocation::parent(), frame_system::Call::remark_with_event { + -> Result<(Location, RuntimeCall), BenchmarkError> { + Ok((Location::parent(), frame_system::Call::remark_with_event { remark: vec![] }.into())) } - fn subscribe_origin() -> Result { - Ok(MultiLocation::parent()) + fn subscribe_origin() -> Result { + Ok(Location::parent()) } fn claimable_asset() - -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { - let origin = MultiLocation::parent(); - let assets: MultiAssets = (Concrete(MultiLocation::parent()), 1_000u128) + -> Result<(Location, Location, Assets), BenchmarkError> { + let origin = Location::parent(); + let assets: Assets = (AssetId(Location::parent()), 1_000u128) .into(); - let ticket = MultiLocation { parents: 0, interior: Here }; + let ticket = Location { parents: 0, interior: Here }; Ok((origin, ticket, assets)) } fn unlockable_asset() - -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + -> Result<(Location, Location, Asset), BenchmarkError> { Err(BenchmarkError::Skip) } fn export_message_origin_and_destination( - ) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> { + ) -> Result<(Location, NetworkId, InteriorLocation), BenchmarkError> { Err(BenchmarkError::Skip) } - fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> { + fn alias_origin() -> Result<(Location, Location), BenchmarkError> { Err(BenchmarkError::Skip) } + fn fee_asset() -> Result { + Ok((AssetId(Here.into()), 100).into()) + } } parameter_types! { pub const NoCheckingAccount: Option<(AccountId, MintLocation)> = None; - pub const NoTeleporter: Option<(MultiLocation, MultiAsset)> = None; + pub const NoTeleporter: Option<(Location, Asset)> = None; pub const TransactAssetId: u128 = 1001; - pub const TransactAssetLocation: MultiLocation = MultiLocation { parents: 0, interior: X1(GeneralIndex(TransactAssetId::get())) }; + pub TransactAssetLocation: Location = Location { parents: 0, interior: [GeneralIndex(TransactAssetId::get())].into() }; - pub TrustedReserveLocation: MultiLocation = Parent.into(); - pub TrustedReserveAsset: MultiAsset = MultiAsset { id: Concrete(TrustedReserveLocation::get()), fun: Fungible(1_000_000) }; - pub TrustedReserve: Option<(MultiLocation, MultiAsset)> = Some((TrustedReserveLocation::get(), TrustedReserveAsset::get())); + pub TrustedReserveLocation: Location = Parent.into(); + pub TrustedReserveAsset: Asset = Asset { id: AssetId(TrustedReserveLocation::get()), fun: Fungible(1_000_000) }; + pub TrustedReserve: Option<(Location, Asset)> = Some((TrustedReserveLocation::get(), TrustedReserveAsset::get())); } impl pallet_xcm_benchmarks::fungible::Config for Runtime { - type TransactAsset = ItemOf; + type TransactAsset = ItemOf, TransactAssetId, AccountId>; type CheckedAccount = NoCheckingAccount; type TrustedTeleporter = NoTeleporter; type TrustedReserve = TrustedReserve; - fn get_multi_asset() -> MultiAsset { + fn get_asset() -> Asset { let min_balance = 100u128; // create the transact asset and make it sufficient - assert_ok!(Assets::force_create( + assert_ok!(pallet_assets::Pallet::::force_create( RuntimeOrigin::root(), TransactAssetId::get().into(), Address::Id([0u8; 32].into()), @@ -1950,8 +2043,8 @@ impl_runtime_apis! { ) ); - MultiAsset { - id: Concrete(TransactAssetLocation::get()), + Asset { + id: AssetId(TransactAssetLocation::get()), fun: Fungible(min_balance * 100), } } @@ -1977,12 +2070,17 @@ impl_runtime_apis! { fn trace_transaction( extrinsics: Vec<::Extrinsic>, traced_transaction: &pallet_ethereum::Transaction, + header: &::Header, ) -> Result< (), sp_runtime::DispatchError, > { use moonbeam_evm_tracer::tracer::EvmTracer; + // We need to follow the order when replaying the transactions. + // Block initialize happens first then apply_extrinsic. + Executive::initialize_block(header); + // Apply the a subset of extrinsics: all the substrate-specific or ethereum // transactions that preceded the requested transaction. for ext in extrinsics.into_iter() { @@ -2006,6 +2104,7 @@ impl_runtime_apis! { fn trace_block( extrinsics: Vec<::Extrinsic>, known_transactions: Vec, + header: &::Header, ) -> Result< (), sp_runtime::DispatchError, @@ -2015,6 +2114,10 @@ impl_runtime_apis! { let mut config = ::config().clone(); config.estimate = true; + // We need to follow the order when replaying the transactions. + // Block initialize happens first then apply_extrinsic. + Executive::initialize_block(header); + // Apply all extrinsics. Ethereum extrinsics are traced. for ext in extrinsics.into_iter() { match &ext.0.function { diff --git a/runtime/shiden/src/weights/mod.rs b/runtime/shiden/src/weights/mod.rs index ca0a3880e5..0b665ae16e 100644 --- a/runtime/shiden/src/weights/mod.rs +++ b/runtime/shiden/src/weights/mod.rs @@ -16,6 +16,7 @@ // You should have received a copy of the GNU General Public License // along with Astar. If not, see . +pub mod orml_oracle; pub mod pallet_assets; pub mod pallet_dapp_staking_v3; pub mod pallet_inflation; diff --git a/runtime/shiden/src/weights/orml_oracle.rs b/runtime/shiden/src/weights/orml_oracle.rs new file mode 100644 index 0000000000..3e75d78f7f --- /dev/null +++ b/runtime/shiden/src/weights/orml_oracle.rs @@ -0,0 +1,84 @@ +// This file is part of Astar. + +// Copyright (C) Stake Technologies Pte.Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later + +// Astar is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Astar is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Astar. If not, see . + +//! Autogenerated weights for orml_oracle +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gh-runner-01-ovh`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("shiden-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/release/astar-collator +// benchmark +// pallet +// --chain=shiden-dev +// --steps=50 +// --repeat=20 +// --pallet=orml_oracle +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --heap-pages=4096 +// --output=./benchmark-results/shiden-dev/oracle_weights.rs +// --template=./scripts/templates/weight-template.hbs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use core::marker::PhantomData; + +/// Weights for orml_oracle using the Substrate node and recommended hardware. +pub struct SubstrateWeight(PhantomData); +impl orml_oracle::WeightInfo for SubstrateWeight { + /// Storage: `OracleMembership::Members` (r:1 w:0) + /// Proof: `OracleMembership::Members` (`max_values`: Some(1), `max_size`: Some(513), added: 1008, mode: `MaxEncodedLen`) + /// Storage: `Oracle::HasDispatched` (r:1 w:1) + /// Proof: `Oracle::HasDispatched` (`max_values`: Some(1), `max_size`: Some(257), added: 752, mode: `MaxEncodedLen`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Oracle::RawValues` (r:3 w:1) + /// Proof: `Oracle::RawValues` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Oracle::Values` (r:1 w:0) + /// Proof: `Oracle::Values` (`max_values`: None, `max_size`: Some(33), added: 2508, mode: `MaxEncodedLen`) + /// The range of component `x` is `[1, 2]`. + fn feed_values(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `8634` + // Minimum execution time: 23_928_000 picoseconds. + Weight::from_parts(17_432_536, 8634) + // Standard Error: 59_231 + .saturating_add(Weight::from_parts(7_374_981, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Oracle::HasDispatched` (r:0 w:1) + /// Proof: `Oracle::HasDispatched` (`max_values`: Some(1), `max_size`: Some(257), added: 752, mode: `MaxEncodedLen`) + fn on_finalize() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 991_000 picoseconds. + Weight::from_parts(1_058_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/runtime/shiden/src/weights/pallet_assets.rs b/runtime/shiden/src/weights/pallet_assets.rs index 8104351d9e..91e9431f0d 100644 --- a/runtime/shiden/src/weights/pallet_assets.rs +++ b/runtime/shiden/src/weights/pallet_assets.rs @@ -18,17 +18,17 @@ //! Autogenerated weights for pallet_assets //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-08-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `devserver-01`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("astar-dev"), DB CACHE: 1024 +//! HOSTNAME: `gh-runner-01-ovh`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("shiden-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/astar-collator // benchmark // pallet -// --chain=astar-dev +// --chain=shiden-dev // --steps=50 // --repeat=20 // --pallet=pallet_assets @@ -36,7 +36,7 @@ // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./benchmark-results/assets_weights.rs +// --output=./benchmark-results/shiden-dev/assets_weights.rs // --template=./scripts/templates/weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -49,447 +49,449 @@ use core::marker::PhantomData; /// Weights for pallet_assets using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl pallet_assets::WeightInfo for SubstrateWeight { - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - /// Storage: EVM AccountCodes (r:1 w:1) - /// Proof Skipped: EVM AccountCodes (max_values: None, max_size: None, mode: Measured) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `EVM::AccountCodes` (r:1 w:1) + /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn create() -> Weight { // Proof Size summary in bytes: - // Measured: `659` - // Estimated: `4124` - // Minimum execution time: 35_155_000 picoseconds. - Weight::from_parts(35_760_000, 4124) + // Measured: `729` + // Estimated: `4194` + // Minimum execution time: 32_201_000 picoseconds. + Weight::from_parts(32_640_000, 4194) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: EVM AccountCodes (r:1 w:1) - /// Proof Skipped: EVM AccountCodes (max_values: None, max_size: None, mode: Measured) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `EVM::AccountCodes` (r:1 w:1) + /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_create() -> Weight { // Proof Size summary in bytes: - // Measured: `519` - // Estimated: `3984` - // Minimum execution time: 20_004_000 picoseconds. - Weight::from_parts(20_348_000, 3984) + // Measured: `589` + // Estimated: `4054` + // Minimum execution time: 18_713_000 picoseconds. + Weight::from_parts(19_118_000, 4054) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn start_destroy() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `360` // Estimated: `3687` - // Minimum execution time: 13_682_000 picoseconds. - Weight::from_parts(14_059_000, 3687) + // Minimum execution time: 13_233_000 picoseconds. + Weight::from_parts(13_624_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1001 w:1000) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1000 w:1000) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1001 w:1000) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1000 w:1000) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `c` is `[0, 1000]`. fn destroy_accounts(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `255 + c * (208 ±0)` + // Measured: `360 + c * (208 ±0)` // Estimated: `3687 + c * (2621 ±0)` - // Minimum execution time: 17_910_000 picoseconds. - Weight::from_parts(18_110_000, 3687) - // Standard Error: 6_525 - .saturating_add(Weight::from_parts(11_623_553, 0).saturating_mul(c.into())) + // Minimum execution time: 14_861_000 picoseconds. + Weight::from_parts(14_957_000, 3687) + // Standard Error: 5_744 + .saturating_add(Weight::from_parts(10_900_837, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) .saturating_add(Weight::from_parts(0, 2621).saturating_mul(c.into())) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1001 w:1000) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1001 w:1000) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 1000]`. fn destroy_approvals(a: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `438 + a * (86 ±0)` + // Measured: `509 + a * (86 ±0)` // Estimated: `3687 + a * (2635 ±0)` - // Minimum execution time: 18_065_000 picoseconds. - Weight::from_parts(18_372_000, 3687) - // Standard Error: 4_985 - .saturating_add(Weight::from_parts(13_662_720, 0).saturating_mul(a.into())) + // Minimum execution time: 17_654_000 picoseconds. + Weight::from_parts(17_821_000, 3687) + // Standard Error: 4_162 + .saturating_add(Weight::from_parts(11_726_990, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(Weight::from_parts(0, 2635).saturating_mul(a.into())) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:0) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) - /// Storage: EVM AccountCodes (r:0 w:1) - /// Proof Skipped: EVM AccountCodes (max_values: None, max_size: None, mode: Measured) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) + /// Storage: `EVM::AccountCodes` (r:0 w:1) + /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) fn finish_destroy() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 16_700_000 picoseconds. - Weight::from_parts(17_418_000, 3687) + // Minimum execution time: 13_391_000 picoseconds. + Weight::from_parts(13_579_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn mint() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 26_305_000 picoseconds. - Weight::from_parts(27_014_000, 3687) + // Minimum execution time: 20_329_000 picoseconds. + Weight::from_parts(20_509_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn burn() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `446` // Estimated: `3687` - // Minimum execution time: 30_525_000 picoseconds. - Weight::from_parts(31_113_000, 3687) + // Minimum execution time: 29_348_000 picoseconds. + Weight::from_parts(29_765_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer() -> Weight { // Proof Size summary in bytes: - // Measured: `447` + // Measured: `518` // Estimated: `6232` - // Minimum execution time: 42_955_000 picoseconds. - Weight::from_parts(43_309_000, 6232) + // Minimum execution time: 39_679_000 picoseconds. + Weight::from_parts(40_190_000, 6232) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_keep_alive() -> Weight { // Proof Size summary in bytes: - // Measured: `447` + // Measured: `518` // Estimated: `6232` - // Minimum execution time: 37_951_000 picoseconds. - Weight::from_parts(38_330_000, 6232) + // Minimum execution time: 35_794_000 picoseconds. + Weight::from_parts(36_088_000, 6232) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { // Proof Size summary in bytes: - // Measured: `447` + // Measured: `518` // Estimated: `6232` - // Minimum execution time: 43_061_000 picoseconds. - Weight::from_parts(43_561_000, 6232) + // Minimum execution time: 39_690_000 picoseconds. + Weight::from_parts(40_176_000, 6232) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn freeze() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `446` // Estimated: `3687` - // Minimum execution time: 17_259_000 picoseconds. - Weight::from_parts(17_516_000, 3687) + // Minimum execution time: 17_766_000 picoseconds. + Weight::from_parts(18_056_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn thaw() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `446` // Estimated: `3687` - // Minimum execution time: 17_165_000 picoseconds. - Weight::from_parts(17_547_000, 3687) + // Minimum execution time: 17_501_000 picoseconds. + Weight::from_parts(17_943_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn freeze_asset() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `360` // Estimated: `3687` - // Minimum execution time: 13_634_000 picoseconds. - Weight::from_parts(14_069_000, 3687) + // Minimum execution time: 14_107_000 picoseconds. + Weight::from_parts(14_397_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn thaw_asset() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `360` // Estimated: `3687` - // Minimum execution time: 13_456_000 picoseconds. - Weight::from_parts(13_770_000, 3687) + // Minimum execution time: 13_916_000 picoseconds. + Weight::from_parts(14_193_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:0) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) fn transfer_ownership() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 16_083_000 picoseconds. - Weight::from_parts(16_343_000, 3687) + // Minimum execution time: 12_166_000 picoseconds. + Weight::from_parts(12_434_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn set_team() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 14_443_000 picoseconds. - Weight::from_parts(14_818_000, 3687) + // Minimum execution time: 10_896_000 picoseconds. + Weight::from_parts(11_100_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. - fn set_metadata(_n: u32, _s: u32, ) -> Weight { + fn set_metadata(_n: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 28_260_000 picoseconds. - Weight::from_parts(29_181_263, 3687) + // Minimum execution time: 25_359_000 picoseconds. + Weight::from_parts(26_282_808, 3687) + // Standard Error: 532 + .saturating_add(Weight::from_parts(1_160, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) fn clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `431` + // Measured: `502` // Estimated: `3687` - // Minimum execution time: 28_580_000 picoseconds. - Weight::from_parts(28_826_000, 3687) + // Minimum execution time: 26_608_000 picoseconds. + Weight::from_parts(27_063_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. fn force_set_metadata(n: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `94` + // Measured: `165` // Estimated: `3687` - // Minimum execution time: 14_605_000 picoseconds. - Weight::from_parts(15_107_642, 3687) - // Standard Error: 450 - .saturating_add(Weight::from_parts(6_608, 0).saturating_mul(n.into())) - // Standard Error: 450 - .saturating_add(Weight::from_parts(2_783, 0).saturating_mul(s.into())) + // Minimum execution time: 11_159_000 picoseconds. + Weight::from_parts(11_585_015, 3687) + // Standard Error: 267 + .saturating_add(Weight::from_parts(1_913, 0).saturating_mul(n.into())) + // Standard Error: 267 + .saturating_add(Weight::from_parts(2_415, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Metadata (r:1 w:1) - /// Proof: Assets Metadata (max_values: None, max_size: Some(152), added: 2627, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) fn force_clear_metadata() -> Weight { // Proof Size summary in bytes: - // Measured: `431` + // Measured: `502` // Estimated: `3687` - // Minimum execution time: 27_925_000 picoseconds. - Weight::from_parts(28_323_000, 3687) + // Minimum execution time: 25_810_000 picoseconds. + Weight::from_parts(26_202_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn force_asset_status() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 13_904_000 picoseconds. - Weight::from_parts(14_431_000, 3687) + // Minimum execution time: 10_566_000 picoseconds. + Weight::from_parts(10_822_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) fn approve_transfer() -> Weight { // Proof Size summary in bytes: - // Measured: `289` + // Measured: `360` // Estimated: `3687` - // Minimum execution time: 31_152_000 picoseconds. - Weight::from_parts(31_715_000, 3687) + // Minimum execution time: 28_479_000 picoseconds. + Weight::from_parts(28_737_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) - /// Storage: Assets Account (r:2 w:2) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_approved() -> Weight { // Proof Size summary in bytes: - // Measured: `680` + // Measured: `751` // Estimated: `6232` - // Minimum execution time: 63_252_000 picoseconds. - Weight::from_parts(63_718_000, 6232) + // Minimum execution time: 55_176_000 picoseconds. + Weight::from_parts(55_666_000, 6232) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) fn cancel_approval() -> Weight { // Proof Size summary in bytes: - // Measured: `471` + // Measured: `542` // Estimated: `3687` - // Minimum execution time: 34_375_000 picoseconds. - Weight::from_parts(34_640_000, 3687) + // Minimum execution time: 30_702_000 picoseconds. + Weight::from_parts(31_155_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Approvals (r:1 w:1) - /// Proof: Assets Approvals (max_values: None, max_size: Some(160), added: 2635, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) fn force_cancel_approval() -> Weight { // Proof Size summary in bytes: - // Measured: `471` + // Measured: `542` // Estimated: `3687` - // Minimum execution time: 34_159_000 picoseconds. - Weight::from_parts(34_693_000, 3687) + // Minimum execution time: 30_879_000 picoseconds. + Weight::from_parts(31_528_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn set_min_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 15_114_000 picoseconds. - Weight::from_parts(15_271_000, 3687) + // Minimum execution time: 11_229_000 picoseconds. + Weight::from_parts(11_448_000, 3687) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn touch() -> Weight { // Proof Size summary in bytes: - // Measured: `429` + // Measured: `500` // Estimated: `3687` - // Minimum execution time: 34_356_000 picoseconds. - Weight::from_parts(34_856_000, 3687) + // Minimum execution time: 29_572_000 picoseconds. + Weight::from_parts(30_304_000, 3687) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn touch_other() -> Weight { // Proof Size summary in bytes: - // Measured: `255` + // Measured: `326` // Estimated: `3687` - // Minimum execution time: 31_063_000 picoseconds. - Weight::from_parts(31_331_000, 3687) + // Minimum execution time: 27_933_000 picoseconds. + Weight::from_parts(28_456_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn refund() -> Weight { // Proof Size summary in bytes: - // Measured: `567` + // Measured: `638` // Estimated: `3687` - // Minimum execution time: 31_678_000 picoseconds. - Weight::from_parts(31_941_000, 3687) + // Minimum execution time: 29_103_000 picoseconds. + Weight::from_parts(29_793_000, 3687) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - /// Storage: Assets Asset (r:1 w:1) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) fn refund_other() -> Weight { // Proof Size summary in bytes: - // Measured: `426` + // Measured: `497` // Estimated: `3687` - // Minimum execution time: 28_601_000 picoseconds. - Weight::from_parts(28_966_000, 3687) + // Minimum execution time: 26_955_000 picoseconds. + Weight::from_parts(27_479_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: Assets Asset (r:1 w:0) - /// Proof: Assets Asset (max_values: None, max_size: Some(222), added: 2697, mode: MaxEncodedLen) - /// Storage: Assets Account (r:1 w:1) - /// Proof: Assets Account (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) fn block() -> Weight { // Proof Size summary in bytes: - // Measured: `375` + // Measured: `446` // Estimated: `3687` - // Minimum execution time: 17_545_000 picoseconds. - Weight::from_parts(17_959_000, 3687) + // Minimum execution time: 17_764_000 picoseconds. + Weight::from_parts(18_088_000, 3687) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/shiden/src/weights/pallet_xcm.rs b/runtime/shiden/src/weights/pallet_xcm.rs index 0acc758fab..992c82a0c3 100644 --- a/runtime/shiden/src/weights/pallet_xcm.rs +++ b/runtime/shiden/src/weights/pallet_xcm.rs @@ -19,17 +19,17 @@ //! Autogenerated weights for pallet_xcm //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-10-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `devserver-01`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("astar-dev"), DB CACHE: 1024 +//! HOSTNAME: `gh-runner-01-ovh`, CPU: `Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("shiden-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/astar-collator // benchmark // pallet -// --chain=astar-dev +// --chain=shiden-dev // --steps=50 // --repeat=20 // --pallet=pallet_xcm @@ -37,7 +37,7 @@ // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 -// --output=./benchmark-results/xcm_weights.rs +// --output=./benchmark-results/shiden-dev/xcm_weights.rs // --template=./scripts/templates/weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -50,27 +50,23 @@ use core::marker::PhantomData; /// Weights for pallet_xcm using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl pallet_xcm::WeightInfo for SubstrateWeight { - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `74` - // Estimated: `3539` - // Minimum execution time: 28_095_000 picoseconds. - Weight::from_parts(28_511_000, 3539) - .saturating_add(T::DbWeight::get().reads(5_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + // Measured: `76` + // Estimated: `3541` + // Minimum execution time: 16_689_000 picoseconds. + Weight::from_parts(17_027_000, 3541) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn teleport_assets() -> Weight { // Proof Size summary in bytes: // Measured: `0` @@ -78,25 +74,38 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. Weight::from_parts(18_446_744_073_709_551_000, 0) } - /// Storage: ParachainInfo ParachainId (r:1 w:0) - /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:0) - /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `71` - // Estimated: `3593` - // Minimum execution time: 30_849_000 picoseconds. - Weight::from_parts(31_324_000, 3593) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Measured: `278` + // Estimated: `3743` + // Minimum execution time: 74_657_000 picoseconds. + Weight::from_parts(75_395_000, 3743) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn transfer_assets() -> Weight { - todo!() + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) } - - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn execute() -> Weight { // Proof Size summary in bytes: // Measured: `0` @@ -104,185 +113,193 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. Weight::from_parts(18_446_744_073_709_551_000, 0) } - /// Storage: PolkadotXcm SupportedVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_619_000 picoseconds. - Weight::from_parts(9_881_000, 0) + // Minimum execution time: 7_254_000 picoseconds. + Weight::from_parts(7_446_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) fn force_default_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_109_000 picoseconds. - Weight::from_parts(3_261_000, 0) - .saturating_add(T::DbWeight::get().writes(1_u64)) + // Minimum execution time: 2_110_000 picoseconds. + Weight::from_parts(2_285_000, 0) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm QueryCounter (r:1 w:1) - /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `74` - // Estimated: `3539` - // Minimum execution time: 31_620_000 picoseconds. - Weight::from_parts(32_143_000, 3539) - .saturating_add(T::DbWeight::get().reads(7_u64)) - .saturating_add(T::DbWeight::get().writes(5_u64)) + // Measured: `76` + // Estimated: `3541` + // Minimum execution time: 21_109_000 picoseconds. + Weight::from_parts(21_573_000, 3541) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`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`) + /// 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`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `257` - // Estimated: `3722` - // Minimum execution time: 32_263_000 picoseconds. - Weight::from_parts(32_775_000, 3722) - .saturating_add(T::DbWeight::get().reads(6_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Measured: `135` + // Estimated: `3600` + // Minimum execution time: 21_012_000 picoseconds. + Weight::from_parts(21_464_000, 3600) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: PolkadotXcm XcmExecutionSuspended (r:0 w:1) - /// Proof Skipped: PolkadotXcm XcmExecutionSuspended (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn force_suspension() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_067_000 picoseconds. - Weight::from_parts(3_211_000, 0) + // Minimum execution time: 2_134_000 picoseconds. + Weight::from_parts(2_320_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `132` - // Estimated: `11022` - // Minimum execution time: 15_935_000 picoseconds. - Weight::from_parts(16_441_000, 11022) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `23` + // Estimated: `13388` + // Minimum execution time: 13_529_000 picoseconds. + Weight::from_parts(13_854_000, 13388) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `136` - // Estimated: `11026` - // Minimum execution time: 16_005_000 picoseconds. - Weight::from_parts(16_385_000, 11026) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `27` + // Estimated: `13392` + // Minimum execution time: 13_764_000 picoseconds. + Weight::from_parts(14_087_000, 13392) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: - // Measured: `143` - // Estimated: `13508` - // Minimum execution time: 16_238_000 picoseconds. - Weight::from_parts(16_875_000, 13508) - .saturating_add(T::DbWeight::get().reads(5_u64)) + // Measured: `38` + // Estimated: `15878` + // Minimum execution time: 15_562_000 picoseconds. + Weight::from_parts(15_862_000, 15878) + .saturating_add(T::DbWeight::get().reads(6_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 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`) + /// 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: `142` - // Estimated: `6082` - // Minimum execution time: 28_995_000 picoseconds. - Weight::from_parts(29_401_000, 6082) - .saturating_add(T::DbWeight::get().reads(7_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + // Measured: `110` + // Estimated: `6050` + // Minimum execution time: 20_198_000 picoseconds. + Weight::from_parts(20_705_000, 6050) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `136` - // Estimated: `8551` - // Minimum execution time: 7_907_000 picoseconds. - Weight::from_parts(8_304_000, 8551) - .saturating_add(T::DbWeight::get().reads(3_u64)) + // Measured: `70` + // Estimated: `10960` + // Minimum execution time: 9_756_000 picoseconds. + Weight::from_parts(10_041_000, 10960) + .saturating_add(T::DbWeight::get().reads(4_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `143` - // Estimated: `11033` - // Minimum execution time: 16_487_000 picoseconds. - Weight::from_parts(16_957_000, 11033) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `34` + // Estimated: `13399` + // Minimum execution time: 14_197_000 picoseconds. + Weight::from_parts(14_530_000, 13399) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) + /// 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`) + /// 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: `185` - // Estimated: `11075` - // Minimum execution time: 34_975_000 picoseconds. - Weight::from_parts(35_686_000, 11075) - .saturating_add(T::DbWeight::get().reads(9_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) + // Measured: `110` + // Estimated: `13475` + // Minimum execution time: 27_491_000 picoseconds. + Weight::from_parts(27_977_000, 13475) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn new_query() -> Weight { - Weight::MAX + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 2_169_000 picoseconds. + Weight::from_parts(2_286_000, 1485) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - + /// Storage: `PolkadotXcm::Queries` (r:1 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn take_response() -> Weight { - Weight::MAX + // Proof Size summary in bytes: + // Measured: `7576` + // Estimated: `11041` + // Minimum execution time: 21_612_000 picoseconds. + Weight::from_parts(21_860_000, 11041) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + /// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn claim_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `3489` + // Minimum execution time: 31_753_000 picoseconds. + Weight::from_parts(32_081_000, 3489) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/shiden/src/weights/xcm/mod.rs b/runtime/shiden/src/weights/xcm/mod.rs index a166e69172..78c90936c7 100644 --- a/runtime/shiden/src/weights/xcm/mod.rs +++ b/runtime/shiden/src/weights/xcm/mod.rs @@ -38,7 +38,7 @@ trait WeighMultiAssetsFilter { fn weigh_multi_assets_filter(&self, weight: Weight) -> XCMWeight; } -impl WeighMultiAssetsFilter for MultiAssetFilter { +impl WeighMultiAssetsFilter for AssetFilter { fn weigh_multi_assets_filter(&self, weight: Weight) -> XCMWeight { match self { Self::Definite(assets) => { @@ -52,7 +52,7 @@ impl WeighMultiAssetsFilter for MultiAssetFilter { } } -impl WeighMultiAssets for MultiAssets { +impl WeighMultiAssets for Assets { fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { weight.saturating_mul(self.inner().into_iter().count() as u64) } @@ -63,34 +63,30 @@ impl XcmWeightInfo for XcmWeight where Runtime: frame_system::Config, { - fn withdraw_asset(assets: &MultiAssets) -> XCMWeight { + fn withdraw_asset(assets: &Assets) -> XCMWeight { XcmFungibleWeight::::withdraw_asset() .saturating_mul(assets.inner().into_iter().count() as u64) } - fn reserve_asset_deposited(_assets: &MultiAssets) -> XCMWeight { + fn reserve_asset_deposited(_assets: &Assets) -> XCMWeight { XcmFungibleWeight::::reserve_asset_deposited() } - fn receive_teleported_asset(assets: &MultiAssets) -> XCMWeight { + fn receive_teleported_asset(assets: &Assets) -> XCMWeight { assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) } fn query_response( _query_id: &u64, _response: &Response, _max_weight: &Weight, - _querier: &Option, + _querier: &Option, ) -> XCMWeight { XcmGeneric::::query_response() } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> XCMWeight { + fn transfer_asset(assets: &Assets, _dest: &Location) -> XCMWeight { XcmFungibleWeight::::transfer_asset() .saturating_mul(assets.inner().into_iter().count() as u64) } - fn transfer_reserve_asset( - assets: &MultiAssets, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> XCMWeight { + fn transfer_reserve_asset(assets: &Assets, _dest: &Location, _xcm: &Xcm<()>) -> XCMWeight { XcmFungibleWeight::::transfer_reserve_asset() .saturating_mul(assets.inner().into_iter().count() as u64) } @@ -120,32 +116,24 @@ where fn clear_origin() -> XCMWeight { XcmGeneric::::clear_origin() } - fn descend_origin(_who: &InteriorMultiLocation) -> XCMWeight { + fn descend_origin(_who: &InteriorLocation) -> XCMWeight { XcmGeneric::::descend_origin() } fn report_error(_query_response_info: &QueryResponseInfo) -> XCMWeight { XcmGeneric::::report_error() } - fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> XCMWeight { + fn deposit_asset(assets: &AssetFilter, _dest: &Location) -> XCMWeight { assets.weigh_multi_assets_filter(XcmFungibleWeight::::deposit_asset()) } - fn deposit_reserve_asset( - assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> XCMWeight { + fn deposit_reserve_asset(assets: &AssetFilter, _dest: &Location, _xcm: &Xcm<()>) -> XCMWeight { assets.weigh_multi_assets_filter(XcmFungibleWeight::::deposit_reserve_asset()) } - fn exchange_asset( - _give: &MultiAssetFilter, - _receive: &MultiAssets, - _maximal: &bool, - ) -> XCMWeight { + fn exchange_asset(_give: &AssetFilter, _receive: &Assets, _maximal: &bool) -> XCMWeight { Weight::MAX } fn initiate_reserve_withdraw( - _assets: &MultiAssetFilter, - _reserve: &MultiLocation, + _assets: &AssetFilter, + _reserve: &Location, _xcm: &Xcm<()>, ) -> XCMWeight { // This is not correct. initiate reserve withdraw does not to that many db reads @@ -153,17 +141,13 @@ where //assets.weigh_multi_assets(XcmGeneric::::initiate_reserve_withdraw()) XcmFungibleWeight::::initiate_reserve_withdraw() } - fn initiate_teleport( - _assets: &MultiAssetFilter, - _dest: &MultiLocation, - _xcm: &Xcm<()>, - ) -> XCMWeight { + fn initiate_teleport(_assets: &AssetFilter, _dest: &Location, _xcm: &Xcm<()>) -> XCMWeight { XcmFungibleWeight::::initiate_teleport() } - fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + fn report_holding(_response_info: &QueryResponseInfo, _assets: &AssetFilter) -> Weight { XcmGeneric::::report_holding() } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> XCMWeight { + fn buy_execution(_fees: &Asset, _weight_limit: &WeightLimit) -> XCMWeight { XcmGeneric::::buy_execution() } fn refund_surplus() -> XCMWeight { @@ -178,7 +162,7 @@ where fn clear_error() -> XCMWeight { XcmGeneric::::clear_error() } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> XCMWeight { + fn claim_asset(_assets: &Assets, _ticket: &Location) -> XCMWeight { XcmGeneric::::claim_asset() } fn trap(_code: &u64) -> XCMWeight { @@ -190,13 +174,13 @@ where fn unsubscribe_version() -> XCMWeight { XcmGeneric::::unsubscribe_version() } - fn burn_asset(assets: &MultiAssets) -> Weight { + fn burn_asset(assets: &Assets) -> Weight { assets.weigh_multi_assets(XcmGeneric::::burn_asset()) } - fn expect_asset(assets: &MultiAssets) -> Weight { + fn expect_asset(assets: &Assets) -> Weight { assets.weigh_multi_assets(XcmGeneric::::expect_asset()) } - fn expect_origin(_origin: &Option) -> Weight { + fn expect_origin(_origin: &Option) -> Weight { XcmGeneric::::expect_origin() } fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { @@ -229,16 +213,16 @@ where fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { Weight::MAX } - fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn lock_asset(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn unlock_asset(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn note_unlockable(_: &Asset, _: &Location) -> Weight { Weight::MAX } - fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + fn request_unlock(_: &Asset, _: &Location) -> Weight { Weight::MAX } fn set_fees_mode(_: &bool) -> Weight { @@ -250,11 +234,11 @@ where fn clear_topic() -> Weight { XcmGeneric::::clear_topic() } - fn alias_origin(_: &MultiLocation) -> Weight { + fn alias_origin(_: &Location) -> Weight { // XCM Executor does not currently support alias origin operations Weight::MAX } - fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { XcmGeneric::::unpaid_execution() } } diff --git a/runtime/shiden/src/xcm_config.rs b/runtime/shiden/src/xcm_config.rs index b5bb913493..71311cfe49 100644 --- a/runtime/shiden/src/xcm_config.rs +++ b/runtime/shiden/src/xcm_config.rs @@ -24,7 +24,7 @@ use super::{ }; use crate::weights; use frame_support::{ - match_types, parameter_types, + parameter_types, traits::{ConstU32, Contains, Everything, Nothing}, weights::Weight, }; @@ -38,11 +38,12 @@ use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowUnpaidExecutionFrom, - ConvertedConcreteId, CurrencyAdapter, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, - FungiblesAdapter, HashedDescription, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - UsingComponents, WeightInfoBounds, WithComputedOrigin, + ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, + FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, HashedDescription, IsConcrete, + NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds, + WithComputedOrigin, }; use xcm_executor::{ traits::{JustTry, WithOriginFilter}, @@ -62,13 +63,13 @@ use astar_primitives::xcm::{ parameter_types! { pub RelayNetwork: Option = Some(NetworkId::Kusama); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub UniversalLocation: InteriorMultiLocation = - X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); - pub const ShidenLocation: MultiLocation = Here.into_location(); + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())].into(); + pub const ShidenLocation: Location = Here.into_location(); pub DummyCheckingAccount: AccountId = PolkadotXcm::check_account(); } -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// Type for specifying how a `Location` can be converted into an `AccountId`. This is used /// when determining ownership of accounts for asset transacting and when attempting to use XCM /// `Transact` in order to determine the dispatch Origin. pub type LocationToAccountId = ( @@ -78,18 +79,18 @@ pub type LocationToAccountId = ( SiblingParachainConvertsVia, // Straight up local `AccountId32` origins just alias directly to `AccountId`. AccountId32Aliases, - // Generates private `AccountId`s from `MultiLocation`s, in a stable & safe way. + // Generates private `AccountId`s from `Location`s, in a stable & safe way. // Replaces the old `Account32Hash` approach. HashedDescription>, ); /// Means for transacting the native currency on this chain. -pub type CurrencyTransactor = CurrencyAdapter< +pub type CurrencyTransactor = FungibleAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: IsConcrete, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -103,7 +104,7 @@ pub type FungiblesTransactor = FungiblesAdapter< Assets, // Use this currency when it is a fungible asset matching the given location or name: ConvertedConcreteId, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -147,11 +148,11 @@ parameter_types! { pub const MaxInstructions: u32 = 100; } -match_types! { - pub type ParentOrParentsPlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { .. }) } - }; +pub struct ParentOrParentsPlurality; +impl Contains for ParentOrParentsPlurality { + fn contains(location: &Location) -> bool { + matches!(location.unpack(), (1, []) | (1, [Plurality { .. }])) + } } /// A call filter for the XCM Transact instruction. This is a temporary measure until we properly @@ -277,6 +278,7 @@ impl xcm_executor::Config for XcmConfig { type CallDispatcher = WithOriginFilter; type SafeCallFilter = SafeCallFilter; type Aliasers = Nothing; + type TransactionalProcessor = FrameTransactionalProcessor; } /// Local origins on this chain are allowed to dispatch XCM sends/executions. @@ -351,22 +353,21 @@ impl cumulus_pallet_dmp_queue::Config for Runtime { parameter_types! { /// The absolute location in perspective of the whole network. - pub ShidenLocationAbsolute: MultiLocation = MultiLocation { + pub ShidenLocationAbsolute: Location = Location { parents: 1, - interior: X1( - Parachain(ParachainInfo::parachain_id().into()) - ) + interior: Parachain(ParachainInfo::parachain_id().into()).into() + }; /// Max asset types for one cross-chain transfer. `2` covers all current use cases. /// Can be updated with extra test cases in the future if needed. pub const MaxAssetsForTransfer: usize = 2; } -/// Convert `AssetId` to optional `MultiLocation`. The impl is a wrapper +/// Convert `AssetId` to optional `Location`. The impl is a wrapper /// on `ShidenAssetLocationIdConverter`. pub struct AssetIdConvert; -impl Convert> for AssetIdConvert { - fn convert(asset_id: AssetId) -> Option { +impl Convert> for AssetIdConvert { + fn convert(asset_id: AssetId) -> Option { ShidenAssetLocationIdConverter::convert_back(&asset_id) } } @@ -376,7 +377,7 @@ impl orml_xtokens::Config for Runtime { type Balance = Balance; type CurrencyId = AssetId; type CurrencyIdConvert = AssetIdConvert; - type AccountIdToMultiLocation = AccountIdToMultiLocation; + type AccountIdToLocation = AccountIdToMultiLocation; type SelfLocation = ShidenLocation; type XcmExecutor = XcmExecutor; type Weigher = Weigher; @@ -385,6 +386,8 @@ impl orml_xtokens::Config for Runtime { type MaxAssetsForTransfer = MaxAssetsForTransfer; // Default impl. Refer to `orml-xtokens` docs for more details. type MinXcmFee = DisabledParachainFee; - type MultiLocationsFilter = Everything; + type LocationsFilter = Everything; type ReserveProvider = AbsoluteAndRelativeReserveProvider; + type RateLimiter = (); + type RateLimiterId = (); } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 6acb849e89..a03f6dbfcb 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.74.0" +channel = "1.77.0" components = ["rust-src", "rustfmt", "clippy"] targets = ["wasm32-unknown-unknown"] profile = "minimal" diff --git a/tests/ink-contracts/async-xcm-call-no-ce.json b/tests/ink-contracts/async-xcm-call-no-ce.json index cf2fc3d26f..50c5e3e07b 100644 --- a/tests/ink-contracts/async-xcm-call-no-ce.json +++ b/tests/ink-contracts/async-xcm-call-no-ce.json @@ -1506,4 +1506,4 @@ } ], "version": "4" -} \ No newline at end of file +} diff --git a/tests/integration/src/oracle.rs b/tests/integration/src/oracle.rs index 7215f27027..44b5249b09 100644 --- a/tests/integration/src/oracle.rs +++ b/tests/integration/src/oracle.rs @@ -18,7 +18,7 @@ use crate::setup::*; -use astar_primitives::oracle::{CurrencyAmount, PriceProvider}; +use astar_primitives::oracle::{Price, PriceProvider}; use pallet_price_aggregator::{IntermediateValueAggregator, ValueAggregator}; #[test] @@ -33,13 +33,13 @@ fn price_submission_works() { IntermediateValueAggregator::::put(ValueAggregator::new(limit_block)); // 1. Submit a price for a valid asset - the native currency - let price_1 = CurrencyAmount::from_rational(15, 100); + let price_1 = Price::from_rational(15, 100); assert_ok!(Oracle::feed_values( RuntimeOrigin::signed(ALICE.clone()), vec![(native_currency_id, price_1)].try_into().unwrap() )); - let price_2 = CurrencyAmount::from_rational(17, 100); + let price_2 = Price::from_rational(17, 100); assert_ok!(Oracle::feed_values( RuntimeOrigin::signed(BOB.clone()), vec![(native_currency_id, price_2)].try_into().unwrap() @@ -48,7 +48,7 @@ fn price_submission_works() { // 2. Advance a block, and check price aggregator intermediate state is as expected // (perhaps a bit detailed, but still good to check whether it's integrated) run_for_blocks(1); - let expected_average = (price_1 + price_2) * CurrencyAmount::from_rational(1, 2); + let expected_average = (price_1 + price_2) * Price::from_rational(1, 2); assert_eq!( IntermediateValueAggregator::::get().average(), expected_average @@ -57,7 +57,7 @@ fn price_submission_works() { // 3. Keep advancing blocks, adding new values only each other block, and verify the average is as expected at the end for i in System::block_number() + 1..limit_block { if i % 2 == 0 { - let step = CurrencyAmount::from_rational(i as u128 % 5, 100); + let step = Price::from_rational(i as u128 % 5, 100); assert_ok!(Oracle::feed_values( RuntimeOrigin::signed(ALICE.clone()), @@ -77,8 +77,7 @@ fn price_submission_works() { // 4. Execute limit block and verify state is updated as expected run_for_blocks(2); // Need to run on_finalize of the limit block - let expected_moving_average = - (expected_average + INIT_PRICE) * CurrencyAmount::from_rational(1, 2); + let expected_moving_average = (expected_average + INIT_PRICE) * Price::from_rational(1, 2); assert_eq!(PriceAggregator::average_price(), expected_moving_average); // 5. Run until next limit block without any transactions, don't expect any changes diff --git a/tests/integration/src/setup.rs b/tests/integration/src/setup.rs index 952fc612eb..a6d08bb828 100644 --- a/tests/integration/src/setup.rs +++ b/tests/integration/src/setup.rs @@ -40,7 +40,7 @@ pub use astar_primitives::{ CommunityCouncilMembershipInst, MainCouncilMembershipInst, OracleMembershipInst, TechnicalCommitteeMembershipInst, }, - oracle::CurrencyAmount, + oracle::Price, BlockNumber, }; @@ -135,7 +135,7 @@ pub const CAT: AccountId32 = AccountId32::new([3_u8; 32]); pub const INITIAL_AMOUNT: u128 = 100_000 * UNIT; -pub const INIT_PRICE: CurrencyAmount = CurrencyAmount::from_rational(1, 10); +pub const INIT_PRICE: Price = Price::from_rational(1, 10); pub type SystemError = frame_system::Error; pub use pallet_balances::Call as BalancesCall; diff --git a/tests/xcm-simulator/src/mocks/mod.rs b/tests/xcm-simulator/src/mocks/mod.rs index 95cc1e4f8b..16399b7bac 100644 --- a/tests/xcm-simulator/src/mocks/mod.rs +++ b/tests/xcm-simulator/src/mocks/mod.rs @@ -92,7 +92,7 @@ pub fn child_para_account_id(para: u32) -> relay_chain::AccountId { /// Derive parachain sovereign account on a sibling parachain, from parachain Id pub fn sibling_para_account_id(para: u32) -> parachain::AccountId { - let location = (Parent, X1(Parachain(para))); + let location = (Parent, Parachain(para)); parachain::LocationToAccountId::convert_location(&location.into()).unwrap() } @@ -201,7 +201,7 @@ pub fn register_and_setup_xcm_asset( // AssetId for the new asset asset_id: AssetId, // Asset multilocation - asset_location: impl Into + Clone, + asset_location: impl Into + Clone, // Asset controller asset_controller: ::Source, // make asset payable, default true diff --git a/tests/xcm-simulator/src/mocks/msg_queue.rs b/tests/xcm-simulator/src/mocks/msg_queue.rs index 7099243259..6dc366da7a 100644 --- a/tests/xcm-simulator/src/mocks/msg_queue.rs +++ b/tests/xcm-simulator/src/mocks/msg_queue.rs @@ -101,27 +101,28 @@ pub mod mock_msg_queue { max_weight: Weight, ) -> Result { let hash = Encode::using_encoded(&xcm, T::Hashing::hash); - let message_hash = Encode::using_encoded(&xcm, sp_io::hashing::blake2_256); + let mut message_hash = Encode::using_encoded(&xcm, sp_io::hashing::blake2_256); let (result, event) = match Xcm::::try_from(xcm) { Ok(xcm) => { let location = (Parent, Parachain(sender.into())); >::append(xcm.clone()); - match T::XcmExecutor::execute_xcm( + match T::XcmExecutor::prepare_and_execute( location, xcm.clone(), - message_hash, + &mut message_hash, max_weight, + Weight::zero(), ) { - Outcome::Error(e) => { - println!("Error in XCMP handling: {:?}, sender=Parachain({sender}), xcm={xcm:?}", e); - (Err(e.clone()), Event::Fail(Some(hash), e)) + Outcome::Error { error } => { + println!("Error in XCMP handling: {:?}, sender=Parachain({sender}), xcm={xcm:?}", error); + (Err(error.clone()), Event::Fail(Some(hash), error)) } - Outcome::Complete(w) => (Ok(w), Event::Success(Some(hash))), + Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), // As far as the caller is concerned, this was dispatched without error, so // we just report the weight used. - Outcome::Incomplete(w, e) => { - println!("Incomplete XCMP handling: {:?}, {sender}", e); - (Ok(w), Event::Fail(Some(hash), e)) + Outcome::Incomplete { used, error } => { + println!("Incomplete XCMP handling: {:?}, {sender}", error); + (Ok(used), Event::Fail(Some(hash), error)) } } } @@ -166,7 +167,7 @@ pub mod mock_msg_queue { limit: Weight, ) -> Weight { for (_i, (_sent_at, data)) in iter.enumerate() { - let id = sp_io::hashing::blake2_256(&data[..]); + let mut id = sp_io::hashing::blake2_256(&data[..]); let maybe_versioned = VersionedXcm::::decode(&mut &data[..]); match maybe_versioned { Err(_) => { @@ -175,7 +176,13 @@ pub mod mock_msg_queue { Ok(versioned) => match Xcm::try_from(versioned) { Err(()) => Self::deposit_event(Event::UnsupportedVersion(id)), Ok(x) => { - let outcome = T::XcmExecutor::execute_xcm(Parent, x.clone(), id, limit); + let outcome = T::XcmExecutor::prepare_and_execute( + Parent, + x.clone(), + &mut id, + limit, + Weight::zero(), + ); >::append(x); Self::deposit_event(Event::ExecutedDownward(id, outcome)); } diff --git a/tests/xcm-simulator/src/mocks/parachain.rs b/tests/xcm-simulator/src/mocks/parachain.rs index 1263a26c6b..b9430c5ac4 100644 --- a/tests/xcm-simulator/src/mocks/parachain.rs +++ b/tests/xcm-simulator/src/mocks/parachain.rs @@ -21,7 +21,7 @@ use frame_support::{ construct_runtime, dispatch::DispatchClass, - match_types, parameter_types, + parameter_types, traits::{ AsEnsureOriginWithArg, ConstBool, ConstU128, ConstU32, ConstU64, Contains, Currency, Everything, Imbalance, InstanceFilter, Nothing, OnUnbalanced, @@ -49,8 +49,8 @@ use super::msg_queue::*; use xcm::latest::prelude::{AssetId as XcmAssetId, *}; use xcm_builder::{ Account32Hash, AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowUnpaidExecutionFrom, ConvertedConcreteId, CurrencyAdapter, EnsureXcmOrigin, - FixedRateOfFungible, FixedWeightBounds, FungiblesAdapter, IsConcrete, NoChecking, + AllowUnpaidExecutionFrom, ConvertedConcreteId, EnsureXcmOrigin, FixedRateOfFungible, + FixedWeightBounds, FungibleAdapter, FungiblesAdapter, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, WithComputedOrigin, @@ -106,6 +106,12 @@ impl frame_system::Config for Runtime { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -127,7 +133,6 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = RuntimeFreezeReason; - type MaxHolds = ConstU32<1>; type MaxFreezes = ConstU32<1>; } @@ -270,6 +275,9 @@ impl pallet_contracts::Config for Runtime { type Debug = (); type Environment = (); type Xcm = (); + type UploadOrigin = EnsureSigned; + type InstantiateOrigin = EnsureSigned; + type ApiVersion = (); } pub struct BurnFees; @@ -382,13 +390,13 @@ parameter_types! { parameter_types! { pub RelayNetwork: Option = Some(NetworkId::Kusama); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub UniversalLocation: InteriorMultiLocation = - X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(MsgQueue::parachain_id().into())); - pub const ShidenLocation: MultiLocation = Here.into_location(); + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(MsgQueue::parachain_id().into())].into(); + pub const ShidenLocation: Location = Here.into_location(); pub DummyCheckingAccount: AccountId = PolkadotXcm::check_account(); } -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// Type for specifying how a `Location` can be converted into an `AccountId`. This is used /// when determining ownership of accounts for asset transacting and when attempting to use XCM /// `Transact` in order to determine the dispatch Origin. pub type LocationToAccountId = ( @@ -403,12 +411,12 @@ pub type LocationToAccountId = ( ); /// Means for transacting the native currency on this chain. -pub type CurrencyTransactor = CurrencyAdapter< +pub type CurrencyTransactor = FungibleAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: IsConcrete, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -422,7 +430,7 @@ pub type FungiblesTransactor = FungiblesAdapter< Assets, // Use this currency when it is a fungible asset matching the given location or name: ConvertedConcreteId, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -462,16 +470,16 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { pub const UnitWeightCost: Weight = Weight::from_parts(10, 0); pub const MaxInstructions: u32 = 100; - pub NativePerSecond: (XcmAssetId, u128, u128) = (Concrete(ShidenLocation::get()), 1_000_000_000_000, 1024 * 1024); + pub NativePerSecond: (XcmAssetId, u128, u128) = (AssetId(ShidenLocation::get()), 1_000_000_000_000, 1024 * 1024); } pub type XcmRouter = super::ParachainXcmRouter; -match_types! { - pub type ParentOrParentsPlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { .. }) } - }; +pub struct ParentOrParentsPlurality; +impl Contains for ParentOrParentsPlurality { + fn contains(location: &Location) -> bool { + matches!(location.unpack(), (1, []) | (1, [Plurality { .. }])) + } } pub type XcmBarrier = ( @@ -526,6 +534,7 @@ impl xcm_executor::Config for XcmConfig { type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; type Aliasers = Nothing; + type TransactionalProcessor = (); } impl mock_msg_queue::Config for Runtime { @@ -562,50 +571,48 @@ impl pallet_xcm::Config for Runtime { type AdminOrigin = EnsureRoot; } -/// Convert `AccountId` to `MultiLocation`. -pub struct AccountIdToMultiLocation; -impl Convert for AccountIdToMultiLocation { - fn convert(account: AccountId) -> MultiLocation { - X1(Junction::AccountId32 { +/// Convert `AccountId` to `Location`. +pub struct AccountIdToLocation; +impl Convert for AccountIdToLocation { + fn convert(account: AccountId) -> Location { + Junction::AccountId32 { network: None, id: account.into(), - }) + } .into() } } parameter_types! { /// The absolute location in perspective of the whole network. - pub ShidenLocationAbsolute: MultiLocation = MultiLocation { + pub ShidenLocationAbsolute: Location = Location { parents: 1, - interior: X1( - Parachain(MsgQueue::parachain_id().into()) - ) + interior: Parachain(MsgQueue::parachain_id().into()).into() }; /// Max asset types for one cross-chain transfer. `2` covers all current use cases. /// Can be updated with extra test cases in the future if needed. pub const MaxAssetsForTransfer: usize = 2; } -/// Convert `AssetId` to optional `MultiLocation`. The impl is a wrapper +/// Convert `AssetId` to optional `Location`. The impl is a wrapper /// on `ShidenAssetLocationIdConverter`. pub struct AssetIdConvert; -impl Convert> for AssetIdConvert { - fn convert(asset_id: AssetId) -> Option { +impl Convert> for AssetIdConvert { + fn convert(asset_id: AssetId) -> Option { ShidenAssetLocationIdConverter::convert_back(&asset_id) } } -/// `MultiAsset` reserve location provider. It's based on `RelativeReserveProvider` and in +/// `Asset` reserve location provider. It's based on `RelativeReserveProvider` and in /// addition will convert self absolute location to relative location. pub struct AbsoluteAndRelativeReserveProvider(PhantomData); -impl> Reserve +impl> Reserve for AbsoluteAndRelativeReserveProvider { - fn reserve(asset: &MultiAsset) -> Option { + fn reserve(asset: &Asset) -> Option { RelativeReserveProvider::reserve(asset).map(|reserve_location| { if reserve_location == AbsoluteLocation::get() { - MultiLocation::here() + Location::here() } else { reserve_location } @@ -618,7 +625,7 @@ impl orml_xtokens::Config for Runtime { type Balance = Balance; type CurrencyId = AssetId; type CurrencyIdConvert = AssetIdConvert; - type AccountIdToMultiLocation = AccountIdToMultiLocation; + type AccountIdToLocation = AccountIdToLocation; type SelfLocation = ShidenLocation; type XcmExecutor = XcmExecutor; type Weigher = Weigher; @@ -627,8 +634,10 @@ impl orml_xtokens::Config for Runtime { type MaxAssetsForTransfer = MaxAssetsForTransfer; // Default impl. Refer to `orml-xtokens` docs for more details. type MinXcmFee = DisabledParachainFee; - type MultiLocationsFilter = Everything; + type LocationsFilter = Everything; type ReserveProvider = AbsoluteAndRelativeReserveProvider; + type RateLimiter = (); + type RateLimiterId = (); } pub struct DummyCycleConfiguration; diff --git a/tests/xcm-simulator/src/mocks/relay_chain.rs b/tests/xcm-simulator/src/mocks/relay_chain.rs index ca1a4648f9..77e3b90aa2 100644 --- a/tests/xcm-simulator/src/mocks/relay_chain.rs +++ b/tests/xcm-simulator/src/mocks/relay_chain.rs @@ -34,9 +34,9 @@ use polkadot_runtime_parachains::{ use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowUnpaidExecutionFrom, ChildParachainAsNative, - ChildParachainConvertsVia, ChildSystemParachainAsSuperuser, - CurrencyAdapter as XcmCurrencyAdapter, FixedRateOfFungible, FixedWeightBounds, IsConcrete, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, + ChildParachainConvertsVia, ChildSystemParachainAsSuperuser, FixedRateOfFungible, + FixedWeightBounds, FungibleAdapter, IsConcrete, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, }; use xcm_executor::XcmExecutor; @@ -71,6 +71,12 @@ impl frame_system::Config for Runtime { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = RuntimeTask; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -92,20 +98,21 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); type RuntimeFreezeReason = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; } -impl shared::Config for Runtime {} +impl shared::Config for Runtime { + type DisabledValidators = (); +} impl configuration::Config for Runtime { type WeightInfo = configuration::TestWeightInfo; } parameter_types! { - pub const KsmLocation: MultiLocation = Here.into_location(); + pub const KsmLocation: Location = Here.into_location(); pub const KusamaNetwork: NetworkId = NetworkId::Kusama; - pub UniversalLocation: InteriorMultiLocation = Here; + pub UniversalLocation: InteriorLocation = Here; } pub type SovereignAccountOf = ( @@ -114,7 +121,7 @@ pub type SovereignAccountOf = ( ); pub type LocalAssetTransactor = - XcmCurrencyAdapter, SovereignAccountOf, AccountId, ()>; + FungibleAdapter, SovereignAccountOf, AccountId, ()>; type LocalOriginConverter = ( SovereignSignedViaLocation, @@ -125,7 +132,7 @@ type LocalOriginConverter = ( parameter_types! { pub const BaseXcmWeight: Weight = Weight::from_parts(1_000, 0); - pub KsmPerSecond: (AssetId, u128, u128) = (Concrete(KsmLocation::get()), 1, 1024 * 1024); + pub KsmPerSecond: (AssetId, u128, u128) = (AssetId(KsmLocation::get()), 1, 1024 * 1024); pub const MaxInstructions: u32 = 100; } @@ -159,6 +166,7 @@ impl xcm_executor::Config for XcmConfig { type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; type Aliasers = Nothing; + type TransactionalProcessor = (); } pub type LocalOriginToLocation = SignedToAccountId32; diff --git a/tests/xcm-simulator/src/tests/experimental.rs b/tests/xcm-simulator/src/tests/experimental.rs index 1d7700c788..9eb89f9449 100644 --- a/tests/xcm-simulator/src/tests/experimental.rs +++ b/tests/xcm-simulator/src/tests/experimental.rs @@ -26,7 +26,7 @@ use astar_test_utils::{call_wasm_contract_method, deploy_wasm_contract}; use frame_support::{assert_ok, weights::Weight}; use parity_scale_codec::Encode; use sp_runtime::traits::Bounded; -use xcm::{prelude::*, v3::Response}; +use xcm::{prelude::*, v4::Response}; use xcm_executor::traits::QueryHandler; use xcm_simulator::TestExt; @@ -51,9 +51,9 @@ fn basic_xcmp_transact_outcome_query_response() { // Closure for sending Transact(call) expecting success to dest returning // query id for response - let send_transact = |call: parachain::RuntimeCall, dest: MultiLocation| { + let send_transact = |call: parachain::RuntimeCall, dest: Location| { // this will register the query and add `SetApendix` with `ReportError`. - let query_id = ParachainPalletXcm::new_query(dest, Bounded::max_value(), Here); + let query_id = ParachainPalletXcm::new_query(dest.clone(), Bounded::max_value(), Here); // build xcm message let xcm = Xcm(vec![ @@ -155,7 +155,7 @@ fn basic_xcmp_transact_outcome_query_response() { xcms[1].0.as_slice(), &[QueryResponse { query_id, - response: Response::ExecutionResult(Some((4, xcm::v3::Error::ExpectationFalse))), + response: Response::ExecutionResult(Some((4, xcm::v4::Error::ExpectationFalse))), .. }] if query_id == query_id_failure )); @@ -224,7 +224,7 @@ fn xcm_remote_transact_contract() { assert_ok!(ParachainPalletXcm::send( parachain::RuntimeOrigin::signed(ALICE), Box::new((Parent, Parachain(1)).into()), - Box::new(VersionedXcm::V3(xcm)), + Box::new(VersionedXcm::V4(xcm)), )); }); @@ -252,14 +252,14 @@ fn test_async_xcm_contract_call_no_ce() { /// Max fee for whole XCM operation in foreign chain /// This includes fees for sending XCM back to original /// chain via Transact(pallet_xcm::send). - pub foreign_base_fee: MultiAsset, + pub foreign_base_fee: xcm::v3::MultiAsset, // match smart-contract xcm version /// Max weight for operation (remark) pub foreign_transact_weight: Weight, /// Max weight for Transact(pallet_xcm::send) operation pub foreign_transcat_pallet_xcm: Weight, /// Max fee for the callback operation /// send by foreign chain - pub here_callback_base_fee: MultiAsset, + pub here_callback_base_fee: xcm::v3::MultiAsset, // match smart-contract xcm version /// Max weight for Transact(pallet_contracts::call) pub here_callback_transact_weight: Weight, /// Max weight for contract call @@ -322,13 +322,19 @@ fn test_async_xcm_contract_call_no_ce() { 2u32.encode(), [1u8, 2u8, 3u8].to_vec().encode(), WeightsAndFees { - foreign_base_fee: (Here, 100_000_000_000_000_000_000_u128).into(), + foreign_base_fee: xcm::v3::MultiAsset::from(( + xcm::v3::Junctions::Here, + 100_000_000_000_000_000_000_u128 + )), foreign_transact_weight: GAS_LIMIT, foreign_transcat_pallet_xcm: Weight::from_parts( 2_000_000_000_000, 3 * 1024 * 1024 ), - here_callback_base_fee: (Here, 100_000_000_000_000_000_u128).into(), + here_callback_base_fee: xcm::v3::MultiAsset::from(( + xcm::v3::Junctions::Here, + 100_000_000_000_000_000_u128 + )), here_callback_contract_weight: Weight::from_parts( 400_000_000_000, 1024 * 1024, diff --git a/tests/xcm-simulator/src/tests/fungible_assets.rs b/tests/xcm-simulator/src/tests/fungible_assets.rs index 740228e113..96bb546dea 100644 --- a/tests/xcm-simulator/src/tests/fungible_assets.rs +++ b/tests/xcm-simulator/src/tests/fungible_assets.rs @@ -45,15 +45,16 @@ fn para_to_para_reserve_transfer_and_back_via_xtokens() { // Next step is to send some of parachain A native asset to parachain B. let withdraw_amount = 567; ParaA::execute_with(|| { - let destination = MultiLocation { + let destination = Location { parents: 1, - interior: X2( + interior: [ Parachain(2), AccountId32 { network: None, id: ALICE.into(), }, - ), + ] + .into(), }; assert_ok!(ParachainXtokens::transfer_multiasset( parachain::RuntimeOrigin::signed(ALICE), @@ -88,15 +89,16 @@ fn para_to_para_reserve_transfer_and_back_via_xtokens() { // send assets back to ParaA ParaB::execute_with(|| { - let destination: MultiLocation = MultiLocation { + let destination: Location = Location { parents: 1, - interior: X2( + interior: [ Parachain(1), AccountId32 { network: None, id: ALICE.into(), }, - ), + ] + .into(), }; assert_ok!(ParachainXtokens::transfer_multiasset( @@ -216,7 +218,7 @@ fn para_to_para_reserve_transfer_and_back_with_extra_native() { MockNet::reset(); let local_asset_id = 123 as u128; - let local_asset: MultiLocation = (PalletInstance(4u8), GeneralIndex(local_asset_id)).into(); + let local_asset: Location = (PalletInstance(4u8), GeneralIndex(local_asset_id)).into(); let para_a_local_asset = local_asset .clone() @@ -225,7 +227,7 @@ fn para_to_para_reserve_transfer_and_back_with_extra_native() { .prepended_with(Parent) .unwrap(); - let para_b_native: MultiLocation = (Parent, Parachain(2)).into(); + let para_b_native: Location = (Parent, Parachain(2)).into(); let para_b_native_on_para_a = 456; let mint_amount = 300_000_000_000_000; @@ -337,7 +339,7 @@ fn para_to_para_reserve_transfer_local_asset() { MockNet::reset(); let asset_id = 123; - let local_asset: MultiLocation = (PalletInstance(4u8), GeneralIndex(asset_id)).into(); + let local_asset: Location = (PalletInstance(4u8), GeneralIndex(asset_id)).into(); let para_a_local_asset = local_asset .clone() .pushed_front_with_interior(Parachain(1)) @@ -480,9 +482,9 @@ fn receive_relay_asset_from_relay_and_send_them_back_via_xtokens() { relay_alice_balance_before_sending = relay_chain::Balances::free_balance(&ALICE); }); - let destination: MultiLocation = MultiLocation { + let destination: Location = Location { parents: 1, - interior: X1(alice.into()), + interior: alice.into(), }; ParaA::execute_with(|| { @@ -698,7 +700,7 @@ fn send_relay_asset_to_para_b_with_extra_native() { id: ALICE.into(), }; - let para_a_native: MultiLocation = (Parent, Parachain(1)).into(); + let para_a_native: Location = (Parent, Parachain(1)).into(); let para_a_native_on_para_b = 456; // On parachain A create an asset which representes a derivative of relay native asset. @@ -953,7 +955,7 @@ fn para_asset_trap_and_claim() { assert_ok!(ParachainPalletXcm::execute( parachain::RuntimeOrigin::signed(ALICE.into()), - Box::new(VersionedXcm::V3(xcm)), + Box::new(VersionedXcm::V4(xcm)), Weight::from_parts(100_000_000_000, 1024 * 1024) )); @@ -985,7 +987,7 @@ fn para_asset_trap_and_claim() { assert_ok!(ParachainPalletXcm::execute( parachain::RuntimeOrigin::signed(ALICE.into()), - Box::new(VersionedXcm::V3(xcm)), + Box::new(VersionedXcm::V4(xcm)), Weight::from_parts(100_000_000_000, 1024 * 1024) )); diff --git a/tests/xcm-simulator/src/tests/general.rs b/tests/xcm-simulator/src/tests/general.rs index 573b555afb..3e2f599d07 100644 --- a/tests/xcm-simulator/src/tests/general.rs +++ b/tests/xcm-simulator/src/tests/general.rs @@ -133,10 +133,10 @@ fn basic_xcmp() { fn error_when_not_paying_enough() { MockNet::reset(); - let source_location: MultiLocation = (Parent,).into(); + let source_location: Location = (Parent,).into(); let source_id: parachain::AssetId = 123; - let dest: MultiLocation = Junction::AccountId32 { + let dest: Location = Junction::AccountId32 { network: None, id: ALICE.into(), } @@ -162,7 +162,7 @@ fn error_when_not_paying_enough() { assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( relay_chain::RuntimeOrigin::signed(ALICE), Box::new(Parachain(1).into()), - Box::new(VersionedMultiLocation::V3(dest).clone().into()), + Box::new(VersionedLocation::V4(dest).clone().into()), Box::new((Here, 99).into()), 0, )); @@ -176,7 +176,10 @@ fn error_when_not_paying_enough() { r.event, RuntimeEvent::MsgQueue(mock_msg_queue::Event::ExecutedDownward( _, - Outcome::Incomplete(_, XcmError::TooExpensive) + Outcome::Incomplete { + error: XcmError::TooExpensive, + .. + } )) ))); @@ -248,7 +251,7 @@ fn remote_dapps_staking_staker_claim() { // Send the remote transact operation assert_ok!(ParachainPalletXcm::send_xcm( Here, - MultiLocation::new(1, X1(Parachain(2))), + Location::new(1, Parachain(2)), Xcm(vec![ WithdrawAsset((Here, 100_000_000_000_u128).into()), BuyExecution { @@ -307,7 +310,7 @@ fn remote_dapps_staking_staker_claim() { // Send the remote transact operation assert_ok!(ParachainPalletXcm::send_xcm( Here, - MultiLocation::new(1, X1(Parachain(2))), + Location::new(1, Parachain(2)), Xcm(vec![ WithdrawAsset((Here, 100_000_000_000_u128).into()), BuyExecution { diff --git a/vendor/evm-tracing/Cargo.toml b/vendor/evm-tracing/Cargo.toml index f11ca8c712..3d49dfbc01 100644 --- a/vendor/evm-tracing/Cargo.toml +++ b/vendor/evm-tracing/Cargo.toml @@ -19,4 +19,5 @@ moonbeam-rpc-primitives-debug = { workspace = true, features = ["std"] } # Substrate parity-scale-codec = { workspace = true, features = ["std"] } +sp-runtime = { workspace = true, features = ["std"] } sp-std = { workspace = true, features = ["std"] } diff --git a/vendor/evm-tracing/src/types/serialization.rs b/vendor/evm-tracing/src/types/serialization.rs index 439029d524..8512ea0e46 100644 --- a/vendor/evm-tracing/src/types/serialization.rs +++ b/vendor/evm-tracing/src/types/serialization.rs @@ -21,6 +21,7 @@ use serde::{ ser::{Error, SerializeSeq}, Serializer, }; +use sp_runtime::traits::UniqueSaturatedInto; pub fn seq_h256_serialize(data: &Option>, serializer: S) -> Result where @@ -95,7 +96,7 @@ pub fn u256_serialize(data: &U256, serializer: S) -> Result where S: Serializer, { - serializer.serialize_u64(data.low_u64()) + serializer.serialize_u64(UniqueSaturatedInto::::unique_saturated_into(*data)) } pub fn h256_serialize(data: &H256, serializer: S) -> Result diff --git a/vendor/primitives/debug/Cargo.toml b/vendor/primitives/debug/Cargo.toml index d3dc49bfbe..edad910efb 100644 --- a/vendor/primitives/debug/Cargo.toml +++ b/vendor/primitives/debug/Cargo.toml @@ -9,11 +9,10 @@ version = "0.1.0" [dependencies] environmental = { workspace = true } -ethereum = { workspace = true, features = ["with-codec"] } +ethereum = { workspace = true } ethereum-types = { workspace = true } -hex = { workspace = true, optional = true } -serde = { workspace = true, optional = true } -serde_json = { workspace = true, optional = true } +hex = { workspace = true, optional = true, features = ["serde"] } +serde = { workspace = true, optional = true, features = ["derive"] } # Substrate parity-scale-codec = { workspace = true } @@ -32,7 +31,6 @@ std = [ "ethereum/std", "hex", "serde", - "serde_json", "sp-api/std", "sp-core/std", "sp-io/std", diff --git a/vendor/primitives/debug/src/lib.rs b/vendor/primitives/debug/src/lib.rs index 2c0774ade9..4f222fa1a1 100644 --- a/vendor/primitives/debug/src/lib.rs +++ b/vendor/primitives/debug/src/lib.rs @@ -22,7 +22,7 @@ use parity_scale_codec::{Decode, Encode}; use sp_std::vec::Vec; sp_api::decl_runtime_apis! { - // Api version is virtually 4. + // Api version is virtually 5. // // We realized that even using runtime overrides, using the ApiExt interface reads the api // versions from the state runtime, meaning we cannot just reset the versioning as we see fit. @@ -30,8 +30,14 @@ sp_api::decl_runtime_apis! { // In order to be able to use ApiExt as part of the RPC handler logic we need to be always // above the version that exists on chain for this Api, even if this Api is only meant // to be used overridden. - #[api_version(4)] + #[api_version(5)] pub trait DebugRuntimeApi { + #[changed_in(5)] + fn trace_transaction( + extrinsics: Vec, + transaction: &Transaction, + ) -> Result<(), sp_runtime::DispatchError>; + #[changed_in(4)] fn trace_transaction( extrinsics: Vec, @@ -41,11 +47,19 @@ sp_api::decl_runtime_apis! { fn trace_transaction( extrinsics: Vec, transaction: &Transaction, + header: &Block::Header, + ) -> Result<(), sp_runtime::DispatchError>; + + #[changed_in(5)] + fn trace_block( + extrinsics: Vec, + known_transactions: Vec, ) -> Result<(), sp_runtime::DispatchError>; fn trace_block( extrinsics: Vec, known_transactions: Vec, + header: &Block::Header, ) -> Result<(), sp_runtime::DispatchError>; } } diff --git a/vendor/primitives/evm-tracing-events/Cargo.toml b/vendor/primitives/evm-tracing-events/Cargo.toml index b8b219c31a..d54f965ffd 100644 --- a/vendor/primitives/evm-tracing-events/Cargo.toml +++ b/vendor/primitives/evm-tracing-events/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "evm-tracing-events" -authors = ["PureStake"] +authors = { workspace = true } edition = "2021" homepage = "https://moonbeam.network" license = "GPL-3.0-only" -repository = "https://github.com/PureStake/moonbeam/" +repository = { workspace = true } version = "0.1.0" [dependencies] @@ -24,13 +24,13 @@ evm-runtime = { workspace = true } [features] default = ["std"] std = [ - "parity-scale-codec/std", "environmental/std", "ethereum-types/std", "ethereum/std", "evm-gasometer/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/vendor/primitives/txpool/src/lib.rs b/vendor/primitives/txpool/src/lib.rs index 6e8b33a17a..ca771a22d1 100644 --- a/vendor/primitives/txpool/src/lib.rs +++ b/vendor/primitives/txpool/src/lib.rs @@ -21,16 +21,18 @@ pub use ethereum::{TransactionV0 as LegacyTransaction, TransactionV2 as Transaction}; use parity_scale_codec::{Decode, Encode}; -use sp_runtime::{scale_info::TypeInfo, traits::Block as BlockT}; +use sp_runtime::scale_info::TypeInfo; +use sp_runtime::traits::Block as BlockT; +use sp_runtime::RuntimeDebug; use sp_std::vec::Vec; -#[derive(Eq, PartialEq, Clone, Encode, Decode, TypeInfo)] +#[derive(Eq, PartialEq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)] pub struct TxPoolResponseLegacy { pub ready: Vec, pub future: Vec, } -#[derive(Eq, PartialEq, Clone, Encode, Decode, TypeInfo)] +#[derive(Eq, PartialEq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)] pub struct TxPoolResponse { pub ready: Vec, pub future: Vec, diff --git a/vendor/rpc-core/txpool/Cargo.toml b/vendor/rpc-core/txpool/Cargo.toml index 7ccbf4f6c3..aa4a34dc2b 100644 --- a/vendor/rpc-core/txpool/Cargo.toml +++ b/vendor/rpc-core/txpool/Cargo.toml @@ -8,7 +8,7 @@ repository = "https://github.com/PureStake/moonbeam/" version = "0.6.0" [dependencies] -ethereum = { workspace = true, features = ["with-codec"] } +ethereum = { workspace = true, features = ["std", "with-codec"] } ethereum-types = { workspace = true, features = ["std"] } jsonrpsee = { workspace = true, features = ["macros", "server"] } serde = { workspace = true } diff --git a/vendor/rpc-core/txpool/src/types/mod.rs b/vendor/rpc-core/txpool/src/types/mod.rs index 5702018d9c..f05bd59669 100644 --- a/vendor/rpc-core/txpool/src/types/mod.rs +++ b/vendor/rpc-core/txpool/src/types/mod.rs @@ -27,7 +27,7 @@ pub use self::inspect::Summary; pub type TransactionMap = HashMap>; -#[derive(Debug, Serialize)] +#[derive(Debug, Clone, Serialize)] pub struct TxPoolResult { pub pending: T, pub queued: T, diff --git a/vendor/rpc/debug/Cargo.toml b/vendor/rpc/debug/Cargo.toml index ba3e0ee12b..9fcd9d940f 100644 --- a/vendor/rpc/debug/Cargo.toml +++ b/vendor/rpc/debug/Cargo.toml @@ -17,24 +17,24 @@ tokio = { workspace = true, features = ["sync", "time"] } moonbeam-client-evm-tracing = { workspace = true } moonbeam-rpc-core-debug = { workspace = true } moonbeam-rpc-core-types = { workspace = true } -moonbeam-rpc-primitives-debug = { workspace = true } +moonbeam-rpc-primitives-debug = { workspace = true, features = ["std"] } # Substrate sc-client-api = { workspace = true } sc-utils = { workspace = true } sp-api = { workspace = true, features = ["std"] } -sp-block-builder = { workspace = true } +sp-block-builder = { workspace = true, features = ["std"] } sp-blockchain = { workspace = true } sp-core = { workspace = true, features = ["std"] } sp-io = { workspace = true, features = ["std"] } sp-runtime = { workspace = true, features = ["std"] } # Frontier -ethereum = { workspace = true, features = ["with-codec"] } +ethereum = { workspace = true, features = ["std", "with-codec"] } ethereum-types = { workspace = true, features = ["std"] } fc-api = { workspace = true } fc-consensus = { workspace = true } fc-db = { workspace = true } fc-rpc = { workspace = true, features = ["rpc-binary-search-estimate"] } fc-storage = { workspace = true } -fp-rpc = { workspace = true } +fp-rpc = { workspace = true, features = ["std"] } diff --git a/vendor/rpc/debug/src/lib.rs b/vendor/rpc/debug/src/lib.rs index e19ae0ebcc..65fb2c1d00 100644 --- a/vendor/rpc/debug/src/lib.rs +++ b/vendor/rpc/debug/src/lib.rs @@ -35,8 +35,10 @@ use sp_block_builder::BlockBuilder; use sp_blockchain::{ Backend as BlockchainBackend, Error as BlockChainError, HeaderBackend, HeaderMetadata, }; -use sp_runtime::generic::BlockId; -use sp_runtime::traits::{BlakeTwo256, Block as BlockT, Header as HeaderT, UniqueSaturatedInto}; +use sp_runtime::{ + generic::BlockId, + traits::{BlakeTwo256, Block as BlockT, Header as HeaderT, UniqueSaturatedInto}, +}; use std::{future::Future, marker::PhantomData, sync::Arc}; pub enum RequesterInput { @@ -143,7 +145,7 @@ where pub fn task( client: Arc, backend: Arc, - frontier_backend: Arc>, + frontier_backend: Arc + Send + Sync>, permit_pool: Arc, overrides: Arc>, raw_max_memory_usage: usize, @@ -283,7 +285,7 @@ where fn handle_block_request( client: Arc, backend: Arc, - frontier_backend: Arc>, + frontier_backend: Arc + Send + Sync>, request_block_id: RequestBlockId, params: Option, overrides: Arc>, @@ -360,13 +362,33 @@ where .map_err(|e| internal_err(format!("Fail to read blockchain db: {:?}", e)))? .unwrap_or_default(); + // Get DebugRuntimeApi version + let trace_api_version = if let Ok(Some(api_version)) = + api.api_version::>(parent_block_hash) + { + api_version + } else { + return Err(internal_err( + "Runtime api version call failed (trace)".to_string(), + )); + }; + // Trace the block. let f = || -> RpcResult<_> { - api.initialize_block(parent_block_hash, &header) - .map_err(|e| internal_err(format!("Runtime api access error: {:?}", e)))?; + let result = if trace_api_version >= 5 { + // The block is initialized inside "trace_block" + api.trace_block(parent_block_hash, exts, eth_tx_hashes, &header) + } else { + // Old "trace_block" api did not initialize block before applying transactions, + // so we need to do it here before calling "trace_block". + api.initialize_block(parent_block_hash, &header) + .map_err(|e| internal_err(format!("Runtime api access error: {:?}", e)))?; + + #[allow(deprecated)] + api.trace_block_before_version_5(parent_block_hash, exts, eth_tx_hashes) + }; - let _result = api - .trace_block(parent_block_hash, exts, eth_tx_hashes) + result .map_err(|e| { internal_err(format!( "Blockchain error when replaying block {} : {:?}", @@ -379,6 +401,7 @@ where reference_id, e )) })?; + Ok(moonbeam_rpc_primitives_debug::Response::Block) }; @@ -418,7 +441,7 @@ where fn handle_transaction_request( client: Arc, backend: Arc, - frontier_backend: Arc>, + frontier_backend: Arc + Send + Sync>, transaction_hash: H256, params: Option, overrides: Arc>, @@ -500,42 +523,55 @@ where let transactions = block.transactions; if let Some(transaction) = transactions.get(index) { let f = || -> RpcResult<_> { - api.initialize_block(parent_block_hash, &header) - .map_err(|e| internal_err(format!("Runtime api access error: {:?}", e)))?; - - if trace_api_version >= 4 { - let _result = api - .trace_transaction(parent_block_hash, exts, &transaction) - .map_err(|e| { - internal_err(format!( - "Runtime api access error (version {:?}): {:?}", - trace_api_version, e - )) - })? - .map_err(|e| internal_err(format!("DispatchError: {:?}", e)))?; + let result = if trace_api_version >= 5 { + // The block is initialized inside "trace_transaction" + api.trace_transaction(parent_block_hash, exts, &transaction, &header) } else { - // Pre-london update, legacy transactions. - let _result = match transaction { - ethereum::TransactionV2::Legacy(tx) => - { - #[allow(deprecated)] - api.trace_transaction_before_version_4(parent_block_hash, exts, &tx) - .map_err(|e| { - internal_err(format!( - "Runtime api access error (legacy): {:?}", - e - )) - })? - .map_err(|e| internal_err(format!("DispatchError: {:?}", e)))? - } - _ => { - return Err(internal_err( - "Bug: pre-london runtime expects legacy transactions" - .to_string(), - )) + // Old "trace_transaction" api did not initialize block before applying transactions, + // so we need to do it here before calling "trace_transaction". + api.initialize_block(parent_block_hash, &header) + .map_err(|e| { + internal_err(format!("Runtime api access error: {:?}", e)) + })?; + + if trace_api_version == 4 { + // Pre pallet-message-queue + #[allow(deprecated)] + api.trace_transaction_before_version_5( + parent_block_hash, + exts, + &transaction, + ) + } else { + // Pre-london update, legacy transactions. + match transaction { + ethereum::TransactionV2::Legacy(tx) => + { + #[allow(deprecated)] + api.trace_transaction_before_version_4( + parent_block_hash, + exts, + &tx, + ) + } + _ => { + return Err(internal_err( + "Bug: pre-london runtime expects legacy transactions" + .to_string(), + )) + } } - }; - } + } + }; + + result + .map_err(|e| { + internal_err(format!( + "Runtime api access error (version {:?}): {:?}", + trace_api_version, e + )) + })? + .map_err(|e| internal_err(format!("DispatchError: {:?}", e)))?; Ok(moonbeam_rpc_primitives_debug::Response::Single) }; diff --git a/vendor/rpc/trace/Cargo.toml b/vendor/rpc/trace/Cargo.toml index 1c77e20024..da4b351619 100644 --- a/vendor/rpc/trace/Cargo.toml +++ b/vendor/rpc/trace/Cargo.toml @@ -12,8 +12,10 @@ ethereum = { workspace = true, features = ["with-codec", "std"] } ethereum-types = { workspace = true, features = ["std"] } futures = { workspace = true } jsonrpsee = { workspace = true, features = ["macros", "server"] } -serde = { workspace = true } +log = { workspace = true } +serde = { workspace = true, features = ["derive"] } sha3 = { workspace = true, features = ["std"] } +substrate-prometheus-endpoint = { workspace = true } tokio = { workspace = true, features = ["sync", "time"] } tracing = { workspace = true } diff --git a/vendor/rpc/trace/src/lib.rs b/vendor/rpc/trace/src/lib.rs index e79e05d70b..d15224d7d6 100644 --- a/vendor/rpc/trace/src/lib.rs +++ b/vendor/rpc/trace/src/lib.rs @@ -40,6 +40,9 @@ use sp_blockchain::{ Backend as BlockchainBackend, Error as BlockChainError, HeaderBackend, HeaderMetadata, }; use sp_runtime::traits::{BlakeTwo256, Block as BlockT, Header as HeaderT}; +use substrate_prometheus_endpoint::{ + register, Counter, PrometheusError, Registry as PrometheusRegistry, U64, +}; use ethereum_types::H256; use fc_rpc::OverrideHandle; @@ -411,6 +414,7 @@ pub struct CacheTask { cached_blocks: BTreeMap, batches: BTreeMap>, next_batch_id: u64, + metrics: Option, _phantom: PhantomData, } @@ -439,6 +443,7 @@ where cache_duration: Duration, blocking_permits: Arc, overrides: Arc>, + prometheus: Option, ) -> (impl Future, CacheRequester) { // Communication with the outside world : let (requester_tx, mut requester_rx) = @@ -451,7 +456,17 @@ where let mut batch_expirations = FuturesUnordered::new(); let (blocking_tx, mut blocking_rx) = mpsc::channel(blocking_permits.available_permits() * 2); - + let metrics = if let Some(registry) = prometheus { + match Metrics::register(®istry) { + Ok(metrics) => Some(metrics), + Err(err) => { + log::error!(target: "tracing", "Failed to register metrics {err:?}"); + None + } + } + } else { + None + }; // Contains the inner state of the cache task, excluding the pooled futures/channels. // Having this object allow to refactor each event into its own function, simplifying // the main loop. @@ -462,6 +477,7 @@ where cached_blocks: BTreeMap::new(), batches: BTreeMap::new(), next_batch_id: 0, + metrics, _phantom: Default::default(), }; @@ -637,6 +653,9 @@ where block ); waiting_requests.push(sender); + if let Some(metrics) = &self.metrics { + metrics.tracing_cache_misses.inc(); + } } CacheBlockState::Cached { traces, .. } => { tracing::warn!( @@ -644,6 +663,9 @@ where block ); let _ = sender.send(traces.clone()); + if let Some(metrics) = &self.metrics { + metrics.tracing_cache_hits.inc(); + } } } } else { @@ -825,13 +847,36 @@ where })? .ok_or_else(|| format!("Could not find block {} when fetching extrinsics.", height))?; + // Get DebugRuntimeApi version + let trace_api_version = if let Ok(Some(api_version)) = + api.api_version::>(substrate_parent_hash) + { + api_version + } else { + return Err("Runtime api version call failed (trace)".to_string()); + }; + // Trace the block. let f = || -> Result<_, String> { - api.initialize_block(substrate_parent_hash, &block_header) - .map_err(|e| format!("Runtime api access error: {:?}", e))?; + let result = if trace_api_version >= 5 { + // The block is initialized inside "trace_transaction" + api.trace_block( + substrate_parent_hash, + extrinsics, + eth_tx_hashes, + &block_header, + ) + } else { + // Old "trace_block" api did not initialize block before applying transactions, + // so we need to do it here before calling "trace_block". + api.initialize_block(substrate_parent_hash, &block_header) + .map_err(|e| format!("Runtime api access error: {:?}", e))?; + + #[allow(deprecated)] + api.trace_block_before_version_5(substrate_parent_hash, extrinsics, eth_tx_hashes) + }; - let _result = api - .trace_block(substrate_parent_hash, extrinsics, eth_tx_hashes) + result .map_err(|e| format!("Blockchain error when replaying block {} : {:?}", height, e))? .map_err(|e| { tracing::warn!( @@ -844,6 +889,7 @@ where height, e ) })?; + Ok(moonbeam_rpc_primitives_debug::Response::Block) }; @@ -881,3 +927,25 @@ where Ok(traces) } } + +/// Prometheus metrics for tracing. +#[derive(Clone)] +pub(crate) struct Metrics { + tracing_cache_hits: Counter, + tracing_cache_misses: Counter, +} + +impl Metrics { + pub(crate) fn register(registry: &PrometheusRegistry) -> Result { + Ok(Self { + tracing_cache_hits: register( + Counter::new("tracing_cache_hits", "Number of tracing cache hits.")?, + registry, + )?, + tracing_cache_misses: register( + Counter::new("tracing_cache_misses", "Number of tracing cache misses.")?, + registry, + )?, + }) + } +} diff --git a/vendor/rpc/txpool/Cargo.toml b/vendor/rpc/txpool/Cargo.toml index 7678395ce0..80bdc96372 100644 --- a/vendor/rpc/txpool/Cargo.toml +++ b/vendor/rpc/txpool/Cargo.toml @@ -10,12 +10,12 @@ version = "0.6.0" [dependencies] jsonrpsee = { workspace = true, features = ["macros", "server"] } rlp = { workspace = true } -serde = { workspace = true } +serde = { workspace = true, features = ["derive"] } sha3 = { workspace = true, features = ["std"] } # Moonbeam moonbeam-rpc-core-txpool = { workspace = true } -moonbeam-rpc-primitives-txpool = { workspace = true } +moonbeam-rpc-primitives-txpool = { workspace = true, features = ["std"] } # Substrate frame-system = { workspace = true, features = ["std"] } diff --git a/vendor/rpc/txpool/src/lib.rs b/vendor/rpc/txpool/src/lib.rs index 48d174bf6f..2cece15d68 100644 --- a/vendor/rpc/txpool/src/lib.rs +++ b/vendor/rpc/txpool/src/lib.rs @@ -182,3 +182,9 @@ where }) } } + +impl Clone for TxPool { + fn clone(&self) -> Self { + Self::new(self.client.clone(), self.graph.clone()) + } +}